# 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::CParticleSystem Class Reference

This class holds a particle system. More...

#include <particle_system.h>

Inheritance diagram for NL3D::CParticleSystem:

NLMISC::CRefCount List of all members.

Invalidity flags (no direct effect, just indications for a third party, a model holding the system for example)

enum  TDieCondition { none, noMoreParticles, noMoreParticlesAndEmitters }
 this enum give consitions on which the system may be invalid. More...

enum  TAnimType { AnimVisible = 0, AnimInCluster, AnimAlways, LastValue }
 This enum tells when animation must be performed. More...

enum  TPresetBehaviour {
  EnvironmentFX = 0, RunningEnvironmentFX, SpellFX, LoopingSpellFX,
  MinorFX, UserBehaviour, PresetLast
}
 Because choosing the previous parameters can be difficult, this define presets hat can be used to tune the system easily. More...

void setDestroyModelWhenOutOfRange (bool enable=true)
 Tell the system that it is invalid when its out of range. More...

bool getDestroyModelWhenOutOfRange (void) const
 check whether the system is invalid it's out of range. More...

void setDestroyCondition (TDieCondition dieCondition)
 when != to none, the Model hodling this sytem will be considered invalid when dieCondition is met This is only an indication flag and must be checked by third party (a model holding it for example) that must then use the right methods. More...

TDieCondition getDestroyCondition (void) const
 get the destroy condition. More...

void setDelayBeforeDeathConditionTest (TAnimationTime delay)
 Set a delay before to apply the death condition test This may be necessary : the system could be destroyed because there are no particles , but no particles were emitted yet This is an indication, and has no direct effect, and must be check by a third party (a model holding it for example). More...

TAnimationTime getDelayBeforeDeathConditionTest (void) const
 get the a delay before to apply the death condition test. More...

void destroyWhenOutOfFrustum (bool enable=true)
 tells the model holding this system that he become invalid when its out of the view frustum. More...

bool doesDestroyWhenOutOfFrustum (void) const
 check wether the system must be destroyed when it goes out of the frustum. More...

bool hasEmitters (void) const
 =======================================================================================. More...

bool hasParticles (void) const
 =======================================================================================. More...

void performMotionWhenOutOfFrustum (bool enable=true)
 Deprecated. More...

bool doesPerformMotionWhenOutOfFrustum (void) const
 Deprecated. More...

void setAnimType (TAnimType animType)
 Tells when animation must be done. More...

TAnimType getAnimType () const
 Test what the animation type is. More...

void activatePresetBehaviour (TPresetBehaviour behaviour)
 =======================================================================================. More...

TPresetBehaviour getBehaviourType () const

User parameters. They may be or not used by the system. Theyr meaning is defined during the construction

of the system

void setUserParam (uint userParamIndex, float value)
 Set the value of a user parameter. More...

float getUserParam (uint userParamIndex) const
 Get a user param. More...

void bindGlobalValueToUserParam (const std::string &globalValueName, uint userParamIndex)
 =======================================================================================. More...

std::string getGlobalValueName (uint userParamIndex) const
 =======================================================================================. More...

void setGlobalValue (const std::string &name, float value)
 =======================================================================================. More...

float getGlobalValue (const std::string &name)
 =======================================================================================. More...

void setGlobalVectorValue (const std::string &name, const NLMISC::CVector &value)
 =======================================================================================. More...

NLMISC::CVector getGlobalVectorValue (const std::string &name)
 =======================================================================================. More...

CGlobalVectorValueHandle getGlobalVectorValueHandle (const std::string &name)
 =======================================================================================. More...


sound managment

void stopSound ()
 ======================================================================================= immediatly shut down all the sound in this system. More...

void reactivateSound ()
 =======================================================================================. More...

void registerSoundServer (UPSSoundServer *soundServer)
 register a Sound server to this system. All systems share the same sound server. More...

UPSSoundServergetSoundServer (void)
 get the current sound server used by this system. NULL if none. More...


Public Types

enum  TPass { Anim, SolidRender, BlendRender, ToolRender }

Public Methods

void setName (const std::string &s)
 Set the name of the system. More...

std::string getName (void) const
 Get the name of the system. More...

void interpolatePosDelta (NLMISC::CVector &dest, TAnimationTime deltaT)
 =======================================================================================. More...

Object
 CParticleSystem ()
 ctor. More...

virtual ~CParticleSystem ()
 ======================================================================================= dtor. More...

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

void merge (CParticleSystemShape *toMerge)
 =======================================================================================. More...

Sharing system
void enableSharing (bool enabled=true)
 Enable/Disable sharing. More...

bool isSharingEnabled () const
 Test wether sharing is enabled. More...

Driver setup
void setDriver (IDriver *driver)
 set the driver use to render the system. More...

IDrivergetDriver (void)
 return the driver that will be used for rendering. More...

Scene setup
void setScene (CScene *scene)
 Set the scene in which the particle system is inserted. More...

CScenegetScene (void)
Position of the system
void setSysMat (const NLMISC::CMatrix &m)
 =======================================================================================. More...

const NLMISC::CMatrixgetSysMat (void) const
 return the matrix of the system. More...

const NLMISC::CMatrixgetOldSysMat (void) const
 return the previous matrix of the system. More...

const NLMISC::CMatrixgetInvertedSysMat (void) const
 return the inverted matrix of the system. More...

void setViewMat (const NLMISC::CMatrix &m)
 =======================================================================================. More...

const NLMISC::CMatrixgetViewMat (void) const
 get the view matrix . More...

const NLMISC::CMatrixgetInvertedViewMat (void) const
 get the inverted view matrix . It is stored each time a new frame is processed. More...

Execution of the system
virtual void step (TPass pass, TAnimationTime ellapsedTime)
 =======================================================================================. More...

Process attachment. Most process are located : set of objects of the same type that have a position
in space

void attach (CParticleSystemProcess *process)
 =======================================================================================. More...

CParticleSystemProcessdetach (uint index)
 =======================================================================================. More...

bool isProcess (CParticleSystemProcess *process) const
 =======================================================================================. More...

uint getIndexOf (const CParticleSystemProcess *process) const
 =======================================================================================. More...

void remove (CParticleSystemProcess *process)
 =======================================================================================. More...

uint32 getNbProcess (void) const
 get the number of process that are attached to the system. More...

CParticleSystemProcessgetProcess (uint32 index)
 Get a pointer to the nth process. More...

const CParticleSystemProcessgetProcess (uint32 index) const
 Get a const pointer to the nth process. More...

Date / Time
TAnimationTime getSystemDate (void) const
 get the time ellapsed since the system was created. More...

uint64 getDate (void) const
 Get the date of the system (the number of time it has been drawn in fact) This may be used to skip frames in an animation for example. More...

Edition methods : provides some tools for an external editor
void setCurrentEditedElement (CPSLocated *loc=NULL, uint32 index=0, class CPSLocatedBindable *bd=NULL)
 For edition purposes only : this allow to highlight in red the current element being edited. More...

void getCurrentEditedElement (CPSLocated *&loc, uint32 &index, CPSLocatedBindable *&lb)
 Retrieve the current edited element. More...

void setFontGenerator (CFontGenerator *fg)
 Set a font generator. Useful only for edition. don't need that in runtime. More...

CFontGeneratorgetFontGenerator (void)
 Retrieve the font generator. Edition purpose only. More...

const CFontGeneratorgetFontGenerator (void) const
 Retrieve the font generator (const version). Edition purpose only. More...

void setFontManager (CFontManager *fg)
 Set a font Manager. Useful only for edition. don't need that in runtime. More...

CFontManagergetFontManager (void)
 Retrieve the font Manager. Edition purpose only. More...

const CFontManagergetFontManager (void) const
 Retrieve the font Manager (const version). Edition purpose only. More...

Transparency / opacity
bool hasOpaqueObjects (void) const
 =======================================================================================. More...

bool hasTransparentObjects (void) const
 =======================================================================================. More...

