|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef PARTICLESFX_H
|
|
Toshihiro Shimizu |
890ddd |
#define PARTICLESFX_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "stdfx.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tfxparam.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tspectrumparam.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//******************************************************************
|
|
Toshihiro Shimizu |
890ddd |
// Particles Fx class
|
|
Toshihiro Shimizu |
890ddd |
//******************************************************************
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class ParticlesFx : public TStandardZeraryFx
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
FX_PLUGIN_DECLARATION(ParticlesFx)
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TFxPortDG m_source, m_control;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP source_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP bright_thres_val;
|
|
Toshihiro Shimizu |
890ddd |
TBoolParamP multi_source_val;
|
|
Toshihiro Shimizu |
890ddd |
TPointParamP center_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP length_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP height_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP maxnum_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP lifetime_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP lifetime_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TBoolParamP column_lifetime_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP startpos_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP randseed_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP gravity_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP g_angle_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP gravity_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
// TIntParamP gravity_radius_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP friction_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP friction_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP windint_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP windangle_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntEnumParamP swingmode_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP randomx_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP randomy_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP randomx_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP randomy_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP swing_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP speed_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP speed_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP speeda_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP speeda_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TBoolParamP speeda_use_gradient_val;
|
|
Toshihiro Shimizu |
890ddd |
TBoolParamP speedscale_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntEnumParamP toplayer_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP mass_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP scale_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP scale_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TBoolParamP scale_ctrl_all_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP rot_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP rot_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP trail_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP trailstep_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntEnumParamP rotswingmode_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP rotspeed_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP rotsca_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP rotswing_val;
|
|
Toshihiro Shimizu |
890ddd |
TBoolParamP pathaim_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP opacity_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP opacity_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP trailopacity_val;
|
|
Toshihiro Shimizu |
890ddd |
TRangeParamP scalestep_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP scalestep_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP fadein_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP fadeout_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntEnumParamP animation_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP step_val;
|
|
Toshihiro Shimizu |
890ddd |
TSpectrumParamP gencol_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP gencol_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP gencol_spread_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP genfadecol_val;
|
|
Toshihiro Shimizu |
890ddd |
TSpectrumParamP fincol_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP fincol_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP fincol_spread_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP finrangecol_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP finfadecol_val;
|
|
Toshihiro Shimizu |
890ddd |
TSpectrumParamP foutcol_val;
|
|
Toshihiro Shimizu |
890ddd |
TIntParamP foutcol_ctrl_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP foutcol_spread_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP foutrangecol_val;
|
|
Toshihiro Shimizu |
890ddd |
TDoubleParamP foutfadecol_val;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TBoolParamP source_gradation_val;
|
|
Toshihiro Shimizu |
890ddd |
TBoolParamP pick_color_for_every_frame_val;
|
|
Toshihiro Shimizu |
890ddd |
TBoolParamP perspective_distribution_val;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Toshihiro Shimizu |
890ddd |
enum { UNIT_SMALL_INCH,
|
|
Toshihiro Shimizu |
890ddd |
UNIT_INCH };
|
|
Toshihiro Shimizu |
890ddd |
enum { MATTE_REF,
|
|
Toshihiro Shimizu |
890ddd |
GRAY_REF,
|
|
Toshihiro Shimizu |
890ddd |
H_REF };
|
|
Toshihiro Shimizu |
890ddd |
enum { SWING_RANDOM,
|
|
Toshihiro Shimizu |
890ddd |
SWING_SMOOTH };
|
|
Toshihiro Shimizu |
890ddd |
enum { ANIM_HOLD,
|
|
Toshihiro Shimizu |
890ddd |
ANIM_RANDOM,
|
|
Toshihiro Shimizu |
890ddd |
ANIM_CYCLE,
|
|
Toshihiro Shimizu |
890ddd |
ANIM_R_CYCLE,
|
|
Toshihiro Shimizu |
890ddd |
ANIM_S_CYCLE,
|
|
Toshihiro Shimizu |
890ddd |
ANIM_SR_CYCLE };
|
|
Toshihiro Shimizu |
890ddd |
enum { TOP_YOUNGER,
|
|
Toshihiro Shimizu |
890ddd |
TOP_OLDER,
|
|
Toshihiro Shimizu |
890ddd |
TOP_SMALLER,
|
|
Toshihiro Shimizu |
890ddd |
TOP_BIGGER,
|
|
Toshihiro Shimizu |
890ddd |
TOP_RANDOM };
|
|
Toshihiro Shimizu |
890ddd |
enum { CTRL_NONE = -1,
|
|
Toshihiro Shimizu |
890ddd |
CTRL_1,
|
|
Toshihiro Shimizu |
890ddd |
CTRL_2 };
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Toshihiro Shimizu |
890ddd |
ParticlesFx();
|
|
Toshihiro Shimizu |
890ddd |
~ParticlesFx();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
bool isZerary() const { return true; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
int dynamicPortGroupsCount() const { return 2; }
|
|
Toshihiro Shimizu |
890ddd |
const TFxPortDG *dynamicPortGroup(int g) const
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
return (g == 0) ? &m_source : (g == 1) ? &m_control : 0;
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
bool canHandle(const TRenderSettings &info, double frame) { return true; }
|
|
Toshihiro Shimizu |
890ddd |
bool allowUserCacheOnPort(int port);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
3bfa54 |
std::string getAlias(double frame, const TRenderSettings &info) const;
|
|
Toshihiro Shimizu |
890ddd |
bool doGetBBox(double frame, TRectD &bBox, const TRenderSettings &info);
|
|
Toshihiro Shimizu |
890ddd |
TFxTimeRegion getTimeRegion() const { return TFxTimeRegion::createUnlimited(); }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
void doDryCompute(TRectD &rect, double frame, const TRenderSettings &info);
|
|
Toshihiro Shimizu |
890ddd |
void doCompute(TTile &tile, double frame, const TRenderSettings &ri);
|
|
Toshihiro Shimizu |
890ddd |
void compute(TFlash &flash, int frame);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
void getParamUIs(TParamUIConcept *&concepts, int &length);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
void compatibilityTranslatePort(int majorVersion, int minorVersion, std::string &portName);
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif // PARTICLESFX_H
|