#include <ShMesh.hpp>
Inheritance diagram for ShUtil::ShMesh< M >:

Public Types | |
| typedef M | MeshType | 
| typedef M::Vertex | Vertex | 
| typedef M::Edge | Edge | 
| typedef M::Face | Face | 
| typedef std::set< Vertex * > | VertexSet | 
| typedef std::set< Edge * > | EdgeSet | 
| typedef std::set< Face * > | FaceSet | 
| typedef std::list< Vertex * > | VertexList | 
Public Member Functions | |
| ShMesh () | |
| Empty mesh constructor.  | |
| ShMesh (const ShMesh< M > &other) | |
| Copy constructor Makes copies of vertices, edges, and faces and builds a mesh isomorphic other.  | |
| ~ShMesh () | |
| ShMesh destructor.  | |
| ShMesh< M > & | operator= (const ShMesh< M > &other) | 
| Assignment Operator.  | |
| void | clear () | 
| removes all verts, edges, and faces in this mesh & deletes them  | |
| Face * | addFace (const VertexList &vl) | 
| Adds a face to the mesh. The face contains the given vertices in order (do not repeat first vertex). Adds required edges and faces. The edge corresponding to vl(0) -> vl(1) is set to result->edge.  | |
| void | removeFace (Face *f) | 
| Removes a face from the mesh. Deletes edges involed in the face, but not the vertices.  | |
| template<typename VertLess> | |
| void | mergeVertices () | 
| Vertex merging function. Merges any vertices that are "equal" according to the StrictWeakOrdering functor VertLess.  | |
| void | mergeEdges () | 
| Edge merging function. Pairs up half-edges that match each other (i.e. e1.start = e2.end, e1.end = e2.start).   | |
| bool | earTriangulate () | 
| Triangulates by ear. returnst true if any triangles removed.  | |
Public Attributes | |
| VertexSet | verts | 
| EdgeSet | edges | 
| FaceSet | faces | 
Protected Types | |
| 
typedef std::map< Vertex *, Vertex * >  | VertexMap | 
| 
typedef std::map< Edge *, Edge * >  | EdgeMap | 
| 
typedef std::map< Face *, Face * >  | FaceMap | 
| 
typedef std::multimap< Vertex *, Edge * >  | IncidenceMap | 
| typedef IncidenceMap::value_type | Incidence | 
| typedef IncidenceMap::iterator | IncidenceIterator | 
| 
typedef std::pair< typename  IncidenceMap::iterator, typename IncidenceMap::iterator >  | IncidenceRange | 
Protected Member Functions | |
| void | removeHalfEdge (Edge *e) | 
| Removes a half-edge from the mesh. If e->start->edge == this, then e->start->edge is set to a different element in the m_startMap;.   | |
| void | insertHalfEdge (Edge *e) | 
| Adds e to the edges set and m_incidenceEdges incidence map.  | |
Protected Attributes | |
| IncidenceMap | m_incidences | 
Definition at line 138 of file ShMesh.hpp.
      
  | 
  |||||||||
| 
 Edge merging function. Pairs up half-edges that match each other (i.e. e1.start = e2.end, e1.end = e2.start). Note that if there are multiple edges between start->end that match up with an edge, e, from end->start, one of them will be set to e->sym. Which one gets matched is undefined. Definition at line 280 of file ShMeshImpl.hpp.  | 
  
      
  | 
  ||||||||||
| 
 Removes a half-edge from the mesh. If e->start->edge == this, then e->start->edge is set to a different element in the m_startMap;. This is a private utility function that does not update e->face if e->face->edge == e. Definition at line 341 of file ShMeshImpl.hpp. Referenced by ShUtil::ShMesh< M >::removeFace().  | 
  
 1.4.1