Integration parameters
void enableAccurateIntegration (bool enable=true)
 This enable for more accurate integrations of movement. More...

bool isAccurateIntegrationEnabled (void) const
void setAccurateIntegrationParams (TAnimationTime threshold, uint32 maxNbIntegrations, bool canSlowDown, bool keepEllapsedTimeForLifeUpdate)
 the the time threshold and the max number of integration to perform, when accurate integration is activated. More...

void getAccurateIntegrationParams (TAnimationTime &threshold, uint32 &maxNbIntegrations, bool &canSlowDown, bool &keepEllapsedTimeForLifeUpdate)
 get the parameters used for integration. More...

LOD managment. LOD, when used can be performed in 2 ways :
Hand tuned LOD (for emission, color, size : this uses LOD as an input for attribute makers).

  • * - Auto LOD : Results are less good than with Hand- tuned LOD, but this may be needed when sharing is enabled. NB : auto-lod may not be supported by all kinds of particles.


void setMaxViewDist (float maxDist)
 set the max view distance for the system (in meters) . The default is 50 meters. More...

float getMaxViewDist (void) const
 get the max view distance. More...

void setLODRatio (float ratio)
 set a percentage that indicate where the 2nd LOD is located. Default is 0.5. More...

float getLODRatio (void) const
 get the lod ratio. More...

void getLODVect (NLMISC::CVector &v, float &offset, bool systemBasis)
 =======================================================================================. More...

TPSLod getLOD (void) const
 =======================================================================================. More...

float getOneMinusCurrentLODRatio (void) const
 get 1.f - the current lod ratio (it is updated at each motion pass). More...

void enableAutoLOD (bool enabled=true)
 Enable / disbale auto-lod. More...

bool isAutoLODEnabled () const
 test wether Auto-LOD is enabled. More...

void setupAutoLOD (float startDistPercent, uint8 degradationExponent)
 Setup auto lod parameters. More...

float getAutoLODStartDistPercent () const
uint8 getAutoLODDegradationExponent () const
void setAutoLODMode (bool skipParticles)
 There are 2 modes for the auto-LOD : Particle are skip in the source container when display is performed (the default) There are just less particles displayed, but this can lead to 'pulse effect'. More...

bool getAutoLODMode () const
void setColorAttenuationScheme (CPSAttribMaker< NLMISC::CRGBA > *colScheme)
 Setup a color attenuation scheme with the distance from the viewer. More...

CPSAttribMaker< NLMISC::CRGBA > * getColorAttenuationScheme ()
 Get the global color attenuation scheme. More...

const CPSAttribMaker< NLMISC::CRGBA > * getColorAttenuationScheme () const
const NLMISC::CRGBAgetGlobalColor () const
 Get the current global color of the system. More...

float getWantedNumTris (float dist)
 =======================================================================================. More...

void setNumTris (uint numFaces)
 =======================================================================================. More...

void notifyMaxNumFacesChanged (void)
 =======================================================================================. More...

bool isLoadBalancingEnabled () const
 Test whether load balancing has been activated for that system. More...

void enableLoadBalancing (bool enabled=true)
 =======================================================================================. More...

Bounding box managment
void computeBBox (NLMISC::CAABBox &aabbox)
 =======================================================================================. More...

void setAutoComputeBBox (bool enable=true)
 When this is set to false, the system will recompute his bbox each time it is querried This may be needed for systems that move fast. More...

bool getAutoComputeBBox (void) const
 test whether the system compute himself his bbox. More...

void setPrecomputedBBox (const NLMISC::CAABBox &precompBBox)
 set a precomputed bbox (expressed in the system basis). More...

void getLastComputedBBox (NLMISC::CAABBox &dest)
 get the last computed bbox. More...

external access to locatedBindable. PRIVATE PART (to avoid the use of friend)
void registerLocatedBindableExternID (uint32 id, CPSLocatedBindable *lb)
 =======================================================================================. More...

void unregisterLocatedBindableExternID (CPSLocatedBindable *lb)
 =======================================================================================. More...

external access to locatedBindable. PUBLIC PART
uint getNumLocatedBindableByExternID (uint32 id) const
 =======================================================================================. More...

CPSLocatedBindablegetLocatedBindableByExternID (uint32 id, uint index)
 =======================================================================================. More...

const CPSLocatedBindablegetLocatedBindableByExternID (uint32 id, uint index) const
 =======================================================================================. More...

uint getNumID () const
 =======================================================================================. More...

uint32 getID (uint index) const
 =======================================================================================. More...

void getIDs (std::vector< uint32 > &dest) const
 =======================================================================================. More...


Static Public Attributes

uint32 NbParticlesDrawn = 0
 used for benchs. must be reset by the user. More...


Private Types

typedef std::map< std::string,
float > 
TGlobalValuesMap
typedef std::map< std::string,
NLMISC::CVector
TGlobalVectorValuesMap
typedef std::vector< CParticleSystemProcess * > TProcessVect
typedef std::multimap< uint32,
CPSLocatedBindable * > 
TLBMap

Private Methods

void stepLocated (TPSProcessPass pass, TAnimationTime et, TAnimationTime realEt)
 =======================================================================================. More...

void updateLODRatio ()
 =======================================================================================. More...

void updateColor ()
 =======================================================================================. More...


Private Attributes

NLMISC::CAABBox _PreComputedBBox
IDriver_Driver
TProcessVect _ProcessVect
CFontGenerator_FontGenerator
CFontManager_FontManager
NLMISC::CMatrix _ViewMat
NLMISC::CMatrix _InvertedViewMat
NLMISC::CMatrix _SysMat
NLMISC::CMatrix _OldSysMat
NLMISC::CMatrix _InvSysMat
NLMISC::CVector _CurrentDeltaPos
NLMISC::CVector _DeltaPos
uint64 _Date
sint64 _LastUpdateDate
 Last update date of the system. Useful with sharing only, to avoid several motions. More...

CPSLocated_CurrEditedElementLocated
CPSLocatedBindable_CurrEditedElementLocatedBindable
uint32 _CurrEditedElementIndex
CScene_Scene
 the scene in which the particle system is inserted. More...

std::string _Name
TAnimationTime _TimeThreshold
TAnimationTime _SystemDate
uint32 _MaxNbIntegrations
float _LODRatio
float _OneMinusCurrentLODRatio
float _MaxViewDist
float _InvMaxViewDist
float _InvCurrentViewDist
TDieCondition _DieCondition
TAnimationTime _DelayBeforeDieTest
uint _MaxNumFacesWanted
TAnimType _AnimType
float _UserParam [MaxPSUserParam]
const TGlobalValuesMap::value_type ** _UserParamGlobalValue
uint8 _BypassGlobalUserParam
TPresetBehaviour _PresetBehaviour
TLBMap _LBMap
float _AutoLODStartDistPercent
uint8 _AutoLODDegradationExponent
CPSAttribMaker< NLMISC::CRGBA > * _ColorAttenuationScheme
NLMISC::CRGBA _GlobalColor
bool _ComputeBBox
 \TODO nico replace this with a bitfield (and change serialisation accordingly) when set to true, the system will compute his BBox every time computeBBox is called. More...

bool _BBoxTouched
bool _AccurateIntegration
bool _CanSlowDown
bool _DestroyModelWhenOutOfRange
bool _DestroyWhenOutOfFrustum
bool _Sharing
bool _AutoLOD
bool _KeepEllapsedTimeForLifeUpdate
bool _AutoLODSkipParticles
bool _EnableLoadBalancing
float _InverseEllapsedTime
 Inverse of the ellapsed time (call to step, valid only for motion pass). More...


Static Private Attributes

TGlobalValuesMap _GlobalValuesMap
TGlobalVectorValuesMap _GlobalVectorValuesMap
UPSSoundServer_SoundServer = NULL

Friends

class CParticleSystemDetailObs

Detailed Description

This class holds a particle system.

