APEX Framework: EffectPackageActor.h Source File

NVIDIA APEX

EffectPackageActor.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2008-2017, NVIDIA CORPORATION.  All rights reserved.
00003  *
00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
00005  * and proprietary rights in and to this software, related documentation
00006  * and any modifications thereto.  Any use, reproduction, disclosure or
00007  * distribution of this software and related documentation without an express
00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
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 }; // end of apex namespace
00297 }; // end of physx namespace
00298 
00299 #endif

Generated on Fri Dec 15 2017 13:58:35
Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.