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

CatmullClarkSubdivision Class Reference

#include <CatmullClark.h>

Inheritance diagram for CatmullClarkSubdivision:

Inheritance graph
[legend]
Collaboration diagram for CatmullClarkSubdivision:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual void compute (int n)
virtual int matrix (int *n, double *s)

Private Member Functions

void divideFace (indexFace *face)
void divideEdge (indexEdge *edge, indexFace *face)
void buildVertex (indexVertex *vertex)
void subdivide (U32 base_group)

Member Function Documentation

void CatmullClarkSubdivision::buildVertex indexVertex vertex  )  [private]
 

Definition at line 65 of file CatmullClark.cpp.

References gmMesh::addVertex(), indexFace::getArbitraryIndex(), indexEdge::getVertexA(), indexEdge::getVertexB(), indexEdge::getVertexIndexA(), Surface::m_mesh, U32, and vertex.

Referenced by subdivide().

void CatmullClarkSubdivision::compute int  n  )  [virtual]
 

Implements Subdivision.

Definition at line 268 of file CatmullClark.cpp.

References Surface::m_mesh, subdivide(), and U32.

void CatmullClarkSubdivision::divideEdge indexEdge edge,
indexFace face
[private]
 

Definition at line 35 of file CatmullClark.cpp.

References gmMesh::addVertex(), edge, indexFace::getArbitraryIndex(), and Surface::m_mesh.

Referenced by subdivide().

void CatmullClarkSubdivision::divideFace indexFace face  )  [private]
 

Definition at line 11 of file CatmullClark.cpp.

References gmMesh::addVertex(), indexFace::getVertex(), indexFace::getVertexCount(), Surface::m_mesh, M_PI, indexFace::setArbitraryIndex(), and U32.

Referenced by subdivide().

int CatmullClarkSubdivision::matrix int *  n,
double *  s
[virtual]
 

Implements Subdivision.

Definition at line 286 of file CatmullClark.cpp.

void CatmullClarkSubdivision::subdivide U32  base_group  )  [private]
 

Definition at line 141 of file CatmullClark.cpp.

References indexFace::addVertex(), buildVertex(), divideEdge(), divideFace(), MeshGroup::faceIndexPostIncrement(), MeshGroup::facePostIncrement(), indexFace::getArbitraryIndex(), indexEdge::getArbitraryIndex(), indexVertex::getArbitraryIndex(), indexFace::getEdge(), indexFace::getEdgeCount(), indexFace::getVertexCount(), indexFace::getVertexIndex(), indexVertex::hasArbitraryIndex(), indexEdge::hasArbitraryIndex(), Surface::m_mesh, MeshGroup::rewindFaceList(), and U32.

Referenced by compute().


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