Most of the time it is used with a particle system model. See particle_system_shape.h and particle_system_model.h for more details. It can be used directly to create a shape. If you plan to use this without a particle system model, make sure :

  • you've setup the driver before calls to step()
  • you've setup the font manager if you want to display font informations
Author:
Nicolas Vizerie , Nevrax France
Date:
2001

Definition at line 83 of file particle_system.h.


Member Typedef Documentation

typedef std::map<std::string, float> NL3D::CParticleSystem::TGlobalValuesMap [private]
 

Definition at line 818 of file particle_system.h.

typedef std::map<std::string, NLMISC::CVector> NL3D::CParticleSystem::TGlobalVectorValuesMap [private]
 

Definition at line 819 of file particle_system.h.

typedef std::multimap<uint32, CPSLocatedBindable *> NL3D::CParticleSystem::TLBMap [private]
 

Definition at line 907 of file particle_system.h.

typedef std::vector< CParticleSystemProcess *> NL3D::CParticleSystem::TProcessVect [private]
 

Definition at line 835 of file particle_system.h.


Member Enumeration Documentation

enum NL3D::CParticleSystem::TAnimType
 

This enum tells when animation must be performed.

Enumeration values:
AnimVisible 
AnimInCluster 
AnimAlways 
LastValue 

Definition at line 690 of file particle_system.h.

Referenced by getAnimType, and setAnimType.

enum NL3D::CParticleSystem::TDieCondition
 

this enum give consitions on which the system may be invalid.

Enumeration values:
none 
noMoreParticles 
noMoreParticlesAndEmitters 

Definition at line 632 of file particle_system.h.

Referenced by getDestroyCondition, and setDestroyCondition.

enum NL3D::CParticleSystem::TPass
 

Enumeration values:
Anim 
SolidRender 
BlendRender 
ToolRender 

Definition at line 87 of file particle_system.h.

enum NL3D::CParticleSystem::TPresetBehaviour
 

Because choosing the previous parameters can be difficult, this define presets hat can be used to tune the system easily.

Any call to :

  • setDestroyModelWhenOutOfRange
  • setAnimType
  • setDestroyCondition
  • destroyWhenOutOfFrustum
  • performMotionWhenOutOfFrustum
will set the behaviour to 'user'
Enumeration values:
EnvironmentFX 
RunningEnvironmentFX 
SpellFX 
LoopingSpellFX 
MinorFX 
UserBehaviour 
PresetLast 

Definition at line 733 of file particle_system.h.

Referenced by getBehaviourType.


Constructor & Destructor Documentation

NL3D::CParticleSystem::CParticleSystem  
 

ctor.

Definition at line 66 of file particle_system.cpp.

References _UserParam, NL3D::MaxPSUserParam, and NL3D::PSDefaultMaxViewDist.

Referenced by merge.

NL3D::CParticleSystem::~CParticleSystem   [virtual]
 

======================================================================================= dtor.

Definition at line 219 of file particle_system.cpp.

References _ColorAttenuationScheme, _ProcessVect, and _UserParamGlobalValue.


Member Function Documentation

void NL3D::CParticleSystem::activatePresetBehaviour TPresetBehaviour    behaviour
 

=======================================================================================.

Definition at line 817 of file particle_system.cpp.

References _PresetBehaviour, AnimAlways, AnimInCluster, AnimVisible, destroyWhenOutOfFrustum, EnvironmentFX, LoopingSpellFX, MinorFX, noMoreParticles, none, RunningEnvironmentFX, setAnimType, setDestroyCondition, setDestroyModelWhenOutOfRange, and SpellFX.

void NL3D::CParticleSystem::attach CParticleSystemProcess   process
 

=======================================================================================.

It is then owned by the process and will be deleted by it. if already present -> nl assert

Definition at line 597 of file particle_system.cpp.

References _ProcessVect, nlassert, and notifyMaxNumFacesChanged.

Referenced by merge.

void NL3D::CParticleSystem::bindGlobalValueToUserParam const std::string &    globalValueName,
uint    userParamIndex
 

=======================================================================================.

Any further call to setUserParam will then be overriden by the user param. Example of use : global strenght of wind.

Parameters:
globalValueName  NULL to unbind the value, or the name of the value

Definition at line 933 of file particle_system.cpp.

References _GlobalValuesMap, _UserParamGlobalValue, NL3D::MaxPSUserParam, and nlassert.

void NL3D::CParticleSystem::computeBBox NLMISC::CAABBox   aabbox
 

=======================================================================================.

Parameters:
aabbox  a ref to the result box

Definition at line 616 of file particle_system.cpp.

References _BBoxTouched, _ComputeBBox, _InvSysMat, _PreComputedBBox, _ProcessVect, NLMISC::CAABBox::computeAABBoxUnion, NLMISC::CVector::Null, NLMISC::CAABBox::setCenter, NLMISC::CAABBox::setHalfSize, and NLMISC::CAABBox::transformAABBox.

void NL3D::CParticleSystem::destroyWhenOutOfFrustum bool    enable = true [inline]
 

tells the model holding this system that he become invalid when its out of the view frustum.

This is only an indication flag and must be checked by third party (a model holding it for example) It has no direct effects

See also:
doesDestroyWhenOutOfRange()

Definition at line 671 of file particle_system.h.

References _DestroyWhenOutOfFrustum, _PresetBehaviour, and UserBehaviour.

Referenced by activatePresetBehaviour.

CParticleSystemProcess * NL3D::CParticleSystem::detach uint    index
 

=======================================================================================.

Definition at line 859 of file particle_system.cpp.

References _ProcessVect, index, and nlassert.

bool NL3D::CParticleSystem::doesDestroyWhenOutOfFrustum void    const [inline]
 

check wether the system must be destroyed when it goes out of the frustum.

See also:
getDelayBeforeDeathConditionTest()

Definition at line 680 of file particle_system.h.

References _DestroyWhenOutOfFrustum.

bool NL3D::CParticleSystem::doesPerformMotionWhenOutOfFrustum void    const [inline]
 

Deprecated.

Test if animType == AnimInCluster. *

See also:
setAnimType(TAnimType animType)

Definition at line 709 of file particle_system.h.

References _AnimType, and AnimInCluster.

void NL3D::CParticleSystem::enableAccurateIntegration bool    enable = true [inline]
 

This enable for more accurate integrations of movement.

When this is activated, integration is performed in a more accurate way when the ellapsed time goes over a threshold, but it is more slow to perform.

Definition at line 418 of file particle_system.h.

References _AccurateIntegration.

void NL3D::CParticleSystem::enableAutoLOD bool    enabled = true [inline]
 

Enable / disbale auto-lod.

When auto-LOD is enabled, less particles are displayed when the system is far. This apply to all particles in the systems (unless they override that behaviour). The default is AutoLOD off.

Definition at line 503 of file particle_system.h.

References _AutoLOD.

void NL3D::CParticleSystem::enableLoadBalancing bool    enabled = true
 

=======================================================================================.

Definition at line 155 of file particle_system.cpp.

References _EnableLoadBalancing, and notifyMaxNumFacesChanged.

void NL3D::CParticleSystem::enableSharing bool    enabled = true [inline]
 

Enable/Disable sharing.

When sharing is enabled, the state of a particle system is the same for all the system that have the same shape. This allow to gain memory. However, such system should not be built with LOD in mind (for example, less emission with distance) LOD should be automatic for these system (see Auto-Lod). This means that sharing is only useful for system that have the same state, and if they are numerous : motion is performed once, but only for one system with no LOD. LOD is done during display only (when activated). The default for systems is to have no sharing.

Definition at line 122 of file particle_system.h.

References _Sharing.

void NL3D::CParticleSystem::getAccurateIntegrationParams TAnimationTime   threshold,
uint32   maxNbIntegrations,
bool &    canSlowDown,
bool &    keepEllapsedTimeForLifeUpdate
[inline]
 

get the parameters used for integration.

See also:
setAccurateIntegrationParams()

Definition at line 441 of file particle_system.h.

