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>`

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:

- OgreProgressiveMesh.h
- OgreProgressiveMesh.cpp

Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:51:27 2004