OpenMesh
|
Connectifity Class for Triangle Meshes. More...
#include <OpenMesh/Core/Mesh/TriConnectivity.hh>
Public Member Functions | |
void | assign_connectivity (const TriConnectivity &_other) |
assign_connectivity() methods. | |
void | assign_connectivity (const PolyConnectivity &_other) |
assign_connectivity() method. | |
VertexHandle | opposite_vh (HalfedgeHandle _heh) const |
Returns the opposite vertex to the halfedge _heh in the face referenced by _heh returns InvalidVertexHandle if the _heh is boundary. | |
VertexHandle | opposite_he_opposite_vh (HalfedgeHandle _heh) const |
Returns the opposite vertex to the opposite halfedge of _heh in the face referenced by it returns InvalidVertexHandle if the opposite halfedge is boundary. | |
Addding items to a mesh | |
FaceHandle | add_face (const std::vector< VertexHandle > &_vhandles) |
Override OpenMesh::Mesh::PolyMeshT::add_face(). | |
FaceHandle | add_face (const VertexHandle *_vhandles, uint _vhs_size) |
Add and connect a new face. | |
FaceHandle | add_face (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2) |
Override OpenMesh::Mesh::PolyMeshT::add_face(). | |
Topology modifying operators | |
bool | is_collapse_ok (HalfedgeHandle _heh) |
Returns whether collapsing halfedge _heh is ok or would lead to topological inconsistencies. | |
HalfedgeHandle | vertex_split (VertexHandle v0, VertexHandle v1, VertexHandle vl, VertexHandle vr) |
Vertex Split: inverse operation to collapse(). | |
bool | is_flip_ok (EdgeHandle _eh) const |
Check whether flipping _eh is topologically correct. | |
void | flip (EdgeHandle _eh) |
Flip edge _eh. | |
void | split (EdgeHandle _eh, VertexHandle _vh) |
Edge split (= 2-to-4 split) | |
void | split (FaceHandle _fh, VertexHandle _vh) |
Face split (= 1-to-3 split, calls corresponding PolyMeshT function). | |
Static Public Member Functions | |
static bool | is_triangles () |
Connectifity Class for Triangle Meshes.
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.
TriConnectivity::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 |
face is triangle -> ok
face is not a triangle -> triangulate
Reimplemented from OpenMesh::PolyConnectivity.
FaceHandle OpenMesh::TriConnectivity::add_face | ( | VertexHandle | _vh0, |
VertexHandle | _vh1, | ||
VertexHandle | _vh2 | ||
) | [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.
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
void OpenMesh::TriConnectivity::assign_connectivity | ( | const PolyConnectivity & | _other | ) | [inline] |
assign_connectivity() method.
See ArrayKernel::assign_connectivity() for more details.
Reimplemented from OpenMesh::PolyConnectivity.
void OpenMesh::TriConnectivity::flip | ( | EdgeHandle | _eh | ) |
Flip edge _eh.
Check for topological correctness first using is_flip_ok().
bool OpenMesh::TriConnectivity::is_collapse_ok | ( | HalfedgeHandle | _heh | ) |
Returns whether collapsing halfedge _heh is ok or would lead to topological inconsistencies.