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

An instance of CMeshMRM. More...

#include <mesh_mrm_instance.h>

Inheritance diagram for NL3D::CMeshMRMInstance:

NL3D::CMeshBaseInstance NL3D::CTransformShape NL3D::CTransform NL3D::IModel NL3D::ITransformable NLMISC::CRefCount NL3D::IAnimatable List of all members.

Static Public Methods

void registerBasic ()
 Call at the begining of the program, to register the model, and the basic observers. More...


Protected Methods

 CMeshMRMInstance ()
 Constructor. More...

virtual ~CMeshMRMInstance ()
 Destructor. More...

Skinning Behavior.
virtual bool isSkinnable () const
 I can be skinned if the mesh is. More...

virtual void setApplySkin (bool state)
 Called when the skin is applied on the skeleton. More...

virtual const std::vector<
sint32 > * 
getSkinBoneUsage () const
 Called for lod character coloring. More...

virtual void renderSkin (float alphaMRM)
 Implementation of the renderSkin. More...

virtual bool supportSkinGrouping () const
 Deriver may support SkinGrouping if isSkinnable(). More...

virtual sint renderSkinGroupGeom (float alphaMRM, uint remainingVertices, uint8 *dest)
 if supportSkinGrouping(), called to transform the VBuffer, and store it into dest. More...

virtual void renderSkinGroupPrimitives (uint baseVertex)
 if supportSkinGrouping(), called to render the primitives of the already skinned vertices (VB activated in the driver). More...

Load balancing methods
virtual void changeMRMDistanceSetup (float distanceFinest, float distanceMiddle, float distanceCoarsest)
 Change MRM Distance setup. More...

virtual const CMRMLevelDetailgetMRMLevelDetail () const
 If the model support MRM, return the level detail setup. default is return NULL. More...


Private Methods

void clearRawSkinCache ()
 Reset the RawSkin Info. More...

void clearShiftedTriangleCache ()
 Reset the _ShiftedTriangleCache Info. More...


Static Private Methods

IModelcreator ()

Private Attributes

CRawSkinNormalCache_RawSkinCache
 Used by CMeshMRMGeom. This a cache for skinning objects, for skinning optimisation. More...

CShiftedTriangleCache_ShiftedTriangleCache
 Used by CMeshMRMGeom. This a cache for skinning objects, for skinning optimisation. More...


Friends

class CMeshMRM
class CMeshMRMGeom

Detailed Description

An instance of CMeshMRM.

NB: no observers are needed, since same functionnality as CMeshBaseInstance.

Author:
Lionel Berenguier , Nevrax France
Date:
2001

Definition at line 58 of file mesh_mrm_instance.h.


Constructor & Destructor Documentation

NL3D::CMeshMRMInstance::CMeshMRMInstance   [inline, protected]
 

Constructor.

Definition at line 66 of file mesh_mrm_instance.h.

References _RawSkinCache, and _ShiftedTriangleCache.

Referenced by creator.

NL3D::CMeshMRMInstance::~CMeshMRMInstance   [protected, virtual]
 

Destructor.

Definition at line 42 of file mesh_mrm_instance.cpp.

References NL3D::CTransform::_FatherSkeletonModel, _RawSkinCache, _ShiftedTriangleCache, and nlassert.


Member Function Documentation

void NL3D::CMeshMRMInstance::changeMRMDistanceSetup float    distanceFinest,
float    distanceMiddle,
float    distanceCoarsest
[protected, virtual]
 

Change MRM Distance setup.

See CMeshBaseInstance::changeMRMDistanceSetup()

Reimplemented from NL3D::CMeshBaseInstance.

Definition at line 107 of file mesh_mrm_instance.cpp.

References CMeshMRM, and NL3D::CTransformShape::Shape.

void NL3D::CMeshMRMInstance::clearRawSkinCache   [private]
 

Reset the RawSkin Info.

Definition at line 66 of file mesh_mrm_instance.cpp.

References _RawSkinCache.

Referenced by setApplySkin.

void NL3D::CMeshMRMInstance::clearShiftedTriangleCache   [private]
 

Reset the _ShiftedTriangleCache Info.

Definition at line 73 of file mesh_mrm_instance.cpp.

References _ShiftedTriangleCache.

Referenced by setApplySkin.

IModel* NL3D::CMeshMRMInstance::creator   [inline, static, private]
 

Reimplemented from NL3D::CMeshBaseInstance.

Definition at line 111 of file mesh_mrm_instance.h.

References CMeshMRMInstance, and NL3D::IModel::IModel.

const CMRMLevelDetail * NL3D::CMeshMRMInstance::getMRMLevelDetail   const [protected, virtual]
 

If the model support MRM, return the level detail setup. default is return NULL.

Reimplemented from NL3D::CTransformShape.

Definition at line 165 of file mesh_mrm_instance.cpp.

References CMeshMRM, and NL3D::CTransformShape::Shape.

