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

Mesh Class Reference

#include <meshBase.h>

Inheritance diagram for Mesh:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 Mesh ()
 ~Mesh ()
void clear ()
U32 getVertexCount ()
U32 getNormalCount ()
U32 getTexCoordCount (U32 index)
U32 getMeshGroupCount ()
U32 addVertex (gmVector3 &vec3)
U32 addNormal (gmVector3 &vec3)
U32 addTexCoord (gmVector2 &vec2, U32 index)
U32 addFace (indexFace &face)
U32 addGroup ()
U32 addFaceToGroup (U32 faceIndex, U32 groupIndex)
void deleteFace (U32 faceIndex)
void deleteNormal (U32 normalIndex)
void deleteVertex (U32 vertexIndex)
void deleteGroup (U32 groupIndex)
gmVector3 & getVertex (U32 vertexIndex)
gmVector3 & getNormal (U32 normalIndex)
gmVector3 & getTangent (U32 tangentIndex)
MeshGroupgetGroup (U32 groupIndex)
indexVertexgetIndexVertex (U32 vertexIndex)
gmVector2 & getTexCoord (U32 texCoordIndex, U32 index)
indexFacegetFace (U32 faceIndex)
U32 getCurrentGroup ()
void setCurrentGroup (U32 groupIndex)
void rewindVertexList ()
void rewindNormalList ()
void rewindFaceList ()
void rewindGroupList ()
gmVector3 * vertexPostIncrement ()
gmVector3 * normalPostIncrement ()
indexFacefacePostIncrement ()
MeshGroupgroupPostIncrement ()

Protected Attributes

Narray< gmVector3 > m_vertexList
Narray< gmVector3 > m_normalList
Narray< gmVector3 > m_tangentList
Narray< gmVector2 > m_texCoordList0
Narray< gmVector2 > m_texCoordList1
Narray< gmVector2 > m_texCoordList2
Narray< gmVector2 > m_texCoordList3
Narray< indexFacem_faceList
Narray< MeshGroupm_groupList
U32 m_currentGroup
Narray< indexVertexm_indexVertexList
Narray< indexEdgem_edgeList

Friends

class indexFace
class indexVertex
class indexEdge

Constructor & Destructor Documentation

Mesh::Mesh  )  [inline]
 

Definition at line 14 of file mesh.h.

References m_currentGroup, and m_groupList.

Mesh::~Mesh  )  [inline]
 

Definition at line 25 of file mesh.h.

References clear().


Member Function Documentation

U32 Mesh::addFace indexFace face  )  [inline]
 

Definition at line 111 of file mesh.h.

References indexEdge::addFace(), MeshGroup::addFace(), edge, indexFace::getNormalIndex(), indexFace::getVertexCount(), indexFace::getVertexIndex(), m_currentGroup, m_edgeList, m_faceList, m_groupList, m_indexVertexList, and U32.

Referenced by DynamicMesh::add_ring(), DynamicMesh::flip_edge(), NUobjLoader::loadMesh(), midedgeSubdivision::subdivide(), loopSubdivision::subdivide(), Kobelt::subdivide(), DooSabin::subdivide(), and ButterflySubdivision::subdivide().

U32 Mesh::addFaceToGroup U32  faceIndex,
U32  groupIndex
[inline]
 

Definition at line 154 of file mesh.h.

References MeshGroup::addFace(), m_faceList, m_groupList, and U32.

U32 Mesh::addGroup  )  [inline]
 

Definition at line 144 of file mesh.h.

References m_currentGroup, m_groupList, MeshGroup::m_pMesh, and U32.

Referenced by deleteGroup(), midedgeSubdivision::subdivide(), loopSubdivision::subdivide(), Kobelt::subdivide(), DooSabin::subdivide(), and ButterflySubdivision::subdivide().

U32 Mesh::addNormal gmVector3 &  vec3  )  [inline]
 

Definition at line 82 of file mesh.h.

References m_normalList, and U32.

