|
|
|
| Surface_mesh () |
| | default constructor
|
| |
|
virtual | ~Surface_mesh () |
| |
|
| Surface_mesh (const Surface_mesh &rhs) |
| | copy constructor: copies rhs to *this. performs a deep copy of all properties.
|
| |
|
Surface_mesh & | operator= (const Surface_mesh &rhs) |
| | assign rhs to *this. performs a deep copy of all properties.
|
| |
|
Surface_mesh & | assign (const Surface_mesh &rhs) |
| | assign rhs to *this. does not copy custom properties.
|
| |
|
| bool | read (const std::string &filename) |
| |
| bool | write (const std::string &filename) const |
| |
|
|
Vertex | add_vertex (const Point &p) |
| | add a new vertex with position p
|
| |
| Face | add_face (const std::vector< Vertex > &vertices) |
| |
| Face | add_triangle (Vertex v1, Vertex v2, Vertex v3) |
| |
| Face | add_quad (Vertex v1, Vertex v2, Vertex v3, Vertex v4) |
| |
|
|
unsigned int | vertices_size () const |
| | returns number of (deleted and valid) vertices in the mesh
|
| |
|
unsigned int | halfedges_size () const |
| | returns number of (deleted and valid)halfedge in the mesh
|
| |
|
unsigned int | edges_size () const |
| | returns number of (deleted and valid)edges in the mesh
|
| |
|
unsigned int | faces_size () const |
| | returns number of (deleted and valid)faces in the mesh
|
| |
|
unsigned int | n_vertices () const |
| | returns number of vertices in the mesh
|
| |
|
unsigned int | n_halfedges () const |
| | returns number of halfedge in the mesh
|
| |
|
unsigned int | n_edges () const |
| | returns number of edges in the mesh
|
| |
|
unsigned int | n_faces () 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 | free_memory () |
| | remove unused memory from vectors
|
| |
|
void | reserve (unsigned int nvertices, unsigned int nedges, unsigned int nfaces) |
| | reserve memory (mainly used in file readers)
|
| |
|
void | garbage_collection () |
| | remove deleted vertices/edges/faces
|
| |
| 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 |
| | return whether vertex v is valid, i.e. the index is stores it within the array bounds.
|
| |
|
bool | is_valid (Halfedge h) const |
| | return whether halfedge h is valid, i.e. the index is stores it within the array bounds.
|
| |
|
bool | is_valid (Edge e) const |
| | return whether edge e is valid, i.e. the index is stores it within the array bounds.
|
| |
|
bool | is_valid (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 | set_halfedge (Vertex v, Halfedge h) |
| | set the outgoing halfedge of vertex v to h
|
| |
|
bool | is_boundary (Vertex v) const |
| | returns whether v is a boundary vertex
|
| |
|
bool | is_isolated (Vertex v) const |
| | returns whether v is isolated, i.e., not incident to any face
|
| |
|
bool | is_manifold (Vertex v) const |
| | returns whether v is a manifold vertex (not incident to several patches)
|
| |
|
Vertex | to_vertex (Halfedge h) const |
| | returns the vertex the halfedge h points to
|
| |
|
Vertex | from_vertex (Halfedge h) const |
| | returns the vertex the halfedge h emanates from
|
| |
|
void | set_vertex (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 | set_face (Halfedge h, Face f) |
| | sets the incident face to halfedge h to f
|
| |
|
Halfedge | next_halfedge (Halfedge h) const |
| | returns the next halfedge within the incident face
|
| |
|
void | set_next_halfedge (Halfedge h, Halfedge nh) |
| | sets the next halfedge of h within the face to nh
|
| |
|
Halfedge | prev_halfedge (Halfedge h) const |
| | returns the previous halfedge within the incident face
|
| |
|
Halfedge | opposite_halfedge (Halfedge h) const |
| | returns the opposite halfedge of h
|
| |
| Halfedge | ccw_rotated_halfedge (Halfedge h) const |
| |
| Halfedge | cw_rotated_halfedge (Halfedge h) const |
| |
|
Edge | edge (Halfedge h) const |
| | return the edge that contains halfedge h as one of its two halfedges.
|
| |
|
bool | is_boundary (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 | is_boundary (Edge e) const |
| |
|
Halfedge | halfedge (Face f) const |
| | returns a halfedge of face f
|
| |
|
void | set_halfedge (Face f, Halfedge h) |
| | sets the halfedge of face f to h
|
| |
|
bool | is_boundary (Face f) const |
| | returns whether f is a boundary face, i.e., it one of its edges is a boundary edge.
|
| |
|
| template<class T > |
| Vertex_property< T > | add_vertex_property (const std::string &name, const T t=T()) |
| |
| template<class T > |
| Halfedge_property< T > | add_halfedge_property (const std::string &name, const T t=T()) |
| |
| template<class T > |
| Edge_property< T > | add_edge_property (const std::string &name, const T t=T()) |
| |
| template<class T > |
| Face_property< T > | add_face_property (const std::string &name, const T t=T()) |
| |
| template<class T > |
| Vertex_property< T > | get_vertex_property (const std::string &name) const |
| |
| template<class T > |
| Halfedge_property< T > | get_halfedge_property (const std::string &name) const |
| |
| template<class T > |
| Edge_property< T > | get_edge_property (const std::string &name) const |
| |
| template<class T > |
| Face_property< T > | get_face_property (const std::string &name) const |
| |
| template<class T > |
| Vertex_property< T > | vertex_property (const std::string &name, const T t=T()) |
| |
| template<class T > |
| Halfedge_property< T > | halfedge_property (const std::string &name, const T t=T()) |
| |
| template<class T > |
| Edge_property< T > | edge_property (const std::string &name, const T t=T()) |
| |
| template<class T > |
| Face_property< T > | face_property (const std::string &name, const T t=T()) |
| |
|
template<class T > |
| void | remove_vertex_property (Vertex_property< T > &p) |
| | remove the vertex property p
|
| |
|
template<class T > |
| void | remove_halfedge_property (Halfedge_property< T > &p) |
| | remove the halfedge property p
|
| |
|
template<class T > |
| void | remove_edge_property (Edge_property< T > &p) |
| | remove the edge property p
|
| |
|
template<class T > |
| void | remove_face_property (Face_property< T > &p) |
| | remove the face property p
|
| |
| const std::type_info & | get_vertex_property_type (const std::string &name) |
| |
| const std::type_info & | get_halfedge_property_type (const std::string &name) |
| |
| const std::type_info & | get_edge_property_type (const std::string &name) |
| |
| const std::type_info & | get_face_property_type (const std::string &name) |
| |
|
std::vector< std::string > | vertex_properties () const |
| | returns the names of all vertex properties
|
| |
|
std::vector< std::string > | halfedge_properties () const |
| | returns the names of all halfedge properties
|
| |
|
std::vector< std::string > | edge_properties () const |
| | returns the names of all edge properties
|
| |
|
std::vector< std::string > | face_properties () const |
| | returns the names of all face properties
|
| |
|
void | property_stats () const |
| | prints the names of all properties
|
| |
|
|
Vertex_iterator | vertices_begin () const |
| | returns start iterator for vertices
|
| |
|
Vertex_iterator | vertices_end () const |
| | returns end iterator for vertices
|
| |
|
Vertex_container | vertices () const |
| | returns vertex container for C++11 range-based for-loops
|
| |
|
Halfedge_iterator | halfedges_begin () const |
| | returns start iterator for halfedges
|
| |
|
Halfedge_iterator | halfedges_end () const |
| | returns end iterator for halfedges
|
| |
|
Halfedge_container | halfedges () const |
| | returns halfedge container for C++11 range-based for-loops
|
| |
|
Edge_iterator | edges_begin () const |
| | returns start iterator for edges
|
| |
|
Edge_iterator | edges_end () const |
| | returns end iterator for edges
|
| |
|
Edge_container | edges () const |
| | returns edge container for C++11 range-based for-loops
|
| |
|
Face_iterator | faces_begin () const |
| | returns start iterator for faces
|
| |
|
Face_iterator | faces_end () const |
| | returns end iterator for faces
|
| |
|
Face_container | faces () const |
| | returns face container for C++11 range-based for-loops
|
| |
|
Vertex_around_vertex_circulator | vertices (Vertex v) const |
| | returns circulator for vertices around vertex v
|
| |
|
Halfedge_around_vertex_circulator | halfedges (Vertex v) const |
| | returns circulator for outgoing halfedges around vertex v
|
| |
|
Face_around_vertex_circulator | faces (Vertex v) const |
| | returns circulator for faces around vertex v
|
| |
|
Vertex_around_face_circulator | vertices (Face f) const |
| | returns circulator for vertices of face f
|
| |
|
Halfedge_around_face_circulator | halfedges (Face f) const |
| | returns circulator for halfedges of face f
|
| |
|
| bool | is_triangle_mesh () const |
| |
| bool | is_quad_mesh () const |
| |
| void | triangulate () |
| |
| void | triangulate (Face f) |
| |
| bool | is_collapse_ok (Halfedge h) |
| |
| void | collapse (Halfedge h) |
| |
| Vertex | split (Face f, const Point &p) |
| |
| void | split (Face f, Vertex v) |
| |
| Vertex | split (Edge e, const Point &p) |
| |
| void | split (Edge e, Vertex v) |
| |
| Halfedge | insert_vertex (Edge e, const Point &p) |
| |
| Halfedge | insert_vertex (Edge e, Vertex v) |
| |
| Halfedge | insert_vertex (Halfedge h, Vertex v) |
| |
| Halfedge | insert_edge (Halfedge h0, Halfedge h1) |
| |
| bool | is_flip_ok (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 | 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)
|
| |
|
void | delete_vertex (Vertex v) |
| | deletes the vertex v from the mesh
|
| |
|
void | delete_edge (Edge e) |
| | deletes the edge e from the mesh
|
| |
|
void | delete_face (Face f) |
| | deletes the 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 > & | points () |
| | vector of vertex positions
|
| |
|
void | update_face_normals () |
| | compute face normals by calling compute_face_normal(Face) for each face.
|
| |
|
Normal | compute_face_normal (Face f) const |
| | compute normal vector of face f.
|
| |
|
void | update_vertex_normals () |
| | compute vertex normals by calling compute_vertex_normal(Vertex) for each vertex.
|
| |
|
Normal | compute_vertex_normal (Vertex v) const |
| | compute normal vector of vertex v.
|
| |
|
Scalar | edge_length (Edge e) const |
| | compute the length of edge e.
|
| |
A halfedge data structure for polygonal meshes.