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

This class is for mesh handling. More...

#include <ps_mesh.h>

Inheritance diagram for NL3D::CPSMesh:

NL3D::CPSParticle NL3D::CPSSizedParticle NL3D::CPSRotated3DPlaneParticle NL3D::CPSRotated2DParticle NL3D::CPSShapeParticle NL3D::CPSLocatedBindable NLMISC::IStreamable NLMISC::IClassable List of all members.

Public Methods

 CPSMesh (const std::string &shape="")
 construct the system by using the given shape for mesh. More...

void setShape (const std::string &shape)
 set a new shape for that kind of particles. More...

std::string getShape (void) const
 get the shape used for those particles. More...

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

virtual ~CPSMesh ()
 NLMISC_DECLARE_CLASS (CPSMesh)
void invalidate ()
 invalidate the transformShapes that were inserted in the scene, so they need to be rebuilt during the next rendering. 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...


Protected Types

typedef CPSAttrib< CTransformShape * > TInstanceCont

Protected Methods

virtual void newElement (CPSLocated *emitterLocated, uint32 emitterIndex)
 Generate a new element for this bindable. More...

virtual void deleteElement (uint32 index)
 Delete an element given its index Attributes of the located that hold this bindable are still accessible for the index given index out of range -> nl_assert. More...

virtual void step (TPSProcessPass pass, TAnimationTime ellapsedTime, TAnimationTime realEt)
 process one pass for the particles. More...

virtual void updatePos ()
 in fact we don't draw the meshs, we just update their pos... More...

virtual void resize (uint32 size)
 Resize the bindable attributes containers. 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...


Protected Attributes

std::string _Shape
TInstanceCont _Instances
bool _Invalidated

Detailed Description

This class is for mesh handling.

It operates with any mesh, but it must insert them in the scene... It is not very adapted for lots of little meshs.. To create the mesh basis, we use CPlaneBasis here. It give us the I and J vector of the basis for each mesh and compute K ( K = I ^ J)

Definition at line 72 of file ps_mesh.h.


Member Typedef Documentation

typedef CPSAttrib<CTransformShape *> NL3D::CPSMesh::TInstanceCont [protected]
 

Definition at line 145 of file ps_mesh.h.


Constructor & Destructor Documentation

NL3D::CPSMesh::CPSMesh const std::string &    shape = "" [inline]
 

construct the system by using the given shape for mesh.

Definition at line 80 of file ps_mesh.h.

References _Invalidated, NL3D::CPSLocatedBindable::_Name, and _Shape.

NL3D::CPSMesh::~CPSMesh   [virtual]
 

Definition at line 412 of file ps_mesh.cpp.

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


Member Function Documentation

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

Delete an element given its index Attributes of the located that hold this bindable are still accessible for the index given index out of range -> nl_assert.

Implements NL3D::CPSParticle.

Definition at line 238 of file ps_mesh.cpp.

References _Instances, NL3D::CPSLocatedBindable::_Owner, NL3D::CPSRotated2DParticle::deleteAngle2DElement, NL3D::CPSRotated3DPlaneParticle::deletePlaneBasisElement, NL3D::CPSSizedParticle::deleteSizeElement, index, and nlassert.

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

deriver must return their owner there.

Implements NL3D::CPSRotated2DParticle.

Definition at line 154 of file ps_mesh.h.

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

uint32 NL3D::CPSMesh::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 182 of file ps_mesh.cpp.

virtual CPSLocated* NL3D::CPSMesh::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 155 of file ps_mesh.h.

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

std::string NL3D::CPSMesh::getShape void    const [inline, virtual]
 

get the shape used for those particles.

Implements NL3D::CPSShapeParticle.

Definition at line 90 of file ps_mesh.h.

References _Shape.

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

deriver must return their owner there.

Implements NL3D::CPSSizedParticle.

Definition at line 153 of file ps_mesh.h.

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

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

return true if there are Opaque faces in the object.

Implements NL3D::CPSParticle.

Definition at line 196 of file ps_mesh.cpp.

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

return true if there are transparent faces in the object.

Implements NL3D::CPSParticle.

Definition at line 189 of file ps_mesh.cpp.

void NL3D::CPSMesh::invalidate   [inline]
 

invalidate the transformShapes that were inserted in the scene, so they need to be rebuilt during the next rendering.

This is useful for clipping, or when the system has been loaded

Definition at line 104 of file ps_mesh.h.

References _Instances, and _Invalidated.

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

Generate a new element for this bindable.

They are generated according to the properties of the class

Implements NL3D::CPSParticle.

Definition at line 203 of file ps_mesh.cpp.

References _Instances, NL3D::CPSLocatedBindable::_Owner, _Shape, NL3D::CreateDummyShape, NL3D::DummyShapeName, NL3D::CPSRotated2DParticle::newAngle2DElement, NL3D::CPSRotated3DPlaneParticle::newPlaneBasisElement, NL3D::CPSSizedParticle::newSizeElement, and nlassert.

NL3D::CPSMesh::NLMISC_DECLARE_CLASS CPSMesh   
 

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

Resize the bindable attributes containers.

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 401 of file ps_mesh.cpp.

References _Instances, nlassert, NL3D::CPSRotated2DParticle::resizeAngle2D, NL3D::CPSRotated3DPlaneParticle::resizePlaneBasis, and NL3D::CPSSizedParticle::resizeSize.

Referenced by updatePos.

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

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

Reimplemented from NL3D::CPSParticle.

Definition at line 166 of file ps_mesh.cpp.

void NL3D::CPSMesh::setShape const std::string &    shape [inline, virtual]
 

set a new shape for that kind of particles.

Implements NL3D::CPSShapeParticle.

Definition at line 87 of file ps_mesh.h.

References _Shape.

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

process one pass for the particles.

The default behaviour shows the particles

Reimplemented from NL3D::CPSParticle.

Definition at line 258 of file ps_mesh.cpp.

References NL3D::PSSolidRender, NL3D::PSToolRender, NL3D::CPSParticle::showTool, NL3D::TAnimationTime, NL3D::TPSProcessPass, and updatePos.

void NL3D::CPSMesh::updatePos   [protected, virtual]
 

in fact we don't draw the meshs, we just update their pos...

Definition at line 273 of file ps_mesh.cpp.

References NL3D::CPSRotated2DParticle::_Angle2D, NL3D::CPSRotated2DParticle::_Angle2DScheme, _Instances, _Invalidated, NL3D::CPSLocatedBindable::_Owner, NL3D::CPSSizedParticle::_ParticleSize, NL3D::CPSRotated3DPlaneParticle::_PlaneBasis, NL3D::CPSRotated3DPlaneParticle::_PlaneBasisScheme, _Shape, NL3D::CPSSizedParticle::_SizeScheme, NL3D::CPSLocatedBindable::getSysMat, nlassert, and resize.

Referenced by step.


Member Data Documentation

TInstanceCont NL3D::CPSMesh::_Instances [protected]
 

Definition at line 147 of file ps_mesh.h.

Referenced by deleteElement, invalidate, newElement, resize, updatePos, and ~CPSMesh.

bool NL3D::CPSMesh::_Invalidated [protected]
 

Definition at line 151 of file ps_mesh.h.

Referenced by CPSMesh, invalidate, and updatePos.

std::string NL3D::CPSMesh::_Shape [protected]
 

Definition at line 142 of file ps_mesh.h.

Referenced by CPSMesh, getShape, newElement, setShape, and updatePos.


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