References _CanSlowDown, _KeepEllapsedTimeForLifeUpdate, _MaxNbIntegrations, _TimeThreshold, and NL3D::TAnimationTime.

TAnimType NL3D::CParticleSystem::getAnimType   const [inline]
 

Test what the animation type is.

Definition at line 720 of file particle_system.h.

References _AnimType, and TAnimType.

bool NL3D::CParticleSystem::getAutoComputeBBox void    const [inline]
 

test whether the system compute himself his bbox.

Definition at line 597 of file particle_system.h.

References _ComputeBBox.

uint8 NL3D::CParticleSystem::getAutoLODDegradationExponent   const [inline]
 

Definition at line 522 of file particle_system.h.

References _AutoLODDegradationExponent.

bool NL3D::CParticleSystem::getAutoLODMode   const [inline]
 

Definition at line 529 of file particle_system.h.

References _AutoLODSkipParticles.

float NL3D::CParticleSystem::getAutoLODStartDistPercent   const [inline]
 

Definition at line 521 of file particle_system.h.

References _AutoLODStartDistPercent.

TPresetBehaviour NL3D::CParticleSystem::getBehaviourType   const [inline]
 

Definition at line 750 of file particle_system.h.

References _PresetBehaviour, and TPresetBehaviour.

const CPSAttribMaker<NLMISC::CRGBA>* NL3D::CParticleSystem::getColorAttenuationScheme   const [inline]
 

Definition at line 549 of file particle_system.h.

References _ColorAttenuationScheme.

CPSAttribMaker<NLMISC::CRGBA>* NL3D::CParticleSystem::getColorAttenuationScheme   [inline]
 

Get the global color attenuation scheme.

Definition at line 548 of file particle_system.h.

References _ColorAttenuationScheme.

void NL3D::CParticleSystem::getCurrentEditedElement CPSLocated *&    loc,
uint32   index,
CPSLocatedBindable *&    lb
[inline]
 

Retrieve the current edited element.

See also:
setCurrentEditedElement()

Definition at line 368 of file particle_system.h.

References _CurrEditedElementIndex, _CurrEditedElementLocated, _CurrEditedElementLocatedBindable, and index.

uint64 NL3D::CParticleSystem::getDate void    const [inline]
 

Get the date of the system (the number of time it has been drawn in fact) This may be used to skip frames in an animation for example.

Definition at line 277 of file particle_system.h.

References _Date.

TAnimationTime NL3D::CParticleSystem::getDelayBeforeDeathConditionTest void    const [inline]
 

get the a delay before to apply the death condition test.

Definition at line 664 of file particle_system.h.

References _DelayBeforeDieTest, and NL3D::TAnimationTime.

TDieCondition NL3D::CParticleSystem::getDestroyCondition void    const [inline]
 

get the destroy condition.

Definition at line 648 of file particle_system.h.

References _DieCondition, and TDieCondition.

bool NL3D::CParticleSystem::getDestroyModelWhenOutOfRange void    const [inline]
 

check whether the system is invalid it's out of range.

Definition at line 628 of file particle_system.h.

References _DestroyModelWhenOutOfRange.

IDriver* NL3D::CParticleSystem::getDriver void    [inline]
 

return the driver that will be used for rendering.

Definition at line 136 of file particle_system.h.

References _Driver.

const CFontGenerator* NL3D::CParticleSystem::getFontGenerator void    const [inline]
 

Retrieve the font generator (const version). Edition purpose only.

Definition at line 382 of file particle_system.h.

References _FontGenerator.

CFontGenerator* NL3D::CParticleSystem::getFontGenerator void    [inline]
 

Retrieve the font generator. Edition purpose only.

Definition at line 379 of file particle_system.h.

References _FontGenerator.

const CFontManager* NL3D::CParticleSystem::getFontManager void    const [inline]
 

Retrieve the font Manager (const version). Edition purpose only.

Definition at line 391 of file particle_system.h.

References _FontManager.

CFontManager* NL3D::CParticleSystem::getFontManager void    [inline]
 

Retrieve the font Manager. Edition purpose only.

Definition at line 388 of file particle_system.h.

References _FontManager.

const NLMISC::CRGBA& NL3D::CParticleSystem::getGlobalColor   const [inline]
 

Get the current global color of the system.

(It is updated just before drawing...). It there's no color attenuation scheme it can be assumed to be white

Definition at line 554 of file particle_system.h.

References _GlobalColor.

float NL3D::CParticleSystem::getGlobalValue const std::string &    name [static]
 

=======================================================================================.

Definition at line 981 of file particle_system.cpp.

References _GlobalValuesMap.

std::string NL3D::CParticleSystem::getGlobalValueName uint    userParamIndex const
 

=======================================================================================.

Definition at line 989 of file particle_system.cpp.

References _UserParamGlobalValue, NL3D::MaxPSUserParam, and nlassert.

NLMISC::CVector NL3D::CParticleSystem::getGlobalVectorValue const std::string &    name [static]
 

=======================================================================================.

Definition at line 1006 of file particle_system.cpp.

References _GlobalVectorValuesMap, nlassert, and NLMISC::CVector::Null.

CParticleSystem::CGlobalVectorValueHandle NL3D::CParticleSystem::getGlobalVectorValueHandle const std::string &    name [static]
 

=======================================================================================.

Definition at line 1015 of file particle_system.cpp.

References _GlobalVectorValuesMap, nlassert, and NLMISC::CVector::Null.

uint32 NL3D::CParticleSystem::getID uint    index const
 

=======================================================================================.

Definition at line 903 of file particle_system.cpp.

References _LBMap, and index.

void NL3D::CParticleSystem::getIDs std::vector< uint32 > &    dest const
 

=======================================================================================.

Warning:
As IDs are not internally stored in a vector, it is faster than several calls to getID

Definition at line 915 of file particle_system.cpp.

References _LBMap.

uint NL3D::CParticleSystem::getIndexOf const CParticleSystemProcess   process const
 

=======================================================================================.

The process must be part of the system, otherwise an assertion is raised

Definition at line 886 of file particle_system.cpp.

References _ProcessVect, and nlassert.

const NLMISC::CMatrix& NL3D::CParticleSystem::getInvertedSysMat void    const [inline]
 

return the inverted matrix of the system.

Definition at line 173 of file particle_system.h.

References _InvSysMat.

const NLMISC::CMatrix& NL3D::CParticleSystem::getInvertedViewMat void    const [inline]
 

get the inverted view matrix . It is stored each time a new frame is processed.

Definition at line 184 of file particle_system.h.

References _InvertedViewMat.

void NL3D::CParticleSystem::getLastComputedBBox NLMISC::CAABBox   dest [inline]
 

get the last computed bbox.

Definition at line 611 of file particle_system.h.

References _PreComputedBBox.

const CPSLocatedBindable * NL3D::CParticleSystem::getLocatedBindableByExternID uint32    id,
uint    index
const
 

=======================================================================================.

Definition at line 790 of file particle_system.cpp.

References _LBMap, id, and index.

CPSLocatedBindable * NL3D::CParticleSystem::getLocatedBindableByExternID uint32    id,
uint    index
 

=======================================================================================.

Returns:
NULL if it doesn't exist

Definition at line 776 of file particle_system.cpp.

References _LBMap, id, and index.

TPSLod NL3D::CParticleSystem::getLOD void    const
 

=======================================================================================.

Definition at line 734 of file particle_system.cpp.

References _InvCurrentViewDist, _InvertedViewMat, _LODRatio, _SysMat, NLMISC::CMatrix::getJ, NLMISC::CMatrix::getPos, NL3D::PSLod1, NL3D::PSLod2, and NL3D::TPSLod.

float NL3D::CParticleSystem::getLODRatio void    const [inline]
 

get the lod ratio.

Definition at line 483 of file particle_system.h.

References _LODRatio.

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

=======================================================================================.

