PolygonalMesh Class Reference

This class provides a description of a mesh made of polygonal faces. More...

#include <PolygonalMesh.h>

List of all members.

Public Member Functions

 PolygonalMesh ()
 Create a PolygonalMesh, which initially contains no vertices or faces.
 PolygonalMesh (const PolygonalMesh &copy)
PolygonalMeshoperator= (const PolygonalMesh &copy)
 ~PolygonalMesh ()
int getNumFaces () const
 Get the number of faces in the mesh.
int getNumVertices () const
 Get the number of vertices in the mesh.
const Vec3getVertexPosition (int vertex) const
 Get the position of a vertex in the mesh.
int getNumVerticesForFace (int face) const
 Get the number of vertices that make up a face.
int getFaceVertex (int face, int vertex) const
 Get the index of one of the vertices of a face.
int addVertex (const Vec3 &position)
 Add a vertex to the mesh.
int addFace (const std::vector< int > &vertices)
 Add a face to the mesh.
void scaleMesh (Real scale)
 Scale a mesh by multiplying every vertex by a fix value.
void transformMesh (const Transform &transform)
 Transform a mesh by applying a Transform to every vertex.
void loadObjFile (std::istream &file)
 Load a Wavefront OBJ file, adding the vertices and faces it contains to this mesh.
const PolygonalMeshImpl & getImpl () const
PolygonalMeshImpl & updImpl ()

Detailed Description

This class provides a description of a mesh made of polygonal faces.

Its primary purpose is for loading geometry from files, which can then be used for visualization or collision detection. For example, the following lines load a mesh from a Wavefront OBJ file, then create a DecorativeMesh from it.

 PolygonalMesh mesh;
 std::ifstream file;
 file.open("teapot.obj");
 mesh.loadObjFile(file);
 file.close();
 DecorativeMesh decoration(mesh);
 

Constructor & Destructor Documentation

PolygonalMesh (  ) 

Create a PolygonalMesh, which initially contains no vertices or faces.

PolygonalMesh ( const PolygonalMesh copy  ) 
~PolygonalMesh (  ) 

Member Function Documentation

int addFace ( const std::vector< int > &  vertices  ) 

Add a face to the mesh.

Parameters:
vertices the indices of the vertices which make up the new face
Returns:
the index of the newly added face
int addVertex ( const Vec3 position  ) 

Add a vertex to the mesh.

Parameters:
position the position of the vertex to add
Returns:
the index of the newly added vertex
int getFaceVertex ( int  face,
int  vertex 
) const

Get the index of one of the vertices of a face.

Parameters:
face the index of the face
vertex the index of the vertex within the face (from 0, 1, or 2 for a triangular face, etc.)
Returns:
the index of the specified vertex
const PolygonalMeshImpl& getImpl (  )  const
int getNumFaces (  )  const

Get the number of faces in the mesh.

int getNumVertices (  )  const

Get the number of vertices in the mesh.

int getNumVerticesForFace ( int  face  )  const

Get the number of vertices that make up a face.

Parameters:
face the index of the face
const Vec3& getVertexPosition ( int  vertex  )  const

Get the position of a vertex in the mesh.

Parameters:
vertex the index of the vertex to get
Returns:
the position of the specified vertex
void loadObjFile ( std::istream &  file  ) 

Load a Wavefront OBJ file, adding the vertices and faces it contains to this mesh.

Parameters:
file an input stream from which to load the file contents
PolygonalMesh& operator= ( const PolygonalMesh copy  ) 
void scaleMesh ( Real  scale  ) 

Scale a mesh by multiplying every vertex by a fix value.

void transformMesh ( const Transform transform  ) 

Transform a mesh by applying a Transform to every vertex.

PolygonalMeshImpl& updImpl (  ) 

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

Generated on Wed Dec 30 11:05:27 2009 for SimTKcore by  doxygen 1.6.1