Class containing functions to modify the topology of a halfedge based mesh. More...
#include <halfedge_topology.h>
Class containing functions to modify the topology of a halfedge based mesh.
Definition at line 22 of file halfedge_topology.h.
| typedef MeshType::EdgeIterator vcg::tri::HalfEdgeTopology< MeshType >::EdgeIterator |
Definition at line 32 of file halfedge_topology.h.
| typedef MeshType::EdgePointer vcg::tri::HalfEdgeTopology< MeshType >::EdgePointer |
Definition at line 27 of file halfedge_topology.h.
| typedef MeshType::FaceIterator vcg::tri::HalfEdgeTopology< MeshType >::FaceIterator |
Definition at line 34 of file halfedge_topology.h.
| typedef MeshType::FacePointer vcg::tri::HalfEdgeTopology< MeshType >::FacePointer |
Definition at line 29 of file halfedge_topology.h.
| typedef MeshType::HEdgeIterator vcg::tri::HalfEdgeTopology< MeshType >::HEdgeIterator |
Definition at line 33 of file halfedge_topology.h.
| typedef MeshType::HEdgePointer vcg::tri::HalfEdgeTopology< MeshType >::HEdgePointer |
Definition at line 28 of file halfedge_topology.h.
| typedef MeshType::VertexIterator vcg::tri::HalfEdgeTopology< MeshType >::VertexIterator |
Definition at line 31 of file halfedge_topology.h.
| typedef MeshType::VertexPointer vcg::tri::HalfEdgeTopology< MeshType >::VertexPointer |
Definition at line 26 of file halfedge_topology.h.
| static FacePointer vcg::tri::HalfEdgeTopology< MeshType >::add_face | ( | MeshType & | m, | |
| vector< VertexPointer > & | vps | |||
| ) | [inline, static] |
Adds a face in a mesh, checking if the operation is possible.
| m | Mesh | |
| vps | Vector of vertices (in ccw order) that will belong to the new face |
Definition at line 638 of file halfedge_topology.h.
| static FacePointer vcg::tri::HalfEdgeTopology< MeshType >::add_face_unsafe | ( | MeshType & | m, | |
| vector< VertexPointer > & | vps, | |||
| vector< HEdgePointer > & | hps, | |||
| vector< bool > & | non_manifold_vertices | |||
| ) | [inline, static, protected] |
Adds a face in a mesh without any check
| m | Mesh | |
| vps | Vector of vertices (in ccw order) that will belong to the new face | |
| non_manifold_vertices | Vector of booleans denoting on the i-th position if the i-th vertex is non-manifold |
Definition at line 737 of file halfedge_topology.h.
| static FacePointer vcg::tri::HalfEdgeTopology< MeshType >::add_face_unsafe | ( | MeshType & | m, | |
| vector< VertexPointer > & | vps | |||
| ) | [inline, static, protected] |
Adds a face in a mesh without any check
| m | Mesh | |
| vps | Vector of vertices (in ccw order) that will belong to the new face |
Definition at line 710 of file halfedge_topology.h.
| static bool vcg::tri::HalfEdgeTopology< MeshType >::can_add_hedge | ( | vector< VertexPointer > & | vps, | |
| vector< HEdgePointer > & | hps | |||
| ) | [inline, static, protected] |
Checks if the next hedge can be inserted into hps. If true, inserts the hedge into hps. If false, inserts NULL.
| vps | Vector of vertices (in ccw order) that will belong to the new face | |
| hps | Vector of hedges already checked |
| true | if hedge can be inserted | |
| false | otherwise |
Definition at line 1056 of file halfedge_topology.h.
| static bool vcg::tri::HalfEdgeTopology< MeshType >::can_remove_face | ( | FacePointer | fp | ) | [inline, static, protected] |
Checks if a face can be removed
| fp | Face to check |
| true | if the face can be removed | |
| false | otherwise |
Definition at line 1139 of file halfedge_topology.h.
| static void vcg::tri::HalfEdgeTopology< MeshType >::change_vertex | ( | VertexPointer | old_vp, | |
| VertexPointer | new_vp | |||
| ) | [inline, static, protected] |
Connects to a new vertex all hedges incident to a vertex
| old_vp | the old vertex to be disconnected | |
| new_vp | the new vertex to be connected |
Definition at line 1277 of file halfedge_topology.h.
| static VertexPointer vcg::tri::HalfEdgeTopology< MeshType >::diagonal_collapse | ( | MeshType & | m, | |
| FacePointer | fp, | |||
| VertexPointer | vp | |||
| ) | [inline, static] |
Collpases a diagonal in a quad.
Definition at line 91 of file halfedge_topology.h.
| static FacePointer vcg::tri::HalfEdgeTopology< MeshType >::doublet_remove | ( | MeshType & | m, | |
| VertexPointer | vp | |||
| ) | [inline, static] |
Removes a doublet merging the two quads in one
Definition at line 307 of file halfedge_topology.h.
| static VertexPointer vcg::tri::HalfEdgeTopology< MeshType >::edge_collapse | ( | MeshType & | m, | |
| EdgePointer | ep, | |||
| VertexPointer | vp | |||
| ) | [inline, static] |
Collapses a generic edge
Definition at line 569 of file halfedge_topology.h.
| static VertexPointer vcg::tri::HalfEdgeTopology< MeshType >::edge_collapse_quad | ( | MeshType & | m, | |
| EdgePointer | ep, | |||
| VertexPointer | vp | |||
| ) | [inline, static] |
Collpases an edge shared by two quads, generating only quads. Made by a series of a vertex rotation and a diagonal collapse.
Definition at line 46 of file halfedge_topology.h.
| static EdgePointer vcg::tri::HalfEdgeTopology< MeshType >::edge_rotate | ( | MeshType & | m, | |
| EdgePointer | ep, | |||
| bool | cw | |||
| ) | [inline, static] |
Rotates a non-border edge shared by two quads
Definition at line 426 of file halfedge_topology.h.
| static vector<FacePointer> vcg::tri::HalfEdgeTopology< MeshType >::get_incident_faces | ( | VertexPointer | vp, | |
| HEdgePointer | starting_he = NULL | |||
| ) | [inline, static, protected] |
Gets all faces incident to a vertex
| fp | Vertex | |
| starting_he | A hedge from which to start |
Definition at line 1244 of file halfedge_topology.h.
| static vector<HEdgePointer> vcg::tri::HalfEdgeTopology< MeshType >::getHEdges | ( | FacePointer | fp, | |
| HEdgePointer | starting_he = NULL | |||
| ) | [inline, static, protected] |
Gets all edges incident to a face
| fp | Face | |
| starting_he | A hedge in the face from which to start |
Definition at line 1210 of file halfedge_topology.h.
| static vector<VertexPointer> vcg::tri::HalfEdgeTopology< MeshType >::getVertices | ( | FacePointer | fp, | |
| HEdgePointer | starting_he = NULL | |||
| ) | [inline, static, protected] |
Gets all vertices incident to a face
| fp | Face | |
| starting_he | A hedge in the face from which to start |
Definition at line 1176 of file halfedge_topology.h.
| static bool vcg::tri::HalfEdgeTopology< MeshType >::remove_face | ( | MeshType & | m, | |
| FacePointer | fp | |||
| ) | [inline, static] |
Removes a face in a mesh, checking if the operation is possible
| m | Mesh | |
| fp | face to be removed |
| true | if face has been removed | |
| false | otherwise |
Definition at line 679 of file halfedge_topology.h.
| static void vcg::tri::HalfEdgeTopology< MeshType >::remove_face_unsafe | ( | MeshType & | m, | |
| FacePointer | fp | |||
| ) | [inline, static, protected] |
Removes a face in a mesh, without any check
Definition at line 955 of file halfedge_topology.h.
| static EdgePointer vcg::tri::HalfEdgeTopology< MeshType >::singlet_remove | ( | MeshType & | m, | |
| VertexPointer | vp | |||
| ) | [inline, static] |
Removes a singlet replacing it with an edge
Definition at line 361 of file halfedge_topology.h.
| static VertexPointer vcg::tri::HalfEdgeTopology< MeshType >::vertex_rotate | ( | MeshType & | m, | |
| VertexPointer | vp | |||
| ) | [inline, static] |
Rotates a non-border vertex shared by only quads
Definition at line 503 of file halfedge_topology.h.