NL3D::CMeshMRMSkinnedGeom::CLod Class Reference


Detailed Description

A LOD of the MRM.

Definition at line 347 of file mesh_mrm_skinned.h.

Public Member Functions

void buildPrimitiveBlock (uint renderPass, const CPrimitiveBlock &block)
 CLod ()
void getRdrPassPrimitiveBlock (uint renderPass, CPrimitiveBlock &block) const
void optimizeTriangleOrder ()
void serial (NLMISC::IStream &f)

Data Fields

std::vector< CMRMWedgeGeomGeomorphs
 List of geomorph, for this LOD.

std::vector< uint32InfluencedVertices [NL3D_MESH_SKINNING_MAX_MATRIX]
std::vector< uint32MatrixInfluences
 Skinning: list of Matrix which influence this Lod. So we know what matrix to compute.

uint32 NWedges
 The number of vertex in The VB this Lod needs.

std::vector< CRdrPassRdrPass
 List of rdr pass, for this LOD.


Constructor & Destructor Documentation

NL3D::CMeshMRMSkinnedGeom::CLod::CLod  )  [inline]
 

Definition at line 366 of file mesh_mrm_skinned.h.

00367                 {
00368                 }


Member Function Documentation

void NL3D::CMeshMRMSkinnedGeom::CLod::buildPrimitiveBlock uint  renderPass,
const CPrimitiveBlock block
 

Definition at line 131 of file mesh_mrm_skinned.cpp.

References count, NL3D::CPrimitiveBlock::getNumTri(), NL3D::CPrimitiveBlock::getTriPointer(), NL3D::CMeshMRMSkinnedGeom::CRdrPass::PBlock, uint, uint16, and uint32.

Referenced by optimizeTriangleOrder().

00132 {
00133         CRdrPass &rd = RdrPass[renderPass];
00134         const uint count = block.getNumTri();
00135         rd.PBlock.resize (3*count);
00136         uint i;
00137         const uint32 *triPtr = block.getTriPointer ();
00138         for (i=0; i<count; i++)
00139         {
00140                 rd.PBlock[i*3+0] = (uint16)(triPtr[3*i+0]);
00141                 rd.PBlock[i*3+1] = (uint16)(triPtr[3*i+1]);
00142                 rd.PBlock[i*3+2] = (uint16)(triPtr[3*i+2]);
00143         }
00144 }

void NL3D::CMeshMRMSkinnedGeom::CLod::getRdrPassPrimitiveBlock uint  renderPass,
CPrimitiveBlock block
const
 

Definition at line 114 of file mesh_mrm_skinned.cpp.

References count, NL3D::CMeshMRMSkinnedGeom::CRdrPass::getNumTriangle(), NL3D::CMeshMRMSkinnedGeom::CRdrPass::PBlock, NL3D::CPrimitiveBlock::setNumLine(), NL3D::CPrimitiveBlock::setNumQuad(), NL3D::CPrimitiveBlock::setNumTri(), NL3D::CPrimitiveBlock::setTri(), and uint.

Referenced by optimizeTriangleOrder(), and NL3D::CMeshMRMSkinnedGeom::render().

00115 {
00116         const CRdrPass &rd = RdrPass[renderPass];
00117         block.setNumLine (0);
00118         block.setNumQuad (0);
00119         const uint count = rd.getNumTriangle();
00120         block.setNumTri (count);
00121 
00122         uint i;
00123         for (i=0; i<count; i++)
00124         {
00125                 block.setTri (i, rd.PBlock[i*3+0], rd.PBlock[i*3+1], rd.PBlock[i*3+2]);
00126         }
00127 }

void NL3D::CMeshMRMSkinnedGeom::CLod::optimizeTriangleOrder  ) 
 

Definition at line 93 of file mesh_mrm_skinned.cpp.

References buildPrimitiveBlock(), getRdrPassPrimitiveBlock(), NL3D::CStripifier::optimizeTriangles(), and uint.

00094 {
00095         CStripifier             stripifier;
00096 
00097         // for all rdrpass
00098         for(uint  rp=0; rp<RdrPass.size(); rp++ )
00099         {
00100                 // stripify list of triangles of this pass.
00101                 CRdrPass        &pass= RdrPass[rp];
00102 
00103                 CPrimitiveBlock block;
00104                 getRdrPassPrimitiveBlock(rp, block);
00105 
00106                 stripifier.optimizeTriangles(block, block);
00107 
00108                 buildPrimitiveBlock(rp, block);
00109         }
00110 }

void NL3D::CMeshMRMSkinnedGeom::CLod::serial NLMISC::IStream f  ) 
 


Field Documentation

std::vector<CMRMWedgeGeom> NL3D::CMeshMRMSkinnedGeom::CLod::Geomorphs
 

List of geomorph, for this LOD.

Definition at line 353 of file mesh_mrm_skinned.h.

Referenced by NL3D::CMRMBuilder::buildMeshBuildMrm(), NL3D::CMeshMRMSkinnedGeom::render(), and NL3D::CMeshMRMSkinnedGeom::updateRawSkinNormal().

std::vector<uint32> NL3D::CMeshMRMSkinnedGeom::CLod::InfluencedVertices[NL3D_MESH_SKINNING_MAX_MATRIX]
 

Skinning: list of influenced vertices to compute, for this lod only. There is 4 array, 0th is for vertices which have only one matrix. 1st if for vertices which have only 2 matrix ....

Definition at line 360 of file mesh_mrm_skinned.h.

Referenced by NL3D::CMRMBuilder::buildMeshBuildMrm(), and NL3D::CMeshMRMSkinnedGeom::updateRawSkinNormal().

std::vector<uint32> NL3D::CMeshMRMSkinnedGeom::CLod::MatrixInfluences
 

Skinning: list of Matrix which influence this Lod. So we know what matrix to compute.

Definition at line 362 of file mesh_mrm_skinned.h.

Referenced by NL3D::CMeshMRMSkinnedGeom::applyArrayShadowSkin(), and NL3D::CMRMBuilder::buildMeshBuildMrm().

uint32 NL3D::CMeshMRMSkinnedGeom::CLod::NWedges
 

The number of vertex in The VB this Lod needs.

Definition at line 351 of file mesh_mrm_skinned.h.

Referenced by NL3D::CMRMBuilder::buildMeshBuildMrm(), and NL3D::CMeshMRMSkinnedGeom::renderSkinGroupGeom().

std::vector<CRdrPass> NL3D::CMeshMRMSkinnedGeom::CLod::RdrPass
 

List of rdr pass, for this LOD.

Definition at line 355 of file mesh_mrm_skinned.h.

Referenced by NL3D::CMeshMRMSkinnedGeom::build(), NL3D::CMRMBuilder::buildMeshBuildMrm(), NL3D::CMeshMRMSkinnedGeom::profileSceneRender(), NL3D::CMeshMRMSkinnedGeom::render(), NL3D::CMeshMRMSkinnedGeom::renderSkinGroupGeom(), NL3D::CMeshMRMSkinnedGeom::renderSkinGroupPrimitives(), NL3D::CMeshMRMSkinnedGeom::renderSkinGroupSpecularRdrPass(), and NL3D::CMeshMRMSkinnedGeom::updateRawSkinNormal().


The documentation for this class was generated from the following files:
Generated on Tue Mar 16 06:54:30 2004 for NeL by doxygen 1.3.6