APEX Framework: EmitterActor.h Source File

NVIDIA APEX

EmitterActor.h
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 EMITTER_ACTOR_H
00013 #define EMITTER_ACTOR_H
00014 
00015 #include "Apex.h"
00016 
00017 namespace nvidia
00018 {
00019 namespace apex
00020 {
00021 
00022 PX_PUSH_PACK_DEFAULT
00023 
00024 class EmitterAsset;
00025 class EmitterGeomExplicit;
00026 class EmitterLodParamDesc;
00027 class RenderVolume;
00028 
00030 class EmitterActor : public Actor
00031 {
00032 protected:
00033     virtual ~EmitterActor() {}
00034 
00035 public:
00036 
00040     class EmitterValidateCallback
00041     {
00042     public:
00051         virtual bool validateEmitterPosition(const PxVec3 &emitterOrigin,PxVec3 &position) = 0;
00052     };
00053 
00055     virtual EmitterAsset*           getEmitterAsset() const = 0;
00056 
00058     virtual EmitterGeomExplicit*    isExplicitGeom() = 0;
00059 
00061     virtual PxMat44                 getGlobalPose() const = 0;
00062     
00064     virtual void                    setCurrentPose(const PxTransform& pose) = 0;
00065     
00067     virtual void                    setCurrentPosition(const PxVec3& pos) = 0;
00068 
00074     virtual void                    setAttachActor(PxActor*) = 0;
00075 
00077     virtual void                    setAttachRelativePose(const PxTransform& pose) = 0;
00078 
00080     virtual const PxActor*          getAttachActor() const = 0;
00081 
00083     virtual const PxMat44           getAttachRelativePose() const = 0;
00084     
00086     virtual float                   getObjectRadius() const = 0;
00087 
00089     virtual void                    setOverlapTestCollisionGroups(uint32_t) = 0;
00090 
00097     virtual void                    startEmit(bool persistent = true) = 0;
00098     
00100     virtual void                    stopEmit() = 0;
00101     
00103     virtual bool                    isEmitting() const = 0;
00104     
00106     virtual const EmitterLodParamDesc& getLodParamDesc() const = 0;
00108     virtual void                    setLodParamDesc(const EmitterLodParamDesc&) = 0;
00109 
00111 
00112     virtual void                    setDensity(const float&) = 0;
00113     
00115     virtual void                    setRate(const float&) = 0;
00116 
00118     virtual void                    setVelocityLow(const PxVec3&) = 0;
00119     
00121     virtual void                    setVelocityHigh(const PxVec3&) = 0;
00122     
00124     virtual void                    setLifetimeLow(const float&) = 0;
00125     
00127     virtual void                    setLifetimeHigh(const float&) = 0;
00128 
00130     virtual void                    emitAssetParticles(bool enable) = 0;
00131     
00133     virtual bool                    getEmitAssetParticles() const = 0;
00134 
00141     virtual void                    setPreferredRenderVolume(RenderVolume* volume) = 0;
00142 
00144     virtual void                    getRate(float&) const = 0;
00145 
00147     virtual uint32_t                getSimParticlesCount() const = 0;
00148 
00150     virtual uint32_t                getActiveParticleCount() const = 0;
00151 
00153     virtual void                    setDensityGridPosition(const PxVec3 &pos) = 0;
00154 
00156     virtual void                    setApexEmitterValidateCallback(EmitterValidateCallback *callback) = 0;
00157 
00159     PX_DEPRECATED virtual void      setObjectScale(float scale) = 0;
00160 
00162     PX_DEPRECATED virtual float     getObjectScale(void) const = 0;
00163 
00165     virtual void                    setCurrentScale(float scale) = 0;
00166 
00168     virtual float                   getCurrentScale(void) const = 0;
00169 
00170 
00171 };
00172 
00173 PX_POP_PACK
00174 
00175 }
00176 } // end namespace nvidia
00177 
00178 #endif // EMITTER_ACTOR_H

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.