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

A ribbon look at particle. More...

#include <ps_ribbon_look_at.h>

Inheritance diagram for NL3D::CPSRibbonLookAt:

NL3D::CPSRibbonBase NL3D::CPSSizedParticle NL3D::CPSColoredParticle NL3D::CPSMaterial NL3D::CPSTexturedParticleNoAnim NL3D::CPSParticle NL3D::CPSTailParticle NL3D::CPSLocatedBindable NLMISC::IStreamable NLMISC::IClassable List of all members.

Vertex buffers & their corresponding index buffers. We keep a map of pretextured vertex buffer (with or without colors).

Vb for ribbons that have the same size are shared.

typedef std::hash_map< uint,
CVBnPB
TVBMap
CVBnPBgetVBnPB ()
 get a vertex buffer and a primitive suited for the current ribbon. More...

uint getNumRibbonsInVB () const
 get the number of ribbons contained in a vb for a given length. (e.g the number of ribbons that can be batched). More...

TVBMap _VBMap
TVBMap _ColoredVBMap

Public Methods

virtual void step (TPSProcessPass pass, TAnimationTime ellapsedTime, TAnimationTime realEt)
 inherited from CPSParticle. More...

virtual bool hasTransparentFaces (void)
 return true if there are transparent faces in the object. More...

virtual bool hasOpaqueFaces (void)
 return true if there are Opaque faces in the object. More...

virtual uint32 getMaxNumFaces (void) const
 return the max number of faces needed for display. This is needed for LOD balancing. More...

Object
 CPSRibbonLookAt ()
 ctor. More...

 ~CPSRibbonLookAt ()
 dtor. More...

virtual void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
 serialisation. Derivers must override this, and call their parent version. More...

 NLMISC_DECLARE_CLASS (CPSRibbonLookAt)
Texture
void setTexture (CSmartPtr< ITexture > tex)
 Version 4 : added CPSRibbonBase has a base class instead of CPSParticle. More...

ITexturegetTexture (void)
 get the texture used for this particle. More...

const ITexturegetTexture (void) const
Behaviour
virtual void setColorFading (bool onOff=true)
 (de)activate color fading when its done, colors fades to black along the tail. More...

virtual bool getColorFading (void) const
 Test wether color fading is activated. More...

virtual void setSystemBasis (bool yes)
 tells in which basis is the tail It requires one transform per particle if it is not the same as the located that hold that particle The default is false. More...

virtual bool isInSystemBasis (void) const
 return true if the tails are in the system basis. More...


Protected Methods

virtual void newElement (CPSLocated *emitterLocated, uint32 emitterIndex)
 We support Auto-LOD for ribbons, although there is a built-in LOD (that change the geometry rather than the number of ribbons) that gives better result (both can be used simultaneously). More...

virtual void deleteElement (uint32 index)
 inherited from CPSLocatedBindable. More...

virtual void resize (uint32 size)
 inherited from CPSLocatedBindable. More...

virtual CPSLocatedgetSizeOwner (void)
 deriver must return their owner there. More...

virtual CPSLocatedgetColorOwner (void)
 deriver must return their owner there. More...


Protected Attributes

CSmartPtr< ITexture_Tex

Private Methods

virtual void updateMatAndVbForColor (void)
 update the material and the vb so that they match the color scheme. Inherited from CPSColoredParticle. More...

void displayRibbons (uint32 nbRibbons, uint32 srcStep)
 display a set of ribbons. More...


Detailed Description

A ribbon look at particle.

It is like a ribbon, but textured (with no animation), and it always faces the user

Definition at line 41 of file ps_ribbon_look_at.h.


Member Typedef Documentation

typedef std::hash_map<uint, CVBnPB> NL3D::CPSRibbonLookAt::TVBMap [private]
 

Definition at line 148 of file ps_ribbon_look_at.h.

Referenced by getVBnPB.


Constructor & Destructor Documentation

NL3D::CPSRibbonLookAt::CPSRibbonLookAt  
 

ctor.

Definition at line 55 of file ps_ribbon_look_at.cpp.

NL3D::CPSRibbonLookAt::~CPSRibbonLookAt  
 

dtor.

Definition at line 60 of file ps_ribbon_look_at.cpp.


Member Function Documentation

void NL3D::CPSRibbonLookAt::deleteElement uint32    index [protected, virtual]
 

inherited from CPSLocatedBindable.

Reimplemented from NL3D::CPSRibbonBase.

Definition at line 168 of file ps_ribbon_look_at.cpp.

References NL3D::CPSColoredParticle::deleteColorElement, NL3D::CPSSizedParticle::deleteSizeElement, and index.

