Connectifity Class for Triangle Meshes. More...
#include <TriConnectivity.hh>
Public Member Functions | |
| void | assign_connectivity (const PolyConnectivity &_other) |
| void | assign_connectivity (const TriConnectivity &_other) |
| VertexHandle | opposite_he_opposite_vh (HalfedgeHandle _heh) const |
| VertexHandle | opposite_vh (HalfedgeHandle _heh) const |
| TriConnectivity () | |
| virtual | ~TriConnectivity () |
Addding items to a mesh | |
| FaceHandle | add_face (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2) |
| Add and connect a new face. | |
| FaceHandle | add_face (const VertexHandle *_vhandles, uint _vhs_size) |
| Add and connect a new face. | |
| FaceHandle | add_face (const std::vector< VertexHandle > &_vhandles) |
Topology modifying operators | |
| void | flip (EdgeHandle _eh) |
| bool | is_collapse_ok (HalfedgeHandle _heh) |
| bool | is_flip_ok (EdgeHandle _eh) const |
| Check whether flipping _eh is topologically correct. | |
| void | split (FaceHandle _fh, VertexHandle _vh) |
| Face split (= 1-to-3 split, calls corresponding PolyMeshT function). | |
| void | split (EdgeHandle _eh, VertexHandle _vh) |
| Edge split (= 2-to-4 split). | |
| HalfedgeHandle | vertex_split (VertexHandle v0, VertexHandle v1, VertexHandle vl, VertexHandle vr) |
| Vertex Split: inverse operation to collapse(). | |
Static Public Member Functions | |
| static bool | is_triangles () |
Private Member Functions | |
| HalfedgeHandle | insert_edge (VertexHandle _vh, HalfedgeHandle _h0, HalfedgeHandle _h1) |
| Helper for vertex split. | |
| HalfedgeHandle | insert_loop (HalfedgeHandle _hh) |
| Helper for vertex split. | |
Connectifity Class for Triangle Meshes.
Definition at line 51 of file TriConnectivity.hh.
| OpenMesh::TriConnectivity::TriConnectivity | ( | ) | [inline] |
Definition at line 55 of file TriConnectivity.hh.
| virtual OpenMesh::TriConnectivity::~TriConnectivity | ( | ) | [inline, virtual] |
Definition at line 56 of file TriConnectivity.hh.
| FaceHandle OpenMesh::TriConnectivity::add_face | ( | VertexHandle | _vh0, | |
| VertexHandle | _vh1, | |||
| VertexHandle | _vh2 | |||
| ) | [inline] |
Add and connect a new face.
Create a new face consisting of three vertices provided by the handles. (The vertices have to be already added to the mesh by add_vertex)
| _vh0 | First vertex handle | |
| _vh1 | Second vertex handle | |
| _vh2 | Third vertex handle |
Reimplemented from OpenMesh::PolyConnectivity.
Definition at line 84 of file TriConnectivity.hh.
| FaceHandle OpenMesh::TriConnectivity::add_face | ( | const VertexHandle * | _vhandles, | |
| uint | _vhs_size | |||
| ) |
Add and connect a new face.
Create a new face consisting of vertices provided by a handle array. (The vertices have to be already added to the mesh by add_vertex)
| _vhandles | pointer to a sorted list of vertex handles (also defines order in which the vertices are added to the face) | |
| _vhs_size | number of vertex handles in the array |
Reimplemented from OpenMesh::PolyConnectivity.
| FaceHandle OpenMesh::TriConnectivity::add_face | ( | const std::vector< VertexHandle > & | _vhandles | ) | [inline] |
Override OpenMesh::Mesh::PolyMeshT::add_face(). Faces that aren't triangles will be triangulated and added. In this case an invalid face handle will be returned.
Reimplemented from OpenMesh::PolyConnectivity.
Definition at line 79 of file TriConnectivity.hh.
| void OpenMesh::TriConnectivity::assign_connectivity | ( | const PolyConnectivity & | _other | ) | [inline] |
assign_connectivity() method. See ArrayKernel::assign_connectivity() for more details.
Reimplemented from OpenMesh::PolyConnectivity.
Definition at line 67 of file TriConnectivity.hh.
| void OpenMesh::TriConnectivity::assign_connectivity | ( | const TriConnectivity & | _other | ) | [inline] |
assign_connectivity() methods. See ArrayKernel::assign_connectivity() for more details. When the source connectivity is not triangles, in addition "fan" connectivity triangulation is performed
Definition at line 64 of file TriConnectivity.hh.
| void OpenMesh::TriConnectivity::flip | ( | EdgeHandle | _eh | ) |
Flip edge _eh. Check for topological correctness first using is_flip_ok().
| HalfedgeHandle OpenMesh::TriConnectivity::insert_edge | ( | VertexHandle | _vh, | |
| HalfedgeHandle | _h0, | |||
| HalfedgeHandle | _h1 | |||
| ) | [private] |
Helper for vertex split.
| HalfedgeHandle OpenMesh::TriConnectivity::insert_loop | ( | HalfedgeHandle | _hh | ) | [private] |
Helper for vertex split.
| bool OpenMesh::TriConnectivity::is_collapse_ok | ( | HalfedgeHandle | _heh | ) |
Returns whether collapsing halfedge _heh is ok or would lead to topological inconsistencies.
| bool OpenMesh::TriConnectivity::is_flip_ok | ( | EdgeHandle | _eh | ) | const |
Check whether flipping _eh is topologically correct.
| static bool OpenMesh::TriConnectivity::is_triangles | ( | ) | [inline, static] |
Reimplemented from OpenMesh::PolyConnectivity.
Definition at line 58 of file TriConnectivity.hh.
| VertexHandle OpenMesh::TriConnectivity::opposite_he_opposite_vh | ( | HalfedgeHandle | _heh | ) | const [inline] |
Returns the opposite vertex to the opposite halfedge of _heh in the face referenced by it returns InvalidVertexHandle if the opposite halfedge is boundary
Definition at line 104 of file TriConnectivity.hh.
| VertexHandle OpenMesh::TriConnectivity::opposite_vh | ( | HalfedgeHandle | _heh | ) | const [inline] |
Returns the opposite vertex to the halfedge _heh in the face referenced by _heh returns InvalidVertexHandle if the _heh is boundary
Definition at line 95 of file TriConnectivity.hh.
| void OpenMesh::TriConnectivity::split | ( | FaceHandle | _fh, | |
| VertexHandle | _vh | |||
| ) | [inline] |
Face split (= 1-to-3 split, calls corresponding PolyMeshT function).
Reimplemented from OpenMesh::PolyConnectivity.
Definition at line 133 of file TriConnectivity.hh.
| void OpenMesh::TriConnectivity::split | ( | EdgeHandle | _eh, | |
| VertexHandle | _vh | |||
| ) |
Edge split (= 2-to-4 split).
| HalfedgeHandle OpenMesh::TriConnectivity::vertex_split | ( | VertexHandle | v0, | |
| VertexHandle | v1, | |||
| VertexHandle | vl, | |||
| VertexHandle | vr | |||
| ) |
Vertex Split: inverse operation to collapse().