Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Ogre::ProgressiveMeshGenerator Class Reference

Improved version of ProgressiveMesh. More...

#include <OgreProgressiveMeshGenerator.h>

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

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. More...
 
void generateLodLevels (LodConfig &lodConfig)
 Generates the LOD levels for a mesh. More...
 
virtual void getAutoconfig (MeshPtr &inMesh, LodConfig &outLodConfig)
 Fills LOD Config with a config, which works on any mesh. More...
 

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. More...
 
VertexLookupList mSharedVertexLookup
 
TriangleList mTriangleList
 
UniqueVertexSet mUniqueVertexSet
 
VertexList mVertexList
 
VertexLookupList mVertexLookup
 
CollapsedEdges tmpCollapsedEdges
 

Detailed Description

Improved version of ProgressiveMesh.

Definition at line 72 of file OgreProgressiveMeshGenerator.h.

Member Typedef Documentation

Definition at line 117 of file OgreProgressiveMeshGenerator.h.

Definition at line 123 of file OgreProgressiveMeshGenerator.h.

Definition at line 124 of file OgreProgressiveMeshGenerator.h.

Definition at line 115 of file OgreProgressiveMeshGenerator.h.

Definition at line 116 of file OgreProgressiveMeshGenerator.h.

Definition at line 120 of file OgreProgressiveMeshGenerator.h.

Definition at line 112 of file OgreProgressiveMeshGenerator.h.

Definition at line 118 of file OgreProgressiveMeshGenerator.h.

Definition at line 121 of file OgreProgressiveMeshGenerator.h.

Constructor & Destructor Documentation

Ogre::ProgressiveMeshGenerator::ProgressiveMeshGenerator ( )
virtual Ogre::ProgressiveMeshGenerator::~ProgressiveMeshGenerator ( )
virtual

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::addTriangleToEdges ( PMTriangle triangle)
protected
void Ogre::ProgressiveMeshGenerator::addVertexData ( VertexData vertexData,
bool  useSharedVertexLookup 
)
protected
void Ogre::ProgressiveMeshGenerator::assertOutdatedCollapseCost ( PMVertex vertex)
protected
void Ogre::ProgressiveMeshGenerator::assertValidMesh ( )
protected
void Ogre::ProgressiveMeshGenerator::assertValidVertex ( PMVertex v)
protected
virtual void Ogre::ProgressiveMeshGenerator::bakeLods ( )
protectedvirtual

Reimplemented in Ogre::PMWorker.

size_t Ogre::ProgressiveMeshGenerator::calcLodVertexCount ( const LodLevel lodConfig)
protected
void Ogre::ProgressiveMeshGenerator::cleanupMemory ( )
protected
void Ogre::ProgressiveMeshGenerator::collapse ( PMVertex vertex)
protected
void Ogre::ProgressiveMeshGenerator::computeCosts ( )
protected
Real Ogre::ProgressiveMeshGenerator::computeEdgeCollapseCost ( PMVertex src,
PMEdge dstEdge 
)
protected
void Ogre::ProgressiveMeshGenerator::computeLods ( LodConfig lodConfigs)
protected
void Ogre::ProgressiveMeshGenerator::computeVertexCollapseCost ( PMVertex vertex)
protected
size_t Ogre::ProgressiveMeshGenerator::findDstID ( unsigned int  srcID,
unsigned short  submeshID 
)
protected
PMTriangle* Ogre::ProgressiveMeshGenerator::findSideTriangle ( const PMVertex v1,
const PMVertex v2 
)
protected
virtual void Ogre::ProgressiveMeshGeneratorBase::generateAutoconfiguredLodLevels ( MeshPtr mesh)
virtualinherited

Generates the LOD levels for a mesh without configuring it.

Parameters
meshGenerate the LOD for this mesh.
void Ogre::ProgressiveMeshGenerator::generateLodLevels ( LodConfig lodConfig)
virtual

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 
)
virtualinherited

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

Parameters
inMeshOptimize for this mesh.
outLodConfigLOD configuration storing the output.
PMEdge* Ogre::ProgressiveMeshGenerator::getPointer ( VEdges::iterator  it)
protected
int Ogre::ProgressiveMeshGenerator::getTriangleID ( PMTriangle triangle)
protected
bool Ogre::ProgressiveMeshGenerator::hasSrcID ( unsigned int  srcID,
unsigned short  submeshID 
)
protected
void Ogre::ProgressiveMeshGenerator::initialize ( )
protected
bool Ogre::ProgressiveMeshGenerator::isBorderVertex ( const PMVertex vertex) const
protected
bool Ogre::ProgressiveMeshGenerator::isDuplicateTriangle ( PMTriangle triangle,
PMTriangle triangle2 
)
protected
PMTriangle* Ogre::ProgressiveMeshGenerator::isDuplicateTriangle ( PMTriangle triangle)
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
void Ogre::ProgressiveMeshGenerator::tuneContainerSize ( )
protected
void Ogre::ProgressiveMeshGenerator::updateVertexCollapseCost ( PMVertex src)
protected

Member Data Documentation

CollapseCostHeap Ogre::ProgressiveMeshGenerator::mCollapseCostHeap
protected

Definition at line 197 of file OgreProgressiveMeshGenerator.h.

Real Ogre::ProgressiveMeshGenerator::mCollapseCostLimit
protected

Definition at line 212 of file OgreProgressiveMeshGenerator.h.

IndexBufferInfoList Ogre::ProgressiveMeshGenerator::mIndexBufferInfoList
protected

Definition at line 199 of file OgreProgressiveMeshGenerator.h.

MeshPtr Ogre::ProgressiveMeshGenerator::mMesh
protected

Definition at line 201 of file OgreProgressiveMeshGenerator.h.

Real Ogre::ProgressiveMeshGenerator::mMeshBoundingSphereRadius
protected

Definition at line 211 of file OgreProgressiveMeshGenerator.h.

String Ogre::ProgressiveMeshGenerator::mMeshName
protected

The name of the mesh being processed.

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

Definition at line 209 of file OgreProgressiveMeshGenerator.h.

VertexLookupList Ogre::ProgressiveMeshGenerator::mSharedVertexLookup
protected

Definition at line 192 of file OgreProgressiveMeshGenerator.h.

TriangleList Ogre::ProgressiveMeshGenerator::mTriangleList
protected

Definition at line 195 of file OgreProgressiveMeshGenerator.h.

UniqueVertexSet Ogre::ProgressiveMeshGenerator::mUniqueVertexSet
protected

Definition at line 196 of file OgreProgressiveMeshGenerator.h.

VertexList Ogre::ProgressiveMeshGenerator::mVertexList
protected

Definition at line 194 of file OgreProgressiveMeshGenerator.h.

VertexLookupList Ogre::ProgressiveMeshGenerator::mVertexLookup
protected

Definition at line 193 of file OgreProgressiveMeshGenerator.h.

CollapsedEdges Ogre::ProgressiveMeshGenerator::tmpCollapsedEdges
protected

Definition at line 198 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 Jun 30 2014 22:23:22