const std::vector< sint32 > * NL3D::CMeshMRMInstance::getSkinBoneUsage   const [protected, virtual]
 

Called for lod character coloring.

Reimplemented from NL3D::CTransform.

Definition at line 120 of file mesh_mrm_instance.cpp.

References NL3D::CTransform::_FatherSkeletonModel, CMeshMRM, and NL3D::CTransformShape::Shape.

bool NL3D::CMeshMRMInstance::isSkinnable   const [protected, virtual]
 

I can be skinned if the mesh is.

Reimplemented from NL3D::CTransform.

Definition at line 134 of file mesh_mrm_instance.cpp.

References CMeshMRM, and NL3D::CTransformShape::Shape.

void NL3D::CMeshMRMInstance::registerBasic   [static]
 

Call at the begining of the program, to register the model, and the basic observers.

Reimplemented from NL3D::CMeshBaseInstance.

Definition at line 59 of file mesh_mrm_instance.cpp.

References NL3D::MeshBaseInstanceId, and NL3D::MeshMRMInstanceId.

void NL3D::CMeshMRMInstance::renderSkin float    alphaMRM [protected, virtual]
 

Implementation of the renderSkin.

Reimplemented from NL3D::CTransform.

Definition at line 148 of file mesh_mrm_instance.cpp.

References CMeshMRM, CMeshMRMGeom, NL3D::CTransform::getVisibility, and NL3D::CTransformShape::Shape.

sint NL3D::CMeshMRMInstance::renderSkinGroupGeom float    alphaMRM,
uint    remainingVertices,
uint8   dest
[protected, virtual]
 

if supportSkinGrouping(), called to transform the VBuffer, and store it into dest.

Returns:
number of vertices added to the VBuffer, or -1 if > reaminingVertices

Reimplemented from NL3D::CTransform.

Definition at line 188 of file mesh_mrm_instance.cpp.

References CMeshMRM, CMeshMRMGeom, and NL3D::CTransformShape::Shape.

void NL3D::CMeshMRMInstance::renderSkinGroupPrimitives uint    baseVertex [protected, virtual]
 

if supportSkinGrouping(), called to render the primitives of the already skinned vertices (VB activated in the driver).

Parameters:
baseVertex  value to add to each PBlock index.

Reimplemented from NL3D::CTransform.

Definition at line 197 of file mesh_mrm_instance.cpp.

References CMeshMRM, CMeshMRMGeom, and NL3D::CTransformShape::Shape.

void NL3D::CMeshMRMInstance::setApplySkin bool    state [protected, virtual]
 

Called when the skin is applied on the skeleton.

Reimplemented from NL3D::CTransform.

Definition at line 80 of file mesh_mrm_instance.cpp.

References NL3D::CTransform::_FatherSkeletonModel, clearRawSkinCache, clearShiftedTriangleCache, CMeshMRM, and NL3D::CTransformShape::Shape.

bool NL3D::CMeshMRMInstance::supportSkinGrouping   const [protected, virtual]
 

Deriver may support SkinGrouping if isSkinnable().

It renders the skin with current ctx of the skeletonModel, but torn in 2 pass: fillVB,a nd renderPrimitives Deriver may check NL3D_MESH_SKIN_MANAGER_VERTEXFORMAT and NL3D_MESH_SKIN_MANAGER_MAXVERTICES

Reimplemented from NL3D::CTransform.

Definition at line 177 of file mesh_mrm_instance.cpp.

References CMeshMRM, and NL3D::CTransformShape::Shape.


Friends And Related Function Documentation

friend class CMeshMRM [friend]
 

Definition at line 112 of file mesh_mrm_instance.h.

Referenced by changeMRMDistanceSetup, getMRMLevelDetail, getSkinBoneUsage, isSkinnable, renderSkin, renderSkinGroupGeom, renderSkinGroupPrimitives, setApplySkin, and supportSkinGrouping.

friend class CMeshMRMGeom [friend]
 

Definition at line 113 of file mesh_mrm_instance.h.

Referenced by renderSkin, renderSkinGroupGeom, and renderSkinGroupPrimitives.


Member Data Documentation

CRawSkinNormalCache* NL3D::CMeshMRMInstance::_RawSkinCache [private]
 

Used by CMeshMRMGeom. This a cache for skinning objects, for skinning optimisation.

Definition at line 116 of file mesh_mrm_instance.h.

Referenced by clearRawSkinCache, CMeshMRMInstance, and ~CMeshMRMInstance.

CShiftedTriangleCache* NL3D::CMeshMRMInstance::_ShiftedTriangleCache [private]
 

Used by CMeshMRMGeom. This a cache for skinning objects, for skinning optimisation.

Definition at line 121 of file mesh_mrm_instance.h.

Referenced by clearShiftedTriangleCache, CMeshMRMInstance, and ~CMeshMRMInstance.


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