#include <particle_system_shape.h>
Inheritance diagram for NL3D::CParticleSystemShape:
Definition at line 64 of file particle_system_shape.h.
Public Member Functions | |
void | buildFromPS (const NL3D::CParticleSystem &ps) |
=========================================================================== | |
virtual bool | clip (const std::vector< CPlane > &pyramid, const CMatrix &worldMatrix) |
CParticleSystemShape () | |
=========================================================================== | |
virtual CTransformShape * | createInstance (NL3D::CScene &scene) |
=========================================================================== | |
virtual void | flushTextures (IDriver &driver, uint selectedTexture) |
=========================================================================== | |
virtual void | getAABBox (NLMISC::CAABBox &bbox) const |
=========================================================================== | |
virtual std::string | getClassName ()=0 |
CTrackDefaultBool * | getDefaultTriggerTrack (void) |
get a the trigger default track | |
float | getDistMax () const |
virtual float | getNumTriangles (float distance) |
const sint & | getRefCount () const |
CTrackDefaultFloat * | getUserParamDefaultTrack (uint numTrack) |
get a the user param default tracks | |
CParticleSystem * | instanciatePS (CScene &scene, NLMISC::CContiguousBlockAllocator *blockAllocator=NULL) |
=========================================================================== | |
bool | isShared () const |
NLMISC_DECLARE_CLASS (CParticleSystemShape) | |
virtual void | profileSceneRender (CRenderTrav *rdrTrav, CTransformShape *trans, bool opaquePass) |
virtual void | serial (NLMISC::IStream &f) throw (NLMISC::EStream) |
=========================================================================== | |
void | setDistMax (float distMax) |
virtual | ~CParticleSystemShape () |
Dtor. | |
access default tracks. | |
CTrackDefaultVector * | getDefaultPos () |
CTrackDefaultQuat * | getDefaultRotQuat () |
CTrackDefaultVector * | getDefaultScale () |
Inherited from IShape. | |
virtual void | render (NL3D::IDriver *drv, CTransformShape *trans, bool passOpaque) |
=========================================================================== | |
Data Fields | |
sint | crefs |
CPtrInfo * | pinfo |
Static Public Attributes | |
CPtrInfo | NullPtrInfo |
Protected Attributes | |
std::vector< NLMISC::CSmartPtr< ITexture > > | _CachedTex |
CTrackDefaultVector | _DefaultPos |
Transform default tracks. | |
CTrackDefaultQuat | _DefaultRotQuat |
CTrackDefaultVector | _DefaultScale |
CTrackDefaultBool | _DefaultTriggerTrack |
Trigger default track. | |
bool | _DestroyModelWhenOutOfRange |
bool | _DestroyWhenOutOfFrustum |
float | _DistMax |
Default to -1. | |
float | _MaxViewDist |
uint | _NumBytesWanted |
NLMISC::CMemStream | _ParticleSystemProto |
NLMISC::CAABBox | _PrecomputedBBox |
NLMISC::CRefPtr< CParticleSystem > | _SharedSystem |
For sharing, this tells us if there's a system already instanciated that we could use for sharing. | |
bool | _Sharing |
bool | _UsePrecomputedBBox |
CTrackDefaultFloat | _UserParamDefaultTrack [4] |
the default track for animation of user parameters | |
Friends | |
class | CParticleSystem |
class | CParticleSystemModel |
struct | CPtrInfo |
|
===========================================================================
Definition at line 64 of file particle_system_shape.cpp. References _DefaultTriggerTrack, _UserParamDefaultTrack, NL3D::CTrackDefaultNotBlendable< bool >::setValue(), NL3D::CTrackDefaultBlendable< CQuat >::setValue(), NL3D::CTrackDefaultBlendable< CVector >::setValue(), NL3D::CTrackDefaultBlendable< float >::setValue(), and uint.
00064 : _MaxViewDist(100.f), 00065 _DestroyWhenOutOfFrustum(false), 00066 _DestroyModelWhenOutOfRange(false), 00067 _UsePrecomputedBBox(false), 00068 _Sharing(false), 00069 _NumBytesWanted(0) 00070 { 00071 for (uint k = 0; k < 4; ++k) 00072 { 00073 _UserParamDefaultTrack[k].setValue(0); 00074 } 00075 _DefaultPos.setValue(CVector::Null); 00076 _DefaultScale.setValue( CVector(1, 1, 1) ); 00077 _DefaultRotQuat.setValue(CQuat()); 00078 _DefaultTriggerTrack.setValue(true); // by default, system start as soon as they are instanciated 00079 00080 } |
|
Dtor.
Definition at line 78 of file particle_system_shape.h.
00078 {} |
|
=========================================================================== build the shape from a 'raw' particle system. A prototype will be created by copying the system in a memory stream NOTE : For now, prefer the instanciation from a file, which do not need reallocation Definition at line 136 of file particle_system_shape.cpp. References _ParticleSystemProto, _PrecomputedBBox, _UsePrecomputedBBox, NL3D::CParticleSystem::computeBBox(), NL3D::CParticleSystem::doesDestroyWhenOutOfFrustum(), NL3D::CParticleSystem::getAutoComputeBBox(), NL3D::CParticleSystem::getDestroyModelWhenOutOfRange(), NL3D::CParticleSystem::getMaxViewDist(), NLMISC::CMemStream::invert(), NLMISC::IStream::isReading(), NL3D::CParticleSystem::isSharingEnabled(), nlassert, and NLMISC::IStream::serialPtr().
00137 { 00138 // must be sure that we are writting in the stream 00139 if (_ParticleSystemProto.isReading()) 00140 { 00141 _ParticleSystemProto.invert(); 00142 } 00143 00144 // to have const correctness in the prototype, we must do this... 00145 CParticleSystem *myPs = const_cast<CParticleSystem *>(&ps); 00146 nlassert(myPs); 00147 // build the prototype 00148 _ParticleSystemProto.serialPtr(myPs); 00149 00150 // mirror some system values 00151 _MaxViewDist = myPs->getMaxViewDist(); 00152 _DestroyWhenOutOfFrustum = myPs->doesDestroyWhenOutOfFrustum(); 00153 _DestroyModelWhenOutOfRange = myPs->getDestroyModelWhenOutOfRange(); 00154 if (!myPs->getAutoComputeBBox()) 00155 { 00156 _UsePrecomputedBBox = true; 00157 myPs->computeBBox(_PrecomputedBBox); 00158 } 00159 else 00160 { 00161 _UsePrecomputedBBox = false; 00162 } 00163 _Sharing = myPs->isSharingEnabled(); 00164 } |
|
clip this shape with a pyramid. the pyramid is given in world space.The world matrix of the object is given.
Reimplemented in NL3D::CFlareShape, NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, NL3D::CMeshMultiLod, NL3D::CSegRemanenceShape, NL3D::CSkeletonShape, NL3D::CWaterShape, and NL3D::CWaveMakerShape. Definition at line 93 of file shape.h.
00093 {return true;} |
|
=========================================================================== create a particle system instance
Reimplemented from NL3D::IShape. Definition at line 267 of file particle_system_shape.cpp. References NL3D::CParticleSystemModel::_Scene, NL3D::CAnimatedValueQuat, NL3D::CAnimatedValueVector, NL3D::CScene::createModel(), NL3D::CTrackDefaultBlendable< CQuat >::getValue(), NL3D::CTrackDefaultBlendable< CVector >::getValue(), NL3D::CTransform::setLoadBalancingGroup(), and NL3D::CTransformShape::Shape.
00268 { 00269 CParticleSystemModel *psm = NLMISC::safe_cast<CParticleSystemModel *>(scene.createModel(NL3D::ParticleSystemModelId) ); 00270 psm->Shape = this; 00271 psm->_Scene = &scene; // the model needs the scene to recreate the particle system he holds 00272 // by default, we don't instanciate the system. It will be instanciated only if visible and triggered 00273 // psm->_ParticleSystem = instanciatePS(scene); 00274 00275 // Setup position with the default value 00276 psm->ITransformable::setPos( ((CAnimatedValueVector&)_DefaultPos.getValue()).Value ); 00277 psm->ITransformable::setRotQuat( ((CAnimatedValueQuat&)_DefaultRotQuat.getValue()).Value ); 00278 psm->ITransformable::setScale( ((CAnimatedValueVector&)_DefaultScale.getValue()).Value ); 00279 00280 // ParticleSystems are added to the "Fx" Load Balancing Group. 00281 psm->setLoadBalancingGroup("Fx"); 00282 00283 return psm; 00284 } |
|
===========================================================================
Implements NL3D::IShape. Definition at line 344 of file particle_system_shape.cpp. References _CachedTex, _NumBytesWanted, _ParticleSystemProto, _SharedSystem, NL3D::CParticleSystem::enumTexs(), NLMISC::CContiguousBlockAllocator::init(), NLMISC::CMemStream::invert(), NLMISC::IStream::isReading(), NLMISC::CMemStream::resetPtrTable(), NLMISC::CMemStream::seek(), NLMISC::IStream::serialPtr(), NL3D::IDriver::setupTexture(), and uint.
00345 { 00346 // if textures are already flushed, no-op 00347 if (!_CachedTex.empty()) return; 00348 if (_SharedSystem) 00349 { 00350 _SharedSystem->enumTexs(_CachedTex, driver); 00351 } 00352 else 00353 { 00354 NLMISC::CMutex mutex; 00355 mutex.enter(); 00356 00357 // must create an instance just to flush the textures 00358 CParticleSystem *myInstance = NULL; 00359 00360 #ifdef PS_FAST_ALLOC 00361 NLMISC::CContiguousBlockAllocator blockAllocator; 00362 PSBlockAllocator = &blockAllocator; 00363 blockAllocator.init(300000); // we release memory just after, and we don't want to fragment the memory, so provide large enough mem 00364 #endif 00365 // serialize from the memory stream 00366 if (!_ParticleSystemProto.isReading()) // we must be sure that we are reading the stream 00367 { 00368 _ParticleSystemProto.invert(); 00369 } 00370 _ParticleSystemProto.resetPtrTable(); 00371 _ParticleSystemProto.seek(0, NLMISC::IStream::begin); 00372 _ParticleSystemProto.serialPtr(myInstance); // instanciate the system 00373 #ifdef PS_FAST_ALLOC 00374 _NumBytesWanted = blockAllocator.getNumAllocatedBytes(); // next allocation will be fast because we know how much memory to allocate 00375 #endif 00376 myInstance->enumTexs(_CachedTex, driver); 00377 delete myInstance; 00378 #ifdef PS_FAST_ALLOC 00379 PSBlockAllocator = NULL; 00380 #endif 00381 mutex.leave(); 00382 } 00383 for(uint k = 0; k < _CachedTex.size(); ++k) 00384 { 00385 //nlinfo(_CachedTex[k]->getShareName().c_str()); 00386 if (_CachedTex[k]) driver.setupTexture(*_CachedTex[k]); 00387 } 00388 } |
|
===========================================================================
Reimplemented from NL3D::IShape. Definition at line 167 of file particle_system_shape.cpp. References _PrecomputedBBox, _UsePrecomputedBBox, NLMISC::CAABBox::setCenter(), and NLMISC::CAABBox::setHalfSize().
00168 { 00169 if (!_UsePrecomputedBBox) 00170 { 00171 bbox.setCenter(NLMISC::CVector::Null); 00172 bbox.setHalfSize(NLMISC::CVector(1, 1, 1)); 00173 } 00174 else 00175 { 00176 bbox = _PrecomputedBBox; 00177 } 00178 } |
|
Implemented in NLAIAGENT::CNumericIndex, NLAIC::IPointerGestion, NLAIC::CIdentType, and CAutomataDesc. Referenced by NLMISC::CClassRegistry::checkObject(), and NL3D::GetTextureSize(). |
|
Definition at line 127 of file particle_system_shape.h. Referenced by NL3D::CParticleSystemModel::getDefaultTrack().
00127 {return &_DefaultPos;} |
|
Definition at line 129 of file particle_system_shape.h. Referenced by NL3D::CParticleSystemModel::getDefaultTrack().
00129 {return &_DefaultRotQuat;} |
|
Definition at line 128 of file particle_system_shape.h. Referenced by NL3D::CParticleSystemModel::getDefaultTrack().
00128 {return &_DefaultScale;} |
|
get a the trigger default track
Definition at line 108 of file particle_system_shape.h. References _DefaultTriggerTrack. Referenced by NL3D::CParticleSystemModel::getDefaultTrack().
00109 { 00110 00111 return &_DefaultTriggerTrack; 00112 } |
|
return the DistMax where the shape is no more displayed. Default is to return -1, meaning DistMax = infinite. Definition at line 112 of file shape.h.
00112 {return _DistMax;} |
|
this method is meaningless here : the traverseLoadBalancing() for particle system compute the number of triangles from the Model, not the shape Implements NL3D::IShape. Definition at line 122 of file particle_system_shape.h.
00122 { return 0; }
|
|
Definition at line 70 of file smart_ptr.h. References NLMISC::CRefCount::crefs, and sint.
00071 { 00072 return crefs; 00073 } |
|
get a the user param default tracks
Definition at line 100 of file particle_system_shape.h. References _UserParamDefaultTrack, nlassert, and uint. Referenced by NL3D::CParticleSystemModel::getDefaultTrack().
00101 { 00102 nlassert(numTrack < 4); 00103 return &_UserParamDefaultTrack[numTrack]; 00104 } |
|
=========================================================================== Instanciate a particle system from this shape. A particle system may need to call this when a system is back in the frustum An contiguous block allocator may be provided for fast alloc, init will be called on such allocator with 0 if num bytes is unknown of with the size needed otherwise. Definition at line 182 of file particle_system_shape.cpp. References _CachedTex, _NumBytesWanted, _ParticleSystemProto, _SharedSystem, NL3D::CParticleSystem::enumTexs(), NL3D::CScene::getDriver(), NLMISC::CContiguousBlockAllocator::getNumAllocatedBytes(), NLMISC::CContiguousBlockAllocator::init(), NLMISC::CMemStream::invert(), NLMISC::IStream::isReading(), NLMISC::CMemStream::resetPtrTable(), NLMISC::CMemStream::seek(), NLMISC::IStream::serialPtr(), NL3D::CParticleSystem::setScene(), NL3D::IDriver::setupTexture(), and uint. Referenced by NL3D::CParticleSystem::merge(), and NL3D::CParticleSystemModel::reallocRsc().
00183 { 00184 if (_Sharing && _SharedSystem != NULL) // is sharing enabled, and is a system already instanciated 00185 { 00186 return _SharedSystem; 00187 } 00188 00189 // avoid prb with concurent thread (may append if an instance group containing ps is loaded in background) 00190 NLMISC::CMutex mutex; 00191 mutex.enter(); 00192 00193 00194 #ifdef PS_FAST_ALLOC 00195 if (blockAllocator) 00196 { 00197 // set new allocator for particle system memory 00198 PSBlockAllocator = blockAllocator; 00199 blockAllocator->init(_NumBytesWanted); // if size wanted is already known, set it 00200 } 00201 #endif 00202 00203 //NLMISC::TTicks start = NLMISC::CTime::getPerformanceTime(); 00204 // copy the datas 00205 CParticleSystem *myInstance = NULL; 00206 00207 // serialize from the memory stream 00208 if (!_ParticleSystemProto.isReading()) // we must be sure that we are reading the stream 00209 { 00210 _ParticleSystemProto.invert(); 00211 } 00212 00213 _ParticleSystemProto.resetPtrTable(); 00214 _ParticleSystemProto.seek(0, NLMISC::IStream::begin); 00215 00216 // NLMISC::TTicks start = NLMISC::CTime::getPerformanceTime(); 00217 _ParticleSystemProto.serialPtr(myInstance); // instanciate the system 00218 /* NLMISC::TTicks end = NLMISC::CTime::getPerformanceTime(); 00219 nlinfo("instanciation time = %.2f", (float) (1000 * NLMISC::CTime::ticksToSecond(end - start))); 00220 */ 00221 00222 myInstance->setScene(&scene); 00223 00224 if (_CachedTex.empty() && scene.getDriver()) 00225 { 00226 //nlinfo("flushing texs"); 00227 // load && cache textures 00228 myInstance->enumTexs(_CachedTex, *scene.getDriver()); 00229 for(uint k = 0; k < _CachedTex.size(); ++k) 00230 { 00231 if (_CachedTex[k]) scene.getDriver()->setupTexture (*(ITexture *)_CachedTex[k]); 00232 } 00233 } 00234 else 00235 { 00236 /* 00237 for(uint k = 0; k < _CachedTex.size(); ++k) 00238 { 00239 nlinfo(_CachedTex[k]->getShareName().c_str()); 00240 } 00241 */ 00242 } 00243 00244 // tmp 00245 00246 if (_Sharing) 00247 { 00248 _SharedSystem = myInstance; // set this as the first shared instance 00249 } 00250 00251 #ifdef PS_FAST_ALLOC 00252 if (blockAllocator) 00253 { 00254 _NumBytesWanted = blockAllocator->getNumAllocatedBytes(); // now we know the number of wanted bytes, subsequent alloc can be much faster 00255 PSBlockAllocator = NULL; 00256 } 00257 #endif 00258 00259 mutex.leave(); 00260 00261 /*NLMISC::TTicks end = NLMISC::CTime::getPerformanceTime(); 00262 nlinfo("instanciation time = %.2f", (float) (1000 * NLMISC::CTime::ticksToSecond(end - start))); */ 00263 return myInstance; 00264 } |
|
Definition at line 133 of file particle_system_shape.h. Referenced by NL3D::CParticleSystemModel::reallocRsc(), NL3D::CParticleSystemModel::releasePSPointer(), and NL3D::CParticleSystemModel::releaseRscAndInvalidate().
00133 { return _Sharing; } |
|
|
|
Profiling. Called in RenderPass if Current Frame profiled. No-Op by default Informations must be added in rdrTrav->Scene Reimplemented in NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, and NL3D::CMeshMultiLod. Definition at line 123 of file shape.h.
00123 {} |
|
=========================================================================== render() a particle system in a driver, with the specified TransformShape information. CTransfromShape call this method in the render traversal. Implements NL3D::IShape. Definition at line 287 of file particle_system_shape.cpp. References NL3D::CParticleSystemModel::_Invalidated, NL3D::CParticleSystemModel::getEllapsedTime(), NL3D::CParticleSystemModel::getPS(), NL3D::CParticleSystem::getScene(), NL3D::CParticleSystemModel::getUserMatrix(), NL3D::CTransform::getWorldMatrix(), H_AUTO, NL3D::CParticleSystem::isSharingEnabled(), NL3D::CParticleSystemModel::isToolDisplayEnabled(), nlassert, PARTICLES_CHECK_MEM, NL3D::PSLookAtRenderTime, NL3D::CParticleSystem::setDriver(), NL3D::CParticleSystem::setSysMat(), NL3D::CParticleSystem::setUserMatrix(), NL3D::CParticleSystem::step(), and NL3D::TAnimationTime.
00288 { 00289 H_AUTO ( NL3D_Particles_Render ); 00290 nlassert(drv); 00291 CParticleSystemModel *psm = NLMISC::safe_cast<CParticleSystemModel *>(trans); 00292 if (psm->_Invalidated) return; 00293 CParticleSystem *ps = psm->getPS(); 00295 if (!ps) return; 00296 00297 TAnimationTime delay = psm->getEllapsedTime(); 00298 nlassert(ps->getScene()); 00299 00301 // render particles // 00303 00305 if (ps->isSharingEnabled()) 00306 { 00307 ps->setSysMat(&(psm->getWorldMatrix())); 00308 ps->setUserMatrix(&(psm->getUserMatrix())); 00309 } 00310 00311 // Setup the matrix. 00313 00314 ps->setDriver(drv); 00315 // draw particle 00316 PARTICLES_CHECK_MEM; 00317 if (passOpaque) 00318 { 00319 PSLookAtRenderTime = 0; 00320 //NLMISC::TTicks start = NLMISC::CTime::getPerformanceTime(); 00321 ps->step(CParticleSystem::SolidRender, delay); 00322 /*NLMISC::TTicks end = NLMISC::CTime::getPerformanceTime(); 00323 nlinfo("Solid render time time = %.2f", (float) (1000 * NLMISC::CTime::ticksToSecond(end - start))); 00324 nlinfo("LookAt Render time = %.2f", (float) (1000 * NLMISC::CTime::ticksToSecond(PSLookAtRenderTime))); */ 00325 } 00326 else 00327 { 00328 //PSLookAtRenderTime = 0; 00329 //NLMISC::TTicks start = NLMISC::CTime::getPerformanceTime(); 00330 ps->step(CParticleSystem::BlendRender, delay); 00331 /*NLMISC::TTicks end = NLMISC::CTime::getPerformanceTime(); 00332 nlinfo("Blend render time time = %.2f", (float) (1000 * NLMISC::CTime::ticksToSecond(end - start))); 00333 nlinfo("LookAt Render time = %.2f", (float) (1000 * NLMISC::CTime::ticksToSecond(PSLookAtRenderTime))); */ 00334 } 00335 PARTICLES_CHECK_MEM; 00336 if (psm->isToolDisplayEnabled()) 00337 { 00338 ps->step(CParticleSystem::ToolRender, delay); 00339 PARTICLES_CHECK_MEM; 00340 } 00341 } |
|
=========================================================================== version 6 : added sharing flag Implements NLMISC::IStreamable. Definition at line 83 of file particle_system_shape.cpp. References sint, uint, and uint8.
00084 { 00085 sint ver = f.serialVersion(6); 00087 //NLMISC::CVector8 &buf = _ParticleSystemProto.bufferAsVector(); 00088 //f.serialCont(buf); 00089 00090 if (f.isReading ()) 00091 { 00092 std::vector<uint8> buf; 00093 f.serialCont(buf); 00094 _ParticleSystemProto.fill(&buf[0], buf.size()); 00095 } 00096 else 00097 { 00098 f.serialBufferWithSize ((uint8*)_ParticleSystemProto.buffer(), _ParticleSystemProto.length()); 00099 } 00100 00101 if (ver > 1) 00102 { 00103 // serial default tracks 00104 for (uint k = 0; k < 4; ++k) 00105 { 00106 f.serial(_UserParamDefaultTrack[k]); 00107 } 00108 } 00109 if ( ver > 2) 00110 { 00111 f.serial (_DefaultPos); 00112 f.serial (_DefaultScale); 00113 f.serial (_DefaultRotQuat); 00114 } 00115 if ( ver > 3) 00116 { 00117 f.serial(_MaxViewDist); 00118 f.serial(_DestroyWhenOutOfFrustum); 00119 f.serial(_DestroyModelWhenOutOfRange); 00120 } 00121 if ( ver > 4) 00122 { 00123 f.serial(_UsePrecomputedBBox); 00124 if (_UsePrecomputedBBox) 00125 { 00126 f.serial(_PrecomputedBBox); 00127 } 00128 } 00129 if ( ver > 5) 00130 { 00131 f.serial(_Sharing); 00132 } 00133 } |
|
setup the DistMax where the shape is no more displayed. Take effect only for the next created instances. setting <0 means -1 and so means DistMax = infinite. Definition at line 66 of file shape.cpp. Referenced by NL3D::CFlareShape::CFlareShape().
|
|
return !NULL if this shape can support MeshBlock rendering for a special instance. NB: Mesh Block render cannot occurs if the Mesh is Skinned/MeshMorphed. NB: Mesh Block render can occurs only in Opaque pass NB: Mesh block render can occurs only for CMeshBase meshes.
Reimplemented in NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, and NL3D::CMeshMultiLod. Definition at line 158 of file shape.h.
00158 {return NULL;}
|
|
tells if the shape wants LocalAttenuation for RealTime lighting. Default is false Reimplemented in NL3D::CMeshBase. Definition at line 142 of file shape.h.
00142 {return false;} |
|
Definition at line 137 of file particle_system_shape.h. |
|
Definition at line 136 of file particle_system_shape.h. |
|
Definition at line 67 of file smart_ptr.h. |
|
Definition at line 178 of file particle_system_shape.h. Referenced by flushTextures(), and instanciatePS(). |
|
Transform default tracks.
Definition at line 162 of file particle_system_shape.h. |
|
Definition at line 164 of file particle_system_shape.h. |
|
Definition at line 163 of file particle_system_shape.h. |
|
Trigger default track.
Definition at line 167 of file particle_system_shape.h. Referenced by CParticleSystemShape(), and getDefaultTriggerTrack(). |
|
Definition at line 173 of file particle_system_shape.h. Referenced by NL3D::CParticleSystemModel::refreshRscDeletion(), NL3D::CParticleSystemModel::traverseAnimDetail(), and NL3D::CParticleSystemModel::traverseClip(). |
|
Definition at line 172 of file particle_system_shape.h. Referenced by NL3D::CParticleSystemModel::refreshRscDeletion(), and NL3D::CParticleSystemModel::traverseAnimDetail(). |
|
Default to -1.
|
|
Definition at line 155 of file particle_system_shape.h. Referenced by NL3D::CParticleSystemModel::refreshRscDeletion(), and NL3D::CParticleSystemModel::traverseClip(). |
|
Definition at line 183 of file particle_system_shape.h. Referenced by flushTextures(), and instanciatePS(). |
|
A memory stream containing a particle system. Each system is instanciated from this prototype Nevertheless, we store some more system infos which are needed for its lifecycle mgt. Definition at line 154 of file particle_system_shape.h. Referenced by buildFromPS(), flushTextures(), and instanciatePS(). |
|
Definition at line 156 of file particle_system_shape.h. Referenced by buildFromPS(), getAABBox(), and NL3D::CParticleSystemModel::traverseClip(). |
|
For sharing, this tells us if there's a system already instanciated that we could use for sharing.
Definition at line 170 of file particle_system_shape.h. Referenced by flushTextures(), and instanciatePS(). |
|
Definition at line 175 of file particle_system_shape.h. |
|
Definition at line 174 of file particle_system_shape.h. Referenced by buildFromPS(), getAABBox(), and NL3D::CParticleSystemModel::traverseClip(). |
|
the default track for animation of user parameters
Definition at line 159 of file particle_system_shape.h. Referenced by CParticleSystemShape(), and getUserParamDefaultTrack(). |
|
Definition at line 79 of file smart_ptr.h. Referenced by NLMISC::CRefCount::CRefCount(), NLMISC::CRefCount::getRefCount(), and NLMISC::CRefCount::~CRefCount(). |
|
Referenced by NLMISC::CRefCount::CRefCount(). |
|
Definition at line 80 of file smart_ptr.h. Referenced by NLMISC::CRefCount::CRefCount(), and NLMISC::CRefCount::~CRefCount(). |