# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

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>

Inheritance diagram for NL3D::CParticleSystemProcess:

NLMISC::IStreamable NLMISC::IClassable NL3D::CPSLocated List of all members.

Public Methods

virtual void step (TPSProcessPass pass, TAnimationTime ellapsedTime, TAnimationTime realEt)=0
 execute this process, telling how much time ellapsed must be used for motion, and the real time ellapsed (for lifetime managment). More...

virtual bool computeBBox (NLMISC::CAABBox &aabbox) const=0
 Compute the aabbox of this process, (expressed in world basis). More...

void setOwner (CParticleSystem *ps)
 Set the process owner. Called by the particle system during attachment. More...

CParticleSystemgetOwner (void)
 Retrieve the particle system that owns this process. More...

const CParticleSystemgetOwner (void) const
 retrieve the particle system that owns this process (const version). More...

virtual void releaseRefTo (const CParticleSystemProcess *other)=0
 Release any reference this process may have on the given process. More...

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. More...

bool isInSystemBasis (void) const
 Return true if the process is in the particle system basis, false if it's in the world basis. More...

virtual void setSystemBasis (bool sysBasis=true)
 Choose the basis for this process. More...

virtual bool hasParticles (void) const
 tells wether there are alive entities / particles in the system. More...

virtual bool hasEmitters (void) const
 tells wether there are alive emitters / particles in the system. More...

virtual uint querryMaxWantedNumFaces (void)=0
 max number of faces wanted by this process (for load balancing). More...

virtual bool isParametricMotionEnabled (void) const
 test wether parametric motion is enabled. More...

virtual void performParametricMotion (TAnimationTime date, TAnimationTime ellapsedTime, TAnimationTime realEllapsedTime)
 perform parametric motion if enabled. More...

virtual void updateLife (TAnimationTime ellapsedTime)=0
 Update the life of objects.. More...

Object
 CParticleSystemProcess ()
 ctor. More...

virtual ~CParticleSystemProcess ()
 dtor. More...

virtual void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
 Serialize this object. More...

Useful methods for edition
CFontGeneratorgetFontGenerator (void)
 Shortcut to get a font generator if one was set (edition mode). More...

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

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

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


Protected Attributes

CParticleSystem_Owner
bool _SystemBasisEnabled

Detailed Description

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

Definition at line 62 of file particle_system_process.h.


Constructor & Destructor Documentation

NL3D::CParticleSystemProcess::CParticleSystemProcess   [inline]
 

ctor.

Definition at line 69 of file particle_system_process.h.

References _Owner, and _SystemBasisEnabled.

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

dtor.

Definition at line 72 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.

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

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

Definition at line 44 of file particle_system_process.cpp.

References _Owner, and nlassert.

CFontGenerator * NL3D::CParticleSystemProcess::getFontGenerator void   
 

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

Definition at line 38 of file particle_system_process.cpp.

References _Owner, and nlassert.

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

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

Definition at line 56 of file particle_system_process.cpp.

References _Owner, and nlassert.

CFontManager * NL3D::CParticleSystemProcess::getFontManager void   
 

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

Definition at line 50 of file particle_system_process.cpp.

References _Owner, and nlassert.

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

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

Definition at line 109 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 106 of file particle_system_process.h.

References _Owner.

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

tells wether there are alive emitters / particles in the system.

Reimplemented in NL3D::CPSLocated.

Definition at line 155 of file particle_system_process.h.

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

tells wether there are alive entities / particles in the system.

Reimplemented in NL3D::CPSLocated.

Definition at line 152 of file particle_system_process.h.

bool NL3D::CParticleSystemProcess::isInSystemBasis void    const [inline]
 

Return true if the process is in the particle system basis, false if it's in the world basis.

Definition at line 140 of file particle_system_process.h.

References _SystemBasisEnabled.

Referenced by NL3D::CPSLocated::setSystemBasis.

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

test wether parametric motion is enabled.

Reimplemented in NL3D::CPSLocated.

Definition at line 164 of file particle_system_process.h.

virtual void NL3D::CParticleSystemProcess::performParametricMotion TAnimationTime    date,
TAnimationTime    ellapsedTime,
TAnimationTime    realEllapsedTime
[inline, virtual]
 

perform parametric motion if enabled.

Reimplemented in NL3D::CPSLocated.

Definition at line 167 of file particle_system_process.h.

References nlassert, and NL3D::TAnimationTime.

virtual uint NL3D::CParticleSystemProcess::querryMaxWantedNumFaces void    [pure virtual]
 

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

Implemented in NL3D::CPSLocated.

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.

Implemented in NL3D::CPSLocated.

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

void NL3D::CParticleSystemProcess::setOwner CParticleSystem   ps [inline]
 

Set the process owner. Called by the particle system during attachment.

Definition at line 96 of file particle_system_process.h.

References _Owner, and releaseAllRef.

virtual void NL3D::CParticleSystemProcess::setSystemBasis bool    sysBasis = true [inline, virtual]
 

Choose the basis for this process.

Warning : This won't change any existing coordinate By default, all process are expressed in the world basis

Parameters:
sysBasis  truer if particles are in the system basis

Reimplemented in NL3D::CPSLocated.

Definition at line 149 of file particle_system_process.h.

References _SystemBasisEnabled.

virtual void NL3D::CParticleSystemProcess::step TPSProcessPass    pass,
TAnimationTime    ellapsedTime,
TAnimationTime    realEt
[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::updateLife TAnimationTime    ellapsedTime [pure virtual]
 

Update the life of objects..

Implemented in NL3D::CPSLocated.


Member Data Documentation

CParticleSystem* NL3D::CParticleSystemProcess::_Owner [protected]
 

Definition at line 175 of file particle_system_process.h.

Referenced by NL3D::CPSLocated::allocateParametricInfos, NL3D::CPSLocated::computeI, NL3D::CPSLocated::computeJ, NL3D::CPSLocated::computeK, CParticleSystemProcess, NL3D::CPSLocated::deleteElement, NL3D::CPSLocated::getDriver, getFontGenerator, getFontManager, NL3D::CPSLocated::getLODVect, getOwner, NL3D::CPSLocated::getScene, NL3D::CPSLocated::getUserParam, NL3D::CPSLocated::newElement, NL3D::CPSLocated::notifyMaxNumFacesChanged, setOwner, NL3D::CPSLocated::setupDriverModelMatrix, NL3D::CPSLocated::step, and NL3D::CPSLocated::updateLife.

bool NL3D::CParticleSystemProcess::_SystemBasisEnabled [protected]
 

Definition at line 178 of file particle_system_process.h.

Referenced by NL3D::CPSLocated::computeI, NL3D::CPSLocated::computeJ, NL3D::CPSLocated::computeK, CParticleSystemProcess, NL3D::CPSLocated::integrableForceBasisChanged, isInSystemBasis, NL3D::CPSLocated::newElement, NL3D::CPSLocated::registerIntegrableForce, setSystemBasis, and NL3D::CPSLocated::unregisterIntegrableForce.


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