#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(). |