A halfedge data structure for polygonal meshes.
|
|
| SurfaceMesh () |
| default constructor
|
|
virtual | ~SurfaceMesh () |
| destructor
|
|
| SurfaceMesh (const SurfaceMesh &rhs) |
| copy constructor: copies rhs to *this . More...
|
|
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 | add_vertex (const Point &p) |
| add a new vertex with position p
|
|
Face | add_face (const std::vector< Vertex > &vertices) |
| Add a new face with vertex list vertices . More...
|
|
Face | add_triangle (Vertex v0, Vertex v1, Vertex v2) |
| add a new triangle connecting vertices v0 , v1 , v2 More...
|
|
Face | add_quad (Vertex v0, Vertex v1, Vertex v2, Vertex v3) |
| add a new quad connecting vertices v0 , v1 , v2 , v3 More...
|
|
|
size_t | vertices_size () const |
|
size_t | halfedges_size () const |
|
size_t | edges_size () const |
|
size_t | faces_size () const |
|
size_t | n_vertices () const |
|
size_t | n_halfedges () const |
|
size_t | n_edges () const |
|
size_t | n_faces () const |
|
bool | is_empty () const |
|
virtual void | clear () |
| clear mesh: remove all vertices, edges, faces
|
|
void | free_memory () |
| remove unused memory from vectors
|
|
void | reserve (size_t nvertices, size_t nedges, size_t nfaces) |
| reserve memory (mainly used in file readers)
|
|
void | garbage_collection () |
| remove deleted elements
|
|
bool | is_deleted (Vertex v) const |
|
bool | is_deleted (Halfedge h) const |
|
bool | is_deleted (Edge e) const |
|
bool | is_deleted (Face f) const |
|
bool | is_valid (Vertex v) const |
|
bool | is_valid (Halfedge h) const |
|
bool | is_valid (Edge e) const |
|
bool | is_valid (Face f) const |
|
|
Halfedge | halfedge (Vertex v) const |
|
void | set_halfedge (Vertex v, Halfedge h) |
| set the outgoing halfedge of vertex v to h
|
|
bool | is_boundary (Vertex v) const |
|
bool | is_isolated (Vertex v) const |
|
bool | is_manifold (Vertex v) const |
|
Vertex | to_vertex (Halfedge h) const |
|
Vertex | from_vertex (Halfedge h) const |
|
void | set_vertex (Halfedge h, Vertex v) |
| sets the vertex the halfedge h points to to v
|
|
Face | face (Halfedge h) const |
|
void | set_face (Halfedge h, Face f) |
| sets the incident face to halfedge h to f
|
|
Halfedge | next_halfedge (Halfedge h) const |
|
void | set_next_halfedge (Halfedge h, Halfedge nh) |
| sets the next halfedge of h within the face to nh
|
|
void | set_prev_halfedge (Halfedge h, Halfedge ph) |
| sets the previous halfedge of h and the next halfedge of ph to nh
|
|
Halfedge | prev_halfedge (Halfedge h) const |
|
Halfedge | opposite_halfedge (Halfedge h) const |
|
Halfedge | ccw_rotated_halfedge (Halfedge h) const |
|
Halfedge | cw_rotated_halfedge (Halfedge h) const |
|
Edge | edge (Halfedge h) const |
|
bool | is_boundary (Halfedge h) const |
|
Halfedge | halfedge (Edge e, unsigned int i) const |
|
Vertex | vertex (Edge e, unsigned int i) const |
|
Face | face (Edge e, unsigned int i) const |
|
bool | is_boundary (Edge e) const |
|
Halfedge | halfedge (Face f) const |
|
void | set_halfedge (Face f, Halfedge h) |
| sets the halfedge of face f to h
|
|
bool | is_boundary (Face f) const |
|
|
template<class T > |
VertexProperty< T > | add_vertex_property (const std::string &name, const T t=T()) |
| add a vertex property of type T with name name and default value t . More...
|
|
template<class T > |
VertexProperty< T > | get_vertex_property (const std::string &name) const |
| get the vertex property named name of type T . More...
|
|
template<class T > |
VertexProperty< T > | vertex_property (const std::string &name, const T t=T()) |
| if a vertex property of type T with name name exists, it is returned. More...
|
|
template<class T > |
void | remove_vertex_property (VertexProperty< T > &p) |
| remove the vertex property p
|
|
bool | has_vertex_property (const std::string &name) const |
| does the mesh have a vertex property with name name ?
|
|
template<class T > |
HalfedgeProperty< T > | add_halfedge_property (const std::string &name, const T t=T()) |
| add a halfedge property of type T with name name and default value t . More...
|
|
template<class T > |
EdgeProperty< T > | add_edge_property (const std::string &name, const T t=T()) |
| add a edge property of type T with name name and default value t . More...
|
|
template<class T > |
HalfedgeProperty< T > | get_halfedge_property (const std::string &name) const |
| get the halfedge property named name of type T . More...
|
|
template<class T > |
EdgeProperty< T > | get_edge_property (const std::string &name) const |
| get the edge property named name of type T . More...
|
|
template<class T > |
HalfedgeProperty< T > | halfedge_property (const std::string &name, const T t=T()) |
| if a halfedge property of type T with name name exists, it is returned. More...
|
|
template<class T > |
EdgeProperty< T > | edge_property (const std::string &name, const T t=T()) |
| if an edge property of type T with name name exists, it is returned. More...
|
|
template<class T > |
void | remove_halfedge_property (HalfedgeProperty< T > &p) |
| remove the halfedge property p
|
|
bool | has_halfedge_property (const std::string &name) const |
| does the mesh have a halfedge property with name name ?
|
|
template<class T > |
void | remove_edge_property (EdgeProperty< T > &p) |
| remove the edge property p
|
|
bool | has_edge_property (const std::string &name) const |
| does the mesh have an edge property with name name ?
|
|
std::vector< std::string > | vertex_properties () const |
|
std::vector< std::string > | halfedge_properties () const |
|
std::vector< std::string > | edge_properties () const |
|
template<class T > |
FaceProperty< T > | add_face_property (const std::string &name, const T t=T()) |
| add a face property of type T with name name and default value t . More...
|
|
template<class T > |
FaceProperty< T > | get_face_property (const std::string &name) const |
| get the face property named name of type T . More...
|
|
template<class T > |
FaceProperty< T > | face_property (const std::string &name, const T t=T()) |
| if a face property of type T with name name exists, it is returned. More...
|
|
template<class T > |
void | remove_face_property (FaceProperty< T > &p) |
| remove the face property p
|
|
bool | has_face_property (const std::string &name) const |
| does the mesh have a face property with name name ?
|
|
std::vector< std::string > | face_properties () const |
|
void | property_stats () const |
| prints the names of all properties
|
|
|
VertexIterator | vertices_begin () const |
|
VertexIterator | vertices_end () const |
|
VertexContainer | vertices () const |
|
HalfedgeIterator | halfedges_begin () const |
|
HalfedgeIterator | halfedges_end () const |
|
HalfedgeContainer | halfedges () const |
|
EdgeIterator | edges_begin () const |
|
EdgeIterator | edges_end () const |
|
EdgeContainer | edges () const |
|
VertexAroundVertexCirculator | vertices (Vertex v) const |
|
HalfedgeAroundVertexCirculator | halfedges (Vertex v) const |
|
FaceIterator | faces_begin () const |
|
FaceIterator | faces_end () const |
|
FaceContainer | faces () const |
|
FaceAroundVertexCirculator | faces (Vertex v) const |
|
VertexAroundFaceCirculator | vertices (Face f) const |
|
HalfedgeAroundFaceCirculator | halfedges (Face f) const |
|
|
Halfedge | insert_vertex (Edge e, const Point &p) |
| Subdivide the edge e = (v0,v1) by splitting it into the two edge (v0,p) and (p,v1). More...
|
|
Halfedge | insert_vertex (Edge e, Vertex v) |
| Subdivide the edge e = (v0,v1) by splitting it into the two edge (v0,v) and (v,v1). More...
|
|
Halfedge | insert_vertex (Halfedge h0, Vertex v) |
| Subdivide the halfedge h = (v0,v1) by splitting it into the two halfedges (v0,v) and (v,v1). More...
|
|
Halfedge | find_halfedge (Vertex start, Vertex end) const |
| find the halfedge from start to end
|
|
Edge | find_edge (Vertex a, Vertex b) const |
| find the edge (a,b)
|
|
bool | is_triangle_mesh () const |
|
bool | is_quad_mesh () const |
|
bool | is_collapse_ok (Halfedge v0v1) const |
|
void | collapse (Halfedge h) |
| Collapse the halfedge h by moving its start vertex into its target vertex. More...
|
|
bool | is_removal_ok (Edge e) const |
|
bool | remove_edge (Edge e) |
| Remove edge and merge its two incident faces into one. More...
|
|
Vertex | split (Face f, const Point &p) |
| Split the face f by first adding point p to the mesh and then inserting edges between p and the vertices of f . More...
|
|
void | split (Face f, Vertex v) |
| Split the face f by inserting edges between v and the vertices of f . More...
|
|
Halfedge | split (Edge e, const Point &p) |
| Split the edge e by first adding point p to the mesh and then connecting it to the two vertices of the adjacent triangles that are opposite to edge e . More...
|
|
Halfedge | split (Edge e, Vertex v) |
| Split the edge e by connecting vertex v it to the two vertices of the adjacent triangles that are opposite to edge e . More...
|
|
Halfedge | insert_edge (Halfedge h0, Halfedge h1) |
| Insert edge between the to-vertices of h0 and h1 . More...
|
|
bool | is_flip_ok (Edge e) const |
| Check whether flipping edge e is topologically OK. More...
|
|
void | flip (Edge e) |
| Flip the edge e . More...
|
|
size_t | valence (Vertex v) const |
| Compute the valence of vertex v (number of incident edges).
|
|
size_t | valence (Face f) const |
| Compute the valence of face f (its number of vertices).
|
|
void | delete_vertex (Vertex v) |
| Delete vertex v from the mesh.
|
|
void | delete_edge (Edge e) |
| Delete edge e from the mesh.
|
|
void | delete_face (Face f) |
| Deletes face f from the mesh.
|
|
|
const Point & | position (Vertex v) const |
| position of a vertex (read only)
|
|
Point & | position (Vertex v) |
| position of a vertex
|
|
std::vector< Point > & | positions () |
|
|
Vertex | new_vertex () |
| Allocate a new vertex, resize vertex properties accordingly. More...
|
|
Halfedge | new_edge () |
| Allocate a new edge, resize edge and halfedge properties accordingly. More...
|
|
Halfedge | new_edge (Vertex start, Vertex end) |
| Allocate a new edge, resize edge and halfedge properties accordingly. More...
|
|
Face | new_face () |
| Allocate a new face, resize face properties accordingly. More...
|
|