You'll have for a given pos : pos * v + offset = 0 at the nearest point, and 1 when pos is at maxDist from the viewer. This is used by sub-component of the system.

Definition at line 717 of file particle_system.cpp.

References _InvCurrentViewDist, _InvertedViewMat, _InvSysMat, NLMISC::CMatrix::getJ, NLMISC::CMatrix::getPos, NLMISC::CMatrix::mulVector, offset, and v.

float NL3D::CParticleSystem::getMaxViewDist void    const [inline]
 

get the max view distance.

Definition at line 477 of file particle_system.h.

References _MaxViewDist.

std::string NL3D::CParticleSystem::getName void    const [inline]
 

Get the name of the system.

Definition at line 398 of file particle_system.h.

References _Name.

uint32 NL3D::CParticleSystem::getNbProcess void    const [inline]
 

get the number of process that are attached to the system.

Definition at line 241 of file particle_system.h.

References _ProcessVect.

Referenced by reactivateSound, and stopSound.

uint NL3D::CParticleSystem::getNumID   const
 

=======================================================================================.

Definition at line 897 of file particle_system.cpp.

References _LBMap.

uint NL3D::CParticleSystem::getNumLocatedBindableByExternID uint32    id const
 

=======================================================================================.

Definition at line 770 of file particle_system.cpp.

References _LBMap, and id.

const NLMISC::CMatrix& NL3D::CParticleSystem::getOldSysMat void    const [inline]
 

return the previous matrix of the system.

Definition at line 170 of file particle_system.h.

References _SysMat.

float NL3D::CParticleSystem::getOneMinusCurrentLODRatio void    const [inline]
 

get 1.f - the current lod ratio (it is updated at each motion pass).

Definition at line 496 of file particle_system.h.

References _OneMinusCurrentLODRatio.

const CParticleSystemProcess* NL3D::CParticleSystem::getProcess uint32    index const [inline]
 

Get a const pointer to the nth process.

Out of range -> nlassert

Definition at line 257 of file particle_system.h.

References _ProcessVect, index, and nlassert.

CParticleSystemProcess* NL3D::CParticleSystem::getProcess uint32    index [inline]
 

Get a pointer to the nth process.

Out of range -> nlassert

Definition at line 247 of file particle_system.h.

References _ProcessVect, index, and nlassert.

Referenced by reactivateSound, and stopSound.

CScene* NL3D::CParticleSystem::getScene void    [inline]
 

Definition at line 148 of file particle_system.h.

References _Scene.

UPSSoundServer* NL3D::CParticleSystem::getSoundServer void    [inline, static]
 

get the current sound server used by this system. NULL if none.

Definition at line 770 of file particle_system.h.

References _SoundServer.

const NLMISC::CMatrix& NL3D::CParticleSystem::getSysMat void    const [inline]
 

return the matrix of the system.

Definition at line 167 of file particle_system.h.

References _SysMat.

TAnimationTime NL3D::CParticleSystem::getSystemDate void    const [inline]
 

get the time ellapsed since the system was created.

Definition at line 271 of file particle_system.h.

References _SystemDate, and NL3D::TAnimationTime.

float NL3D::CParticleSystem::getUserParam uint    userParamIndex const [inline]
 

Get a user param.

The max number of user param is in MaxPSUserParam.

Definition at line 303 of file particle_system.h.

References _UserParam, NL3D::MaxPSUserParam, and nlassert.

const NLMISC::CMatrix& NL3D::CParticleSystem::getViewMat void    const [inline]
 

get the view matrix .

Definition at line 181 of file particle_system.h.

References _ViewMat.

float NL3D::CParticleSystem::getWantedNumTris float    dist
 

=======================================================================================.

Definition at line 177 of file particle_system.cpp.

References _EnableLoadBalancing, _InvMaxViewDist, _MaxNumFacesWanted, and _MaxViewDist.

Referenced by setNumTris.

bool NL3D::CParticleSystem::hasEmitters void    const
 

=======================================================================================.

Definition at line 237 of file particle_system.cpp.

References _ProcessVect.

bool NL3D::CParticleSystem::hasOpaqueObjects void    const
 

=======================================================================================.

Definition at line 675 of file particle_system.cpp.

References _ProcessVect, and NL3D::PSParticle.

bool NL3D::CParticleSystem::hasParticles void    const
 

=======================================================================================.

Definition at line 247 of file particle_system.cpp.

References _ProcessVect.

bool NL3D::CParticleSystem::hasTransparentObjects void    const
 

=======================================================================================.

Definition at line 696 of file particle_system.cpp.

References _ProcessVect, and NL3D::PSParticle.

void NL3D::CParticleSystem::interpolatePosDelta NLMISC::CVector   dest,
TAnimationTime    deltaT
 

=======================================================================================.

Definition at line 927 of file particle_system.cpp.

References _CurrentDeltaPos, _DeltaPos, _InverseEllapsedTime, and NL3D::TAnimationTime.

bool NL3D::CParticleSystem::isAccurateIntegrationEnabled void    const [inline]
 

Definition at line 419 of file particle_system.h.

References _AccurateIntegration.

bool NL3D::CParticleSystem::isAutoLODEnabled   const [inline]
 

test wether Auto-LOD is enabled.

Definition at line 506 of file particle_system.h.

References _AutoLOD.

bool NL3D::CParticleSystem::isLoadBalancingEnabled   const [inline]
 

Test whether load balancing has been activated for that system.

Definition at line 575 of file particle_system.h.

References _EnableLoadBalancing.

bool NL3D::CParticleSystem::isProcess CParticleSystemProcess   process const
 

=======================================================================================.

Definition at line 876 of file particle_system.cpp.

References _ProcessVect.

bool NL3D::CParticleSystem::isSharingEnabled   const [inline]
 

Test wether sharing is enabled.

Definition at line 125 of file particle_system.h.

References _Sharing.

void NL3D::CParticleSystem::merge CParticleSystemShape   toMerge
 

=======================================================================================.

Definition at line 803 of file particle_system.cpp.

References attach, CParticleSystem, and nlassert.

void NL3D::CParticleSystem::notifyMaxNumFacesChanged void   
 

=======================================================================================.

You don't usually need to call this

Definition at line 165 of file particle_system.cpp.

References _EnableLoadBalancing, _MaxNumFacesWanted, and _ProcessVect.

Referenced by attach, and enableLoadBalancing.

void NL3D::CParticleSystem::performMotionWhenOutOfFrustum bool    enable = true [inline]
 

Deprecated.

This set the animation type to AnimInCluster.

See also:
setAnimType(TAnimType animType)

Definition at line 700 of file particle_system.h.

References _AnimType, _PresetBehaviour, AnimInCluster, AnimVisible, and UserBehaviour.

void NL3D::CParticleSystem::reactivateSound  
 

=======================================================================================.

Definition at line 135 of file particle_system.cpp.

References getNbProcess, getProcess, and NLAISCRIPT::l.

void NL3D::CParticleSystem::registerLocatedBindableExternID uint32    id,
CPSLocatedBindable   lb
 

=======================================================================================.

each pair <id, locatedBindable> must be unique, but there may be sevral LB for the same key

Definition at line 742 of file particle_system.cpp.

References _LBMap, id, and nlassert.

void NL3D::CParticleSystem::registerSoundServer UPSSoundServer   soundServer [inline, static]
 

register a Sound server to this system. All systems share the same sound server.

Definition at line 764 of file particle_system.h.

References _SoundServer.

void NL3D::CParticleSystem::remove CParticleSystemProcess   process
 

=======================================================================================.

Definition at line 607 of file particle_system.cpp.

References _ProcessVect, and nlassert.

void NL3D::CParticleSystem::serial NLMISC::IStream   f throw (NLMISC::EStream)
 

=======================================================================================.

Definition at line 423 of file particle_system.cpp.

References NL3D::MaxPSUserParam, and nlctassert.

void NL3D::CParticleSystem::setAccurateIntegrationParams TAnimationTime    threshold,
uint32    maxNbIntegrations,
bool    canSlowDown,
bool    keepEllapsedTimeForLifeUpdate
[inline]
 

