NL3D::CParticleSystemProcess Class Reference

A system particle process; A process is anything that can be called at each update of the system. More...

#include <particle_system_process.h>

Inherits NLMISC::IStreamable.

Inherited by NL3D::CPSLocated.

List of all members.

Public Member Functions

virtual void step (TPSProcessPass pass)=0
 execute this process, telling how much time ellapsed must be used for motion, and the real time ellapsed (for lifetime managment)
virtual bool computeBBox (NLMISC::CAABBox &aabbox) const =0
 Compute the aabbox of this process, (expressed in world basis).
void setOwner (CParticleSystem *ps)
 Set the process owner. Called by the particle system during attachment.
CParticleSystemgetOwner (void)
 Retrieve the particle system that owns this process.
const CParticleSystemgetOwner (void) const
 retrieve the particle system that owns this process (const version)
virtual void releaseRefTo (const CParticleSystemProcess *other)=0
 Release any reference this process may have on the given process.
virtual void releaseAllRef ()=0
 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.
TPSMatrixMode getMatrixMode () const
virtual void setMatrixMode (TPSMatrixMode matrixMode)
 Choose the basis for this process.
virtual bool hasParticles (void) const
 tells whether there are alive entities / particles in the system
virtual bool hasEmitters (void) const
 tells whether there are alive emitters / particles in the system
virtual uint getNumWantedTris () const =0
 max number of faces wanted by this process (for load balancing)
virtual bool isParametricMotionEnabled (void) const
 test whether parametric motion is enabled
virtual void performParametricMotion (TAnimationTime)
 perform parametric motion if enabled
virtual void systemDateChanged ()
virtual bool isLocated () const
virtual uint getUserMatrixUsageCount () const
virtual void enumTexs (std::vector< NLMISC::CSmartPtr< ITexture > > &dest, IDriver &drv)=0
virtual void setZBias (float value)=0
uint getIndex () const
virtual void onShow (bool shown)=0
void setIndex (uint32 index)
Object



 CParticleSystemProcess ()
 ctor
virtual ~CParticleSystemProcess ()
 dtor
virtual void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
 Serialize this object.
Useful methods for edition



CFontGeneratorgetFontGenerator (void)
 Shortcut to get a font generator if one was set (edition mode).
const CFontGeneratorgetFontGenerator (void) const
 Shortcut to get a font generator if one was set, const version (edition mode).
CFontManagergetFontManager (void)
 Shortcut to get a font Manager if one was set (edition mode).
const CFontManagergetFontManager (void) const
 Shortcut to get a font Manager if one was set, const version (edition mode).

Protected Attributes

CParticleSystem_Owner
TPSMatrixMode _MatrixMode
uint _Index

Detailed Description

A system particle process; A process is anything that can be called at each update of the system.

Definition at line 96 of file particle_system_process.h.


Constructor & Destructor Documentation

NL3D::CParticleSystemProcess::CParticleSystemProcess (  )  [inline]

ctor

Definition at line 103 of file particle_system_process.h.

virtual NL3D::CParticleSystemProcess::~CParticleSystemProcess (  )  [inline, virtual]

dtor

Definition at line 106 of file particle_system_process.h.


Member Function Documentation

virtual bool NL3D::CParticleSystemProcess::computeBBox ( NLMISC::CAABBox aabbox  )  const [pure virtual]

Compute the aabbox of this process, (expressed in world basis).

Returns:
true if there is any aabbox
Parameters:
aabbox a ref to the result box

Implemented in NL3D::CPSLocated.

virtual void NL3D::CParticleSystemProcess::enumTexs ( std::vector< NLMISC::CSmartPtr< ITexture > > &  dest,
IDriver drv 
) [pure virtual]

Implemented in NL3D::CPSLocated.

const CFontGenerator * NL3D::CParticleSystemProcess::getFontGenerator ( void   )  const

Shortcut to get a font generator if one was set, const version (edition mode).

Definition at line 109 of file particle_system_process.cpp.

References _Owner, NL3D::CParticleSystem::getFontGenerator(), NL_PS_FUNC, and nlassert.

CFontGenerator * NL3D::CParticleSystemProcess::getFontGenerator ( void   ) 

Shortcut to get a font generator if one was set (edition mode).

Definition at line 101 of file particle_system_process.cpp.

References _Owner, NL3D::CParticleSystem::getFontGenerator(), NL_PS_FUNC, and nlassert.

Referenced by NL3D::CPSLocatedBindable::getFontGenerator().

const CFontManager * NL3D::CParticleSystemProcess::getFontManager ( void   )  const

