From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/classNL3D_1_1CPSLocated.html | 4781 +++++++++++++++++++++++++ 1 file changed, 4781 insertions(+) create mode 100644 docs/doxygen/nel/classNL3D_1_1CPSLocated.html (limited to 'docs/doxygen/nel/classNL3D_1_1CPSLocated.html') diff --git a/docs/doxygen/nel/classNL3D_1_1CPSLocated.html b/docs/doxygen/nel/classNL3D_1_1CPSLocated.html new file mode 100644 index 00000000..5ef2129d --- /dev/null +++ b/docs/doxygen/nel/classNL3D_1_1CPSLocated.html @@ -0,0 +1,4781 @@ + + + + nevrax.org : docs + + + + + + + + + + + + + + +
# 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::CPSLocated Class Reference

this class is a located : it belongs to a particle system, and it represents any kind of object that has a position in the world. +More... +

+#include <ps_located.h> +

+

Inheritance diagram for NL3D::CPSLocated: +

+ +NL3D::CParticleSystemProcess +NLMISC::IStreamable +NLMISC::IClassable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

typedef CPSAttrib< CParametricInfoTPSAttribParametricInfo
 WARNING : private use by forces only. More...


Public Methods

 CPSLocated ()
 Constructor. More...

virtual ~CPSLocated ()
 dtor. More...

void bind (CPSLocatedBindable *lb)
 sorted insertion (by decreasing priority order) of a bindable (particle e.g an aspect, emitter) in a located. More...

CPSLocatedBindableunbind (uint index)
 =============================================================================. More...

bool isBound (const CPSLocatedBindable *lb) const
 =============================================================================. More...

uint getIndexOf (const CPSLocatedBindable *lb) const
 =============================================================================. More...

void remove (const CPSLocatedBindable *lb)
 remove a bound object from the located if the object doesnt exist -> nlassert it is deleted. More...

virtual void releaseRefTo (const CParticleSystemProcess *other)
 =============================================================================. More...

virtual void releaseAllRef ()
 =============================================================================. More...

uint32 getNbBoundObjects (void) const
 count the number of bound objects. More...

const CPSLocatedBindablegetBoundObject (uint32 index) const
 get a pointer to a bound object (const version). More...

CPSLocatedBindablegetBoundObject (uint32 index)
 get a pointer to a bound object. More...

sint32 newElement (const NLMISC::CVector &pos=NLMISC::CVector::Null, const NLMISC::CVector &speed=NLMISC::CVector::Null, CPSLocated *emitterLocated=NULL, uint32 indexInEmitter=0, bool basisConversionForSpeed=true, TAnimationTime ellapsedTime=0.f)
 new element generation. More...

void deleteElement (uint32 index)
 delete an element. More...

CScenegetScene (void)
 shortcut to get the scene. More...

void getLODVect (NLMISC::CVector &v, float &offset, bool systemBasis)
 shortcut to the same method of the owning particle system. More...

void incrementNbDrawnParticles (uint num)
 Shorcut to increase the particle counter (number of particle drawn, for benchmark purpose ) should be called only by bound object that display particles. More...

uint32 getNewElementIndex (void) const
 Get the index of the new element that is created Valid only after the newElement method (overridable) of a LocatedBindable is called : you get the index of the located being generated, if you need its pos, speed, or mass. More...

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

void setInitialLife (TAnimationTime lifeTime)
 Set the duration of locateds. More...

void setLifeScheme (CPSAttribMaker< float > *scheme)
 Reset all particles current date to 0. More...

TAnimationTime getInitialLife (void) const
 get the life of created particles (valid if they have a limited life time). More...

CPSAttribMaker< float > * getLifeScheme (void)
 get the life scheme of created particle, null if none (valid if they have a limited life time). More...

const CPSAttribMaker< float > * getLifeScheme (void) const
void setInitialMass (float mass)
 Set the mass of locateds. More...

void setMassScheme (CPSAttribMaker< float > *scheme)
 Set a scheme (allocated by new, released by that object) that generate the mass of locateds. More...

float getInitialMass (void) const
 get the mass of created particle. More...

CPSAttribMaker< float > * getMassScheme (void)
 get the scheme that compute mass of created particles, null if none. More...

const CPSAttribMaker< float > * getMassScheme (void) const
void setLastForever (void)
 set immortality for located. More...

bool getLastForever (void) const
 retrieve immortality for locateds. More...

TPSAttribFloatgetInvMass (void)
 get mass inverse attrib ref. More...

const TPSAttribFloatgetInvMass (void) const
 get mass inverse attrib const ref. More...

TPSAttribVectorgetPos (void)
 get Pos attrib ref. More...

const TPSAttribVectorgetPos (void) const
 get Pos attrib const ref. More...

TPSAttribVectorgetSpeed (void)
 get Speed attrib ref. More...

const TPSAttribVectorgetSpeed (void) const
 get Speed attrib const ref. More...

TPSAttribTimegetTime (void)
 get Time attrib ref. More...

const TPSAttribTimegetTime (void) const
 get Time attrib const ref. More...

TPSAttribTimegetTimeIncrement (void)
 get TotalTime attrib ref. More...

const TPSAttribTimegetTimeIncrement (void) const
 get TotalTime attrib const ref. More...

virtual void step (TPSProcessPass pass, TAnimationTime ellapsedTime, TAnimationTime realEt)
 process the system. More...

uint32 getSize (void) const
 get the current number of instance in this located container. More...

uint32 getMaxSize (void) const
 get the max number of instance in this located container. More...

void setFrameRate (uint32 nbFramesToSkip=0)
 set the Refresh Rate of this located. More...

uint32 getFrameRate (void) const
void resize (uint32 newSize)
 Resize the located container. More...

void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
 serialization. More...

IDrivergetDriver () const
 Shortcut to get an instance of the 3d driver. More...

float getUserParam (uint numParam) const
 shorcut to get a user param that was set in the owner system. More...

 NLMISC_DECLARE_CLASS (CPSLocated)
void setupDriverModelMatrix (void)
 Setup the driver model matrix. It is set accordingly to the basis used for rendering. More...

NLMISC::CVector computeI (void) const
 Compute a vector that will map to (1 0 0) after view and model transform. More...

NLMISC::CVector computeJ (void) const
 Compute a vector that will map to (0 1 0) after view and model transform. More...

NLMISC::CVector computeK (void) const
 Compute a vector that will map to (0 0 1) after view and model transform. More...

void queryCollisionInfo (void)
 call this if you need collision infos. More...

void releaseCollisionInfo (void)
 Release the collideInfos attribute. More...

bool hasCollisionInfos () const
 test wether this located has collision infos. More...

TPSAttribCollisionInfogetCollisionInfo (void)
 get a ref to the collision infos. More...

const TPSAttribCollisionInfogetCollisionInfo (void) const
 get a const ref to the collision infos. More...

void collisionUpdate (const CPSCollisionInfo &ci, uint32 index)
 A collider must call this when a collision occurs If the collider was nearer that another one it will be taken in account \index the index of instance that collided. More...

