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

#include <ps_shockwave.h>

Inheritance diagram for NL3D::CPSShockWave:

NL3D::CPSParticle NL3D::CPSSizedParticle NL3D::CPSColoredParticle NL3D::CPSTexturedParticle NL3D::CPSRotated3DPlaneParticle NL3D::CPSRotated2DParticle NL3D::CPSMaterial NL3D::CPSLocatedBindable NLMISC::IStreamable NLMISC::IClassable List of all members.

Public Methods

 CPSShockWave (uint nbSeg=9, float radiusCut=0.8f, CSmartPtr< ITexture > tex=NULL)
 =================================================================================. More...

void setNbSegs (uint nbSeg)
 =================================================================================. More...

uint getNbSegs (void) const
 retrieve the number of segs. More...

void setRadiusCut (float aRatio)
 =================================================================================. More...

float getRadiusCut (void) const
 get the radius ratio. More...

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

 NLMISC_DECLARE_CLASS (CPSShockWave)
virtual bool completeBBox (NLMISC::CAABBox &box) const
 =================================================================================. More...

virtual bool hasTransparentFaces (void)
 =================================================================================. More...

virtual bool hasOpaqueFaces (void)
 =================================================================================. More...

virtual uint32 getMaxNumFaces (void) const
 =================================================================================. More...

void setUFactor (float value)
 =================================================================================. More...

float getUFactor (void) const
 get the U factor for textures. More...


Protected Methods

void updateVbColNUVForRender (uint32 startIndex, uint32 size, uint32 srcStep, CVertexBuffer &vb)
 =================================================================================. More...

virtual void updateMatAndVbForColor (void)
 =================================================================================. More...

virtual void updateMatAndVbForTexture (void)
 =================================================================================. More...

virtual void newElement (CPSLocated *emitterLocated, uint32 emitterIndex)
 =================================================================================. More...

virtual void deleteElement (uint32 index)
 =================================================================================. More...

virtual void resize (uint32 size)
 =================================================================================. More...

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

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

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

virtual CPSLocatedgetPlaneBasisOwner (void)
 if this is false, constant size will be used instead of a scheme deriver must return their owner there. More...

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


Private Types

typedef std::hash_map< uint,
CVertexBuffer
TVBMap
typedef std::hash_map< uint,
CPrimitiveBlock
TPBMap

Private Methods

void getVBnPB (CVertexBuffer *&vb, CPrimitiveBlock *&pb)
 =================================================================================. More...

uint getNumShockWavesInVB () const
 =================================================================================. More...

void setupUFactor ()
 =================================================================================. More...

virtual void draw (bool opaque)
 =================================================================================. More...

virtual void init (void)
 =================================================================================. More...


Private Attributes

uint32 _NbSeg
float _RadiusCut
float _UFactor

Static Private Attributes

TPBMap _PBMap
TVBMap _VBMap
TVBMap _AnimTexVBMap
TVBMap _ColoredVBMap
TVBMap _ColoredAnimTexVBMap

Friends

class CPSShockWaveHelper

Member Typedef Documentation

typedef std::hash_map<uint, CPrimitiveBlock> NL3D::CPSShockWave::TPBMap [private]
 

Definition at line 125 of file ps_shockwave.h.

typedef std::hash_map<uint, CVertexBuffer> NL3D::CPSShockWave::TVBMap [private]
 

Definition at line 124 of file ps_shockwave.h.

Referenced by getVBnPB.


Constructor & Destructor Documentation

NL3D::CPSShockWave::CPSShockWave uint    nbSeg = 9,
float    radiusCut = 0.8f,
CSmartPtr< ITexture   tex = NULL
 

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

Parameters:
nbSeg  : number of seg for the circonference of the shockwave. must be >= 3 and <= 64.
radiusCut  : indicate how much to subtract to the outter radius to get the inner radius
tex  : the texture that must be applied to the shockwave

Definition at line 186 of file ps_shockwave.cpp.

References NL3D::CPSLocatedBindable::_Name, init, nlassert, and NL3D::CPSTexturedParticle::setTexture.


Member Function Documentation

bool NL3D::CPSShockWave::completeBBox NLMISC::CAABBox   box const [virtual]
 

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

Reimplemented from NL3D::CPSLocatedBindable.

Definition at line 344 of file ps_shockwave.cpp.

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

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

Implements NL3D::CPSParticle.

Definition at line 440 of file ps_shockwave.cpp.

References NL3D::CPSRotated2DParticle::deleteAngle2DElement, NL3D::CPSColoredParticle::deleteColorElement, NL3D::CPSSizedParticle::deleteSizeElement, NL3D::CPSTexturedParticle::deleteTextureIndexElement, and index.