the the time threshold and the max number of integration to perform, when accurate integration is activated.

The default is 0.15 for time threshold and 2 for max NbIntegrations

Parameters:
canSlowDown  : Allow the system to slow down in speed but to keep accuracy in its movement. It is useful for critical situations where the framerate is very low. The default is true.

Definition at line 426 of file particle_system.h.

References _CanSlowDown, _KeepEllapsedTimeForLifeUpdate, _MaxNbIntegrations, _TimeThreshold, and NL3D::TAnimationTime.

void NL3D::CParticleSystem::setAnimType TAnimType    animType [inline]
 

Tells when animation must be done.

Definition at line 712 of file particle_system.h.

References _AnimType, _PresetBehaviour, LastValue, nlassert, TAnimType, and UserBehaviour.

Referenced by activatePresetBehaviour.

void NL3D::CParticleSystem::setAutoComputeBBox bool    enable = true [inline]
 

When this is set to false, the system will recompute his bbox each time it is querried This may be needed for systems that move fast.

Definition at line 593 of file particle_system.h.

References _ComputeBBox.

void NL3D::CParticleSystem::setAutoLODMode bool    skipParticles [inline]
 

There are 2 modes for the auto-LOD : Particle are skip in the source container when display is performed (the default) There are just less particles displayed, but this can lead to 'pulse effect'.

  • * - This is faster, though.

Definition at line 528 of file particle_system.h.

References _AutoLODSkipParticles.

void NL3D::CParticleSystem::setColorAttenuationScheme CPSAttribMaker< NLMISC::CRGBA > *    colScheme [inline]
 

Setup a color attenuation scheme with the distance from the viewer.

This doesn't act on a particle basis, the whole color of the system is changed in an uniform way so it is fast (the same can be achieved on a particle basis). This bypass the source of the scheme : it is set to 0 when the system is on the user, and to 1 when it is at its max distance.

Parameters:
scheme  A color scheme, that is then owned by this object. NULL disable color attenuation. Any previous scheme is removed

Definition at line 537 of file particle_system.h.

References _ColorAttenuationScheme, _GlobalColor, and NLMISC::CRGBA::White.

void NL3D::CParticleSystem::setCurrentEditedElement CPSLocated   loc = NULL,
uint32    index = 0,
class CPSLocatedBindable   bd = NULL
[inline]
 

For edition purposes only : this allow to highlight in red the current element being edited.

Parameters:
located  The located the current element belongs to, or NULL if no element is selected. \index the index of the element in the located. \lb the located bindable that is selected into a located (NULL = all)

Definition at line 358 of file particle_system.h.

References _CurrEditedElementIndex, _CurrEditedElementLocated, _CurrEditedElementLocatedBindable, and index.

void NL3D::CParticleSystem::setDelayBeforeDeathConditionTest TAnimationTime    delay [inline]
 

Set a delay before to apply the death condition test This may be necessary : the system could be destroyed because there are no particles , but no particles were emitted yet This is an indication, and has no direct effect, and must be check by a third party (a model holding it for example).

See also:
hasEmitters() , hasParticles() , getDelayBeforeDeathConditionTest()

Definition at line 658 of file particle_system.h.

References _DelayBeforeDieTest, and NL3D::TAnimationTime.

void NL3D::CParticleSystem::setDestroyCondition TDieCondition    dieCondition [inline]
 

when != to none, the Model hodling this sytem will be considered invalid when dieCondition is met This is only an indication flag and must be checked by third party (a model holding it for example) that must then use the right methods.

See also:
hasEmitters , hasParticles

Definition at line 641 of file particle_system.h.

References _DieCondition, _PresetBehaviour, TDieCondition, and UserBehaviour.

Referenced by activatePresetBehaviour.

void NL3D::CParticleSystem::setDestroyModelWhenOutOfRange bool    enable = true [inline]
 

Tell the system that it is invalid when its out of range.

The default is false. This is only a indication flag and must be checked by third party (a model holding the system for example)

Definition at line 621 of file particle_system.h.

References _DestroyModelWhenOutOfRange, _PresetBehaviour, and UserBehaviour.

Referenced by activatePresetBehaviour.

void NL3D::CParticleSystem::setDriver IDriver   driver [inline]
 

set the driver use to render the system.

Definition at line 133 of file particle_system.h.

References _Driver.

void NL3D::CParticleSystem::setFontGenerator CFontGenerator   fg [inline]
 

Set a font generator. Useful only for edition. don't need that in runtime.

Definition at line 376 of file particle_system.h.

References _FontGenerator.

void NL3D::CParticleSystem::setFontManager CFontManager   fg [inline]
 

Set a font Manager. Useful only for edition. don't need that in runtime.

Definition at line 385 of file particle_system.h.

References _FontManager.

void NL3D::CParticleSystem::setGlobalValue const std::string &    name,
float    value
[static]
 

=======================================================================================.

Definition at line 973 of file particle_system.cpp.

References _GlobalValuesMap, NLMISC::clamp, nlassert, and value.

void NL3D::CParticleSystem::setGlobalVectorValue const std::string &    name,
const NLMISC::CVector   value
[static]
 

=======================================================================================.

Global vector values are set to (0, 0, 0) by default Global vector values are used in some places. For example, direction for a directionnal force.

Definition at line 998 of file particle_system.cpp.

References _GlobalVectorValuesMap, nlassert, and value.

void NL3D::CParticleSystem::setLODRatio float    ratio [inline]
 

set a percentage that indicate where the 2nd LOD is located. Default is 0.5.

Definition at line 480 of file particle_system.h.

References _LODRatio, and nlassert.

void NL3D::CParticleSystem::setMaxViewDist float    maxDist [inline]
 

set the max view distance for the system (in meters) . The default is 50 meters.

Definition at line 469 of file particle_system.h.

References _InvCurrentViewDist, _InvMaxViewDist, _MaxViewDist, and nlassert.

void NL3D::CParticleSystem::setName const std::string &    s [inline]
 

Set the name of the system.

Definition at line 395 of file particle_system.h.

References _Name, and s.

void NL3D::CParticleSystem::setNumTris uint    numFaces
 

=======================================================================================.

Definition at line 188 of file particle_system.cpp.

References _InvCurrentViewDist, _InvertedViewMat, _InvMaxViewDist, _MaxNumFacesWanted, _SysMat, NLMISC::CMatrix::getPos, and getWantedNumTris.

void NL3D::CParticleSystem::setPrecomputedBBox const NLMISC::CAABBox   precompBBox [inline]
 

set a precomputed bbox (expressed in the system basis).

This is allowed only when setAutoComputeBBox is called with false (nlassert otherwise).

Definition at line 604 of file particle_system.h.

References _ComputeBBox, _PreComputedBBox, and nlassert.

void NL3D::CParticleSystem::setScene CScene   scene [inline]
 

Set the scene in which the particle system is inserted.

This is needed when system must add objects to the scene (for particle that are mesh for instance)

Definition at line 145 of file particle_system.h.

References _Scene.

void NL3D::CParticleSystem::setSysMat const NLMISC::CMatrix   m
 

=======================================================================================.

This only affect elements that are in the same basis you don't need to call this if it is used with a CPaticleSystemModel : Call ITransformable method. In this case , setSysMat will be called automatically when needed to mirror the ITransformable matrix. NB: The previous matrix is backuped during this call (used to interpolate the system when emission occur in the world basis), so this should be called only once per frame

Definition at line 658 of file particle_system.cpp.

References _DeltaPos, _InvSysMat, _OldSysMat, _SysMat, _SystemDate, NLMISC::CMatrix::getPos, NLMISC::CMatrix::inverted, and NLMISC::CVector::Null.

void NL3D::CParticleSystem::setupAutoLOD float    startDistPercent,
uint8    degradationExponent
[inline]
 

Setup auto lod parameters.

