#include <particle_system_process.h>
Inheritance diagram for NL3D::CParticleSystemProcess:
Definition at line 74 of file particle_system_process.h.
Public Member Functions | |
virtual bool | computeBBox (NLMISC::CAABBox &aabbox) const=0 |
virtual void | enumTexs (std::vector< NLMISC::CSmartPtr< ITexture > > &dest, IDriver &drv)=0 |
virtual std::string | getClassName ()=0 |
TPSMatrixMode | getMatrixMode () const |
const CParticleSystem * | getOwner (void) const |
retrieve the particle system that owns this process (const version) | |
CParticleSystem * | getOwner (void) |
Retrieve the particle system that owns this process. | |
virtual uint | getUserMatrixUsageCount () const |
virtual bool | hasEmitters (void) const |
tells wether there are alive emitters / particles in the system | |
virtual bool | hasParticles (void) const |
tells wether there are alive entities / particles in the system | |
virtual bool | isLocated () const |
virtual bool | isParametricMotionEnabled (void) const |
test wether parametric motion is enabled | |
virtual void | performParametricMotion (TAnimationTime date, TAnimationTime ellapsedTime, TAnimationTime realEllapsedTime) |
perform parametric motion if enabled | |
virtual uint | querryMaxWantedNumFaces (void)=0 |
max number of faces wanted by this process (for load balancing) | |
virtual void | releaseAllRef ()=0 |
virtual void | releaseRefTo (const CParticleSystemProcess *other)=0 |
virtual void | setMatrixMode (TPSMatrixMode matrixMode) |
void | setOwner (CParticleSystem *ps) |
Set the process owner. Called by the particle system during attachment. | |
virtual void | setZBias (float value)=0 |
virtual void | step (TPSProcessPass pass, TAnimationTime ellapsedTime, TAnimationTime realEt)=0 |
virtual void | systemDateChanged () |
virtual void | updateLife (TAnimationTime ellapsedTime)=0 |
Update the life of objects.. | |
Object | |
CParticleSystemProcess () | |
ctor | |
virtual void | serial (NLMISC::IStream &f) throw (NLMISC::EStream) |
virtual | ~CParticleSystemProcess () |
dtor | |
Protected Attributes | |
TPSMatrixMode | _MatrixMode |
CParticleSystem * | _Owner |
|
ctor
Definition at line 81 of file particle_system_process.h. References _MatrixMode, and NL3D::PSFXWorldMatrix.
00081 : _Owner(NULL), _MatrixMode(PSFXWorldMatrix) {} |
|
dtor
Definition at line 84 of file particle_system_process.h.
00084 {} |
|
Compute the aabbox of this process, (expressed in world basis).
Implemented in NL3D::CPSLocated. |
|
Implemented in NL3D::CPSLocated. |
|
Implemented in NLAIAGENT::CNumericIndex, NLAIC::IPointerGestion, NLAIC::CIdentType, and CAutomataDesc. Referenced by NLMISC::CClassRegistry::checkObject(), and NL3D::GetTextureSize(). |
|
Shortcut to get a font generator if one was set, const version (edition mode).
Definition at line 78 of file particle_system_process.cpp. References NL3D::CParticleSystem::getFontGenerator(), and nlassert.
|
|
Shortcut to get a font generator if one was set (edition mode).
Definition at line 71 of file particle_system_process.cpp. References NL3D::CParticleSystem::getFontGenerator(), and nlassert. Referenced by NL3D::CPSLocatedBindable::getFontGenerator().
|
|
Shortcut to get a font Manager if one was set, const version (edition mode).
Definition at line 92 of file particle_system_process.cpp. References NL3D::CParticleSystem::getFontManager(), and nlassert.
|
|
Shortcut to get a font Manager if one was set (edition mode).
Definition at line 85 of file particle_system_process.cpp. References NL3D::CParticleSystem::getFontManager(), and nlassert. Referenced by NL3D::CPSLocatedBindable::getFontManager().
|
|
|
retrieve the particle system that owns this process (const version)
Definition at line 114 of file particle_system_process.h.
00114 { return _Owner ; } |
|
|
Reimplemented in NL3D::CPSLocated. Definition at line 52 of file particle_system_process.cpp. References _MatrixMode, NL3D::PSUserMatrix, and uint. Referenced by setOwner().
00053 { 00054 return _MatrixMode == PSUserMatrix; 00055 } |
|
tells wether there are alive emitters / particles in the system
Reimplemented in NL3D::CPSLocated. Definition at line 154 of file particle_system_process.h.
00154 { return false ; } |
|
tells wether there are alive entities / particles in the system
Reimplemented in NL3D::CPSLocated. Definition at line 151 of file particle_system_process.h.
00151 { return false ; } |
|
Reimplemented in NL3D::CPSLocated. Definition at line 177 of file particle_system_process.h. Referenced by NL3D::CParticleSystem::activateEmitters(), NL3D::CParticleSystem::getCurrNumParticles(), NL3D::CParticleSystem::getMaxNumParticles(), NL3D::CParticleSystem::getTargeters(), NL3D::CParticleSystem::hasActiveEmitters(), NL3D::CParticleSystem::hasEmittersTemplates(), and NL3D::CParticleSystem::matchArraySize().
00177 { return false; } |
|
test wether parametric motion is enabled
Reimplemented in NL3D::CPSLocated. Definition at line 163 of file particle_system_process.h.
00163 { return false;} |
|
perform parametric motion if enabled
Reimplemented in NL3D::CPSLocated. Definition at line 166 of file particle_system_process.h. References nlassert, and NL3D::TAnimationTime.
00168 { nlassert(0);} |
|
max number of faces wanted by this process (for load balancing)
Implemented in NL3D::CPSLocated. |
|
Release any reference this process may have to other process of the system For example, this is used when detaching a process of a system. Implemented in NL3D::CPSLocated. Referenced by setOwner(). |
|
Release any reference this process may have on the given process. Force example, this may be used to remove a target from a force. For example, this is used when detaching a process of a system. Implemented in NL3D::CPSLocated. |
|
Serialize this object. Everything is saved, except for the fontManager and the fontGenerator. They must be set again if the PSToolRender pass is used. Implements NLMISC::IStreamable. Reimplemented in NL3D::CPSLocated. Definition at line 101 of file particle_system_process.cpp. References nlassert, NL3D::PSFXWorldMatrix, NL3D::PSIdentityMatrix, and sint.
00102 { 00103 // version 2 : added matrix mode (just not fx world matrix or identity) 00104 // version 1 : base version 00105 sint ver = f.serialVersion(2); 00106 f.serialPtr(_Owner); 00107 if (ver == 1) 00108 { 00109 nlassert(f.isReading()); 00110 bool usesFXWorldMatrix; 00111 f.serial(usesFXWorldMatrix); 00112 _MatrixMode = usesFXWorldMatrix ? PSFXWorldMatrix : PSIdentityMatrix; 00113 } 00114 if (ver >= 2) 00115 { 00116 f.serialEnum(_MatrixMode); 00117 } 00118 } |
|
Choose the basis for this process. NB: This won't change any existing coordinate By default, all process are expressed in the world basis Reimplemented in NL3D::CPSLocated. Definition at line 58 of file particle_system_process.cpp. References _MatrixMode, NL3D::CParticleSystem::matrixModeChanged(), nlassert, NL3D::PSMatrixModeCount, and uint.
00059 { 00060 nlassert((uint) matrixMode <= PSMatrixModeCount); 00061 if (matrixMode == _MatrixMode) return; 00062 if (_Owner) // notify the system that matrix mode has changed for that object 00063 { 00064 _Owner->matrixModeChanged(this, _MatrixMode, matrixMode); 00065 } 00066 _MatrixMode = matrixMode; 00067 } |
|
Set the process owner. Called by the particle system during attachment.
Definition at line 38 of file particle_system_process.cpp. References NL3D::CParticleSystem::addRefForUserSysCoordInfo(), getUserMatrixUsageCount(), releaseAllRef(), and NL3D::CParticleSystem::releaseRefForUserSysCoordInfo(). Referenced by NL3D::CParticleSystem::attach(), NL3D::CParticleSystem::detach(), and NL3D::CParticleSystem::remove().
00039 { 00040 if (ps == _Owner) return; 00041 if (ps == NULL) 00042 { 00043 releaseAllRef(); 00044 } 00045 _Owner->releaseRefForUserSysCoordInfo(getUserMatrixUsageCount()); 00046 _Owner = ps; 00047 if (_Owner) _Owner->addRefForUserSysCoordInfo(getUserMatrixUsageCount()); 00048 } |
|
Implemented in NL3D::CPSLocated. |
|
execute this process, telling how much time ellapsed must be used for motion, and the real time ellapsed (for lifetime managment) Implemented in NL3D::CPSLocated. |
|
Reimplemented in NL3D::CPSLocated. Definition at line 174 of file particle_system_process.h.
00174 {} |
|
Update the life of objects..
Implemented in NL3D::CPSLocated. |
|
Definition at line 193 of file particle_system_process.h. Referenced by CParticleSystemProcess(), getMatrixMode(), getUserMatrixUsageCount(), and setMatrixMode(). |
|
Definition at line 190 of file particle_system_process.h. Referenced by NL3D::CPSLocated::getConversionMatrix(). |