|
| SurfaceMeshGL () |
| Constructor. More...
|
|
| ~SurfaceMeshGL () override |
| default destructor More...
|
|
void | clear () override |
| clear mesh: remove all vertices, edges, faces, free OpenGL buffers More...
|
|
const vec3 & | front_color () const |
| get front color More...
|
|
void | set_front_color (const vec3 &color) |
| set front color More...
|
|
const vec3 & | back_color () const |
| get back color More...
|
|
void | set_back_color (const vec3 &color) |
| set back color More...
|
|
float | ambient () const |
| get ambient reflection coefficient More...
|
|
void | set_ambient (float a) |
| set ambient reflection coefficient More...
|
|
float | diffuse () const |
| get diffuse reflection coefficient More...
|
|
void | set_diffuse (float d) |
| set diffuse reflection coefficient More...
|
|
float | specular () const |
| get specular reflection coefficient More...
|
|
void | set_specular (float s) |
| set specular reflection coefficient More...
|
|
float | shininess () const |
| get specular shininess coefficient More...
|
|
void | set_shininess (float s) |
| set specular shininess coefficient More...
|
|
float | alpha () const |
| get alpha value for transparent rendering More...
|
|
void | set_alpha (float a) |
| set alpha value for transparent rendering More...
|
|
Scalar | crease_angle () const |
| get crease angle (in degrees) for visualization of sharp edges More...
|
|
void | set_crease_angle (Scalar ca) |
| set crease angle (in degrees) for visualization of sharp edges More...
|
|
float | point_size () const |
| get point size for visualization of points More...
|
|
void | set_point_size (float ps) |
| set point size for visualization of points More...
|
|
void | set_use_colors (bool use_colors) |
| Control usage of color information. More...
|
|
void | draw (const mat4 &projection_matrix, const mat4 &modelview_matrix, const std::string draw_mode) |
| draw the mesh More...
|
|
void | update_opengl_buffers () |
| update all opengl buffers for efficient core profile rendering More...
|
|
void | use_cold_warm_texture () |
| use color map to visualize scalar fields More...
|
|
void | use_checkerboard_texture () |
| setup checkerboard texture More...
|
|
void | load_texture (const char *filename, GLint format=GL_RGB, GLint min_filter=GL_LINEAR_MIPMAP_LINEAR, GLint mag_filter=GL_LINEAR, GLint wrap=GL_CLAMP_TO_EDGE) |
| load texture from file More...
|
|
void | load_matcap (const char *filename) |
| Load mat-cap texture from file. More...
|
|
| SurfaceMesh () |
| default constructor More...
|
|
virtual | ~SurfaceMesh () |
| destructor More...
|
|
| 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. More...
|
|
SurfaceMesh & | assign (const SurfaceMesh &rhs) |
| assign rhs to *this . does not copy custom properties. More...
|
|
void | read (const std::string &filename, const IOFlags &flags=IOFlags()) |
| Read mesh from file filename controlled by flags . More...
|
|
void | write (const std::string &filename, const IOFlags &flags=IOFlags()) const |
| Write mesh to file filename controlled by flags . More...
|
|
Vertex | add_vertex (const Point &p) |
| add a new vertex with position p More...
|
|
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 |
| returns number of (deleted and valid) vertices in the mesh More...
|
|
size_t | halfedges_size () const |
| returns number of (deleted and valid) halfedges in the mesh More...
|
|
size_t | edges_size () const |
| returns number of (deleted and valid) edges in the mesh More...
|
|
size_t | faces_size () const |
| returns number of (deleted and valid) faces in the mesh More...
|
|
size_t | n_vertices () const |
| returns number of vertices in the mesh More...
|
|
size_t | n_halfedges () const |
| returns number of halfedge in the mesh More...
|
|
size_t | n_edges () const |
| returns number of edges in the mesh More...
|
|
size_t | n_faces () const |
| returns number of faces in the mesh More...
|
|
bool | is_empty () const |
| returns true if the mesh is empty, i.e., has no vertices More...
|
|
void | free_memory () |
| remove unused memory from vectors More...
|
|
void | reserve (size_t nvertices, size_t nedges, size_t nfaces) |
| reserve memory (mainly used in file readers) More...
|
|
void | garbage_collection () |
| remove deleted elements More...
|
|
bool | is_deleted (Vertex v) const |
| returns whether vertex v is deleted More...
|
|
bool | is_deleted (Halfedge h) const |
| returns whether halfedge h is deleted More...
|
|
bool | is_deleted (Edge e) const |
| returns whether edge e is deleted More...
|
|
bool | is_deleted (Face f) const |
| returns whether face f is deleted More...
|
|
bool | is_valid (Vertex v) const |
| return whether vertex v is valid, i.e. More...
|
|
bool | is_valid (Halfedge h) const |
| return whether halfedge h is valid, i.e. More...
|
|
bool | is_valid (Edge e) const |
| return whether edge e is valid, i.e. the index is stores it within the array bounds. More...
|
|
bool | is_valid (Face f) const |
| returns whether the face f is valid. More...
|
|
Halfedge | halfedge (Vertex v) const |
| returns an outgoing halfedge of vertex v . More...
|
|
void | set_halfedge (Vertex v, Halfedge h) |
| set the outgoing halfedge of vertex v to h More...
|
|
bool | is_boundary (Vertex v) const |
| returns whether v is a boundary vertex More...
|
|
bool | is_isolated (Vertex v) const |
| returns whether v is isolated, i.e., not incident to any edge More...
|
|
bool | is_manifold (Vertex v) const |
| returns whether v is a manifold vertex (not incident to several patches) More...
|
|
Vertex | to_vertex (Halfedge h) const |
| returns the vertex the halfedge h points to More...
|
|
Vertex | from_vertex (Halfedge h) const |
| returns the vertex the halfedge h emanates from More...
|
|
void | set_vertex (Halfedge h, Vertex v) |
| sets the vertex the halfedge h points to to v More...
|
|
Face | face (Halfedge h) const |
| returns the face incident to halfedge h More...
|
|
void | set_face (Halfedge h, Face f) |
| sets the incident face to halfedge h to f More...
|
|
Halfedge | next_halfedge (Halfedge h) const |
| returns the next halfedge within the incident face More...
|
|
void | set_next_halfedge (Halfedge h, Halfedge nh) |
| sets the next halfedge of h within the face to nh More...
|
|
void | set_prev_halfedge (Halfedge h, Halfedge ph) |
| sets the previous halfedge of h and the next halfedge of ph to nh More...
|
|
Halfedge | prev_halfedge (Halfedge h) const |
| returns the previous halfedge within the incident face More...
|
|
Halfedge | opposite_halfedge (Halfedge h) const |
| returns the opposite halfedge of h More...
|
|
Halfedge | ccw_rotated_halfedge (Halfedge h) const |
| returns the halfedge that is rotated counter-clockwise around the start vertex of h . More...
|
|
Halfedge | cw_rotated_halfedge (Halfedge h) const |
| returns the halfedge that is rotated clockwise around the start vertex of h . More...
|
|
Edge | edge (Halfedge h) const |
| return the edge that contains halfedge h as one of its two halfedges. More...
|
|
bool | is_boundary (Halfedge h) const |
| returns whether h is a boundary halfedge, i.e., if its face does not exist. More...
|
|
Halfedge | halfedge (Edge e, unsigned int i) const |
| returns the i'th halfedge of edge e . i has to be 0 or 1. More...
|
|
Vertex | vertex (Edge e, unsigned int i) const |
| returns the i'th vertex of edge e . i has to be 0 or 1. More...
|
|
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. More...
|
|
bool | is_boundary (Edge e) const |
| returns whether e is a boundary edge, i.e., if one of its halfedges is a boundary halfedge. More...
|
|
Halfedge | halfedge (Face f) const |
| returns a halfedge of face f More...
|
|
void | set_halfedge (Face f, Halfedge h) |
| sets the halfedge of face f to h More...
|
|
bool | is_boundary (Face f) const |
| returns whether f is a boundary face, i.e., it one of its edges is a boundary edge. More...
|
|
template<class T > |
ObjectProperty< T > | add_object_property (const std::string &name, const T t=T()) |
| add a object property of type T with name name and default value t . More...
|
|
template<class T > |
ObjectProperty< T > | get_object_property (const std::string &name) const |
| get the object property named name of type T . More...
|
|
template<class T > |
ObjectProperty< T > | object_property (const std::string &name, const T t=T()) |
| if a object property of type T with name name exists, it is returned. More...
|
|
template<class T > |
void | remove_object_property (ObjectProperty< T > &p) |
| remove the object property p More...
|
|
const std::type_info & | get_object_propertyType (const std::string &name) |
| get the type_info T of face property named name . More...
|
|
std::vector< std::string > | object_properties () const |
| returns the names of all face properties More...
|
|
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 More...
|
|
bool | has_vertex_property (const std::string &name) const |
| does the mesh have a vertex property with name name ? More...
|
|
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 More...
|
|
bool | has_halfedge_property (const std::string &name) const |
| does the mesh have a halfedge property with name name ? More...
|
|
template<class T > |
void | remove_edge_property (EdgeProperty< T > &p) |
| remove the edge property p More...
|
|
bool | has_edge_property (const std::string &name) const |
| does the mesh have an edge property with name name ? More...
|
|
const std::type_info & | get_halfedge_property_type (const std::string &name) |
| get the type_info T of halfedge property named name . More...
|
|
const std::type_info & | get_vertex_property_type (const std::string &name) |
| get the type_info T of vertex property named name . More...
|
|
const std::type_info & | get_edge_property_type (const std::string &name) |
| get the type_info T of edge property named name . More...
|
|
std::vector< std::string > | vertex_properties () const |
| returns the names of all vertex properties More...
|
|
std::vector< std::string > | halfedge_properties () const |
| returns the names of all halfedge properties More...
|
|
std::vector< std::string > | edge_properties () const |
| returns the names of all edge properties More...
|
|
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 More...
|
|
bool | has_face_property (const std::string &name) const |
| does the mesh have a face property with name name ? More...
|
|
const std::type_info & | get_face_property_type (const std::string &name) |
| get the type_info T of face property named name . More...
|
|
std::vector< std::string > | face_properties () const |
| returns the names of all face properties More...
|
|
void | property_stats () const |
| prints the names of all properties More...
|
|
VertexIterator | vertices_begin () const |
| returns start iterator for vertices More...
|
|
VertexIterator | vertices_end () const |
| returns end iterator for vertices More...
|
|
VertexContainer | vertices () const |
| returns vertex container for C++11 range-based for-loops More...
|
|
HalfedgeIterator | halfedges_begin () const |
| returns start iterator for halfedges More...
|
|
HalfedgeIterator | halfedges_end () const |
| returns end iterator for halfedges More...
|
|
HalfedgeContainer | halfedges () const |
| returns halfedge container for C++11 range-based for-loops More...
|
|
EdgeIterator | edges_begin () const |
| returns start iterator for edges More...
|
|
EdgeIterator | edges_end () const |
| returns end iterator for edges More...
|
|
EdgeContainer | edges () const |
| returns edge container for C++11 range-based for-loops More...
|
|
VertexAroundVertexCirculator | vertices (Vertex v) const |
| returns circulator for vertices around vertex v More...
|
|
HalfedgeAroundVertexCirculator | halfedges (Vertex v) const |
| returns circulator for outgoing halfedges around vertex v More...
|
|
FaceIterator | faces_begin () const |
| returns start iterator for faces More...
|
|
FaceIterator | faces_end () const |
| returns end iterator for faces More...
|
|
FaceContainer | faces () const |
| returns face container for C++11 range-based for-loops More...
|
|
FaceAroundVertexCirculator | faces (Vertex v) const |
| returns circulator for faces around vertex v More...
|
|
VertexAroundFaceCirculator | vertices (Face f) const |
| returns circulator for vertices of face f More...
|
|
HalfedgeAroundFaceCirculator | halfedges (Face f) const |
| returns circulator for halfedges of face f More...
|
|
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 More...
|
|
Edge | find_edge (Vertex a, Vertex b) const |
| find the edge (a,b) More...
|
|
bool | is_triangle_mesh () const |
| returns whether the mesh a triangle mesh. More...
|
|
bool | is_quad_mesh () const |
| returns whether the mesh a quad mesh. More...
|
|
bool | is_collapse_ok (Halfedge v0v1) |
| returns whether collapsing the halfedge v0v1 is topologically legal. More...
|
|
void | collapse (Halfedge h) |
| Collapse the halfedge h by moving its start vertex into its target vertex. More...
|
|
bool | is_removal_ok (Edge e) |
| returns whether removing the edge e is topologically legal. More...
|
|
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 v0 of h0 and v1 of h1 . More...
|
|
bool | is_flip_ok (Edge e) const |
| Check whether flipping edge e is topologically. More...
|
|
void | flip (Edge e) |
| Flip the edge e . More...
|
|
size_t | valence (Vertex v) const |
| returns the valence (number of incident edges or neighboring vertices) of vertex v . More...
|
|
size_t | valence (Face f) const |
| returns the valence of face f (its number of vertices) More...
|
|
void | delete_vertex (Vertex v) |
| deletes the vertex v from the mesh More...
|
|
void | delete_edge (Edge e) |
| deletes the edge e from the mesh More...
|
|
void | delete_face (Face f) |
| deletes the face f from the mesh More...
|
|
const Point & | position (Vertex v) const |
| position of a vertex (read only) More...
|
|
Point & | position (Vertex v) |
| position of a vertex More...
|
|
std::vector< Point > & | positions () |
|
BoundingBox | bounds () const |
| compute the bounding box of the object More...
|
|
Scalar | edge_length (Edge e) const |
| compute the length of edge e . More...
|
|
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...
|
|