Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
Ogre::ProgressiveMeshGenerator Class Reference

Improved version of ProgressiveMesh. More...

#include <OgreProgressiveMeshGenerator.h>

Inheritance diagram for Ogre::ProgressiveMeshGenerator:
Inheritance graph
[legend]

List of all members.

Classes

union  IndexBufferPointer
struct  PMCollapsedEdge
struct  PMEdge
struct  PMIndexBufferInfo
struct  PMTriangle
struct  PMVertex
struct  PMVertexEqual
struct  PMVertexHash
struct  VectorSet

Public Member Functions

 ProgressiveMeshGenerator ()
virtual ~ProgressiveMeshGenerator ()
virtual void generateAutoconfiguredLodLevels (MeshPtr &mesh)
 Generates the LOD levels for a mesh without configuring it.
void generateLodLevels (LodConfig &lodConfig)
virtual void getAutoconfig (MeshPtr &inMesh, LodConfig &outLodConfig)
 Fills LOD Config with a config, which works on any mesh.

Protected Types

typedef multimap< Real,
PMVertex * >::type 
CollapseCostHeap
typedef vector
< PMCollapsedEdge >::type 
CollapsedEdges
typedef vector
< PMIndexBufferInfo >::type 
IndexBufferInfoList
typedef vector< PMTriangle >::type TriangleList
typedef HashSet< PMVertex
*, PMVertexHash, PMVertexEqual
UniqueVertexSet
typedef VectorSet< PMEdge, 8 > VEdges
typedef vector< PMVertex >::type VertexList
typedef vector< PMVertex * >::type VertexLookupList
typedef VectorSet< PMTriangle *, 7 > VTriangles

Protected Member Functions

void addEdge (PMVertex *v, const PMEdge &edge)
void addIndexData (IndexData *indexData, bool useSharedVertexLookup, unsigned short submeshID)
template<typename IndexType >
void addIndexDataImpl (IndexType *iPos, const IndexType *iEnd, VertexLookupList &lookup, unsigned short submeshID)
void addTriangleToEdges (PMTriangle *triangle)
void addVertexData (VertexData *vertexData, bool useSharedVertexLookup)
void assertOutdatedCollapseCost (PMVertex *vertex)
void assertValidMesh ()
void assertValidVertex (PMVertex *v)
virtual void bakeLods ()
size_t calcLodVertexCount (const LodLevel &lodConfig)
void cleanupMemory ()
void collapse (PMVertex *vertex)
void computeCosts ()
Real computeEdgeCollapseCost (PMVertex *src, PMEdge *dstEdge)
void computeLods (LodConfig &lodConfigs)
void computeVertexCollapseCost (PMVertex *vertex)
size_t findDstID (unsigned int srcID, unsigned short submeshID)
PMTrianglefindSideTriangle (const PMVertex *v1, const PMVertex *v2)
PMEdgegetPointer (VEdges::iterator it)
int getTriangleID (PMTriangle *triangle)
bool hasSrcID (unsigned int srcID, unsigned short submeshID)
void initialize ()
bool isBorderVertex (const PMVertex *vertex) const
bool isDuplicateTriangle (PMTriangle *triangle, PMTriangle *triangle2)
PMTriangleisDuplicateTriangle (PMTriangle *triangle)
void printTriangle (PMTriangle *triangle, stringstream &str)
void removeEdge (PMVertex *v, const PMEdge &edge)
void removeTriangleFromEdges (PMTriangle *triangle, PMVertex *skip=NULL)
void replaceVertexID (PMTriangle *triangle, unsigned int oldID, unsigned int newID, PMVertex *dst)
void tuneContainerSize ()
void updateVertexCollapseCost (PMVertex *src)

Protected Attributes

CollapseCostHeap mCollapseCostHeap
Real mCollapseCostLimit
IndexBufferInfoList mIndexBufferInfoList
MeshPtr mMesh
Real mMeshBoundingSphereRadius
String mMeshName
 The name of the mesh being processed.
VertexLookupList mSharedVertexLookup
TriangleList mTriangleList
UniqueVertexSet mUniqueVertexSet
VertexList mVertexList
VertexLookupList mVertexLookup
CollapsedEdges tmpCollapsedEdges

Detailed Description

Improved version of ProgressiveMesh.

Definition at line 73 of file OgreProgressiveMeshGenerator.h.


Member Typedef Documentation

Definition at line 118 of file OgreProgressiveMeshGenerator.h.

Definition at line 124 of file OgreProgressiveMeshGenerator.h.

Definition at line 125 of file OgreProgressiveMeshGenerator.h.

Definition at line 116 of file OgreProgressiveMeshGenerator.h.

