Ogre::ProgressiveMesh::PMVertex Class Reference

A vertex in the progressive mesh, holds info like collapse cost etc. More...

#include <OgreProgressiveMesh.h>

List of all members.

Public Types

enum  BorderStatus { BS_UNKNOWN = 0, BS_NOT_BORDER, BS_BORDER }
typedef SmallVector< PMVertex *, 8 > NeighborList
typedef SmallVector
< PMTriangle *, 8 > 
FaceList

Public Member Functions

 PMVertex ()
void setDetails (size_t index, const Vector3 &pos, const Vector3 &normal, const Vector2 &uv)
bool isNearEnough (PMVertex *other) const
void removeIfNonNeighbor (PMVertex *n)
void initBorderStatus (void)
bool isManifoldEdgeWith (PMVertex *v)
 Set mBorderStatus to BS_BORDER if this vertex is on the edge of an open geometry patch.
void notifyRemoved (void)
void calculateNormal ()

Public Attributes

Vector3 position
Vector3 normal
Vector2 uv
size_t index
BorderStatus mBorderStatus
bool removed
bool toBeRemoved
Real collapseCost
PMVertexcollapseTo
NeighborList neighbor
FaceList face

Detailed Description

A vertex in the progressive mesh, holds info like collapse cost etc.

This vertex can actually represent several vertices in the final model, because vertices along texture seams etc will have been duplicated. In order to properly evaluate the surface properties, a single common vertex is used for these duplicates, and the faces hold the detail of the duplicated vertices.

Definition at line 271 of file OgreProgressiveMesh.h.


Member Typedef Documentation

Definition at line 275 of file OgreProgressiveMesh.h.

Definition at line 274 of file OgreProgressiveMesh.h.


Member Enumeration Documentation

Enumerator:
BS_UNKNOWN 
BS_NOT_BORDER 
BS_BORDER 

Definition at line 273 of file OgreProgressiveMesh.h.


Constructor & Destructor Documentation

Ogre::ProgressiveMesh::PMVertex::PMVertex (  ) 

Definition at line 278 of file OgreProgressiveMesh.h.


Member Function Documentation

void Ogre::ProgressiveMesh::PMVertex::calculateNormal (  ) 
void Ogre::ProgressiveMesh::PMVertex::initBorderStatus ( void   ) 
bool Ogre::ProgressiveMesh::PMVertex::isManifoldEdgeWith ( PMVertex v  ) 

Set mBorderStatus to BS_BORDER if this vertex is on the edge of an open geometry patch.

bool Ogre::ProgressiveMesh::PMVertex::isNearEnough ( PMVertex other  )  const
void Ogre::ProgressiveMesh::PMVertex::notifyRemoved ( void   ) 
void Ogre::ProgressiveMesh::PMVertex::removeIfNonNeighbor ( PMVertex n  ) 
void Ogre::ProgressiveMesh::PMVertex::setDetails ( size_t  index,
const Vector3 pos,
const Vector3 normal,
const Vector2 uv 
)

Member Data Documentation

Definition at line 299 of file OgreProgressiveMesh.h.

Definition at line 300 of file OgreProgressiveMesh.h.

Definition at line 303 of file OgreProgressiveMesh.h.

Definition at line 293 of file OgreProgressiveMesh.h.

Definition at line 295 of file OgreProgressiveMesh.h.

Definition at line 302 of file OgreProgressiveMesh.h.

Definition at line 290 of file OgreProgressiveMesh.h.

Definition at line 289 of file OgreProgressiveMesh.h.

Definition at line 296 of file OgreProgressiveMesh.h.

Definition at line 297 of file OgreProgressiveMesh.h.

Definition at line 291 of file OgreProgressiveMesh.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 Fri May 25 23:39:03 2012