Parameters:
start  A percentage of the max view dist that tells when the auto-lod must start.
strenght  The degradation speed. It is interpreted as an exponent.

Definition at line 512 of file particle_system.h.

References _AutoLODDegradationExponent, _AutoLODStartDistPercent, and nlassert.

void NL3D::CParticleSystem::setUserParam uint    userParamIndex,
float    value
[inline]
 

Set the value of a user parameter.

It must range from 0 to 1. The user value are not saved, and their default value is 0.f. The max number of user param is MaxPSUserParam.

Definition at line 293 of file particle_system.h.

References _UserParam, NLMISC::clamp, NL3D::MaxInputValue, NL3D::MaxPSUserParam, nlassert, and value.

void NL3D::CParticleSystem::setViewMat const NLMISC::CMatrix   m
 

=======================================================================================.

Definition at line 230 of file particle_system.cpp.

References _InvertedViewMat, _ViewMat, and NLMISC::CMatrix::inverted.

void NL3D::CParticleSystem::step TPass    pass,
TAnimationTime    ellapsedTime
[virtual]
 

=======================================================================================.

It uses the driver that was set by a call to setDriver.

Parameters:
ellapsedTime  The ellapsed time since the last call
pass  the pass to be executed
See also:
setDriver

Definition at line 298 of file particle_system.cpp.

References _BBoxTouched, _BypassGlobalUserParam, _CurrentDeltaPos, _Date, _DeltaPos, _InverseEllapsedTime, _KeepEllapsedTimeForLifeUpdate, _MaxNbIntegrations, _ProcessVect, _SystemDate, _TimeThreshold, _UserParam, _UserParamGlobalValue, Anim, BlendRender, NL3D::MaxPSUserParam, nlassert, nlctassert, NL3D::PSBlendRender, NL3D::PSCollision, NL3D::PSEmit, NL3D::PSMotion, NL3D::PSSolidRender, NL3D::PSToolRender, SolidRender, stepLocated, NL3D::TAnimationTime, ToolRender, updateColor, and updateLODRatio.

void NL3D::CParticleSystem::stepLocated TPSProcessPass    pass,
TAnimationTime    et,
TAnimationTime    realEt
[private]
 

=======================================================================================.

Definition at line 257 of file particle_system.cpp.

References _ProcessVect, NL3D::TAnimationTime, and NL3D::TPSProcessPass.

Referenced by step.

void NL3D::CParticleSystem::stopSound  
 

======================================================================================= immediatly shut down all the sound in this system.

Definition at line 115 of file particle_system.cpp.

References getNbProcess, getProcess, NLAISCRIPT::l, and NL3D::PSSound.

void NL3D::CParticleSystem::unregisterLocatedBindableExternID CPSLocatedBindable   lb
 

=======================================================================================.

Definition at line 757 of file particle_system.cpp.

References _LBMap, id, and nlassert.

void NL3D::CParticleSystem::updateColor   [inline, private]
 

=======================================================================================.

Definition at line 278 of file particle_system.cpp.

References _ColorAttenuationScheme, _GlobalColor, and _OneMinusCurrentLODRatio.

Referenced by step.

void NL3D::CParticleSystem::updateLODRatio   [inline, private]
 

=======================================================================================.

Definition at line 267 of file particle_system.cpp.

References _InvCurrentViewDist, _InvertedViewMat, _OneMinusCurrentLODRatio, _SysMat, NLMISC::clamp, and NLMISC::CMatrix::getPos.

Referenced by step.


Friends And Related Function Documentation

friend class CParticleSystemDetailObs [friend]
 

Definition at line 821 of file particle_system.h.


Member Data Documentation

bool NL3D::CParticleSystem::_AccurateIntegration [private]
 

Definition at line 920 of file particle_system.h.

Referenced by enableAccurateIntegration, and isAccurateIntegrationEnabled.

TAnimType NL3D::CParticleSystem::_AnimType [private]
 

Definition at line 895 of file particle_system.h.

Referenced by doesPerformMotionWhenOutOfFrustum, getAnimType, performMotionWhenOutOfFrustum, and setAnimType.

bool NL3D::CParticleSystem::_AutoLOD [private]
 

Definition at line 925 of file particle_system.h.

Referenced by enableAutoLOD, and isAutoLODEnabled.

uint8 NL3D::CParticleSystem::_AutoLODDegradationExponent [private]
 

Definition at line 911 of file particle_system.h.

Referenced by getAutoLODDegradationExponent, and setupAutoLOD.

bool NL3D::CParticleSystem::_AutoLODSkipParticles [private]
 

Definition at line 927 of file particle_system.h.

Referenced by getAutoLODMode, and setAutoLODMode.

float NL3D::CParticleSystem::_AutoLODStartDistPercent [private]
 

Definition at line 910 of file particle_system.h.

Referenced by getAutoLODStartDistPercent, and setupAutoLOD.

bool NL3D::CParticleSystem::_BBoxTouched [private]
 

Definition at line 919 of file particle_system.h.

Referenced by computeBBox, and step.

uint8 NL3D::CParticleSystem::_BypassGlobalUserParam [private]
 

Definition at line 902 of file particle_system.h.

Referenced by step.

bool NL3D::CParticleSystem::_CanSlowDown [private]
 

Definition at line 921 of file particle_system.h.

Referenced by getAccurateIntegrationParams, and setAccurateIntegrationParams.

CPSAttribMaker<NLMISC::CRGBA>* NL3D::CParticleSystem::_ColorAttenuationScheme [private]
 

Definition at line 913 of file particle_system.h.

Referenced by getColorAttenuationScheme, setColorAttenuationScheme, updateColor, and ~CParticleSystem.

bool NL3D::CParticleSystem::_ComputeBBox [private]
 

\TODO nico replace this with a bitfield (and change serialisation accordingly) when set to true, the system will compute his BBox every time computeBBox is called.

Definition at line 918 of file particle_system.h.

Referenced by computeBBox, getAutoComputeBBox, setAutoComputeBBox, and setPrecomputedBBox.

uint32 NL3D::CParticleSystem::_CurrEditedElementIndex [private]
 

Definition at line 867 of file particle_system.h.

Referenced by getCurrentEditedElement, and setCurrentEditedElement.

CPSLocated* NL3D::CParticleSystem::_CurrEditedElementLocated [private]
 

Definition at line 863 of file particle_system.h.

Referenced by getCurrentEditedElement, and setCurrentEditedElement.

CPSLocatedBindable* NL3D::CParticleSystem::_CurrEditedElementLocatedBindable [private]
 

Definition at line 865 of file particle_system.h.

Referenced by getCurrentEditedElement, and setCurrentEditedElement.

NLMISC::CVector NL3D::CParticleSystem::_CurrentDeltaPos [private]
 

Definition at line 852 of file particle_system.h.

Referenced by interpolatePosDelta, and step.

uint64 NL3D::CParticleSystem::_Date [private]
 

Definition at line 857 of file particle_system.h.

Referenced by getDate, and step.

TAnimationTime NL3D::CParticleSystem::_DelayBeforeDieTest [private]
 

Definition at line 893 of file particle_system.h.

Referenced by getDelayBeforeDeathConditionTest, and setDelayBeforeDeathConditionTest.

NLMISC::CVector NL3D::CParticleSystem::_DeltaPos [private]
 

Definition at line 854 of file particle_system.h.

Referenced by interpolatePosDelta, setSysMat, and step.

bool NL3D::CParticleSystem::_DestroyModelWhenOutOfRange [private]
 

Definition at line 922 of file particle_system.h.

Referenced by getDestroyModelWhenOutOfRange, and setDestroyModelWhenOutOfRange.

bool NL3D::CParticleSystem::_DestroyWhenOutOfFrustum [private]
 

Definition at line 923 of file particle_system.h.

Referenced by destroyWhenOutOfFrustum, and doesDestroyWhenOutOfFrustum.

TDieCondition NL3D::CParticleSystem::_DieCondition [private]
 