void NL3D::CPSRibbonLookAt::displayRibbons uint32    nbRibbons,
uint32    srcStep
[private]
 

display a set of ribbons.

Definition at line 317 of file ps_ribbon_look_at.cpp.

References NL3D::CPSColoredParticle::_ColorScheme, NL3D::CPSMaterial::_Mat, NL3D::CPSLocatedBindable::_Owner, NL3D::CPSRibbonBase::_Parametric, NL3D::CPSSizedParticle::_ParticleSize, NL3D::CPSSizedParticle::_SizeScheme, NL3D::CPSRibbonBase::_UsedNbSegs, NL3D::CPSRibbonBase::_UsedSegDuration, NL3D::BuildSlice, NL3D::CPSRibbonBase::computeRibbon, NL3D::CPSMaterial::forceModulateConstantColor, NL3D::CPSLocatedBindable::getDriver, getNumRibbonsInVB, NL3D::CPSLocatedBindable::getSysMat, getVBnPB, NL3D::CPSLocatedBindable::getViewMat, NL3D::MakeProj, min, nlassert, NL3D::CPSLocatedBindable::setupDriverModelMatrix, and NL3D::TRibbonVect.

Referenced by step.

virtual bool NL3D::CPSRibbonLookAt::getColorFading void    const [inline, virtual]
 

Test wether color fading is activated.

NOT SUPPORTED FOR NOW

Implements NL3D::CPSTailParticle.

Definition at line 77 of file ps_ribbon_look_at.h.

virtual CPSLocated* NL3D::CPSRibbonLookAt::getColorOwner void    [inline, protected, virtual]
 

deriver must return their owner there.

Implements NL3D::CPSColoredParticle.

Definition at line 123 of file ps_ribbon_look_at.h.

References NL3D::CPSLocatedBindable::_Owner, and NL3D::CPSLocatedBindable::CPSLocated.

uint32 NL3D::CPSRibbonLookAt::getMaxNumFaces void    const [virtual]
 

return the max number of faces needed for display. This is needed for LOD balancing.

Implements NL3D::CPSParticle.

Definition at line 523 of file ps_ribbon_look_at.cpp.

References NL3D::CPSRibbonBase::_NbSegs, NL3D::CPSLocatedBindable::_Owner, and nlassert.

uint NL3D::CPSRibbonLookAt::getNumRibbonsInVB   const [private]
 

get the number of ribbons contained in a vb for a given length. (e.g the number of ribbons that can be batched).

Definition at line 578 of file ps_ribbon_look_at.cpp.

References NL3D::CPSRibbonBase::_UsedNbSegs.

Referenced by displayRibbons, and getVBnPB.

virtual CPSLocated* NL3D::CPSRibbonLookAt::getSizeOwner void    [inline, protected, virtual]
 

deriver must return their owner there.

Implements NL3D::CPSSizedParticle.

Definition at line 122 of file ps_ribbon_look_at.h.

References NL3D::CPSLocatedBindable::_Owner, and NL3D::CPSLocatedBindable::CPSLocated.

const ITexture* NL3D::CPSRibbonLookAt::getTexture void    const [inline, virtual]
 

Implements NL3D::CPSTexturedParticleNoAnim.

Definition at line 63 of file ps_ribbon_look_at.h.

References _Tex.

ITexture* NL3D::CPSRibbonLookAt::getTexture void    [inline, virtual]
 

get the texture used for this particle.

Implements NL3D::CPSTexturedParticleNoAnim.

Definition at line 62 of file ps_ribbon_look_at.h.

References _Tex.

CPSRibbonLookAt::CVBnPB & NL3D::CPSRibbonLookAt::getVBnPB   [private]
 

get a vertex buffer and a primitive suited for the current ribbon.

Definition at line 532 of file ps_ribbon_look_at.cpp.

References _ColoredVBMap, NL3D::CPSColoredParticle::_ColorScheme, NL3D::CPSRibbonBase::_UsedNbSegs, _VBMap, getNumRibbonsInVB, and TVBMap.

Referenced by displayRibbons.

bool NL3D::CPSRibbonLookAt::hasOpaqueFaces void    [virtual]
 

return true if there are Opaque faces in the object.

Implements NL3D::CPSParticle.

Definition at line 517 of file ps_ribbon_look_at.cpp.

References hasTransparentFaces.

Referenced by step.

bool NL3D::CPSRibbonLookAt::hasTransparentFaces void    [virtual]
 

return true if there are transparent faces in the object.

Implements NL3D::CPSParticle.