Referenced by DynamicMesh::add_component(), DynamicMesh::add_ring(), create_boundary_vertices(), ButterflySubdivision::divideFace(), DynamicMesh::flip_edge(), NUobjLoader::loadMesh(), DynamicMesh::remove_ring(), loopSubdivision::subdivide(), Kobelt::subdivide(), and DooSabin::subdivide().

U32 Mesh::addTexCoord gmVector2 &  vec2,
U32  index
[inline]
 

Definition at line 89 of file mesh.h.

References m_texCoordList0, m_texCoordList1, m_texCoordList2, m_texCoordList3, and U32.

Referenced by NUobjLoader::loadMesh().

U32 Mesh::addVertex gmVector3 &  vec3  )  [inline]
 

Definition at line 72 of file mesh.h.

References m_indexVertexList, indexVertex::m_pMesh, m_vertexList, and U32.

Referenced by DynamicMesh::add_component(), create_boundary_vertices(), ButterflySubdivision::divideFace(), NUobjLoader::loadMesh(), DynamicMesh::remove_ring(), midedgeSubdivision::subdivide(), loopSubdivision::subdivide(), Kobelt::subdivide(), and DooSabin::subdivide().

void Mesh::clear  )  [inline]
 

Definition at line 31 of file mesh.h.

References m_currentGroup, m_edgeList, m_faceList, m_groupList, m_indexVertexList, m_normalList, m_tangentList, m_texCoordList0, m_texCoordList1, m_texCoordList2, m_texCoordList3, and m_vertexList.

Referenced by ~Mesh().

void Mesh::deleteFace U32  faceIndex  )  [inline]
 

Definition at line 292 of file mesh.h.

References MeshGroup::faceIndexPostIncrement(), indexFace::m_adjacentFaces, indexVertex::m_adjFaceList, m_edgeList, indexEdge::m_faceCount, indexEdge::m_faceIndexA, indexEdge::m_faceIndexB, MeshGroup::m_faceList, m_faceList, m_groupList, m_indexVertexList, indexVertex::m_vertexAdjSorted, MeshGroup::rewindFaceList(), and U32.

Referenced by init().

void Mesh::deleteGroup U32  groupIndex  )  [inline]
 

Definition at line 396 of file mesh.h.

References addGroup(), m_currentGroup, m_groupList, and U32.

void Mesh::deleteNormal U32  normalIndex  )  [inline]
 

Definition at line 352 of file mesh.h.

References U32.

void Mesh::deleteVertex U32  vertexIndex  )  [inline]
 

Definition at line 355 of file mesh.h.

References indexFace::getVertexCount(), indexVertex::m_adjVertexList, m_edgeList, m_faceList, m_indexVertexList, indexVertex::m_vertexAdjSorted, indexEdge::m_vertexIndexA, indexEdge::m_vertexIndexB, indexFace::m_vertexIndices, m_vertexList, and U32.

Referenced by init().

indexFace * Mesh::facePostIncrement  )  [inline]
 

Definition at line 283 of file mesh.h.

References m_faceList.

U32 Mesh::getCurrentGroup  )  [inline]
 

Definition at line 256 of file mesh.h.

References m_currentGroup, and U32.

indexFace & Mesh::getFace U32  faceIndex  )  [inline]
 

Definition at line 210 of file mesh.h.

References m_faceList, and U32.

Referenced by DynamicMesh::add_ring(), MeshGroup::facePostIncrement(), DynamicMesh::get_opposing_vertex(), indexFace::getAdjacentFace(), MeshGroup::getFace(), indexEdge::getFace(), DynamicMesh::remove_ring(), midedgeSubdivision::subdivide(), loopSubdivision::subdivide(), DooSabin::subdivide(), and ButterflySubdivision::subdivide().

MeshGroup & Mesh::getGroup U32  groupIndex  )  [inline]
 

Definition at line 220 of file mesh.h.

References m_groupList, and U32.

Referenced by midedgeSubdivision::subdivide(), loopSubdivision::subdivide(), Kobelt::subdivide(), DooSabin::subdivide(), and ButterflySubdivision::subdivide().

