#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(). |
1.3.6