void NL3D::CPSShockWave::draw bool    opaque [private, virtual]
 

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

Reimplemented from NL3D::CPSParticle.

Definition at line 286 of file ps_shockwave.cpp.

References NL3D::CPSColoredParticle::_Color, NL3D::CPSColoredParticle::_ColorScheme, NL3D::CPSMaterial::_Mat, NL3D::CPSLocatedBindable::_Owner, NL3D::CPSParticle::computeSrcStep, NL3D::CPSMaterial::forceModulateConstantColor, NLMISC::CRGBA::modulateFromColor, setupUFactor, NL3D::CPSParticle::step, and NL3D::TIteratorVectStep1616.

virtual CPSLocated* NL3D::CPSShockWave::getAngle2DOwner void    [inline, protected, virtual]
 

deriver must return their owner there.

Implements NL3D::CPSRotated2DParticle.

Definition at line 119 of file ps_shockwave.h.

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

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

deriver must return their owner there.

Implements NL3D::CPSColoredParticle.

Definition at line 117 of file ps_shockwave.h.

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

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

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

Implements NL3D::CPSParticle.

Definition at line 199 of file ps_shockwave.cpp.

References _NbSeg, NL3D::CPSLocatedBindable::_Owner, and nlassert.

uint NL3D::CPSShockWave::getNbSegs void    const [inline]
 

retrieve the number of segs.

Definition at line 56 of file ps_shockwave.h.

References _NbSeg.

uint NL3D::CPSShockWave::getNumShockWavesInVB   const [private]
 

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

Definition at line 504 of file ps_shockwave.cpp.

References _NbSeg, and NL3D::NumVertsInBuffer.

Referenced by getVBnPB.

virtual CPSLocated* NL3D::CPSShockWave::getPlaneBasisOwner void    [inline, protected, virtual]
 

if this is false, constant size will be used instead of a scheme deriver must return their owner there.

Implements NL3D::CPSRotated3DPlaneParticle.

Definition at line 120 of file ps_shockwave.h.

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

float NL3D::CPSShockWave::getRadiusCut void    const [inline]
 

get the radius ratio.

Definition at line 64 of file ps_shockwave.h.

References _RadiusCut.

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

deriver must return their owner there.

Implements NL3D::CPSSizedParticle.

Definition at line 118 of file ps_shockwave.h.

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

virtual CPSLocated* NL3D::CPSShockWave::getTextureIndexOwner void    [inline, protected, virtual]
 

deriver must return their owner there.

Implements NL3D::CPSTexturedParticle.

Definition at line 121 of file ps_shockwave.h.

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

float NL3D::CPSShockWave::getUFactor void    const [inline]
 

get the U factor for textures.

Definition at line 87 of file ps_shockwave.h.

References _UFactor.

void NL3D::CPSShockWave::getVBnPB CVertexBuffer *&    vb,
CPrimitiveBlock *&    pb
[private]
 

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

Definition at line 459 of file ps_shockwave.cpp.

References _AnimTexVBMap, _ColoredAnimTexVBMap, _ColoredVBMap, NL3D::CPSColoredParticle::_ColorScheme, _NbSeg, _PBMap, NL3D::CPSTexturedParticle::_TexGroup, _VBMap, getNumShockWavesInVB, index, NLAISCRIPT::l, nlassert, and TVBMap.

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

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

Implements NL3D::CPSParticle.

Definition at line 212 of file ps_shockwave.cpp.

References hasTransparentFaces.

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

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

Implements NL3D::CPSParticle.

Definition at line 206 of file ps_shockwave.cpp.

References NL3D::CPSMaterial::getBlendingMode.

Referenced by hasOpaqueFaces.

void NL3D::CPSShockWave::init void    [private, virtual]
 

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

Definition at line 351 of file ps_shockwave.cpp.

References NL3D::CPSMaterial::_Mat, updateMatAndVbForColor, and updateMatAndVbForTexture.

Referenced by CPSShockWave.

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

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

They are generated according to the properties of the class

Implements NL3D::CPSParticle.

Definition at line 431 of file ps_shockwave.cpp.

References NL3D::CPSRotated2DParticle::newAngle2DElement, NL3D::CPSColoredParticle::newColorElement, NL3D::CPSSizedParticle::newSizeElement, and NL3D::CPSTexturedParticle::newTextureIndexElement.

NL3D::CPSShockWave::NLMISC_DECLARE_CLASS CPSShockWave   
 

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

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