indexVertex & Mesh::getIndexVertex U32  vertexIndex  )  [inline]
 

Definition at line 246 of file mesh.h.

References m_indexVertexList, and U32.

Referenced by ButterflySubdivision::divideFace(), indexVertex::getAdjVertexNormal(), midedgeSubdivision::subdivide(), loopSubdivision::subdivide(), Kobelt::subdivide(), DooSabin::subdivide(), and ButterflySubdivision::subdivide().

U32 Mesh::getMeshGroupCount  )  [inline]
 

Definition at line 240 of file mesh.h.

References m_groupList, and U32.

Referenced by DooSabin::compute().

gmVector3 & Mesh::getNormal U32  normalIndex  )  [inline]
 

Definition at line 177 of file mesh.h.

References m_normalList, and U32.

Referenced by indexVertex::getAdjVertexNormal(), indexFace::getNormal(), and Kobelt::subdivide().

U32 Mesh::getNormalCount  )  [inline]
 

Definition at line 56 of file mesh.h.

References m_normalList, and U32.

Referenced by NUobjLoader::storeMesh().

gmVector3 & Mesh::getTangent U32  tangentIndex  )  [inline]
 

Definition at line 187 of file mesh.h.

References m_tangentList, and U32.

Referenced by indexFace::getTangent().

gmVector2 & Mesh::getTexCoord U32  texCoordIndex,
U32  index
[inline]
 

Definition at line 197 of file mesh.h.

References m_texCoordList0, m_texCoordList1, m_texCoordList2, m_texCoordList3, and U32.

Referenced by indexFace::getTexCoord().

U32 Mesh::getTexCoordCount U32  index  )  [inline]
 

Definition at line 59 of file mesh.h.

References m_texCoordList0, m_texCoordList1, m_texCoordList2, m_texCoordList3, and U32.

Referenced by NUobjLoader::storeMesh().

gmVector3 & Mesh::getVertex U32  vertexIndex  )  [inline]
 

Definition at line 167 of file mesh.h.

References m_vertexList, and U32.

Referenced by DynamicMesh::flip_edge(), DynamicMesh::get_opposing_vertex(), indexVertex::getAdjVertex(), indexFace::getVertex(), indexEdge::getVertexA(), indexEdge::getVertexB(), NUobjLoader::loadMesh(), DynamicMesh::remove_ring(), and Kobelt::subdivide().

U32 Mesh::getVertexCount  )  [inline]
 

Definition at line 53 of file mesh.h.

References m_vertexList, and U32.

Referenced by NUobjLoader::storeMesh(), and DooSabin::subdivide().

MeshGroup * Mesh::groupPostIncrement  )  [inline]
 

Definition at line 286 of file mesh.h.

References m_groupList.

Referenced by display().

gmVector3 * Mesh::normalPostIncrement  )  [inline]
 

Definition at line 280 of file mesh.h.

References m_normalList.

Referenced by NUobjLoader::storeMesh().

void Mesh::rewindFaceList  )  [inline]
 

Definition at line 268 of file mesh.h.

References m_faceList.

void Mesh::rewindGroupList  )  [inline]
 

Definition at line 271 of file mesh.h.

References m_groupList.

Referenced by display().

void Mesh::rewindNormalList  )  [inline]
 

Definition at line 265 of file mesh.h.

References m_normalList.

Referenced by NUobjLoader::storeMesh().

void Mesh::rewindVertexList  )  [inline]
 

Definition at line 262 of file mesh.h.

References m_vertexList.

Referenced by NUobjLoader::storeMesh().

void Mesh::setCurrentGroup U32  groupIndex  )  [inline]
 

Definition at line 230 of file mesh.h.

References m_currentGroup, m_groupList, and U32.

gmVector3 * Mesh::vertexPostIncrement  )  [inline]
 

Definition at line 277 of file mesh.h.

References m_vertexList.

Referenced by NUobjLoader::storeMesh().


Friends And Related Function Documentation

