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

ButterflySubdivision Class Reference

#include <ButterflySubdivision.h>

Inheritance diagram for ButterflySubdivision:

Inheritance graph
[legend]
Collaboration diagram for ButterflySubdivision:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ButterflySubdivision (double w=0.0)
void subdivide (Mesh *, U32)
virtual void compute (int n)
virtual int matrix (int *n, double *s)

Private Member Functions

int getOpposingVertexInfo (gmVector3 &, gmVector3 &, indexEdge *, indexFace *, U32)
virtual void divideEdge (gmVector3 &, gmVector3 &, indexEdge *, indexFace *, U32)
void divideFace (indexFace *, Mesh *)

Private Attributes

double weight

Constructor & Destructor Documentation

ButterflySubdivision::ButterflySubdivision double  w = 0.0  ) 
 

Definition at line 7 of file ButterflySubdivision.cpp.

References weight.


Member Function Documentation

void ButterflySubdivision::compute int  n  )  [virtual]
 

Implements Subdivision.

Definition at line 287 of file ButterflySubdivision.cpp.

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

void ButterflySubdivision::divideEdge gmVector3 &  ,
gmVector3 &  ,
indexEdge ,
indexFace ,
U32 
[private, virtual]
 

Definition at line 62 of file ButterflySubdivision.cpp.

References edge, indexFace::getEdge(), indexFace::getIndex(), indexFace::getNormal(), getOpposingVertexInfo(), indexFace::getVertex(), indexEdge::getVertexA(), indexEdge::getVertexB(), indexFace::getVertexCount(), U32, vertex, and weight.

Referenced by divideFace().

void ButterflySubdivision::divideFace indexFace ,
Mesh
[private]
 

Definition at line 170 of file ButterflySubdivision.cpp.

References Mesh::addNormal(), Mesh::addVertex(), divideEdge(), edge, indexFace::getEdge(), Mesh::getIndexVertex(), indexVertex::setNormalIndex(), U32, and vertex.

Referenced by subdivide().

int ButterflySubdivision::getOpposingVertexInfo gmVector3 &  ,
gmVector3 &  ,
indexEdge ,
indexFace ,
U32 
[private]
 

Definition at line 18 of file ButterflySubdivision.cpp.

References edge, indexFace::getIndex(), indexFace::getNormal(), indexFace::getVertex(), indexFace::getVertexCount(), U32, and vertex.

Referenced by divideEdge().

virtual int ButterflySubdivision::matrix int *  n,
double *  s
[inline, virtual]
 

Implements Subdivision.

Definition at line 45 of file ButterflySubdivision.h.

void ButterflySubdivision::subdivide Mesh ,
U32 
 

Definition at line 197 of file ButterflySubdivision.cpp.

References Mesh::addFace(), Mesh::addGroup(), indexFace::addVertex(), divideFace(), edge, MeshGroup::faceIndexPostIncrement(), MeshGroup::facePostIncrement(), indexFace::getEdge(), indexFace::getEdgeCount(), Mesh::getFace(), Mesh::getGroup(), Mesh::getIndexVertex(), indexVertex::getNormalIndex(), indexFace::getNormalIndex(), indexFace::getVertexCount(), indexFace::getVertexIndex(), MeshGroup::rewindFaceList(), and U32.

Referenced by compute().


Member Data Documentation

double ButterflySubdivision::weight [private]
 

Definition at line 22 of file ButterflySubdivision.h.

Referenced by ButterflySubdivision(), and divideEdge().


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