34 #ifndef __ProgressiveMesh_H_
35 #define __ProgressiveMesh_H_
104 virtual void addExtraVertexPositionBuffer(
const VertexData* vertexData);
145 void computeNormal(
void);
147 bool hasCommonVertex(
PMVertex *v)
const;
150 void notifyRemoved(
void);
167 void setDetails(
const Vector3& v,
size_t index);
168 void removeIfNonNeighbor(
PMVertex *n);
170 bool isManifoldEdgeWith(
PMVertex* v);
171 void notifyRemoved(
void);
214 void initialiseEdgeCollapseCosts(
void);
218 Real computeEdgeCostAtVertexForBuffer(WorkingDataList::iterator idata,
size_t vertIndex);
220 void computeEdgeCostAtVertex(
size_t vertIndex);
222 void computeAllCosts(
void);
224 size_t getNextCollapser(
void);
237 void dumpContents(
const String& log);
float Real
Software floating point type.
A vertex as used by a face.
const VertexData * mpVertexData
CommonVertexList mVertList
set< PMVertex * >::type NeighborList
vector< PMFaceVertex >::type FaceVertexList
Data used to calculate the collapse costs.
vector< PMWorkingData >::type WorkingDataList
const IndexData * mpIndexData
size_t mNumCommonVertices
WorstCostList mWorstCosts
The worst collapse cost from all vertex buffers for each vertex.
This class reduces the complexity of the geometry it is given.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
VertexReductionQuota
The way to derive the quota of vertices which are reduced at each LOD.
Summary class collecting together index data source information.
vector< PMVertex >::type CommonVertexList
FaceVertexList mFaceVertList
List of faces.
vector< PMTriangle >::type TriangleList
Standard 3-dimensional vector.
vector< Real >::type WorstCostList
Summary class collecting together vertex source information.
A set number of vertices are removed at each reduction.
A vertex in the progressive mesh, holds info like collapse cost etc.
vector< IndexData * >::type LODFaceList
set< PMVertex * >::type DuplicateList
WorkingDataList mWorkingData
Multiple copies, 1 per vertex buffer.
set< PMTriangle * >::type FaceList
A triangle in the progressive mesh, holds extra info like face normal.