Shortcut to get a font Manager if one was set, const version (edition mode).

Definition at line 125 of file particle_system_process.cpp.

References _Owner, NL3D::CParticleSystem::getFontManager(), NL_PS_FUNC, and nlassert.

CFontManager * NL3D::CParticleSystemProcess::getFontManager ( void   ) 

Shortcut to get a font Manager if one was set (edition mode).

Definition at line 117 of file particle_system_process.cpp.

References _Owner, NL3D::CParticleSystem::getFontManager(), NL_PS_FUNC, and nlassert.

Referenced by NL3D::CPSLocatedBindable::getFontManager().

uint NL3D::CParticleSystemProcess::getIndex (  )  const [inline]
TPSMatrixMode NL3D::CParticleSystemProcess::getMatrixMode (  )  const [inline]
virtual uint NL3D::CParticleSystemProcess::getNumWantedTris (  )  const [pure virtual]

max number of faces wanted by this process (for load balancing)

Implemented in NL3D::CPSLocated.

const CParticleSystem* NL3D::CParticleSystemProcess::getOwner ( void   )  const [inline]

retrieve the particle system that owns this process (const version)

Definition at line 136 of file particle_system_process.h.

References _Owner.

CParticleSystem* NL3D::CParticleSystemProcess::getOwner ( void   )  [inline]

Retrieve the particle system that owns this process.

Definition at line 133 of file particle_system_process.h.

References _Owner.

Referenced by NL3D::CPSTargetLocatedBindable::attachTarget(), NL3D::CPSEmitter::checkLoop(), NL3D::CPSEmitter::computeSpawns(), NL3D::CPSParticle::computeSrcStep(), NL3D::CPSMesh::deleteElement(), NL3D::CPSLocatedBindable::displayIcon2d(), NL3D::CPSTailDot::displayRibbons(), NL3D::CPSRibbonLookAt::displayRibbons(), NL3D::CPSRibbon::displayRibbons(), NL3D::CPSEmitter::doEmitOnce(), NL3D::CPSShockWave::draw(), NL3D::CPSDot::draw(), NL3D::CPSConstraintMeshHelper::drawMeshs(), NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs(), NL3D::CPSLocatedBindable::finalize(), NL3D::GenEmitterPositions(), NL3D::GenEmitterPositionsWithLOD(), NL3D::CPSLocatedBindable::getInvertedSysMat(), NL3D::CPSLocatedBindable::getInvertedViewMat(), NL3D::CPSRibbonBase::getLocalToWorldTrailMatrix(), NL3D::CPSLocatedBindable::getSysMat(), NL3D::CPSLocatedBindable::getViewMat(), NL3D::CPSConstraintMesh::newElement(), NL3D::CPSMesh::newElement(), NL3D::CPSEmitter::processRegularEmission(), NL3D::CPSEmitter::processRegularEmissionConsistent(), NL3D::CPSEmitter::processRegularEmissionConsistentWithNoLOD(), NL3D::CPSEmitter::processRegularEmissionWithNoLOD(), NL3D::CParticleSystem::registerLocatedBindableExternID(), NL3D::CPSRibbonBase::resetSingleRibbon(), NL3D::CPSEmitter::setEmissionType(), NL3D::CPSEmitter::setEmitDelay(), NL3D::CPSEmitter::setEmittedType(), NL3D::CPSLocatedBindable::setExternID(), NL3D::CPSEmitter::setMaxEmissionCount(), NL3D::CPSLocatedBindable::setOwner(), NL3D::CPSEmitter::setPeriod(), NL3D::CPSEmitter::setPeriodScheme(), NL3D::CPSTailDot::setupGlobalColor(), NL3D::CPSFanLight::setupMaterial(), NL3D::CPSRibbon::setupTexturedGlobalColor(), NL3D::CPSRibbon::setupUntexturedGlobalColor(), NL3D::CPSZoneRectangle::show(), NL3D::CPSZoneCylinder::show(), NL3D::CPSZoneDisc::show(), NL3D::CPSZoneSphere::show(), NL3D::CPSZonePlane::show(), NL3D::CPSLight::show(), NL3D::CPSCylindricVortex::show(), NL3D::CPSDirectionnalForce::show(), NL3D::CPSSphericalEmitter::showTool(), NL3D::CPSEmitterRectangle::showTool(), NL3D::CPSEmitter::showTool(), NL3D::CPSTailDot::step(), NL3D::CPSRibbonLookAt::step(), NL3D::CPSRibbon::step(), NL3D::CPSLight::step(), NL3D::CPSRibbonBase::systemDateChanged(), NL3D::CParticleSystem::unregisterLocatedBindableExternID(), NL3D::CPSConstraintMesh::update(), NL3D::CPSEmitter::updateEmitTrigger(), NL3D::CPSRibbonBase::updateGlobals(), NL3D::CPSRibbonBase::updateLOD(), NL3D::CPSQuad::updateMatBeforeRendering(), NL3D::CPSTailDot::updateMaterial(), NL3D::CPSEmitter::updatePSRefCountForUserMatrixUsage(), NL3D::CPSRibbon::updateTexturedMaterial(), NL3D::CPSRibbon::updateUntexturedMaterial(), NL3D::CPSQuad::updateVbColNUVForRender(), NL3D::CPSLight::~CPSLight(), NL3D::CPSLocatedBindable::~CPSLocatedBindable(), and NL3D::CPSMesh::~CPSMesh().