friend class indexEdge [friend]
 

Definition at line 243 of file meshBase.h.

friend class indexFace [friend]
 

Definition at line 241 of file meshBase.h.

friend class indexVertex [friend]
 

Definition at line 242 of file meshBase.h.


Member Data Documentation

U32 Mesh::m_currentGroup [protected]
 

Definition at line 313 of file meshBase.h.

Referenced by addFace(), addGroup(), clear(), deleteGroup(), getCurrentGroup(), Mesh(), and setCurrentGroup().

Narray<indexEdge> Mesh::m_edgeList [protected]
 

Definition at line 317 of file meshBase.h.

Referenced by addFace(), clear(), deleteFace(), deleteVertex(), indexVertex::getEdge(), indexFace::getEdge(), and indexVertex::sortVertexAdjacencies().

Narray<indexFace> Mesh::m_faceList [protected]
 

Definition at line 308 of file meshBase.h.

Referenced by addFace(), addFaceToGroup(), clear(), deleteFace(), deleteVertex(), facePostIncrement(), indexVertex::getAdjacentFace(), getFace(), indexFace::getIndex(), and rewindFaceList().

Narray<MeshGroup> Mesh::m_groupList [protected]
 

Definition at line 312 of file meshBase.h.

Referenced by DynamicMesh::add_component(), DynamicMesh::add_ring(), addFace(), addFaceToGroup(), addGroup(), clear(), DynamicMesh::create_mesh_group(), deleteFace(), deleteGroup(), DynamicMesh::DynamicMesh(), getGroup(), getMeshGroupCount(), groupPostIncrement(), DynamicMesh::intersect_ray(), DynamicMesh::merge(), Mesh(), DynamicMesh::optimize(), DynamicMesh::remove_component(), DynamicMesh::remove_ring(), rewindGroupList(), setCurrentGroup(), and DynamicMesh::split().

Narray<indexVertex> Mesh::m_indexVertexList [protected]
 

Definition at line 316 of file meshBase.h.

Referenced by addFace(), addVertex(), clear(), deleteFace(), deleteVertex(), getIndexVertex(), indexEdge::getNormalA(), indexEdge::getNormalB(), indexEdge::getNormalIndexA(), indexEdge::getNormalIndexB(), and indexVertex::getVertexIndex().

Narray<gmVector3> Mesh::m_normalList [protected]
 

Definition at line 300 of file meshBase.h.

Referenced by addNormal(), clear(), getNormal(), indexEdge::getNormalA(), indexEdge::getNormalB(), getNormalCount(), normalPostIncrement(), and rewindNormalList().

Narray<gmVector3> Mesh::m_tangentList [protected]
 

Definition at line 301 of file meshBase.h.

Referenced by clear(), and getTangent().

Narray<gmVector2> Mesh::m_texCoordList0 [protected]
 

Definition at line 303 of file meshBase.h.

Referenced by addTexCoord(), clear(), getTexCoord(), and getTexCoordCount().

Narray<gmVector2> Mesh::m_texCoordList1 [protected]
 

Definition at line 304 of file meshBase.h.

Referenced by addTexCoord(), clear(), getTexCoord(), and getTexCoordCount().

Narray<gmVector2> Mesh::m_texCoordList2 [protected]
 

Definition at line 305 of file meshBase.h.

Referenced by addTexCoord(), clear(), getTexCoord(), and getTexCoordCount().

Narray<gmVector2> Mesh::m_texCoordList3 [protected]
 

Definition at line 306 of file meshBase.h.

Referenced by addTexCoord(), clear(), getTexCoord(), and getTexCoordCount().

Narray<gmVector3> Mesh::m_vertexList [protected]
 

Definition at line 299 of file meshBase.h.

Referenced by addVertex(), clear(), deleteVertex(), getVertex(), getVertexCount(), rewindVertexList(), and vertexPostIncrement().


The documentation for this class was generated from the following files:
Generated on Mon Jun 28 15:02:26 2004 for Advanced Surface Library by doxygen 1.3.4