Size is the max number of element to be contained. DERIVERS MUST CALL THEIR PARENT VERSION should not be called directly. Call CPSLocated::resize instead

Implements NL3D::CPSParticle.

Definition at line 449 of file ps_shockwave.cpp.

References nlassert, NL3D::CPSRotated2DParticle::resizeAngle2D, NL3D::CPSColoredParticle::resizeColor, NL3D::CPSSizedParticle::resizeSize, and NL3D::CPSTexturedParticle::resizeTextureIndex.

Referenced by setNbSegs, setRadiusCut, setUFactor, and updateMatAndVbForColor.

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

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

Reimplemented from NL3D::CPSParticle.

Definition at line 248 of file ps_shockwave.cpp.

void NL3D::CPSShockWave::setNbSegs uint    nbSeg
 

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

See also:
CPSShockWave()

Definition at line 218 of file ps_shockwave.cpp.

References _NbSeg, NL3D::CPSLocatedBindable::_Owner, nlassert, NL3D::CPSParticle::notifyOwnerMaxNumFacesChanged, and resize.

void NL3D::CPSShockWave::setRadiusCut float    aRatio
 

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

See also:
CPSShockWave()

Definition at line 230 of file ps_shockwave.cpp.

References NL3D::CPSLocatedBindable::_Owner, _RadiusCut, and resize.

void NL3D::CPSShockWave::setUFactor float    value
 

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

Definition at line 240 of file ps_shockwave.cpp.

References NL3D::CPSLocatedBindable::_Owner, _UFactor, nlassert, resize, and value.

void NL3D::CPSShockWave::setupUFactor   [inline, private]
 

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

Definition at line 267 of file ps_shockwave.cpp.

References NL3D::CPSMaterial::_Mat, _UFactor, NLMISC::CVector::I, NLMISC::CVector::J, and NLMISC::CVector::K.

Referenced by draw.

void NL3D::CPSShockWave::updateMatAndVbForColor void    [protected, virtual]
 

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

Implements NL3D::CPSColoredParticle.

Definition at line 415 of file ps_shockwave.cpp.

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

Referenced by init.

void NL3D::CPSShockWave::updateMatAndVbForTexture void    [protected, virtual]
 

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

Implements NL3D::CPSTexturedParticle.

Definition at line 425 of file ps_shockwave.cpp.

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

Referenced by init.

void NL3D::CPSShockWave::updateVbColNUVForRender uint32    startIndex,
uint32    size,
uint32    srcStep,
CVertexBuffer   vb
[protected]
 

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

Definition at line 361 of file ps_shockwave.cpp.

References NL3D::CPSColoredParticle::_ColorScheme, _NbSeg, NL3D::CPSLocatedBindable::_Owner, NL3D::CPSTexturedParticle::_TexGroup, NL3D::CPSTexturedParticle::_TextureIndex, NL3D::CPSTexturedParticle::_TextureIndexScheme, _UFactor, nlassert, NL3D::ShockWaveBufSize, and stride.


Friends And Related Function Documentation

friend class CPSShockWaveHelper [friend]
 

Definition at line 139 of file ps_shockwave.h.


Member Data Documentation

CPSShockWave::TVBMap NL3D::CPSShockWave::_AnimTexVBMap [static, private]
 

Definition at line 52 of file ps_shockwave.cpp.

Referenced by getVBnPB.

CPSShockWave::TVBMap NL3D::CPSShockWave::_ColoredAnimTexVBMap [static, private]
 

Definition at line 54 of file ps_shockwave.cpp.

Referenced by getVBnPB.

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

Definition at line 53 of file ps_shockwave.cpp.

Referenced by getVBnPB.

uint32 NL3D::CPSShockWave::_NbSeg [private]
 

Definition at line 133 of file ps_shockwave.h.

Referenced by getMaxNumFaces, getNbSegs, getNumShockWavesInVB, getVBnPB, setNbSegs, and updateVbColNUVForRender.

CPSShockWave::TPBMap NL3D::CPSShockWave::_PBMap [static, private]
 

Definition at line 50 of file ps_shockwave.cpp.

Referenced by getVBnPB.

float NL3D::CPSShockWave::_RadiusCut [private]
 

Definition at line 135 of file ps_shockwave.h.

Referenced by getRadiusCut, and setRadiusCut.

float NL3D::CPSShockWave::_UFactor [private]
 

Definition at line 137 of file ps_shockwave.h.

Referenced by getUFactor, setUFactor, setupUFactor, and updateVbColNUVForRender.

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

Definition at line 51 of file ps_shockwave.cpp.

Referenced by getVBnPB.


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