uint NL3D::CParticleSystemProcess::getUserMatrixUsageCount (  )  const [virtual]

Reimplemented in NL3D::CPSLocated.

Definition at line 80 of file particle_system_process.cpp.

References _MatrixMode, NL_PS_FUNC, and NL3D::PSUserMatrix.

Referenced by setOwner().

virtual bool NL3D::CParticleSystemProcess::hasEmitters ( void   )  const [inline, virtual]

tells whether there are alive emitters / particles in the system

Reimplemented in NL3D::CPSLocated.

Definition at line 176 of file particle_system_process.h.

virtual bool NL3D::CParticleSystemProcess::hasParticles ( void   )  const [inline, virtual]

tells whether there are alive entities / particles in the system

Reimplemented in NL3D::CPSLocated.

Definition at line 173 of file particle_system_process.h.

virtual bool NL3D::CParticleSystemProcess::isLocated (  )  const [inline, virtual]
virtual bool NL3D::CParticleSystemProcess::isParametricMotionEnabled ( void   )  const [inline, virtual]

test whether parametric motion is enabled

Reimplemented in NL3D::CPSLocated.

Definition at line 186 of file particle_system_process.h.

virtual void NL3D::CParticleSystemProcess::onShow ( bool  shown  )  [pure virtual]

Implemented in NL3D::CPSLocated.

virtual void NL3D::CParticleSystemProcess::performParametricMotion ( TAnimationTime   )  [inline, virtual]

perform parametric motion if enabled

Reimplemented in NL3D::CPSLocated.

Definition at line 189 of file particle_system_process.h.

References nlassert.

virtual void NL3D::CParticleSystemProcess::releaseAllRef (  )  [pure virtual]

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

virtual void NL3D::CParticleSystemProcess::releaseRefTo ( const CParticleSystemProcess other  )  [pure virtual]

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.

void NL3D::CParticleSystemProcess::serial ( NLMISC::IStream f  )  throw (NLMISC::EStream) [virtual]

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 135 of file particle_system_process.cpp.

References NL_PS_FUNC, nlassert, NL3D::PSFXWorldMatrix, and NL3D::PSIdentityMatrix.

Referenced by NL3D::CPSLocated::serial().

void NL3D::CParticleSystemProcess::setIndex ( uint32  index  )  [inline]

Definition at line 223 of file particle_system_process.h.

References _Index.

Referenced by NL3D::CParticleSystem::attach().

void NL3D::CParticleSystemProcess::setMatrixMode ( TPSMatrixMode  matrixMode  )  [virtual]

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 87 of file particle_system_process.cpp.

References _MatrixMode, _Owner, NL3D::CParticleSystem::matrixModeChanged(), NL_PS_FUNC, nlassert, and NL3D::PSMatrixModeCount.

void NL3D::CParticleSystemProcess::setOwner ( CParticleSystem ps  ) 
virtual void NL3D::CParticleSystemProcess::setZBias ( float  value  )  [pure virtual]

Implemented in NL3D::CPSLocated.

virtual void NL3D::CParticleSystemProcess::step ( TPSProcessPass  pass  )  [pure virtual]

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.

virtual void NL3D::CParticleSystemProcess::systemDateChanged (  )  [inline, virtual]

Reimplemented in NL3D::CPSLocated.

Definition at line 193 of file particle_system_process.h.


Member Data Documentation

Definition at line 220 of file particle_system_process.h.

Referenced by getIndex(), and setIndex().


The documentation for this class was generated from the following files:

Generated on Thu Jan 7 08:30:07 2010 for NeL by  doxygen 1.6.1