Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef EFFECT_PACKAGE_ACTOR_H
00013 #define EFFECT_PACKAGE_ACTOR_H
00014
00015 #include "Actor.h"
00016 #include "EmitterActor.h"
00017
00030 struct ID3D11ShaderResourceView;
00031 struct ID3D11DeviceContext;
00032
00033 namespace physx
00034 {
00035 class PxRigidDynamic;
00036 }
00037
00038 namespace nvidia
00039 {
00040
00041 namespace general_renderdebug4
00042 {
00044 class RenderDebugInterface;
00045 };
00046
00047 namespace apex
00048 {
00049
00053 enum EffectType
00054 {
00055 ET_EMITTER,
00056 ET_HEAT_SOURCE,
00057 ET_SUBSTANCE_SOURCE,
00058 ET_TURBULENCE_FS,
00059 ET_JET_FS,
00060 ET_ATTRACTOR_FS,
00061 ET_FORCE_FIELD,
00062 ET_NOISE_FS,
00063 ET_VORTEX_FS,
00064 ET_WIND_FS,
00065 ET_RIGID_BODY,
00066 ET_VELOCITY_SOURCE,
00067 ET_FLAME_EMITTER,
00068 ET_LAST
00069 };
00070
00071 class Actor;
00072 class RenderVolume;
00073
00077 class EffectPackageActor : public Actor
00078 {
00079 public:
00080
00091 virtual void fadeOut(float fadetime) = 0;
00092
00102 virtual void fadeIn(float fadetime) = 0;
00103
00107 virtual uint32_t getEffectCount() const = 0;
00108
00114 virtual EffectType getEffectType(uint32_t effectIndex) const = 0;
00115
00121 virtual const char* getEffectName(uint32_t effectIndex) const = 0;
00122
00128 virtual bool isEffectEnabled(uint32_t effectIndex) const = 0;
00129
00136 virtual bool setEffectEnabled(uint32_t effectIndex, bool state) = 0;
00137
00143 virtual void setCurrentScale(float scale) = 0;
00144
00148 virtual float getCurrentScale(void) const = 0;
00149
00157 virtual bool getEffectPose(uint32_t effectIndex, PxTransform& pose, bool worldSpace) = 0;
00158
00166 virtual bool setEffectPose(uint32_t effectIndex, const PxTransform& pose, bool worldSpace) = 0;
00167
00180 virtual Actor* getEffectActor(uint32_t effectIndex) const = 0;
00181
00191 virtual PxRigidDynamic* getEffectRigidDynamic(uint32_t effectIndex) const = 0;
00192
00200 virtual void setEmitterState(bool state) = 0;
00201
00207 virtual uint32_t getActiveParticleCount() const = 0;
00208
00217 virtual bool isStillEmitting() const = 0;
00218
00222 virtual bool isAlive(void) const = 0;
00223
00233 virtual void setEnabled(bool state) = 0;
00234
00238 virtual bool getEnabled() const = 0;
00239
00247 virtual void setPose(const PxTransform& pose) = 0;
00248
00252 virtual const PxTransform& getPose() const = 0;
00253
00257 virtual void refresh() = 0;
00258
00262 virtual void release() = 0;
00263
00267 virtual const char* getName() const = 0;
00268
00272 virtual float getDuration() const = 0;
00273
00277 virtual float getCurrentLife() const = 0;
00278
00282 virtual void setPreferredRenderVolume(RenderVolume* volume) = 0;
00283
00287 virtual const char * hasVolumeRenderMaterial(uint32_t &index) const = 0;
00288
00292 virtual void setApexEmitterValidateCallback(EmitterActor::EmitterValidateCallback *callback) = 0;
00293 };
00294
00295
00296 };
00297 };
00298
00299 #endif