void registerDtorObserver (CPSLocatedBindable *observer)
 Register a dtor observer; (that derives from CPSLocatedBindable) Each observer will be called when this object dtor is called (call of method notifyTargetRemoved() ) This allow for objects that hold this as a target to know when it is suppressed (example : collision objects hold located as targets) When an observer is detroyed, it MUST call unregisterDtorObserver, The same observer can only register once, otherwise, an assertion occurs. More...

void unregisterDtorObserver (CPSLocatedBindable *anObserver)
 remove a dtor observer (not present -> nlassert) see register dtor observer. More...

void setName (const std::string &name)
 set the located bindable name (edition purpose). More...

std::string getName (void) const
 get the located bindable name (edition purpose). 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. More...

void forceLODDegradation (bool enable=true)
 Enable the to force LOD degradation. More...

bool hasLODDegradation (void) const
 Test whether LOD degradation was activated. More...

void notifyMaxNumFacesChanged (void)
 for the CPSLocated to reevaluate the max number of faces it may need. More...

virtual uint querryMaxWantedNumFaces (void)
 ask for the max number of faces the located wants (for LOD balancing). More...

virtual void setSystemBasis (bool sysBasis=true)
 Inherited from CParticlesystemProcess. More...

bool supportParametricMotion (void) const
 Test wether this located support parametric motion. More...

void enableParametricMotion (bool enable=true)
 When set to true, this tells the system to use parametric motion. More...

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

virtual void performParametricMotion (TAnimationTime date, TAnimationTime ellapsedTime, TAnimationTime realEllapsedTime)
 inherited from CParticlesystemProcess perform parametric motion for this located to reach the given date. More...

virtual void updateLife (TAnimationTime ellapsedTime)
 make the particle older of the given amount. Should not be called directly, as it is called by the system during its step method. More...

void integrateSingle (float startDate, float deltaT, uint numStep, uint32 indexInLocated, NLMISC::CVector *destPos, uint posStride=sizeof(NLMISC::CVector))
 =============================================================================. More...

void enableTriggerOnDeath (bool enable=true)
 Enable a trigger on death. It is used to create emission on an emitter with a given ID. More...

bool isTriggerOnDeathEnabled (void) const
 Test wether a trigger on death has been enabled. More...

void setTriggerEmitterID (uint32 id)
 Set an ID for the emitter to be triggered on death. More...

uint32 getTriggerEmitterID (void) const
 Get the ID for the emitter to be triggered on death. More...

void registerIntegrableForce (CPSForce *f)
 PRIVATE USE: register a force that is integrable on this located. It must have been registered only once. More...

void unregisterIntegrableForce (CPSForce *f)
 PRIVATE USE: unregister a force that is integrable with this located. More...

void integrableForceBasisChanged (bool basis)
 PRIVATE USE: says that an integrable force basis has changed, and says which is the right basis. More...

void addNonIntegrableForceRef (void)
 PRIVATE USE: add a reference count that says that non-integrable forces have been added. More...

void releaseNonIntegrableForceRef (void)
 PRIVATE USE: decrease the reference count to say that a non-integrable force has been removed. More...

TPSAttribParametricInfogetParametricInfos ()
 PRIVATE USE : access to parametric infos. More...


Static Public Methods

const NLMISC::CMatrixgetConversionMatrix (const CPSLocated *A, const CPSLocated *B)
 get a matrix that helps to express located B coordinate in located A basis. More...


Public Attributes

CPSAttrib< CParametricInfo_PInfo
 WARNING : private use by forces only. More...


Protected Types

typedef std::vector< CPSLocatedBindable * > TLocatedBoundCont
typedef std::stack< CPostNewElementRequestInfoTNewElementRequestStack
typedef std::vector< CPSLocatedBindable * > TDtorObserversVect
typedef std::vector< CPSForce * > TForceVect
 a vector of integrable forces that apply on this located. More...


Protected Methods

void updateNewElementRequestStack (void)
 generate the located that were posted. More...

void postNewElement (const NLMISC::CVector &pos=NLMISC::CVector::Null, const NLMISC::CVector &speed=NLMISC::CVector::Null)
 Post a request for the generation of a new located. More...

void resetCollisionInfo (void)
 this prepare the located ofr collision tests. More...

void allocateParametricInfos (void)
 allocate parametric infos. More...

void releaseParametricInfos (void)
 release parametric infos. More...

void notifyMotionTypeChanged (void)
 =============================================================================. More...


Protected Attributes

uint32 _MaxNumFaces
 cache the max number of faces this located may want. More...

std::string _Name
uint32 _NbFramesToSkip
TLocatedBoundCont _LocatedBoundCont
uint32 _MaxSize
uint32 _Size
bool _LastForever
TPSAttribFloat _InvMass
TPSAttribVector _Pos
TPSAttribVector _Speed
TPSAttribTime _Time
TPSAttribTime _TimeIncrement
TPSAttribCollisionInfo_CollisionInfo
 Used to solve collision detection it is not always instanciated. More...

uint32 _CollisionInfoNbRef
float _InitialLife
CPSAttribMaker< float > * _LifeScheme
float _InitialMass
CPSAttribMaker< float > * _MassScheme
TNewElementRequestStack _RequestStack
 this stack is used after each update to generate located. More...

bool _UpdateLock
 this is used to tell wether a newElement or a deleteElement if being performed During these method, creation should use postNewElement to generate new elements Because of the data structures (each located bindable are updated one after each other) inconsistency can happen, when a located generated another located of the same type when he's deleted. More...

TDtorObserversVect _DtorObserversVect
bool _LODDegradation
 true when LOD degradation apply to this located. More...

uint16 _NonIntegrableForceNbRefs
 number of force, and zones etc. More...

uint16 _NumIntegrableForceWithDifferentBasis
 number of forces that apply on that located that have the same basis that this one (required for parametric animation). More...

TForceVect _IntegrableForces
bool _TriggerOnDeath
uint32 _TriggerID
bool _ParametricMotion
 When set to true, this tells the system to use parametric motion. Only parametric forces must have been applied. More...


Friends

class CPSForce
+

Detailed Description

+this class is a located : it belongs to a particle system, and it represents any kind of object that has a position in the world. +

+A located don't do anything by itself. You must bind objects to it, such as a particle, a force and so on. It is important to remember that a located holds all instance of object of one type (force, emitter, particles or both...), not only one. Not sharable accross systems +

+ +

+Definition at line 128 of file ps_located.h.


Member Typedef Documentation

+

