A halfedge data structure for polygonal meshes.
|
|
| SurfaceMesh () |
| default constructor
|
|
| ~SurfaceMesh () |
|
| SurfaceMesh (const SurfaceMesh &rhs) |
| copy constructor: copies rhs to *this . performs a deep copy of all properties.
|
|
SurfaceMesh & | operator= (const SurfaceMesh &rhs) |
| assign rhs to *this . performs a deep copy of all properties.
|
|
SurfaceMesh & | assign (const SurfaceMesh &rhs) |
| assign rhs to *this . does not copy custom properties.
|
|
|
Vertex | addVertex () |
| add a new vertex
|
|
Face | addFace (const std::vector< Vertex > &vertices) |
|
Face | addTriangle (Vertex v1, Vertex v2, Vertex v3) |
|
Face | addQuad (Vertex v1, Vertex v2, Vertex v3, Vertex v4) |
|
|
unsigned int | verticesSize () const |
| returns number of (deleted and valid) vertices in the mesh
|
|
unsigned int | halfedgesSize () const |
| returns number of (deleted and valid)halfedge in the mesh
|
|
unsigned int | edgesSize () const |
| returns number of (deleted and valid)edges in the mesh
|
|
unsigned int | facesSize () const |
| returns number of (deleted and valid)faces in the mesh
|
|
unsigned int | nVertices () const |
| returns number of vertices in the mesh
|
|
unsigned int | nHalfedges () const |
| returns number of halfedge in the mesh
|
|
unsigned int | nEdges () const |
| returns number of edges in the mesh
|
|
unsigned int | nFaces () const |
| returns number of faces in the mesh
|
|
unsigned int | empty () const |
| returns true iff the mesh is empty, i.e., has no vertices
|
|
void | clear () |
| clear mesh: remove all vertices, edges, faces
|
|
void | freeMemory () |
| remove unused memory from vectors
|
|
void | reserve (unsigned int nvertices, unsigned int nedges, unsigned int nfaces) |
| reserve memory (mainly used in file readers)
|
|
void | garbageCollection (unsigned flags=0) |
| remove deleted vertices/edges/faces
|
|
void | releaseGCIndexMaps () |
|
Vertex | gcMap (Vertex v) |
|
Halfedge | gcMap (Halfedge h) |
|
Face | gcMap (Face f) |
|
bool | isDeleted (Vertex v) const |
|
bool | isDeleted (Halfedge h) const |
|
bool | isDeleted (Edge e) const |
|
bool | isDeleted (Face f) const |
|
bool | isValid (Vertex v) const |
| return whether vertex v is valid, i.e. the index is stores it within the array bounds.
|
|
bool | isValid (Halfedge h) const |
| return whether halfedge h is valid, i.e. the index is stores it within the array bounds.
|
|
bool | isValid (Edge e) const |
| return whether edge e is valid, i.e. the index is stores it within the array bounds.
|
|
bool | isValid (Face f) const |
| return whether face f is valid, i.e. the index is stores it within the array bounds.
|
|
|
Halfedge | halfedge (Vertex v) const |
|
void | setHalfedge (Vertex v, Halfedge h) |
| set the outgoing halfedge of vertex v to h
|
|
bool | isBoundary (Vertex v) const |
| returns whether v is a boundary vertex
|
|
bool | isIsolated (Vertex v) const |
| returns whether v is isolated, i.e., not incident to any face
|
|
bool | isManifold (Vertex v) const |
| returns whether v is a manifold vertex (not incident to several patches)
|
|
Vertex | toVertex (Halfedge h) const |
| returns the vertex the halfedge h points to
|
|
Vertex | fromVertex (Halfedge h) const |
| returns the vertex the halfedge h emanates from
|
|
void | setVertex (Halfedge h, Vertex v) |
| sets the vertex the halfedge h points to to v
|
|
Face | face (Halfedge h) const |
| returns the face incident to halfedge h
|
|
void | setFace (Halfedge h, Face f) |
| sets the incident face to halfedge h to f
|
|
Halfedge | nextHalfedge (Halfedge h) const |
| returns the next halfedge within the incident face
|
|
void | setNextHalfedge (Halfedge h, Halfedge nh) |
| sets the next halfedge of h within the face to nh
|
|
Halfedge | prevHalfedge (Halfedge h) const |
| returns the previous halfedge within the incident face
|
|
Halfedge | oppositeHalfedge (Halfedge h) const |
| returns the opposite halfedge of h
|
|
Halfedge | ccwRotatedHalfedge (Halfedge h) const |
|
Halfedge | cwRotatedHalfedge (Halfedge h) const |
|
Edge | edge (Halfedge h) const |
| return the edge that contains halfedge h as one of its two halfedges.
|
|
bool | isBoundary (Halfedge h) const |
| returns whether h is a boundary halfege, i.e., if its face does not exist.
|
|
Halfedge | halfedge (Edge e, unsigned int i) const |
| returns the i'th halfedge of edge e . i has to be 0 or 1.
|
|
Vertex | vertex (Edge e, unsigned int i) const |
| returns the i'th vertex of edge e . i has to be 0 or 1.
|
|
Face | face (Edge e, unsigned int i) const |
| returns the face incident to the i'th halfedge of edge e . i has to be 0 or 1.
|
|
bool | isBoundary (Edge e) const |
|
Halfedge | halfedge (Face f) const |
| returns a halfedge of face f
|
|
void | setHalfedge (Face f, Halfedge h) |
| sets the halfedge of face f to h
|
|
bool | isBoundary (Face f) const |
| returns whether f is a boundary face, i.e., it one of its edges is a boundary edge.
|
|
|
template<class T > |
VertexProperty< T > | addVertexProperty (const std::string &name, const T t=T()) |
|
template<class T > |
HalfedgeProperty< T > | addHalfedgeProperty (const std::string &name, const T t=T()) |
|
template<class T > |
EdgeProperty< T > | addEdgeProperty (const std::string &name, const T t=T()) |
|
template<class T > |
FaceProperty< T > | addFaceProperty (const std::string &name, const T t=T()) |
|
template<class T > |
VertexProperty< T > | getVertexProperty (const std::string &name) const |
|
template<class T > |
HalfedgeProperty< T > | getHalfedgeProperty (const std::string &name) const |
|
template<class T > |
EdgeProperty< T > | getEdgeProperty (const std::string &name) const |
|
template<class T > |
FaceProperty< T > | getFaceProperty (const std::string &name) const |
|
template<class T > |
VertexProperty< T > | vertexProperty (const std::string &name, const T t=T()) |
|
template<class T > |
HalfedgeProperty< T > | halfedgeProperty (const std::string &name, const T t=T()) |
|
template<class T > |
EdgeProperty< T > | edgeProperty (const std::string &name, const T t=T()) |
|
template<class T > |
FaceProperty< T > | faceProperty (const std::string &name, const T t=T()) |
|
template<class T > |
void | removeVertexProperty (VertexProperty< T > &p) |
| remove the vertex property p
|
|
template<class T > |
void | removeHalfedgeProperty (HalfedgeProperty< T > &p) |
| remove the halfedge property p
|
|
template<class T > |
void | removeEdgeProperty (EdgeProperty< T > &p) |
| remove the edge property p
|
|
template<class T > |
void | removeFaceProperty (FaceProperty< T > &p) |
| remove the face property p
|
|
const std::type_info & | getVertexPropertyType (const std::string &name) |
|
const std::type_info & | getHalfedgePropertyType (const std::string &name) |
|
const std::type_info & | getEdgePropertyType (const std::string &name) |
|
const std::type_info & | getFacePropertyType (const std::string &name) |
|
std::vector< std::string > | vertexProperties () const |
| returns the names of all vertex properties
|
|
std::vector< std::string > | halfedgeProperties () const |
| returns the names of all halfedge properties
|
|
std::vector< std::string > | edgeProperties () const |
| returns the names of all edge properties
|
|
std::vector< std::string > | faceProperties () const |
| returns the names of all face properties
|
|
void | propertyStats () const |
| prints the names of all properties
|
|
|
VertexIterator | verticesBegin () const |
| returns start iterator for vertices
|
|
VertexIterator | verticesEnd () const |
| returns end iterator for vertices
|
|
VertexContainer | vertices () const |
| returns vertex container for C++11 range-based for-loops
|
|
HalfedgeIterator | halfedgesBegin () const |
| returns start iterator for halfedges
|
|
HalfedgeIterator | halfedgesEnd () const |
| returns end iterator for halfedges
|
|
HalfedgeContainer | halfedges () const |
| returns halfedge container for C++11 range-based for-loops
|
|
EdgeIterator | edgesBegin () const |
| returns start iterator for edges
|
|
EdgeIterator | edgesEnd () const |
| returns end iterator for edges
|
|
EdgeContainer | edges () const |
| returns edge container for C++11 range-based for-loops
|
|
FaceIterator | facesBegin () const |
| returns start iterator for faces
|
|
FaceIterator | facesEnd () const |
| returns end iterator for faces
|
|
FaceContainer | faces () const |
| returns face container for C++11 range-based for-loops
|
|
VertexAroundVertexCirculator | vertices (Vertex v) const |
| returns circulator for vertices around vertex v
|
|
HalfedgeAroundVertexCirculator | halfedges (Vertex v) const |
| returns circulator for outgoing halfedges around vertex v
|
|
FaceAroundVertexCirculator | faces (Vertex v) const |
| returns circulator for faces around vertex v
|
|
VertexAroundFaceCirculator | vertices (Face f) const |
| returns circulator for vertices of face f
|
|
HalfedgeAroundFaceCirculator | halfedges (Face f) const |
| returns circulator for halfedges of face f
|
|
|
bool | isTriangleMesh () const |
|
bool | isQuadMesh () const |
|
void | triangulate () |
|
void | triangulate (Face f) |
|
bool | isCollapseOk (Halfedge h) |
|
void | collapse (Halfedge h) |
|
void | split (Face f, Vertex v) |
|
void | split (Edge e, Vertex v) |
|
Halfedge | insertVertex (Edge e, Vertex v) |
|
Halfedge | insertVertex (Halfedge h, Vertex v) |
|
Halfedge | insertEdge (Halfedge h0, Halfedge h1) |
|
bool | isFlipOk (Edge e) const |
|
void | flip (Edge e) |
|
unsigned int | valence (Vertex v) const |
|
unsigned int | valence (Face f) const |
| returns the valence of face f (its number of vertices)
|
|
Halfedge | findHalfedge (Vertex start, Vertex end) const |
| find the halfedge from start to end
|
|
Edge | findEdge (Vertex a, Vertex b) const |
| find the edge (a,b)
|
|
void | deleteVertex (Vertex v) |
| deletes the vertex v from the mesh
|
|
void | deleteEdge (Edge e) |
| deletes the edge e from the mesh
|
|
void | deleteFace (Face f) |
| deletes the face f from the mesh
|
|