Definition at line 892 of file particle_system.h.

Referenced by getDestroyCondition, and setDestroyCondition.

IDriver* NL3D::CParticleSystem::_Driver [private]
 

Definition at line 833 of file particle_system.h.

Referenced by getDriver, and setDriver.

bool NL3D::CParticleSystem::_EnableLoadBalancing [private]
 

Definition at line 928 of file particle_system.h.

Referenced by enableLoadBalancing, getWantedNumTris, isLoadBalancingEnabled, and notifyMaxNumFacesChanged.

CFontGenerator* NL3D::CParticleSystem::_FontGenerator [private]
 

Definition at line 837 of file particle_system.h.

Referenced by getFontGenerator, and setFontGenerator.

CFontManager* NL3D::CParticleSystem::_FontManager [private]
 

Definition at line 838 of file particle_system.h.

Referenced by getFontManager, and setFontManager.

NLMISC::CRGBA NL3D::CParticleSystem::_GlobalColor [private]
 

Definition at line 914 of file particle_system.h.

Referenced by getGlobalColor, setColorAttenuationScheme, and updateColor.

CParticleSystem::TGlobalValuesMap NL3D::CParticleSystem::_GlobalValuesMap [static, private]
 

Definition at line 51 of file particle_system.cpp.

Referenced by bindGlobalValueToUserParam, getGlobalValue, and setGlobalValue.

CParticleSystem::TGlobalVectorValuesMap NL3D::CParticleSystem::_GlobalVectorValuesMap [static, private]
 

Definition at line 52 of file particle_system.cpp.

Referenced by getGlobalVectorValue, getGlobalVectorValueHandle, and setGlobalVectorValue.

float NL3D::CParticleSystem::_InvCurrentViewDist [private]
 

Definition at line 889 of file particle_system.h.

Referenced by getLOD, getLODVect, setMaxViewDist, setNumTris, and updateLODRatio.

float NL3D::CParticleSystem::_InverseEllapsedTime [private]
 

Inverse of the ellapsed time (call to step, valid only for motion pass).

Definition at line 931 of file particle_system.h.

Referenced by interpolatePosDelta, and step.

NLMISC::CMatrix NL3D::CParticleSystem::_InvertedViewMat [private]
 

Definition at line 843 of file particle_system.h.

Referenced by getInvertedViewMat, getLOD, getLODVect, setNumTris, setViewMat, and updateLODRatio.

float NL3D::CParticleSystem::_InvMaxViewDist [private]
 

Definition at line 888 of file particle_system.h.

Referenced by getWantedNumTris, setMaxViewDist, and setNumTris.

NLMISC::CMatrix NL3D::CParticleSystem::_InvSysMat [private]
 

Definition at line 850 of file particle_system.h.

Referenced by computeBBox, getInvertedSysMat, getLODVect, and setSysMat.

bool NL3D::CParticleSystem::_KeepEllapsedTimeForLifeUpdate [private]
 

Definition at line 926 of file particle_system.h.

Referenced by getAccurateIntegrationParams, setAccurateIntegrationParams, and step.

sint64 NL3D::CParticleSystem::_LastUpdateDate [private]
 

Last update date of the system. Useful with sharing only, to avoid several motions.

Definition at line 860 of file particle_system.h.

TLBMap NL3D::CParticleSystem::_LBMap [private]
 

Definition at line 908 of file particle_system.h.

Referenced by getID, getIDs, getLocatedBindableByExternID, getNumID, getNumLocatedBindableByExternID, registerLocatedBindableExternID, and unregisterLocatedBindableExternID.

float NL3D::CParticleSystem::_LODRatio [private]
 

Definition at line 885 of file particle_system.h.

Referenced by getLOD, getLODRatio, and setLODRatio.

uint32 NL3D::CParticleSystem::_MaxNbIntegrations [private]
 

Definition at line 882 of file particle_system.h.

Referenced by getAccurateIntegrationParams, setAccurateIntegrationParams, and step.

uint NL3D::CParticleSystem::_MaxNumFacesWanted [private]
 

Definition at line 894 of file particle_system.h.

Referenced by getWantedNumTris, notifyMaxNumFacesChanged, and setNumTris.

float NL3D::CParticleSystem::_MaxViewDist [private]
 

Definition at line 887 of file particle_system.h.

Referenced by getMaxViewDist, getWantedNumTris, and setMaxViewDist.

std::string NL3D::CParticleSystem::_Name [private]
 

Definition at line 878 of file particle_system.h.

Referenced by getName, and setName.

NLMISC::CMatrix NL3D::CParticleSystem::_OldSysMat [private]
 

Definition at line 848 of file particle_system.h.

Referenced by setSysMat.

float NL3D::CParticleSystem::_OneMinusCurrentLODRatio [private]
 

Definition at line 886 of file particle_system.h.

Referenced by getOneMinusCurrentLODRatio, updateColor, and updateLODRatio.

NLMISC::CAABBox NL3D::CParticleSystem::_PreComputedBBox [private]
 

Definition at line 831 of file particle_system.h.

Referenced by computeBBox, getLastComputedBBox, and setPrecomputedBBox.

TPresetBehaviour NL3D::CParticleSystem::_PresetBehaviour [private]
 

Definition at line 904 of file particle_system.h.

Referenced by activatePresetBehaviour, destroyWhenOutOfFrustum, getBehaviourType, performMotionWhenOutOfFrustum, setAnimType, setDestroyCondition, and setDestroyModelWhenOutOfRange.

TProcessVect NL3D::CParticleSystem::_ProcessVect [private]
 

Definition at line 836 of file particle_system.h.

Referenced by attach, computeBBox, detach, getIndexOf, getNbProcess, getProcess, hasEmitters, hasOpaqueObjects, hasParticles, hasTransparentObjects, isProcess, notifyMaxNumFacesChanged, remove, step, stepLocated, and ~CParticleSystem.

CScene* NL3D::CParticleSystem::_Scene [private]
 

the scene in which the particle system is inserted.

This is needed because the system may add objects to the scene (for particle that are meshs for instance)

Definition at line 874 of file particle_system.h.

Referenced by getScene, and setScene.

bool NL3D::CParticleSystem::_Sharing [private]
 

Definition at line 924 of file particle_system.h.

Referenced by enableSharing, and isSharingEnabled.

UPSSoundServer * NL3D::CParticleSystem::_SoundServer = NULL [static, private]
 

Definition at line 50 of file particle_system.cpp.

Referenced by getSoundServer, and registerSoundServer.

NLMISC::CMatrix NL3D::CParticleSystem::_SysMat [private]
 

Definition at line 846 of file particle_system.h.

Referenced by getLOD, getOldSysMat, getSysMat, setNumTris, setSysMat, and updateLODRatio.

TAnimationTime NL3D::CParticleSystem::_SystemDate [private]
 

Definition at line 881 of file particle_system.h.

Referenced by getSystemDate, setSysMat, and step.

TAnimationTime NL3D::CParticleSystem::_TimeThreshold [private]
 

Definition at line 880 of file particle_system.h.

Referenced by getAccurateIntegrationParams, setAccurateIntegrationParams, and step.

float NL3D::CParticleSystem::_UserParam[MaxPSUserParam] [private]
 

Definition at line 899 of file particle_system.h.

Referenced by CParticleSystem, getUserParam, setUserParam, and step.

const TGlobalValuesMap::value_type** NL3D::CParticleSystem::_UserParamGlobalValue [private]
 

Definition at line 900 of file particle_system.h.

Referenced by bindGlobalValueToUserParam, getGlobalValueName, step, and ~CParticleSystem.

NLMISC::CMatrix NL3D::CParticleSystem::_ViewMat [private]
 

Definition at line 840 of file particle_system.h.

Referenced by getViewMat, and setViewMat.

uint32 NL3D::CParticleSystem::NbParticlesDrawn = 0 [static]
 

used for benchs. must be reset by the user.

Definition at line 49 of file particle_system.cpp.


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