Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Ogre::ProgressiveMesh::PMVertex Class Reference

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

#include <OgreProgressiveMesh.h>

Collaboration diagram for Ogre::ProgressiveMesh::PMVertex:

Collaboration graph
[legend]
List of all members.

Public Types

typedef std::set< PMVertex * > NeighborList
typedef std::set< PMVertex * > DuplicateList
typedef std::set< PMTriangle * > FaceList

Public Methods

 PMVertex ()
void setDetails (const Vector3 &v, size_t index)
void removeIfNonNeighbor (PMVertex *n)
bool isBorder (void)
bool isManifoldEdgeWith (PMVertex *v)
 true if this vertex is on the edge of an open geometry patch

void notifyRemoved (void)

Public Attributes

Vector3 position
size_t index
NeighborList neighbor
FaceList face
Real collapseCost
PMVertex * collapseTo
bool removed
bool toBeRemoved
bool seam

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 155 of file OgreProgressiveMesh.h.


Member Typedef Documentation

typedef std::set<PMVertex *> Ogre::ProgressiveMesh::PMVertex::DuplicateList
 

Definition at line 167 of file OgreProgressiveMesh.h.

typedef std::set<PMTriangle *> Ogre::ProgressiveMesh::PMVertex::FaceList
 

Definition at line 169 of file OgreProgressiveMesh.h.

typedef std::set<PMVertex *> Ogre::ProgressiveMesh::PMVertex::NeighborList
 

Definition at line 166 of file OgreProgressiveMesh.h.


Constructor & Destructor Documentation

Ogre::ProgressiveMesh::PMVertex::PMVertex  
 

Definition at line 833 of file OgreProgressiveMesh.cpp.


Member Function Documentation

bool Ogre::ProgressiveMesh::PMVertex::isBorder void   
 

Definition at line 857 of file OgreProgressiveMesh.cpp.

References face, neighbor, and Ogre::ushort.

Referenced by Ogre::ProgressiveMesh::build(), and Ogre::ProgressiveMesh::computeEdgeCollapseCost().

bool Ogre::ProgressiveMesh::PMVertex::isManifoldEdgeWith PMVertex *    v
 

true if this vertex is on the edge of an open geometry patch

Definition at line 887 of file OgreProgressiveMesh.cpp.

References face, and Ogre::ushort.

Referenced by Ogre::ProgressiveMesh::computeEdgeCollapseCost().

void Ogre::ProgressiveMesh::PMVertex::notifyRemoved void   
 

Definition at line 843 of file OgreProgressiveMesh.cpp.

References collapseCost, collapseTo, neighbor, NEVER_COLLAPSE_COST, and removed.

Referenced by Ogre::ProgressiveMesh::collapse(), and removeIfNonNeighbor().

void Ogre::ProgressiveMesh::PMVertex::removeIfNonNeighbor PMVertex *    n
 

Definition at line 905 of file OgreProgressiveMesh.cpp.

References face, index, neighbor, notifyRemoved(), and toBeRemoved.

Referenced by Ogre::ProgressiveMesh::PMTriangle::notifyRemoved(), and Ogre::ProgressiveMesh::PMTriangle::replaceVertex().

void Ogre::ProgressiveMesh::PMVertex::setDetails const Vector3   v,
size_t    index
 

Definition at line 837 of file OgreProgressiveMesh.cpp.

References index, and position.

Referenced by Ogre::ProgressiveMesh::addWorkingData().


Member Data Documentation

Real Ogre::ProgressiveMesh::PMVertex::collapseCost
 

Definition at line 172 of file OgreProgressiveMesh.h.

Referenced by Ogre::ProgressiveMesh::collapse(), and notifyRemoved().

PMVertex* Ogre::ProgressiveMesh::PMVertex::collapseTo
 

Definition at line 173 of file OgreProgressiveMesh.h.

Referenced by Ogre::ProgressiveMesh::build(), Ogre::ProgressiveMesh::collapse(), and notifyRemoved().

FaceList Ogre::ProgressiveMesh::PMVertex::face
 

Definition at line 170 of file OgreProgressiveMesh.h.

Referenced by Ogre::ProgressiveMesh::collapse(), Ogre::ProgressiveMesh::computeEdgeCollapseCost(), isBorder(), isManifoldEdgeWith(), Ogre::ProgressiveMesh::PMTriangle::notifyRemoved(), removeIfNonNeighbor(), Ogre::ProgressiveMesh::PMTriangle::replaceVertex(), and Ogre::ProgressiveMesh::PMTriangle::setDetails().

size_t Ogre::ProgressiveMesh::PMVertex::index
 

Definition at line 165 of file OgreProgressiveMesh.h.

Referenced by Ogre::ProgressiveMesh::build(), Ogre::ProgressiveMesh::collapse(), removeIfNonNeighbor(), Ogre::ProgressiveMesh::PMTriangle::replaceVertex(), and setDetails().

NeighborList Ogre::ProgressiveMesh::PMVertex::neighbor
 

Definition at line 168 of file OgreProgressiveMesh.h.

Referenced by Ogre::ProgressiveMesh::collapse(), Ogre::ProgressiveMesh::computeEdgeCollapseCost(), isBorder(), notifyRemoved(), removeIfNonNeighbor(), Ogre::ProgressiveMesh::PMTriangle::replaceVertex(), and Ogre::ProgressiveMesh::PMTriangle::setDetails().

Vector3 Ogre::ProgressiveMesh::PMVertex::position
 

Definition at line 164 of file OgreProgressiveMesh.h.

Referenced by Ogre::ProgressiveMesh::computeEdgeCollapseCost(), Ogre::ProgressiveMesh::PMTriangle::computeNormal(), and setDetails().

bool Ogre::ProgressiveMesh::PMVertex::removed
 

Definition at line 174 of file OgreProgressiveMesh.h.

Referenced by Ogre::ProgressiveMesh::addWorkingData(), Ogre::ProgressiveMesh::build(), and notifyRemoved().

bool Ogre::ProgressiveMesh::PMVertex::seam
 

Definition at line 177 of file OgreProgressiveMesh.h.

Referenced by Ogre::ProgressiveMesh::addWorkingData(), and Ogre::ProgressiveMesh::computeEdgeCollapseCost().

bool Ogre::ProgressiveMesh::PMVertex::toBeRemoved
 

Definition at line 175 of file OgreProgressiveMesh.h.

Referenced by Ogre::ProgressiveMesh::addWorkingData(), Ogre::ProgressiveMesh::collapse(), and removeIfNonNeighbor().


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

Copyright © 2002-2003 by The OGRE Team
Last modified Wed Jan 21 00:19:19 2004