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

This class helps to instanciate a particle system (the shape contains a particle system prototype stored as a memory stream) Use the createInstance method to insert the system in a scene To load the shape from a file, use a shape stream. More...

#include <particle_system_shape.h>

Inheritance diagram for NL3D::CParticleSystemShape:

NL3D::IShape NLMISC::CRefCount NLMISC::IStreamable NLMISC::IClassable List of all members.

Public Methods

 CParticleSystemShape ()
 ===========================================================================. More...

void buildFromPS (const NL3D::CParticleSystem &ps)
 ===========================================================================. More...

virtual ~CParticleSystemShape ()
 Dtor. More...

virtual CTransformShapecreateInstance (NL3D::CScene &scene)
 ===========================================================================. More...

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

 NLMISC_DECLARE_CLASS (CParticleSystemShape)
CTrackDefaultFloatgetUserParamDefaultTrack (uint numTrack)
 get a the user param default tracks. More...

CTrackDefaultBoolgetDefaultTriggerTrack (void)
 get a the trigger default track. More...

virtual void getAABBox (NLMISC::CAABBox &bbox) const
 ===========================================================================. More...

virtual float getNumTriangles (float distance)
 this method is meaningless here : the load balancing observer for particle system compute the number of triangles from the Model, not the shape. More...

bool isShared () const
CParticleSysteminstanciatePS (CScene &scene)
 ===========================================================================. More...

Inherited from IShape.
virtual void render (NL3D::IDriver *drv, CTransformShape *trans, bool passOpaque)
 ===========================================================================. More...

access default tracks.
CTrackDefaultVectorgetDefaultPos ()
CTrackDefaultVectorgetDefaultScale ()
CTrackDefaultQuatgetDefaultRotQuat ()

Protected Methods

virtual void flushTextures (IDriver &driver)
 inherited from ishape. More...


Protected Attributes

NLMISC::CMemStream _ParticleSystemProto
 A memory stream containing a particle system. More...

float _MaxViewDist
NLMISC::CAABBox _PrecomputedBBox
CTrackDefaultFloat _UserParamDefaultTrack [4]
 the default track for animation of user parameters. More...

CTrackDefaultVector _DefaultPos
 Transform default tracks. More...

CTrackDefaultVector _DefaultScale
CTrackDefaultQuat _DefaultRotQuat
CTrackDefaultBool _DefaultTriggerTrack
 Trigger default track. More...

NLMISC::CRefPtr< CParticleSystem_SharedSystem
 For sharing, this tells us if there's a system already instanciated that we could use for sharing. More...

bool _DestroyWhenOutOfFrustum
bool _DestroyModelWhenOutOfRange
bool _UsePrecomputedBBox
bool _Sharing

Friends

class CParticleSystemModel
class CParticleSystemDetailObs
class CParticleSystemClipObs
class CParticleSystem

Detailed Description

This class helps to instanciate a particle system (the shape contains a particle system prototype stored as a memory stream) Use the createInstance method to insert the system in a scene To load the shape from a file, use a shape stream.

Definition at line 60 of file particle_system_shape.h.


Constructor & Destructor Documentation

NL3D::CParticleSystemShape::CParticleSystemShape  
 

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

Definition at line 58 of file particle_system_shape.cpp.

References _DefaultPos, _DefaultRotQuat, _DefaultScale, _DefaultTriggerTrack, and _UserParamDefaultTrack.

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

Dtor.

Definition at line 74 of file particle_system_shape.h.


Member Function Documentation

void NL3D::CParticleSystemShape::buildFromPS const NL3D::CParticleSystem   ps
 

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

A prototype will be created by copying the system in a memory stream NOTE : For now, prefer the instanciation from a file, which do not need reallocation

Definition at line 129 of file particle_system_shape.cpp.

References _DestroyModelWhenOutOfRange, _DestroyWhenOutOfFrustum, _MaxViewDist, _ParticleSystemProto, _PrecomputedBBox, _Sharing, _UsePrecomputedBBox, CParticleSystem, NLMISC::CMemStream::invert, NLMISC::IStream::isReading, nlassert, and NLMISC::IStream::serialPtr.

CTransformShape * NL3D::CParticleSystemShape::createInstance NL3D::CScene   scene [virtual]
 

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

Parameters:
scene  the scene used to createModel().
Returns:
the specialized instance for this shape.

Reimplemented from NL3D::IShape.

Definition at line 206 of file particle_system_shape.cpp.

References _DefaultPos, _DefaultRotQuat, _DefaultScale, NL3D::CAnimatedValueQuat, NL3D::CAnimatedValueVector, and CParticleSystemModel.

virtual void NL3D::CParticleSystemShape::flushTextures IDriver   driver [inline, protected, virtual]
 

inherited from ishape.

Implements NL3D::IShape.

Definition at line 144 of file particle_system_shape.h.

void NL3D::CParticleSystemShape::getAABBox NLMISC::CAABBox   bbox const [virtual]
 

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

Reimplemented from NL3D::IShape.

Definition at line 160 of file particle_system_shape.cpp.

References _PrecomputedBBox, _UsePrecomputedBBox, NLMISC::CVector::Null, NLMISC::CAABBox::setCenter, and NLMISC::CAABBox::setHalfSize.

CTrackDefaultVector* NL3D::CParticleSystemShape::getDefaultPos   [inline]
 

Definition at line 123 of file particle_system_shape.h.

References _DefaultPos.

CTrackDefaultQuat* NL3D::CParticleSystemShape::getDefaultRotQuat   [inline]
 

Definition at line 125 of file particle_system_shape.h.

References _DefaultRotQuat.

CTrackDefaultVector* NL3D::CParticleSystemShape::getDefaultScale   [inline]
 