Definition at line 510 of file ps_ribbon_look_at.cpp.

References NL3D::CPSMaterial::getBlendingMode.

Referenced by hasOpaqueFaces, and step.

virtual bool NL3D::CPSRibbonLookAt::isInSystemBasis void    const [inline, virtual]
 

return true if the tails are in the system basis.

Implements NL3D::CPSTailParticle.

Definition at line 86 of file ps_ribbon_look_at.h.

void NL3D::CPSRibbonLookAt::newElement CPSLocated   emitterLocated,
uint32    emitterIndex
[protected, virtual]
 

We support Auto-LOD for ribbons, although there is a built-in LOD (that change the geometry rather than the number of ribbons) that gives better result (both can be used simultaneously).

Reimplemented from NL3D::CPSRibbonBase.

Definition at line 159 of file ps_ribbon_look_at.cpp.

References NL3D::CPSColoredParticle::newColorElement, and NL3D::CPSSizedParticle::newSizeElement.

NL3D::CPSRibbonLookAt::NLMISC_DECLARE_CLASS CPSRibbonLookAt   
 

void NL3D::CPSRibbonLookAt::resize uint32    size [protected, virtual]
 

inherited from CPSLocatedBindable.

Reimplemented from NL3D::CPSRibbonBase.

Definition at line 177 of file ps_ribbon_look_at.cpp.

References nlassert, NL3D::CPSColoredParticle::resizeColor, and NL3D::CPSSizedParticle::resizeSize.

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

serialisation. Derivers must override this, and call their parent version.

Reimplemented from NL3D::CPSRibbonBase.

Definition at line 66 of file ps_ribbon_look_at.cpp.

virtual void NL3D::CPSRibbonLookAt::setColorFading bool    onOff = true [inline, virtual]
 

(de)activate color fading when its done, colors fades to black along the tail.

NOT SUPPORTED FOR NOW

Implements NL3D::CPSTailParticle.

Definition at line 72 of file ps_ribbon_look_at.h.

virtual void NL3D::CPSRibbonLookAt::setSystemBasis bool    yes [inline, virtual]
 

tells in which basis is the tail It requires one transform per particle if it is not the same as the located that hold that particle The default is false.

With that you can control if a rotation of the system will rotate the tail

Implements NL3D::CPSTailParticle.

Definition at line 83 of file ps_ribbon_look_at.h.

void NL3D::CPSRibbonLookAt::setTexture CSmartPtr< ITexture   tex [virtual]
 

Version 4 : added CPSRibbonBase has a base class instead of CPSParticle.

Implements NL3D::CPSTexturedParticleNoAnim.

Definition at line 111 of file ps_ribbon_look_at.cpp.

References _Tex, and updateMatAndVbForColor.

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

inherited from CPSParticle.

See also:
_PersistAfterDeath()

Reimplemented from NL3D::CPSParticle.

Definition at line 119 of file ps_ribbon_look_at.cpp.

References NL3D::CPSMaterial::_Mat, NL3D::CPSLocatedBindable::_Owner, NL3D::CPSRibbonBase::_Parametric, NL3D::CPSParticle::computeSrcStep, displayRibbons, hasOpaqueFaces, hasTransparentFaces, NL3D::PSBlendRender, NL3D::PSMotion, NL3D::PSSolidRender, NL3D::PSToolRender, step, NL3D::TAnimationTime, NL3D::TPSProcessPass, and NL3D::CPSRibbonBase::updateGlobals.

Referenced by step.

void NL3D::CPSRibbonLookAt::updateMatAndVbForColor void    [private, virtual]
 

update the material and the vb so that they match the color scheme. Inherited from CPSColoredParticle.

Implements NL3D::CPSColoredParticle.

Definition at line 186 of file ps_ribbon_look_at.cpp.

References NL3D::CPSMaterial::_Mat, and _Tex.

Referenced by setTexture.


Member Data Documentation

CPSRibbonLookAt::TVBMap NL3D::CPSRibbonLookAt::_ColoredVBMap [static, private]
 

Definition at line 52 of file ps_ribbon_look_at.cpp.

Referenced by getVBnPB.

CSmartPtr<ITexture> NL3D::CPSRibbonLookAt::_Tex [protected]
 

Definition at line 110 of file ps_ribbon_look_at.h.

Referenced by getTexture, setTexture, and updateMatAndVbForColor.

CPSRibbonLookAt::TVBMap NL3D::CPSRibbonLookAt::_VBMap [static, private]
 

Definition at line 51 of file ps_ribbon_look_at.cpp.

Referenced by getVBnPB.


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