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.
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. | |
| CParticleSystem * | getOwner (void) |
| Retrieve the particle system that owns this process. | |
| const CParticleSystem * | getOwner (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 | |
| CFontGenerator * | getFontGenerator (void) |
| Shortcut to get a font generator if one was set (edition mode). | |
| const CFontGenerator * | getFontGenerator (void) const |
| Shortcut to get a font generator if one was set, const version (edition mode). | |
| CFontManager * | getFontManager (void) |
| Shortcut to get a font Manager if one was set (edition mode). | |
| const CFontManager * | getFontManager (void) const |
| Shortcut to get a font Manager if one was set, const version (edition mode). | |
Protected Attributes | |
| CParticleSystem * | _Owner |
| TPSMatrixMode | _MatrixMode |
| uint | _Index |
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.
| 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.
| virtual bool NL3D::CParticleSystemProcess::computeBBox | ( | NLMISC::CAABBox & | aabbox | ) | const [pure virtual] |
Compute the aabbox of this process, (expressed in world basis).
| 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] |
Definition at line 208 of file particle_system_process.h.
References _Index.
Referenced by NL3D::CPSLocated::addNewlySpawnedParticles(), NL3D::CParticleSystem::getIndexOf(), and NL3D::CPSLocated::postNewElement().
| TPSMatrixMode NL3D::CParticleSystemProcess::getMatrixMode | ( | ) | const [inline] |
Definition at line 165 of file particle_system_process.h.
References _MatrixMode.
Referenced by NL3D::CPSForce::cancelIntegrable(), NL3D::CPSLocated::computeI(), NL3D::CPSLocated::computeIWithZAxisAligned(), NL3D::CPSLocated::computeJ(), NL3D::CPSLocated::computeK(), NL3D::CPSLocated::computeKWithZAxisAligned(), NL3D::CPSRibbonBase::convertMatrixMode(), NL3D::CPSAttribMakerT< T, F >::get(), NL3D::CPSLocated::getConversionMatrix(), NL3D::CPSLocated::getLocalToWorldMatrix(), NL3D::CPSLocated::getWorldToLocalMatrix(), NL3D::CPSLocated::integrableForceBasisChanged(), NL3D::CPSAttribMakerT< NLMISC::CRGBA, CPSValueGradientFuncRGBA >::make(), NL3D::CPSAttribMakerT< NLMISC::CRGBA, CPSValueGradientFuncRGBA >::make4(), NL3D::CPSAttribMakerT< NLMISC::CRGBA, CPSValueGradientFuncRGBA >::makeN(), NL3D::CPSLocated::newElement(), NL3D::CPSEmitter::processEmit(), NL3D::CPSEmitter::processEmitConsistent(), NL3D::CPSEmitter::processEmitOutsideSimLoop(), NL3D::CPSLocated::registerIntegrableForce(), NL3D::CPSForce::renewIntegrable(), NL3D::CPSRibbonBase::resetSingleRibbon(), NL3D::CPSLocated::setMatrixMode(), NL3D::CPSLocated::unregisterIntegrableForce(), and NL3D::CPSRibbonBase::updateGlobals().
| 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] |
Reimplemented in NL3D::CPSLocated.
Definition at line 196 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().
| 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 | ) |
Set the process owner. Called by the particle system during attachment.
Definition at line 65 of file particle_system_process.cpp.
References _Owner, NL3D::CParticleSystem::addRefForUserSysCoordInfo(), getUserMatrixUsageCount(), NL_PS_FUNC, releaseAllRef(), and NL3D::CParticleSystem::releaseRefForUserSysCoordInfo().
Referenced by NL3D::CParticleSystem::attach(), and NL3D::CParticleSystem::remove().
| 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.
uint NL3D::CParticleSystemProcess::_Index [protected] |
Definition at line 220 of file particle_system_process.h.
Referenced by getIndex(), and setIndex().
Definition at line 217 of file particle_system_process.h.
Referenced by getMatrixMode(), getUserMatrixUsageCount(), and setMatrixMode().
CParticleSystem* NL3D::CParticleSystemProcess::_Owner [protected] |
Definition at line 214 of file particle_system_process.h.
Referenced by NL3D::CPSLocated::addNewlySpawnedParticles(), NL3D::CPSLocated::allocateParametricInfos(), NL3D::CPSLocated::bind(), NL3D::CPSLocated::computeI(), NL3D::CPSLocated::computeIWithZAxisAligned(), NL3D::CPSLocated::computeJ(), NL3D::CPSLocated::computeK(), NL3D::CPSLocated::computeKWithZAxisAligned(), NL3D::CPSLocated::computeSpawns(), NL3D::CPSLocated::deleteElementBase(), NL3D::CPSLocated::doLODDegradation(), NL3D::CPSLocated::getConversionMatrix(), NL3D::CPSLocated::getDriver(), getFontGenerator(), getFontManager(), NL3D::CPSLocated::getLocalToWorldMatrix(), NL3D::CPSLocated::getLODVect(), NL3D::CPSLocated::getNumWantedTris(), getOwner(), NL3D::CPSLocated::getScene(), NL3D::CPSLocated::getUserParam(), NL3D::CPSLocated::getWorldToLocalMatrix(), NL3D::CPSLocated::newElement(), NL3D::CPSLocated::postNewElement(), NL3D::CPSLocated::remove(), NL3D::CPSLocated::removeOldParticles(), NL3D::CPSLocated::setInitialLife(), NL3D::CPSLocated::setLastForever(), NL3D::CPSLocated::setLifeScheme(), setMatrixMode(), setOwner(), NL3D::CPSLocated::step(), and NL3D::CPSLocated::updateLife().
1.6.1