Definition at line 124 of file particle_system_shape.h.

References _DefaultScale.

CTrackDefaultBool* NL3D::CParticleSystemShape::getDefaultTriggerTrack void    [inline]
 

get a the trigger default track.

Definition at line 104 of file particle_system_shape.h.

References _DefaultTriggerTrack.

virtual float NL3D::CParticleSystemShape::getNumTriangles float    distance [inline, virtual]
 

this method is meaningless here : the load balancing observer for particle system compute the number of triangles from the Model, not the shape.

Implements NL3D::IShape.

Definition at line 118 of file particle_system_shape.h.

CTrackDefaultFloat* NL3D::CParticleSystemShape::getUserParamDefaultTrack uint    numTrack [inline]
 

get a the user param default tracks.

Definition at line 96 of file particle_system_shape.h.

References _UserParamDefaultTrack, and nlassert.

CParticleSystem * NL3D::CParticleSystemShape::instanciatePS CScene   scene
 

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

A particle system may need to call this when a system is back in the frustum

Definition at line 174 of file particle_system_shape.cpp.

References _ParticleSystemProto, _SharedSystem, _Sharing, CParticleSystem, NLMISC::CMemStream::invert, NLMISC::IStream::isReading, NLMISC::CMemStream::resetPtrTable, NLMISC::CMemStream::seek, and NLMISC::IStream::serialPtr.

bool NL3D::CParticleSystemShape::isShared   const [inline]
 

Definition at line 129 of file particle_system_shape.h.

References _Sharing.

NL3D::CParticleSystemShape::NLMISC_DECLARE_CLASS CParticleSystemShape   
 

void NL3D::CParticleSystemShape::render NL3D::IDriver   drv,
CTransformShape   trans,
bool    passOpaque
[virtual]
 

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

CTransfromShape call this method in the render traversal.

Implements NL3D::IShape.

Definition at line 226 of file particle_system_shape.cpp.

References CParticleSystem, CParticleSystemModel, H_AUTO, nlassert, PARTICLES_CHECK_MEM, and NL3D::TAnimationTime.

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

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

Implements NLMISC::IStreamable.

Definition at line 76 of file particle_system_shape.cpp.


Friends And Related Function Documentation

friend class CParticleSystem [friend]
 

Definition at line 135 of file particle_system_shape.h.

Referenced by buildFromPS, instanciatePS, and render.

friend class CParticleSystemClipObs [friend]
 

Definition at line 134 of file particle_system_shape.h.

friend class CParticleSystemDetailObs [friend]
 

Definition at line 133 of file particle_system_shape.h.

friend class CParticleSystemModel [friend]
 

Definition at line 132 of file particle_system_shape.h.

Referenced by createInstance, and render.


Member Data Documentation

CTrackDefaultVector NL3D::CParticleSystemShape::_DefaultPos [protected]
 

Transform default tracks.

Definition at line 159 of file particle_system_shape.h.

Referenced by CParticleSystemShape, createInstance, and getDefaultPos.

CTrackDefaultQuat NL3D::CParticleSystemShape::_DefaultRotQuat [protected]
 

Definition at line 161 of file particle_system_shape.h.

Referenced by CParticleSystemShape, createInstance, and getDefaultRotQuat.

CTrackDefaultVector NL3D::CParticleSystemShape::_DefaultScale [protected]
 

Definition at line 160 of file particle_system_shape.h.

Referenced by CParticleSystemShape, createInstance, and getDefaultScale.

CTrackDefaultBool NL3D::CParticleSystemShape::_DefaultTriggerTrack [protected]
 

Trigger default track.

Definition at line 164 of file particle_system_shape.h.

Referenced by CParticleSystemShape, and getDefaultTriggerTrack.

bool NL3D::CParticleSystemShape::_DestroyModelWhenOutOfRange [protected]
 

Definition at line 170 of file particle_system_shape.h.

Referenced by buildFromPS.

bool NL3D::CParticleSystemShape::_DestroyWhenOutOfFrustum [protected]
 

Definition at line 169 of file particle_system_shape.h.

Referenced by buildFromPS.

float NL3D::CParticleSystemShape::_MaxViewDist [protected]
 

Definition at line 152 of file particle_system_shape.h.

Referenced by buildFromPS.

NLMISC::CMemStream NL3D::CParticleSystemShape::_ParticleSystemProto [protected]
 

A memory stream containing a particle system.

Each system is instanciated from this prototype Nevertheless, we store some more system infos which are needed for its lifecycle mgt.

Definition at line 151 of file particle_system_shape.h.

Referenced by buildFromPS, and instanciatePS.

NLMISC::CAABBox NL3D::CParticleSystemShape::_PrecomputedBBox [protected]
 

Definition at line 153 of file particle_system_shape.h.

Referenced by buildFromPS, and getAABBox.

NLMISC::CRefPtr<CParticleSystem> NL3D::CParticleSystemShape::_SharedSystem [protected]
 

For sharing, this tells us if there's a system already instanciated that we could use for sharing.

Definition at line 167 of file particle_system_shape.h.

Referenced by instanciatePS.

bool NL3D::CParticleSystemShape::_Sharing [protected]
 

Definition at line 172 of file particle_system_shape.h.

Referenced by buildFromPS, instanciatePS, and isShared.

bool NL3D::CParticleSystemShape::_UsePrecomputedBBox [protected]
 

Definition at line 171 of file particle_system_shape.h.

Referenced by buildFromPS, and getAABBox.

CTrackDefaultFloat NL3D::CParticleSystemShape::_UserParamDefaultTrack[4] [protected]
 

the default track for animation of user parameters.

Definition at line 156 of file particle_system_shape.h.

Referenced by CParticleSystemShape, and getUserParamDefaultTrack.


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