+ + + + +
+ + +
typedef std::vector<CPSLocatedBindable *> NL3D::CPSLocated::TDtorObserversVect [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 691 of file ps_located.h. +

+Referenced by releaseAllRef, and ~CPSLocated.

+

+ + + + +
+ + +
typedef std::vector<CPSForce *> NL3D::CPSLocated::TForceVect [protected] +
+
+ + + + + +
+   + + +

+a vector of integrable forces that apply on this located. +

+ +

+Definition at line 704 of file ps_located.h.

+

+ + + + +
+ + +
typedef std::vector< CPSLocatedBindable *> NL3D::CPSLocated::TLocatedBoundCont [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 569 of file ps_located.h.

+

+ + + + +
+ + +
typedef std::stack<CPostNewElementRequestInfo> NL3D::CPSLocated::TNewElementRequestStack [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 659 of file ps_located.h.

+

+ + + + +
+ + +
typedef CPSAttrib<CParametricInfo> NL3D::CPSLocated::TPSAttribParametricInfo +
+
+ + + + + +
+   + + +

+WARNING : private use by forces only. +

+ +

+Definition at line 614 of file ps_located.h. +

+Referenced by getParametricInfos.

+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
NL3D::CPSLocated::CPSLocated  
+
+ + + + + +
+   + + +

+Constructor. +

+ +

+Definition at line 57 of file ps_located.cpp. +

+References NL3D::DefaultMaxLocatedInstance.

+

+ + + + +
+ + + + + + + + + +
NL3D::CPSLocated::~CPSLocated   [virtual]
+
+ + + + + +
+   + + +

+dtor. +

+ +

+Definition at line 482 of file ps_located.cpp. +

+References _CollisionInfo, _CollisionInfoNbRef, _DtorObserversVect, _IntegrableForces, _LifeScheme, _LocatedBoundCont, _MassScheme, _NonIntegrableForceNbRefs, nlassert, and TDtorObserversVect.

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::addNonIntegrableForceRef void  
+
+ + + + + +
+   + + +

+PRIVATE USE: add a reference count that says that non-integrable forces have been added. +

+ +

+Definition at line 1430 of file ps_located.cpp. +

+References _NonIntegrableForceNbRefs, and releaseParametricInfos.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::allocateParametricInfos void   [protected]
+
+ + + + + +
+   + + +

+allocate parametric infos. +

+ +

+Definition at line 226 of file ps_located.cpp. +

+References _MaxSize, NL3D::CParticleSystemProcess::_Owner, _ParametricMotion, _PInfo, _Pos, _Speed, nlassert, notifyMotionTypeChanged, and supportParametricMotion. +

+Referenced by enableParametricMotion.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::bind CPSLocatedBindable  lb
+
+ + + + + +
+   + + +

+sorted insertion (by decreasing priority order) of a bindable (particle e.g an aspect, emitter) in a located. +

+ +

+Definition at line 518 of file ps_located.cpp. +

+References _LocatedBoundCont, _MaxSize, _Size, nlassert, and notifyMaxNumFacesChanged.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPSLocated::collisionUpdate const CPSCollisionInfo  ci,
uint32   index
[inline]
+
+ + + + + +
+   + + +

+A collider must call this when a collision occurs If the collider was nearer that another one it will be taken in account \index the index of instance that collided. +

+ +

+Definition at line 746 of file ps_located.h. +

+References _CollisionInfo, index, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSLocated::computeBBox NLMISC::CAABBox  aabbox const [virtual]
+
+ + + + + +
+   + + +

+Compute the aabbox of this located, (expressed in world basis. +

+

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

+Implements NL3D::CParticleSystemProcess. +

+Definition at line 1290 of file ps_located.cpp. +

+References _LocatedBoundCont, _Pos, _Size, NLMISC::CAABBox::computeAABBoxUnion, min, NLMISC::CAABBox::setMinMax, and v.

+

+ + + + +
+ + + + + + + + + + +
NLMISC::CVector NL3D::CPSLocated::computeI void   const
+
+ + + + + +
+   + + +

+Compute a vector that will map to (1 0 0) after view and model transform. +

+This allow to have object that always faces the user, whatever basis they are in +

+Definition at line 429 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::_Owner, and NL3D::CParticleSystemProcess::_SystemBasisEnabled.

+

+ + + + +
+ + + + + + + + + + +
NLMISC::CVector NL3D::CPSLocated::computeJ void   const
+
+ + + + + +
+   + + +

+Compute a vector that will map to (0 1 0) after view and model transform. +

+This allow to have object that always faces the user, whatever basis they are in +

+Definition at line 443 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::_Owner, and NL3D::CParticleSystemProcess::_SystemBasisEnabled.

+

+ + + + +
+ + + + + + + + + + +
NLMISC::CVector NL3D::CPSLocated::computeK void   const
+
+ + + + + +
+   + + +

+Compute a vector that will map to (0 0 1) after view and model transform. +

+This allow to have object that always faces the user, whatever basis they are in +

+Definition at line 458 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::_Owner, and NL3D::CParticleSystemProcess::_SystemBasisEnabled.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::deleteElement uint32   index
+
+ + + + + +
+   + + +

+delete an element. +

+ +

+Definition at line 690 of file ps_located.cpp. +

+References _CollisionInfo, _InvMass, _LocatedBoundCont, NL3D::CParticleSystemProcess::_Owner, _PInfo, _Pos, _Size, _Speed, _Time, _TimeIncrement, _TriggerID, _UpdateLock, id, NL3D::IDToLittleEndian, index, NLAISCRIPT::l, nlassert, and NL3D::PSEmitter. +

+Referenced by resize, step, and updateLife.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::enableParametricMotion bool   enable = true
+
+ + + + + +
+   + + +

+When set to true, this tells the system to use parametric motion. +

+This is needed in a few case only, and can only work if all the forces that apply to the system are integrable. An assertion happens otherwise +

+Definition at line 264 of file ps_located.cpp. +

+References allocateParametricInfos, nlassert, releaseParametricInfos, and supportParametricMotion.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::enableTriggerOnDeath bool   enable = true [inline]
+
+ + + + + +
+   + + +

+Enable a trigger on death. It is used to create emission on an emitter with a given ID. +

+ +

+Definition at line 533 of file ps_located.h. +

+References _TriggerOnDeath.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::forceLODDegradation bool   enable = true [inline]
+
+ + + + + +
+   + + +

+Enable the to force LOD degradation. +

+This will suppress instances immediately, (during the motion pass) so that there won't be more than maxNbInstance * dist / maxDist instances. This may not be desirable every time since particle dissapear on screen, which may be noticeable. +

+Definition at line 488 of file ps_located.h. +

+References _LODDegradation.

+

+ + + + +
+ + + + + + + + + + +
CPSLocatedBindable* NL3D::CPSLocated::getBoundObject uint32   index [inline]
+
+ + + + + +
+   + + +

+get a pointer to a bound object. +

+ +

+Definition at line 195 of file ps_located.h. +

+References _LocatedBoundCont, index, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
const CPSLocatedBindable* NL3D::CPSLocated::getBoundObject uint32   index const [inline]
+
+ + + + + +
+   + + +

+get a pointer to a bound object (const version). +

+ +

+Definition at line 185 of file ps_located.h. +

+References _LocatedBoundCont, index, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
const TPSAttribCollisionInfo& NL3D::CPSLocated::getCollisionInfo void   const [inline]
+
+ + + + + +
+   + + +

+get a const ref to the collision infos. +

+ +

+Definition at line 430 of file ps_located.h. +

+References _CollisionInfo, nlassert, and NL3D::TPSAttribCollisionInfo.

+

+ + + + +
+ + + + + + + + + + +
TPSAttribCollisionInfo& NL3D::CPSLocated::getCollisionInfo void   [inline]
+
+ + + + + +
+   + + +

+get a ref to the collision infos. +

+ +

+Definition at line 423 of file ps_located.h. +

+References _CollisionInfo, nlassert, and NL3D::TPSAttribCollisionInfo.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
const NLMISC::CMatrix & NL3D::CPSLocated::getConversionMatrix const CPSLocated *   A,
const CPSLocated *   B
[static]
+
+ + + + + +
+   + + +

+get a matrix that helps to express located B coordinate in located A basis. +

+ +

+Definition at line 408 of file ps_located.cpp. +

+References NLMISC::CMatrix::Identity, and nlassert.

+

+ + + + +
+ + + + + + + + + +
IDriver * NL3D::CPSLocated::getDriver   const
+
+ + + + + +
+   + + +

+Shortcut to get an instance of the 3d driver. +

+ +

+Definition at line 473 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::_Owner, and nlassert. +

+Referenced by setupDriverModelMatrix.

+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSLocated::getFrameRate void   const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 367 of file ps_located.h. +

+References _NbFramesToSkip.

+

+ + + + +
+ + + + + + + + + + +
uint NL3D::CPSLocated::getIndexOf const CPSLocatedBindable  lb const
+
+ + + + + +
+   + + +

+=============================================================================. +

+If it isn't bound, an assertion is raised +

+Definition at line 1475 of file ps_located.cpp. +

+References _LocatedBoundCont, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
TAnimationTime NL3D::CPSLocated::getInitialLife void   const [inline]
+
+ + + + + +
+   + + +

+get the life of created particles (valid if they have a limited life time). +

+ +

+Definition at line 278 of file ps_located.h. +

+References _InitialLife, and NL3D::TAnimationTime.

+

+ + + + +
+ + + + + + + + + + +
float NL3D::CPSLocated::getInitialMass void   const [inline]
+
+ + + + + +
+   + + +

+get the mass of created particle. +

+ +

+Definition at line 297 of file ps_located.h. +

+References _InitialMass.

+

+ + + + +
+ + + + + + + + + + +
const TPSAttribFloat& NL3D::CPSLocated::getInvMass void   const [inline]
+
+ + + + + +
+   + + +

+get mass inverse attrib const ref. +

+ +

+Definition at line 316 of file ps_located.h. +

+References _InvMass, and NL3D::TPSAttribFloat.

+

+ + + + +
+ + + + + + + + + + +
TPSAttribFloat& NL3D::CPSLocated::getInvMass void   [inline]
+
+ + + + + +
+   + + +

+get mass inverse attrib ref. +

+ +

+Definition at line 314 of file ps_located.h. +

+References _InvMass, and NL3D::TPSAttribFloat.

+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSLocated::getLastForever void   const [inline]
+
+ + + + + +
+   + + +

+retrieve immortality for locateds. +

+ +

+Definition at line 311 of file ps_located.h. +

+References _LastForever.

+

+ + + + +
+ + + + + + + + + + +
const CPSAttribMaker<float>* NL3D::CPSLocated::getLifeScheme void   const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 282 of file ps_located.h. +

+References _LifeScheme.

+

+ + + + +
+ + + + + + + + + + +
CPSAttribMaker<float>* NL3D::CPSLocated::getLifeScheme void   [inline]
+
+ + + + + +
+   + + +

+get the life scheme of created particle, null if none (valid if they have a limited life time). +

+ +

+Definition at line 281 of file ps_located.h. +

+References _LifeScheme.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CPSLocated::getLODVect NLMISC::CVector  v,
float &   offset,
bool   systemBasis
+
+ + + + + +
+   + + +

+shortcut to the same method of the owning particle system. +

+ +

+Definition at line 341 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::_Owner, nlassert, offset, and v.

+

+ + + + +
+ + + + + + + + + + +
const CPSAttribMaker<float>* NL3D::CPSLocated::getMassScheme void   const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 301 of file ps_located.h. +

+References _MassScheme.

+

+ + + + +
+ + + + + + + + + + +
CPSAttribMaker<float>* NL3D::CPSLocated::getMassScheme void   [inline]
+
+ + + + + +
+   + + +

+get the scheme that compute mass of created particles, null if none. +

+ +

+Definition at line 300 of file ps_located.h. +

+References _MassScheme.

+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSLocated::getMaxSize void   const [inline]
+
+ + + + + +
+   + + +

+get the max number of instance in this located container. +

+

+See also:
+resize()
+

+Definition at line 354 of file ps_located.h. +

+References _MaxSize.

+

+ + + + +
+ + + + + + + + + + +
std::string NL3D::CPSLocated::getName void   const [inline]
+
+ + + + + +
+   + + +

+get the located bindable name (edition purpose). +

+ +

+Definition at line 474 of file ps_located.h. +

+References _Name.

+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSLocated::getNbBoundObjects void   const [inline]
+
+ + + + + +
+   + + +

+count the number of bound objects. +

+ +

+Definition at line 180 of file ps_located.h. +

+References _LocatedBoundCont.

+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSLocated::getNewElementIndex void   const [inline]
+
+ + + + + +
+   + + +

+Get the index of the new element that is created Valid only after the newElement method (overridable) of a LocatedBindable is called : you get the index of the located being generated, if you need its pos, speed, or mass. +

+ +

+Definition at line 252 of file ps_located.h. +

+References _Size.

+

+ + + + +
+ + + + + + + + + +
TPSAttribParametricInfo& NL3D::CPSLocated::getParametricInfos   [inline]
+
+ + + + + +
+   + + +

+PRIVATE USE : access to parametric infos. +

+ +

+Definition at line 737 of file ps_located.h. +

+References _PInfo, and TPSAttribParametricInfo.

+

+ + + + +
+ + + + + + + + + + +
const TPSAttribVector& NL3D::CPSLocated::getPos void   const [inline]
+
+ + + + + +
+   + + +

+get Pos attrib const ref. +

+ +

+Definition at line 321 of file ps_located.h. +

+References _Pos, and NL3D::TPSAttribVector.

+

+ + + + +
+ + + + + + + + + + +
TPSAttribVector& NL3D::CPSLocated::getPos void   [inline]
+
+ + + + + +
+   + + +

+get Pos attrib ref. +

+ +

+Definition at line 319 of file ps_located.h. +

+References _Pos, and NL3D::TPSAttribVector.

+

+ + + + +
+ + + + + + + + + + +
CScene * NL3D::CPSLocated::getScene void  
+
+ + + + + +
+   + + +

+shortcut to get the scene. +

+ +

+Definition at line 355 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::_Owner, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSLocated::getSize void   const [inline]
+
+ + + + + +
+   + + +

+get the current number of instance in this located container. +

+ +

+Definition at line 346 of file ps_located.h. +

+References _Size.

+

+ + + + +
+ + + + + + + + + + +
const TPSAttribVector& NL3D::CPSLocated::getSpeed void   const [inline]
+
+ + + + + +
+   + + +

+get Speed attrib const ref. +

+ +

+Definition at line 326 of file ps_located.h. +

+References _Speed, and NL3D::TPSAttribVector.

+

+ + + + +
+ + + + + + + + + + +
TPSAttribVector& NL3D::CPSLocated::getSpeed void   [inline]
+
+ + + + + +
+   + + +

+get Speed attrib ref. +

+ +

+Definition at line 324 of file ps_located.h. +

+References _Speed, and NL3D::TPSAttribVector.

+

+ + + + +
+ + + + + + + + + + +
const TPSAttribTime& NL3D::CPSLocated::getTime void   const [inline]
+
+ + + + + +
+   + + +

+get Time attrib const ref. +

+ +

+Definition at line 331 of file ps_located.h. +

+References _Time, and NL3D::TPSAttribTime.

+

+ + + + +
+ + + + + + + + + + +
TPSAttribTime& NL3D::CPSLocated::getTime void   [inline]
+
+ + + + + +
+   + + +

+get Time attrib ref. +

+ +

+Definition at line 329 of file ps_located.h. +

+References _Time, and NL3D::TPSAttribTime.

+

+ + + + +
+ + + + + + + + + + +
const TPSAttribTime& NL3D::CPSLocated::getTimeIncrement void   const [inline]
+
+ + + + + +
+   + + +

+get TotalTime attrib const ref. +

+ +

+Definition at line 336 of file ps_located.h. +

+References _TimeIncrement, and NL3D::TPSAttribTime.

+

+ + + + +
+ + + + + + + + + + +
TPSAttribTime& NL3D::CPSLocated::getTimeIncrement void   [inline]
+
+ + + + + +
+   + + +

+get TotalTime attrib ref. +

+ +

+Definition at line 334 of file ps_located.h. +

+References _TimeIncrement, and NL3D::TPSAttribTime.

+

+ + + + +
+ + + + + + + + + + +
uint32 NL3D::CPSLocated::getTriggerEmitterID void   const [inline]
+
+ + + + + +
+   + + +

+Get the ID for the emitter to be triggered on death. +

+ +

+Definition at line 546 of file ps_located.h. +

+References _TriggerID, _TriggerOnDeath, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
float NL3D::CPSLocated::getUserParam uint   numParam const
+
+ + + + + +
+   + + +

+shorcut to get a user param that was set in the owner system. +

+ +

+Definition at line 349 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::_Owner, and nlassert.

+

+ + + + +
+ + + + + + + + + +
bool NL3D::CPSLocated::hasCollisionInfos   const [inline]
+
+ + + + + +
+   + + +

+test wether this located has collision infos. +

+ +

+Definition at line 420 of file ps_located.h. +

+References _CollisionInfo.

+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSLocated::hasEmitters void   const [virtual]
+
+ + + + + +
+   + + +

+tells wether there are alive emitters. +

+ +

+Reimplemented from NL3D::CParticleSystemProcess. +

+Definition at line 331 of file ps_located.cpp. +

+References _LocatedBoundCont, and NL3D::PSEmitter.

+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSLocated::hasLODDegradation void   const [inline]
+
+ + + + + +
+   + + +

+Test whether LOD degradation was activated. +

+

+See also:
+forceLODDegradation()
+

+Definition at line 493 of file ps_located.h. +

+References _LODDegradation.

+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSLocated::hasParticles void   const [virtual]
+
+ + + + + +
+   + + +

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

+ +

+Reimplemented from NL3D::CParticleSystemProcess. +

+Definition at line 321 of file ps_located.cpp. +

+References _LocatedBoundCont, and NL3D::PSParticle.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::incrementNbDrawnParticles uint   num
+
+ + + + + +
+   + + +

+Shorcut to increase the particle counter (number of particle drawn, for benchmark purpose ) should be called only by bound object that display particles. +

+ +

+Definition at line 362 of file ps_located.cpp. +

+References num.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::integrableForceBasisChanged bool   basis
+
+ + + + + +
+   + + +

+PRIVATE USE: says that an integrable force basis has changed, and says which is the right basis. +

+ +

+Definition at line 1443 of file ps_located.cpp. +

+References _NumIntegrableForceWithDifferentBasis, NL3D::CParticleSystemProcess::_SystemBasisEnabled, and releaseParametricInfos. +

+Referenced by setSystemBasis.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CPSLocated::integrateSingle float   startDate,
float   deltaT,
uint   numStep,
uint32   indexInLocated,
NLMISC::CVector  destPos,
uint   posStride = sizeof(NLMISC::CVector)
+
+ + + + + +
+   + + +

+=============================================================================. +

+NB : only works with object that have parametric trajectories +

+Definition at line 147 of file ps_located.cpp. +

+References _IntegrableForces, _ParametricMotion, _PInfo, NL3D::FillBufUsingSubdiv, nlassert, stride, supportParametricMotion, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSLocated::isBound const CPSLocatedBindable  lb const
+
+ + + + + +
+   + + +

+=============================================================================. +

+ +

+Definition at line 1468 of file ps_located.cpp. +

+References _LocatedBoundCont.

+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSLocated::isParametricMotionEnabled void   const [inline, virtual]
+
+ + + + + +
+   + + +

+test wether parametric motion is enabled. +

+ +

+Reimplemented from NL3D::CParticleSystemProcess. +

+Definition at line 516 of file ps_located.h. +

+References _ParametricMotion.

+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSLocated::isTriggerOnDeathEnabled void   const [inline]
+
+ + + + + +
+   + + +

+Test wether a trigger on death has been enabled. +

+ +

+Definition at line 536 of file ps_located.h. +

+References _TriggerOnDeath.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
sint32 NL3D::CPSLocated::newElement const NLMISC::CVector  pos = NLMISC::CVector::Null,
const NLMISC::CVector  speed = NLMISC::CVector::Null,
CPSLocated *   emitterLocated = NULL,
uint32   indexInEmitter = 0,
bool   basisConversionForSpeed = true,
TAnimationTime   ellapsedTime = 0.f
+
+ + + + + +
+   + + +

+new element generation. +

+The coordinate are given in the chosen basis for the located. If the emitterLocated ptr is not null, then the coordinate are taken from the emitterLocated basis and are expressed in this located basis. other attributes are generated according to other properties of this class Will succeed only if it hasn't reach the max number of allowed instances return will be -1 if call failed or an index to the created object. Index is only valid after creation. Any processing pass on the system will make it invalid. It can be used with any attribute modification method of located and located bindable

+Parameters:
+ + + + +
indexInEmitter  +The index of the emitter (in the emitterLocated object)
basisConversionForSpeed  +: if false, the speed vector is taken as if even if emitter and emittee basis are differents.
ellapsedTime  +
+
+

+Definition at line 584 of file ps_located.cpp. +

+References _CollisionInfo, _InitialLife, _InitialMass, _InvMass, _LifeScheme, _LocatedBoundCont, _MassScheme, _MaxSize, NL3D::CParticleSystemProcess::_Owner, _PInfo, _Pos, _Size, _Speed, NL3D::CParticleSystemProcess::_SystemBasisEnabled, _Time, _TimeIncrement, _UpdateLock, nlassert, postNewElement, and NL3D::TAnimationTime. +

+Referenced by updateNewElementRequestStack.

+

+ + + + +
+ + + + + + + + + + +
NL3D::CPSLocated::NLMISC_DECLARE_CLASS CPSLocated  
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::notifyMaxNumFacesChanged void  
+
+ + + + + +
+   + + +

+for the CPSLocated to reevaluate the max number of faces it may need. +

+ +

+Definition at line 296 of file ps_located.cpp. +

+References _LocatedBoundCont, _MaxNumFaces, NL3D::CParticleSystemProcess::_Owner, and NL3D::PSParticle. +

+Referenced by bind, and resize.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::notifyMotionTypeChanged void   [protected]
+
+ + + + + +
+   + + +

+=============================================================================. +

+ +

+Definition at line 137 of file ps_located.cpp. +

+References _LocatedBoundCont, and _ParametricMotion. +

+Referenced by allocateParametricInfos, and releaseParametricInfos.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CPSLocated::performParametricMotion TAnimationTime   date,
TAnimationTime   ellapsedTime,
TAnimationTime   realEllapsedTime
[virtual]
+
+ + + + + +
+   + + +

+inherited from CParticlesystemProcess perform parametric motion for this located to reach the given date. +

+ +

+Reimplemented from NL3D::CParticleSystemProcess. +

+Definition at line 190 of file ps_located.cpp. +

+References _IntegrableForces, _ParametricMotion, _PInfo, _Pos, _Size, _Speed, nlassert, supportParametricMotion, and NL3D::TAnimationTime.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPSLocated::postNewElement const NLMISC::CVector  pos = NLMISC::CVector::Null,
const NLMISC::CVector  speed = NLMISC::CVector::Null
[protected]
+
+ + + + + +
+   + + +

+Post a request for the generation of a new located. +

+it is called by newElement when _UpdateLock is set (when called during newElement or deleteElement) +

+Definition at line 667 of file ps_located.cpp. +

+References _RequestStack. +

+Referenced by newElement.

+

+ + + + +
+ + + + + + + + + + +
uint NL3D::CPSLocated::querryMaxWantedNumFaces void   [virtual]
+
+ + + + + +
+   + + +

+ask for the max number of faces the located wants (for LOD balancing). +

+ +

+Implements NL3D::CParticleSystemProcess. +

+Definition at line 314 of file ps_located.cpp. +

+References _MaxNumFaces.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::queryCollisionInfo void  
+
+ + + + + +
+   + + +

+call this if you need collision infos. +

+The collide info attribute is not included by default to save memory. The first call will create the attribute, and others will add references. You can then access the infos by calling getCollisioInfo You must call releaseCollideInfo after use. +

+Definition at line 1362 of file ps_located.cpp. +

+References _CollisionInfo, _CollisionInfoNbRef, _MaxSize, _Size, and NL3D::TPSAttribCollisionInfo.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::registerDtorObserver CPSLocatedBindable  observer
+
+ + + + + +
+   + + +

+Register a dtor observer; (that derives from CPSLocatedBindable) Each observer will be called when this object dtor is called (call of method notifyTargetRemoved() ) This allow for objects that hold this as a target to know when it is suppressed (example : collision objects hold located as targets) When an observer is detroyed, it MUST call unregisterDtorObserver, The same observer can only register once, otherwise, an assertion occurs. +

+ +

+Definition at line 561 of file ps_located.cpp. +

+References _DtorObserversVect, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::registerIntegrableForce CPSForce  f
+
+ + + + + +
+   + + +

+PRIVATE USE: register a force that is integrable on this located. It must have been registered only once. +

+ +

+Definition at line 1406 of file ps_located.cpp. +

+References _IntegrableForces, _NumIntegrableForceWithDifferentBasis, NL3D::CParticleSystemProcess::_SystemBasisEnabled, nlassert, and releaseParametricInfos.

+

+ + + + +
+ + + + + + + + + +
void NL3D::CPSLocated::releaseAllRef   [virtual]
+
+ + + + + +
+   + + +

+=============================================================================. +

+Release any reference this located may have to other process of the system For example, this is used when detaching a process of a system. +

+Implements NL3D::CParticleSystemProcess. +

+Definition at line 107 of file ps_located.cpp. +

+References _CollisionInfo, _CollisionInfoNbRef, _DtorObserversVect, _IntegrableForces, _LocatedBoundCont, _NonIntegrableForceNbRefs, nlassert, and TDtorObserversVect.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::releaseCollisionInfo void  
+
+ + + + + +
+   + + +

+Release the collideInfos attribute. +

+ +

+Definition at line 1381 of file ps_located.cpp. +

+References _CollisionInfo, _CollisionInfoNbRef, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::releaseNonIntegrableForceRef void  
+
+ + + + + +
+   + + +

+PRIVATE USE: decrease the reference count to say that a non-integrable force has been removed. +

+ +

+Definition at line 1436 of file ps_located.cpp. +

+References _NonIntegrableForceNbRefs, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::releaseParametricInfos void   [protected]
+
+ + + + + +
+   + + +

+release parametric infos. +

+ +

+Definition at line 246 of file ps_located.cpp. +

+References _ParametricMotion, _PInfo, NLMISC::contReset, and notifyMotionTypeChanged. +

+Referenced by addNonIntegrableForceRef, enableParametricMotion, integrableForceBasisChanged, and registerIntegrableForce.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::releaseRefTo const CParticleSystemProcess  other [virtual]
+
+ + + + + +
+   + + +

+=============================================================================. +

+Release any reference this located may have on the given process. For example, this is used when detaching a located of a system. +

+Implements NL3D::CParticleSystemProcess. +

+Definition at line 82 of file ps_located.cpp. +

+References _DtorObserversVect, and _LocatedBoundCont.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::remove const CPSLocatedBindable  lb
+
+ + + + + +
+   + + +

+remove a bound object from the located if the object doesnt exist -> nlassert it is deleted. +

+ +

+Definition at line 551 of file ps_located.cpp. +

+References _LocatedBoundCont, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::resetCollisionInfo void   [protected]
+
+ + + + + +
+   + + +

+this prepare the located ofr collision tests. +

+ +

+Definition at line 1394 of file ps_located.cpp. +

+References _CollisionInfo, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::resize uint32   newSize
+
+ + + + + +
+   + + +

+Resize the located container. +

+ +

+Definition at line 753 of file ps_located.cpp. +

+References _CollisionInfo, _InvMass, _LocatedBoundCont, _MaxSize, _PInfo, _Pos, _Size, _Speed, _Time, _TimeIncrement, deleteElement, nlassert, and notifyMaxNumFacesChanged.

+

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

+serialization. +

+ +

+Reimplemented from NL3D::CParticleSystemProcess. +

+Definition at line 799 of file ps_located.cpp. +

+References nlassert, and t.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setFrameRate uint32   nbFramesToSkip = 0 [inline]
+
+ + + + + +
+   + + +

+set the Refresh Rate of this located. +

+Default is motion every frame (frameToSkip = 0) The drawing process will still occur every frame anyway... It's a speed / quality tradeof +

+Definition at line 364 of file ps_located.h. +

+References _NbFramesToSkip.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setInitialLife TAnimationTime   lifeTime
+
+ + + + + +
+   + + +

+Set the duration of locateds. +

+Any previous call to setLastForever() is discarded Any previous scheme for lifetime is dicarded +

+Definition at line 367 of file ps_located.cpp. +

+References _InitialLife, _LastForever, _LifeScheme, _Size, _Time, and NL3D::TAnimationTime.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setInitialMass float   mass
+
+ + + + + +
+   + + +

+Set the mass of locateds. +

+Any previous scheme for Mass is dicarded +

+Definition at line 391 of file ps_located.cpp. +

+References _InitialMass, and _MassScheme.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setLastForever void   [inline]
+
+ + + + + +
+   + + +

+set immortality for located. +

+ +

+Definition at line 306 of file ps_located.h. +

+References _LastForever.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setLifeScheme CPSAttribMaker< float > *   scheme
+
+ + + + + +
+   + + +

+Reset all particles current date to 0. +

+Such a scheme can't own its memory. Any previous call to setLastForever() is discarded Any previous scheme for lifetime is discarded +

+Definition at line 383 of file ps_located.cpp. +

+References _LastForever, _LifeScheme, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setMassScheme CPSAttribMaker< float > *   scheme
+
+ + + + + +
+   + + +

+Set a scheme (allocated by new, released by that object) that generate the mass of locateds. +

+Such a scheme can't own its memory. Any previous scheme for Mass is discarded +

+Definition at line 397 of file ps_located.cpp. +

+References _MassScheme, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setName const std::string &   name [inline]
+
+ + + + + +
+   + + +

+set the located bindable name (edition purpose). +

+ +

+Definition at line 471 of file ps_located.h. +

+References _Name.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setSystemBasis bool   sysBasis = true [virtual]
+
+ + + + + +
+   + + +

+Inherited from CParticlesystemProcess. +

+Tells us that the basis may have changed. We notify the bound objects of it. +

+Reimplemented from NL3D::CParticleSystemProcess. +

+Definition at line 278 of file ps_located.cpp. +

+References _IntegrableForces, _LocatedBoundCont, integrableForceBasisChanged, and NL3D::CParticleSystemProcess::isInSystemBasis.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setTriggerEmitterID uint32   id [inline]
+
+ + + + + +
+   + + +

+Set an ID for the emitter to be triggered on death. +

+ +

+Definition at line 539 of file ps_located.h. +

+References _TriggerID, _TriggerOnDeath, id, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::setupDriverModelMatrix void  
+
+ + + + + +
+   + + +

+Setup the driver model matrix. It is set accordingly to the basis used for rendering. +

+ +

+Definition at line 1347 of file ps_located.cpp. +

+References NL3D::CParticleSystemProcess::_Owner, and getDriver.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CPSLocated::step TPSProcessPass   pass,
TAnimationTime   ellapsedTime,
TAnimationTime   realEt
[virtual]
+
+ + + + + +
+   + + +

+process the system. +

+ +

+Implements NL3D::CParticleSystemProcess. +

+Definition at line 1067 of file ps_located.cpp. +

+References _CollisionInfo, _LocatedBoundCont, _MaxSize, _NbFramesToSkip, NL3D::CParticleSystemProcess::_Owner, _Pos, _Size, _Speed, deleteElement, NL3D::IntegrateSpeed, nlassert, NL3D::PSLod1n2, NL3D::PSMotion, step, NL3D::TAnimationTime, NL3D::TPSProcessPass, updateNewElementRequestStack, and x. +

+Referenced by step.

+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CPSLocated::supportParametricMotion void   const
+
+ + + + + +
+   + + +

+Test wether this located support parametric motion. +

+ +

+Definition at line 256 of file ps_located.cpp. +

+References _NonIntegrableForceNbRefs, and _NumIntegrableForceWithDifferentBasis. +

+Referenced by allocateParametricInfos, enableParametricMotion, integrateSingle, and performParametricMotion.

+

+ + + + +
+ + + + + + + + + + +
CPSLocatedBindable * NL3D::CPSLocated::unbind uint   index
+
+ + + + + +
+   + + +

+=============================================================================. +

+Ownership is transferred to the caller Any reference the object may have in the system is lost (targets..) After that is may be inserted an other system. +

+Definition at line 1458 of file ps_located.cpp. +

+References _LocatedBoundCont, index, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::unregisterDtorObserver CPSLocatedBindable  anObserver
+
+ + + + + +
+   + + +

+remove a dtor observer (not present -> nlassert) see register dtor observer. +

+ +

+Definition at line 568 of file ps_located.cpp. +

+References _DtorObserversVect, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::unregisterIntegrableForce CPSForce  f
+
+ + + + + +
+   + + +

+PRIVATE USE: unregister a force that is integrable with this located. +

+ +

+Definition at line 1418 of file ps_located.cpp. +

+References _IntegrableForces, _NumIntegrableForceWithDifferentBasis, NL3D::CParticleSystemProcess::_SystemBasisEnabled, and nlassert.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::updateLife TAnimationTime   ellapsedTime [virtual]
+
+ + + + + +
+   + + +

+make the particle older of the given amount. Should not be called directly, as it is called by the system during its step method. +

+ +

+Implements NL3D::CParticleSystemProcess. +

+Definition at line 1198 of file ps_located.cpp. +

+References _InitialLife, _LastForever, _LifeScheme, NL3D::CParticleSystemProcess::_Owner, _Size, _Time, _TimeIncrement, deleteElement, nlassert, and NL3D::TAnimationTime.

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPSLocated::updateNewElementRequestStack void   [protected]
+
+ + + + + +
+   + + +

+generate the located that were posted. +

+ +

+Definition at line 1280 of file ps_located.cpp. +

+References _RequestStack, and newElement. +

+Referenced by step.

+


Friends And Related Function Documentation

+

+ + + + +
+ + +
friend class CPSForce [friend] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 557 of file ps_located.h.

+


Member Data Documentation

+

+ + + + +
+ + +
TPSAttribCollisionInfo* NL3D::CPSLocated::_CollisionInfo [protected] +
+
+ + + + + +
+   + + +

+Used to solve collision detection it is not always instanciated. +

+ +

+Definition at line 626 of file ps_located.h. +

+Referenced by collisionUpdate, deleteElement, getCollisionInfo, hasCollisionInfos, newElement, queryCollisionInfo, releaseAllRef, releaseCollisionInfo, resetCollisionInfo, resize, step, and ~CPSLocated.

+

+ + + + +
+ + +
uint32 NL3D::CPSLocated::_CollisionInfoNbRef [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 631 of file ps_located.h. +

+Referenced by queryCollisionInfo, releaseAllRef, releaseCollisionInfo, and ~CPSLocated.

+

+ + + + +
+ + +
TDtorObserversVect NL3D::CPSLocated::_DtorObserversVect [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 692 of file ps_located.h. +

+Referenced by registerDtorObserver, releaseAllRef, releaseRefTo, unregisterDtorObserver, and ~CPSLocated.

+

+ + + + +
+ + +
float NL3D::CPSLocated::_InitialLife [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 636 of file ps_located.h. +

+Referenced by getInitialLife, newElement, setInitialLife, and updateLife.

+

+ + + + +
+ + +
float NL3D::CPSLocated::_InitialMass [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 641 of file ps_located.h. +

+Referenced by getInitialMass, newElement, and setInitialMass.

+

+ + + + +
+ + +
TForceVect NL3D::CPSLocated::_IntegrableForces [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 705 of file ps_located.h. +

+Referenced by integrateSingle, performParametricMotion, registerIntegrableForce, releaseAllRef, setSystemBasis, unregisterIntegrableForce, and ~CPSLocated.

+

+ + + + +
+ + +
TPSAttribFloat NL3D::CPSLocated::_InvMass [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 589 of file ps_located.h. +

+Referenced by deleteElement, getInvMass, newElement, and resize.

+

+ + + + +
+ + +
bool NL3D::CPSLocated::_LastForever [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 584 of file ps_located.h. +

+Referenced by getLastForever, setInitialLife, setLastForever, setLifeScheme, and updateLife.

+

+ + + + +
+ + +
CPSAttribMaker<float>* NL3D::CPSLocated::_LifeScheme [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 637 of file ps_located.h. +

+Referenced by getLifeScheme, newElement, setInitialLife, setLifeScheme, updateLife, and ~CPSLocated.

+

+ + + + +
+ + +
TLocatedBoundCont NL3D::CPSLocated::_LocatedBoundCont [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 573 of file ps_located.h. +

+Referenced by bind, computeBBox, deleteElement, getBoundObject, getIndexOf, getNbBoundObjects, hasEmitters, hasParticles, isBound, newElement, notifyMaxNumFacesChanged, notifyMotionTypeChanged, releaseAllRef, releaseRefTo, remove, resize, setSystemBasis, step, unbind, and ~CPSLocated.

+

+ + + + +
+ + +
bool NL3D::CPSLocated::_LODDegradation [protected] +
+
+ + + + + +
+   + + +

+true when LOD degradation apply to this located. +

+ +

+Definition at line 695 of file ps_located.h. +

+Referenced by forceLODDegradation, and hasLODDegradation.

+

+ + + + +
+ + +
CPSAttribMaker<float>* NL3D::CPSLocated::_MassScheme [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 642 of file ps_located.h. +

+Referenced by getMassScheme, newElement, setInitialMass, setMassScheme, and ~CPSLocated.

+

+ + + + +
+ + +
uint32 NL3D::CPSLocated::_MaxNumFaces [protected] +
+
+ + + + + +
+   + + +

+cache the max number of faces this located may want. +

+ +

+Definition at line 561 of file ps_located.h. +

+Referenced by notifyMaxNumFacesChanged, and querryMaxWantedNumFaces.

+

+ + + + +
+ + +
uint32 NL3D::CPSLocated::_MaxSize [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 576 of file ps_located.h. +

+Referenced by allocateParametricInfos, bind, getMaxSize, newElement, queryCollisionInfo, resize, and step.

+

+ + + + +
+ + +
std::string NL3D::CPSLocated::_Name [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 563 of file ps_located.h. +

+Referenced by getName, and setName.

+

+ + + + +
+ + +
uint32 NL3D::CPSLocated::_NbFramesToSkip [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 566 of file ps_located.h. +

+Referenced by getFrameRate, setFrameRate, and step.

+

+ + + + +
+ + +
uint16 NL3D::CPSLocated::_NonIntegrableForceNbRefs [protected] +
+
+ + + + + +
+   + + +

+number of force, and zones etc. +

+that are not integrable over time. If this is not 0, then the trajectory cannot be computed at any time. A force that is integrable must be in the same basis than the located. +

+Definition at line 700 of file ps_located.h. +

+Referenced by addNonIntegrableForceRef, releaseAllRef, releaseNonIntegrableForceRef, supportParametricMotion, and ~CPSLocated.

+

+ + + + +
+ + +
uint16 NL3D::CPSLocated::_NumIntegrableForceWithDifferentBasis [protected] +
+
+ + + + + +
+   + + +

+number of forces that apply on that located that have the same basis that this one (required for parametric animation). +

+ +

+Definition at line 702 of file ps_located.h. +

+Referenced by integrableForceBasisChanged, registerIntegrableForce, supportParametricMotion, and unregisterIntegrableForce.

+

+ + + + +
+ + +
bool NL3D::CPSLocated::_ParametricMotion [protected] +
+
+ + + + + +
+   + + +

+When set to true, this tells the system to use parametric motion. Only parametric forces must have been applied. +

+ +

+Definition at line 710 of file ps_located.h. +

+Referenced by allocateParametricInfos, integrateSingle, isParametricMotionEnabled, notifyMotionTypeChanged, performParametricMotion, and releaseParametricInfos.

+

+ + + + +
+ + +
CPSAttrib<CParametricInfo> NL3D::CPSLocated::_PInfo +
+
+ + + + + +
+   + + +

+WARNING : private use by forces only. +

+this vector is only used if parametric motion is achievable and enabled, because of the extra storage space +

+Definition at line 619 of file ps_located.h. +

+Referenced by allocateParametricInfos, deleteElement, getParametricInfos, integrateSingle, newElement, performParametricMotion, releaseParametricInfos, and resize.

+

+ + + + +
+ + +
TPSAttribVector NL3D::CPSLocated::_Pos [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 590 of file ps_located.h. +

+Referenced by allocateParametricInfos, computeBBox, deleteElement, getPos, newElement, performParametricMotion, resize, and step.

+

+ + + + +
+ + +
TNewElementRequestStack NL3D::CPSLocated::_RequestStack [protected] +
+
+ + + + + +
+   + + +

+this stack is used after each update to generate located. +

+ +

+Definition at line 662 of file ps_located.h. +

+Referenced by postNewElement, and updateNewElementRequestStack.

+

+ + + + +
+ + +
uint32 NL3D::CPSLocated::_Size [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 580 of file ps_located.h. +

+Referenced by bind, computeBBox, deleteElement, getNewElementIndex, getSize, newElement, performParametricMotion, queryCollisionInfo, resize, setInitialLife, step, and updateLife.

+

+ + + + +
+ + +
TPSAttribVector NL3D::CPSLocated::_Speed [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 591 of file ps_located.h. +

+Referenced by allocateParametricInfos, deleteElement, getSpeed, newElement, performParametricMotion, resize, and step.

+

+ + + + +
+ + +
TPSAttribTime NL3D::CPSLocated::_Time [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 592 of file ps_located.h. +

+Referenced by deleteElement, getTime, newElement, resize, setInitialLife, and updateLife.

+

+ + + + +
+ + +
TPSAttribTime NL3D::CPSLocated::_TimeIncrement [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 593 of file ps_located.h. +

+Referenced by deleteElement, getTimeIncrement, newElement, resize, and updateLife.

+

+ + + + +
+ + +
uint32 NL3D::CPSLocated::_TriggerID [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 707 of file ps_located.h. +

+Referenced by deleteElement, getTriggerEmitterID, and setTriggerEmitterID.

+

+ + + + +
+ + +
bool NL3D::CPSLocated::_TriggerOnDeath [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 706 of file ps_located.h. +

+Referenced by enableTriggerOnDeath, getTriggerEmitterID, isTriggerOnDeathEnabled, and setTriggerEmitterID.

+

+ + + + +
+ + +
bool NL3D::CPSLocated::_UpdateLock [protected] +
+
+ + + + + +
+   + + +

+this is used to tell wether a newElement or a deleteElement if being performed During these method, creation should use postNewElement to generate new elements Because of the data structures (each located bindable are updated one after each other) inconsistency can happen, when a located generated another located of the same type when he's deleted. +

+ +

+Definition at line 676 of file ps_located.h. +

+Referenced by deleteElement, and newElement.

+


The documentation for this class was generated from the following files: + + + +
                                                                                                                                                                    +
+ + -- cgit v1.2.1