Definition at line 117 of file OgreProgressiveMeshGenerator.h.

Definition at line 121 of file OgreProgressiveMeshGenerator.h.

Definition at line 113 of file OgreProgressiveMeshGenerator.h.

Definition at line 119 of file OgreProgressiveMeshGenerator.h.

Definition at line 122 of file OgreProgressiveMeshGenerator.h.


Constructor & Destructor Documentation


Member Function Documentation

void Ogre::ProgressiveMeshGenerator::addEdge ( PMVertex v,
const PMEdge edge 
) [protected]
void Ogre::ProgressiveMeshGenerator::addIndexData ( IndexData indexData,
bool  useSharedVertexLookup,
unsigned short  submeshID 
) [protected]
template<typename IndexType >
void Ogre::ProgressiveMeshGenerator::addIndexDataImpl ( IndexType *  iPos,
const IndexType *  iEnd,
VertexLookupList lookup,
unsigned short  submeshID 
) [protected]
void Ogre::ProgressiveMeshGenerator::addVertexData ( VertexData vertexData,
bool  useSharedVertexLookup 
) [protected]
virtual void Ogre::ProgressiveMeshGenerator::bakeLods ( ) [protected, virtual]

Reimplemented in Ogre::PMWorker.

size_t Ogre::ProgressiveMeshGenerator::calcLodVertexCount ( const LodLevel lodConfig) [protected]
void Ogre::ProgressiveMeshGenerator::collapse ( PMVertex vertex) [protected]
void Ogre::ProgressiveMeshGenerator::computeLods ( LodConfig lodConfigs) [protected]
size_t Ogre::ProgressiveMeshGenerator::findDstID ( unsigned int  srcID,
unsigned short  submeshID 
) [protected]
PMTriangle* Ogre::ProgressiveMeshGenerator::findSideTriangle ( const PMVertex v1,
const PMVertex v2 
) [protected]

Generates the LOD levels for a mesh without configuring it.

Parameters:
meshGenerate the LOD for this mesh.

Generates the LOD levels for a mesh.

Parameters:
lodConfigSpecification of the requested LOD levels.

Implements Ogre::ProgressiveMeshGeneratorBase.

virtual void Ogre::ProgressiveMeshGeneratorBase::getAutoconfig ( MeshPtr inMesh,
LodConfig outLodConfig 
) [virtual, inherited]

Fills LOD Config with a config, which works on any mesh.

Parameters:
inMeshOptimize for this mesh.
outLodConfigLOD configuration storing the output.
bool Ogre::ProgressiveMeshGenerator::hasSrcID ( unsigned int  srcID,
unsigned short  submeshID 
) [protected]

Reimplemented in Ogre::PMWorker.

bool Ogre::ProgressiveMeshGenerator::isBorderVertex ( const PMVertex vertex) const [protected]
bool Ogre::ProgressiveMeshGenerator::isDuplicateTriangle ( PMTriangle triangle,
PMTriangle triangle2 
) [protected]
void Ogre::ProgressiveMeshGenerator::printTriangle ( PMTriangle triangle,
stringstream str 
) [protected]
void Ogre::ProgressiveMeshGenerator::removeEdge ( PMVertex v,
const PMEdge edge 
) [protected]
void Ogre::ProgressiveMeshGenerator::removeTriangleFromEdges ( PMTriangle triangle,
PMVertex skip = NULL 
) [protected]
void Ogre::ProgressiveMeshGenerator::replaceVertexID ( PMTriangle triangle,
unsigned int  oldID,
unsigned int  newID,
PMVertex dst 
) [protected]

Reimplemented in Ogre::PMWorker.


Member Data Documentation

Definition at line 198 of file OgreProgressiveMeshGenerator.h.

Definition at line 213 of file OgreProgressiveMeshGenerator.h.

Definition at line 200 of file OgreProgressiveMeshGenerator.h.

Definition at line 202 of file OgreProgressiveMeshGenerator.h.

Definition at line 212 of file OgreProgressiveMeshGenerator.h.

The name of the mesh being processed.

This is separate from mMesh in order to allow for access from background threads.

Definition at line 210 of file OgreProgressiveMeshGenerator.h.

Definition at line 193 of file OgreProgressiveMeshGenerator.h.

Definition at line 196 of file OgreProgressiveMeshGenerator.h.

Definition at line 197 of file OgreProgressiveMeshGenerator.h.

Definition at line 195 of file OgreProgressiveMeshGenerator.h.

Definition at line 194 of file OgreProgressiveMeshGenerator.h.

Definition at line 199 of file OgreProgressiveMeshGenerator.h.


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

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Mon Jul 27 2020 13:41:31