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.