OpenMesh
OpenMesh::TriConnectivity Class Reference

Connectivity Class for Triangle Meshes. More...

#include <OpenMesh/Core/Mesh/TriConnectivity.hh>

Inheritance diagram for OpenMesh::TriConnectivity:
Collaboration diagram for OpenMesh::TriConnectivity:

Public Member Functions

void assign_connectivity (const TriConnectivity &_other)
 assign_connectivity() methods. More...
 
void assign_connectivity (const PolyConnectivity &_other)
 
Addding items to a mesh
SmartFaceHandle add_face (const VertexHandle *_vhandles, size_t _vhs_size)
 Add a face with arbitrary valence to the triangle mesh. More...
 
SmartFaceHandle add_face (const std::vector< VertexHandle > &_vhandles)
 Add a face with arbitrary valence to the triangle mesh. More...
 
SmartFaceHandle add_face (const std::vector< SmartVertexHandle > &_vhandles)
 Add a face with arbitrary valence to the triangle mesh. More...
 
SmartFaceHandle add_face (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2)
 Add a face to the mesh (triangle) More...
 
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

 
- Public Member Functions inherited from OpenMesh::PolyConnectivity
void adjust_outgoing_halfedge (VertexHandle _vh)
 Adjust outgoing halfedge handle for vertices, so that it is a boundary halfedge whenever possible.
 
SmartHalfedgeHandle find_halfedge (VertexHandle _start_vh, VertexHandle _end_vh) const
 Find halfedge from _vh0 to _vh1. Returns invalid handle if not found.
 
uint valence (VertexHandle _vh) const
 Vertex valence.
 
uint valence (FaceHandle _fh) const
 Face valence.
 
void collapse (HalfedgeHandle _heh)
 Halfedge collapse: collapse the from-vertex of halfedge _heh into its to-vertex. More...
 
bool is_simple_link (EdgeHandle _eh) const
 return true if the this the only link between the faces adjacent to _eh. More...
 
bool is_simply_connected (FaceHandle _fh) const
 return true if _fh shares only one edge with all of its adjacent faces. More...
 
FaceHandle remove_edge (EdgeHandle _eh)
 Removes the edge _eh. More...
 
void reinsert_edge (EdgeHandle _eh)
 Inverse of remove_edge. More...
 
HalfedgeHandle insert_edge (HalfedgeHandle _prev_heh, HalfedgeHandle _next_heh)
 Inserts an edge between to_vh(_prev_heh) and from_vh(_next_heh). More...
 
void split (FaceHandle _fh, VertexHandle _vh)
 Face split (= 1-to-n split). More...
 
void split_copy (FaceHandle _fh, VertexHandle _vh)
 Face split (= 1-to-n split). More...
 
void triangulate (FaceHandle _fh)
 Triangulate the face _fh. More...
 
void triangulate ()
 triangulate the entire mesh

 
void split_edge (EdgeHandle _eh, VertexHandle _vh)
 Edge split (inserts a vertex on the edge only) More...
 
void split_edge_copy (EdgeHandle _eh, VertexHandle _vh)
 Edge split (inserts a vertex on the edge only) More...
 
template<>
PolyConnectivity::ConstVertexRangeSkipping elements () const
 
template<>
PolyConnectivity::ConstVertexRange all_elements () const
 
template<>
PolyConnectivity::ConstHalfedgeRangeSkipping elements () const
 
template<>
PolyConnectivity::ConstHalfedgeRange all_elements () const
 
template<>
PolyConnectivity::ConstEdgeRangeSkipping elements () const
 
template<>
PolyConnectivity::ConstEdgeRange all_elements () const
 
template<>
PolyConnectivity::ConstFaceRangeSkipping elements () const
 
template<>
PolyConnectivity::ConstFaceRange all_elements () const
 
SmartVertexHandle add_vertex ()
 Add a new vertex.
 
SmartFaceHandle add_face (const std::vector< VertexHandle > &_vhandles)
 Add and connect a new face. More...
 
SmartFaceHandle add_face (const std::vector< SmartVertexHandle > &_vhandles)
 Add and connect a new face. More...
 
SmartFaceHandle add_face (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2)
 Add and connect a new face. More...
 
SmartFaceHandle add_face (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2, VertexHandle _vh3)
 Add and connect a new face. More...
 
SmartFaceHandle add_face (const VertexHandle *_vhandles, size_t _vhs_size)
 Add and connect a new face. More...
 
bool is_collapse_ok (HalfedgeHandle _he)
 Returns whether collapsing halfedge _heh is ok or would lead to topological inconsistencies. More...
 
void delete_vertex (VertexHandle _vh, bool _delete_isolated_vertices=true)
 Mark vertex and all incident edges and faces deleted. More...
 
void delete_edge (EdgeHandle _eh, bool _delete_isolated_vertices=true)
 Mark edge (two opposite halfedges) and incident faces deleted. More...
 
void delete_face (FaceHandle _fh, bool _delete_isolated_vertices=true)
 Delete face _fh and resulting degenerated empty halfedges as well. More...
 
VertexIter vertices_begin ()
 Begin iterator for vertices.
 
ConstVertexIter vertices_begin () const
 Const begin iterator for vertices.
 
VertexIter vertices_end ()
 End iterator for vertices.
 
ConstVertexIter vertices_end () const
 Const end iterator for vertices.
 
HalfedgeIter halfedges_begin ()
 Begin iterator for halfedges.
 
ConstHalfedgeIter halfedges_begin () const
 Const begin iterator for halfedges.
 
HalfedgeIter halfedges_end ()
 End iterator for halfedges.
 
ConstHalfedgeIter halfedges_end () const
 Const end iterator for halfedges.
 
EdgeIter edges_begin ()
 Begin iterator for edges.
 
ConstEdgeIter edges_begin () const
 Const begin iterator for edges.
 
EdgeIter edges_end ()
 End iterator for edges.
 
ConstEdgeIter edges_end () const
 Const end iterator for edges.
 
FaceIter faces_begin ()
 Begin iterator for faces.
 
ConstFaceIter faces_begin () const
 Const begin iterator for faces.
 
FaceIter faces_end ()
 End iterator for faces.
 
ConstFaceIter faces_end () const
 Const end iterator for faces.
 
VertexIter vertices_sbegin ()
 Begin iterator for vertices.
 
ConstVertexIter vertices_sbegin () const
 Const begin iterator for vertices.
 
HalfedgeIter halfedges_sbegin ()
 Begin iterator for halfedges.
 
ConstHalfedgeIter halfedges_sbegin () const
 Const begin iterator for halfedges.
 
EdgeIter edges_sbegin ()
 Begin iterator for edges.
 
ConstEdgeIter edges_sbegin () const
 Const begin iterator for edges.
 
FaceIter faces_sbegin ()
 Begin iterator for faces.
 
ConstFaceIter faces_sbegin () const
 Const begin iterator for faces.
 
VertexVertexIter vv_iter (VertexHandle _vh)
 vertex - vertex circulator
 
VertexVertexCWIter vv_cwiter (VertexHandle _vh)
 vertex - vertex circulator cw
 
VertexVertexCCWIter vv_ccwiter (VertexHandle _vh)
 vertex - vertex circulator ccw
 
VertexIHalfedgeIter vih_iter (VertexHandle _vh)
 vertex - incoming halfedge circulator
 
VertexIHalfedgeCWIter vih_cwiter (VertexHandle _vh)
 vertex - incoming halfedge circulator cw
 
VertexIHalfedgeCCWIter vih_ccwiter (VertexHandle _vh)
 vertex - incoming halfedge circulator ccw
 
VertexOHalfedgeIter voh_iter (VertexHandle _vh)
 vertex - outgoing halfedge circulator
 
VertexOHalfedgeCWIter voh_cwiter (VertexHandle _vh)
 vertex - outgoing halfedge circulator cw
 
VertexOHalfedgeCCWIter voh_ccwiter (VertexHandle _vh)
 vertex - outgoing halfedge circulator ccw
 
VertexEdgeIter ve_iter (VertexHandle _vh)
 vertex - edge circulator
 
VertexEdgeCWIter ve_cwiter (VertexHandle _vh)
 vertex - edge circulator cw
 
VertexEdgeCCWIter ve_ccwiter (VertexHandle _vh)
 vertex - edge circulator ccw
 
VertexFaceIter vf_iter (VertexHandle _vh)
 vertex - face circulator
 
VertexFaceCWIter vf_cwiter (VertexHandle _vh)
 vertex - face circulator cw
 
VertexFaceCCWIter vf_ccwiter (VertexHandle _vh)
 vertex - face circulator ccw
 
ConstVertexVertexIter cvv_iter (VertexHandle _vh) const
 const vertex circulator
 
ConstVertexVertexCWIter cvv_cwiter (VertexHandle _vh) const
 const vertex circulator cw
 
ConstVertexVertexCCWIter cvv_ccwiter (VertexHandle _vh) const
 const vertex circulator ccw
 
ConstVertexIHalfedgeIter cvih_iter (VertexHandle _vh) const
 const vertex - incoming halfedge circulator
 
ConstVertexIHalfedgeCWIter cvih_cwiter (VertexHandle _vh) const
 const vertex - incoming halfedge circulator cw
 
ConstVertexIHalfedgeCCWIter cvih_ccwiter (VertexHandle _vh) const
 const vertex - incoming halfedge circulator ccw
 
ConstVertexOHalfedgeIter cvoh_iter (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator
 
ConstVertexOHalfedgeCWIter cvoh_cwiter (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator cw
 
ConstVertexOHalfedgeCCWIter cvoh_ccwiter (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator ccw
 
ConstVertexEdgeIter cve_iter (VertexHandle _vh) const
 const vertex - edge circulator
 
ConstVertexEdgeCWIter cve_cwiter (VertexHandle _vh) const
 const vertex - edge circulator cw
 
ConstVertexEdgeCCWIter cve_ccwiter (VertexHandle _vh) const
 const vertex - edge circulator ccw
 
ConstVertexFaceIter cvf_iter (VertexHandle _vh) const
 const vertex - face circulator
 
ConstVertexFaceCWIter cvf_cwiter (VertexHandle _vh) const
 const vertex - face circulator cw
 
ConstVertexFaceCCWIter cvf_ccwiter (VertexHandle _vh) const
 const vertex - face circulator ccw
 
FaceVertexIter fv_iter (FaceHandle _fh)
 face - vertex circulator
 
FaceVertexCWIter fv_cwiter (FaceHandle _fh)
 face - vertex circulator cw
 
FaceVertexCCWIter fv_ccwiter (FaceHandle _fh)
 face - vertex circulator ccw
 
FaceHalfedgeIter fh_iter (FaceHandle _fh)
 face - halfedge circulator
 
FaceHalfedgeCWIter fh_cwiter (FaceHandle _fh)
 face - halfedge circulator cw
 
FaceHalfedgeCCWIter fh_ccwiter (FaceHandle _fh)
 face - halfedge circulator ccw
 
FaceEdgeIter fe_iter (FaceHandle _fh)
 face - edge circulator
 
FaceEdgeCWIter fe_cwiter (FaceHandle _fh)
 face - edge circulator cw
 
FaceEdgeCCWIter fe_ccwiter (FaceHandle _fh)
 face - edge circulator ccw
 
FaceFaceIter ff_iter (FaceHandle _fh)
 face - face circulator
 
FaceFaceCWIter ff_cwiter (FaceHandle _fh)
 face - face circulator cw
 
FaceFaceCCWIter ff_ccwiter (FaceHandle _fh)
 face - face circulator ccw
 
ConstFaceVertexIter cfv_iter (FaceHandle _fh) const
 const face - vertex circulator
 
ConstFaceVertexCWIter cfv_cwiter (FaceHandle _fh) const
 const face - vertex circulator cw
 
ConstFaceVertexCCWIter cfv_ccwiter (FaceHandle _fh) const
 const face - vertex circulator ccw
 
ConstFaceHalfedgeIter cfh_iter (FaceHandle _fh) const
 const face - halfedge circulator
 
ConstFaceHalfedgeCWIter cfh_cwiter (FaceHandle _fh) const
 const face - halfedge circulator cw
 
ConstFaceHalfedgeCCWIter cfh_ccwiter (FaceHandle _fh) const
 const face - halfedge circulator ccw
 
ConstFaceEdgeIter cfe_iter (FaceHandle _fh) const
 const face - edge circulator
 
ConstFaceEdgeCWIter cfe_cwiter (FaceHandle _fh) const
 const face - edge circulator cw
 
ConstFaceEdgeCCWIter cfe_ccwiter (FaceHandle _fh) const
 const face - edge circulator ccw
 
ConstFaceFaceIter cff_iter (FaceHandle _fh) const
 const face - face circulator
 
ConstFaceFaceCWIter cff_cwiter (FaceHandle _fh) const
 const face - face circulator cw
 
ConstFaceFaceCCWIter cff_ccwiter (FaceHandle _fh) const
 const face - face circulator
 
VertexVertexIter vv_begin (VertexHandle _vh)
 vertex - vertex circulator
 
VertexVertexCWIter vv_cwbegin (VertexHandle _vh)
 vertex - vertex circulator cw
 
VertexVertexCCWIter vv_ccwbegin (VertexHandle _vh)
 vertex - vertex circulator ccw
 
VertexIHalfedgeIter vih_begin (VertexHandle _vh)
 vertex - incoming halfedge circulator
 
VertexIHalfedgeCWIter vih_cwbegin (VertexHandle _vh)
 vertex - incoming halfedge circulator cw
 
VertexIHalfedgeCCWIter vih_ccwbegin (VertexHandle _vh)
 vertex - incoming halfedge circulator ccw
 
VertexOHalfedgeIter voh_begin (VertexHandle _vh)
 vertex - outgoing halfedge circulator
 
VertexOHalfedgeCWIter voh_cwbegin (VertexHandle _vh)
 vertex - outgoing halfedge circulator cw
 
VertexOHalfedgeCCWIter voh_ccwbegin (VertexHandle _vh)
 vertex - outgoing halfedge circulator ccw
 
VertexEdgeIter ve_begin (VertexHandle _vh)
 vertex - edge circulator
 
VertexEdgeCWIter ve_cwbegin (VertexHandle _vh)
 vertex - edge circulator cw
 
VertexEdgeCCWIter ve_ccwbegin (VertexHandle _vh)
 vertex - edge circulator ccw
 
VertexFaceIter vf_begin (VertexHandle _vh)
 vertex - face circulator
 
VertexFaceCWIter vf_cwbegin (VertexHandle _vh)
 vertex - face circulator cw
 
VertexFaceCCWIter vf_ccwbegin (VertexHandle _vh)
 vertex - face circulator ccw
 
ConstVertexVertexIter cvv_begin (VertexHandle _vh) const
 const vertex circulator
 
ConstVertexVertexCWIter cvv_cwbegin (VertexHandle _vh) const
 const vertex circulator cw
 
ConstVertexVertexCCWIter cvv_ccwbegin (VertexHandle _vh) const
 const vertex circulator ccw
 
ConstVertexIHalfedgeIter cvih_begin (VertexHandle _vh) const
 const vertex - incoming halfedge circulator
 
ConstVertexIHalfedgeCWIter cvih_cwbegin (VertexHandle _vh) const
 const vertex - incoming halfedge circulator cw
 
ConstVertexIHalfedgeCCWIter cvih_ccwbegin (VertexHandle _vh) const
 const vertex - incoming halfedge circulator ccw
 
ConstVertexOHalfedgeIter cvoh_begin (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator
 
ConstVertexOHalfedgeCWIter cvoh_cwbegin (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator cw
 
ConstVertexOHalfedgeCCWIter cvoh_ccwbegin (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator ccw
 
ConstVertexEdgeIter cve_begin (VertexHandle _vh) const
 const vertex - edge circulator
 
ConstVertexEdgeCWIter cve_cwbegin (VertexHandle _vh) const
 const vertex - edge circulator cw
 
ConstVertexEdgeCCWIter cve_ccwbegin (VertexHandle _vh) const
 const vertex - edge circulator ccw
 
ConstVertexFaceIter cvf_begin (VertexHandle _vh) const
 const vertex - face circulator
 
ConstVertexFaceCWIter cvf_cwbegin (VertexHandle _vh) const
 const vertex - face circulator cw
 
ConstVertexFaceCCWIter cvf_ccwbegin (VertexHandle _vh) const
 const vertex - face circulator ccw
 
FaceVertexIter fv_begin (FaceHandle _fh)
 face - vertex circulator
 
FaceVertexCWIter fv_cwbegin (FaceHandle _fh)
 face - vertex circulator cw
 
FaceVertexCCWIter fv_ccwbegin (FaceHandle _fh)
 face - vertex circulator ccw
 
FaceHalfedgeIter fh_begin (FaceHandle _fh)
 face - halfedge circulator
 
FaceHalfedgeCWIter fh_cwbegin (FaceHandle _fh)
 face - halfedge circulator cw
 
FaceHalfedgeCCWIter fh_ccwbegin (FaceHandle _fh)
 face - halfedge circulator ccw
 
FaceEdgeIter fe_begin (FaceHandle _fh)
 face - edge circulator
 
FaceEdgeCWIter fe_cwbegin (FaceHandle _fh)
 face - edge circulator cw
 
FaceEdgeCCWIter fe_ccwbegin (FaceHandle _fh)
 face - edge circulator ccw
 
FaceFaceIter ff_begin (FaceHandle _fh)
 face - face circulator
 
FaceFaceCWIter ff_cwbegin (FaceHandle _fh)
 face - face circulator cw
 
FaceFaceCCWIter ff_ccwbegin (FaceHandle _fh)
 face - face circulator ccw
 
HalfedgeLoopIter hl_begin (HalfedgeHandle _heh)
 halfedge circulator
 
HalfedgeLoopCWIter hl_cwbegin (HalfedgeHandle _heh)
 halfedge circulator
 
HalfedgeLoopCCWIter hl_ccwbegin (HalfedgeHandle _heh)
 halfedge circulator ccw
 
ConstFaceVertexIter cfv_begin (FaceHandle _fh) const
 const face - vertex circulator
 
ConstFaceVertexCWIter cfv_cwbegin (FaceHandle _fh) const
 const face - vertex circulator cw
 
ConstFaceVertexCCWIter cfv_ccwbegin (FaceHandle _fh) const
 const face - vertex circulator ccw
 
ConstFaceHalfedgeIter cfh_begin (FaceHandle _fh) const
 const face - halfedge circulator
 
ConstFaceHalfedgeCWIter cfh_cwbegin (FaceHandle _fh) const
 const face - halfedge circulator cw
 
ConstFaceHalfedgeCCWIter cfh_ccwbegin (FaceHandle _fh) const
 const face - halfedge circulator ccw
 
ConstFaceEdgeIter cfe_begin (FaceHandle _fh) const
 const face - edge circulator
 
ConstFaceEdgeCWIter cfe_cwbegin (FaceHandle _fh) const
 const face - edge circulator cw
 
ConstFaceEdgeCCWIter cfe_ccwbegin (FaceHandle _fh) const
 const face - edge circulator ccw
 
ConstFaceFaceIter cff_begin (FaceHandle _fh) const
 const face - face circulator
 
ConstFaceFaceCWIter cff_cwbegin (FaceHandle _fh) const
 const face - face circulator cw
 
ConstFaceFaceCCWIter cff_ccwbegin (FaceHandle _fh) const
 const face - face circulator ccw
 
ConstHalfedgeLoopIter chl_begin (HalfedgeHandle _heh) const
 const halfedge circulator
 
ConstHalfedgeLoopCWIter chl_cwbegin (HalfedgeHandle _heh) const
 const halfedge circulator cw
 
ConstHalfedgeLoopCCWIter chl_ccwbegin (HalfedgeHandle _heh) const
 const halfedge circulator ccw
 
VertexVertexIter vv_end (VertexHandle _vh)
 vertex - vertex circulator
 
VertexVertexCWIter vv_cwend (VertexHandle _vh)
 vertex - vertex circulator cw
 
VertexVertexCCWIter vv_ccwend (VertexHandle _vh)
 vertex - vertex circulator ccw
 
VertexIHalfedgeIter vih_end (VertexHandle _vh)
 vertex - incoming halfedge circulator
 
VertexIHalfedgeCWIter vih_cwend (VertexHandle _vh)
 vertex - incoming halfedge circulator cw
 
VertexIHalfedgeCCWIter vih_ccwend (VertexHandle _vh)
 vertex - incoming halfedge circulator ccw
 
VertexOHalfedgeIter voh_end (VertexHandle _vh)
 vertex - outgoing halfedge circulator
 
VertexOHalfedgeCWIter voh_cwend (VertexHandle _vh)
 vertex - outgoing halfedge circulator cw
 
VertexOHalfedgeCCWIter voh_ccwend (VertexHandle _vh)
 vertex - outgoing halfedge circulator ccw
 
VertexEdgeIter ve_end (VertexHandle _vh)
 vertex - edge circulator
 
VertexEdgeCWIter ve_cwend (VertexHandle _vh)
 vertex - edge circulator cw
 
VertexEdgeCCWIter ve_ccwend (VertexHandle _vh)
 vertex - edge circulator ccw
 
VertexFaceIter vf_end (VertexHandle _vh)
 vertex - face circulator
 
VertexFaceCWIter vf_cwend (VertexHandle _vh)
 vertex - face circulator cw
 
VertexFaceCCWIter vf_ccwend (VertexHandle _vh)
 vertex - face circulator ccw
 
ConstVertexVertexIter cvv_end (VertexHandle _vh) const
 const vertex circulator
 
ConstVertexVertexCWIter cvv_cwend (VertexHandle _vh) const
 const vertex circulator cw
 
ConstVertexVertexCCWIter cvv_ccwend (VertexHandle _vh) const
 const vertex circulator ccw
 
ConstVertexIHalfedgeIter cvih_end (VertexHandle _vh) const
 const vertex - incoming halfedge circulator
 
ConstVertexIHalfedgeCWIter cvih_cwend (VertexHandle _vh) const
 const vertex - incoming halfedge circulator cw
 
ConstVertexIHalfedgeCCWIter cvih_ccwend (VertexHandle _vh) const
 const vertex - incoming halfedge circulator ccw
 
ConstVertexOHalfedgeIter cvoh_end (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator
 
ConstVertexOHalfedgeCWIter cvoh_cwend (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator cw
 
ConstVertexOHalfedgeCCWIter cvoh_ccwend (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator ccw
 
ConstVertexEdgeIter cve_end (VertexHandle _vh) const
 const vertex - edge circulator
 
ConstVertexEdgeCWIter cve_cwend (VertexHandle _vh) const
 const vertex - edge circulator cw
 
ConstVertexEdgeCCWIter cve_ccwend (VertexHandle _vh) const
 const vertex - edge circulator ccw
 
ConstVertexFaceIter cvf_end (VertexHandle _vh) const
 const vertex - face circulator
 
ConstVertexFaceCWIter cvf_cwend (VertexHandle _vh) const
 const vertex - face circulator cw
 
ConstVertexFaceCCWIter cvf_ccwend (VertexHandle _vh) const
 const vertex - face circulator ccw
 
FaceVertexIter fv_end (FaceHandle _fh)
 face - vertex circulator
 
FaceVertexCWIter fv_cwend (FaceHandle _fh)
 face - vertex circulator cw
 
FaceVertexCCWIter fv_ccwend (FaceHandle _fh)
 face - vertex circulator ccw
 
FaceHalfedgeIter fh_end (FaceHandle _fh)
 face - halfedge circulator
 
FaceHalfedgeCWIter fh_cwend (FaceHandle _fh)
 face - halfedge circulator cw
 
FaceHalfedgeCCWIter fh_ccwend (FaceHandle _fh)
 face - halfedge circulator ccw
 
FaceEdgeIter fe_end (FaceHandle _fh)
 face - edge circulator
 
FaceEdgeCWIter fe_cwend (FaceHandle _fh)
 face - edge circulator cw
 
FaceEdgeCCWIter fe_ccwend (FaceHandle _fh)
 face - edge circulator ccw
 
FaceFaceIter ff_end (FaceHandle _fh)
 face - face circulator
 
FaceFaceCWIter ff_cwend (FaceHandle _fh)
 face - face circulator cw
 
FaceFaceCCWIter ff_ccwend (FaceHandle _fh)
 face - face circulator ccw
 
HalfedgeLoopIter hl_end (HalfedgeHandle _heh)
 face - face circulator
 
HalfedgeLoopCWIter hl_cwend (HalfedgeHandle _heh)
 face - face circulator cw
 
HalfedgeLoopCCWIter hl_ccwend (HalfedgeHandle _heh)
 face - face circulator ccw
 
ConstFaceVertexIter cfv_end (FaceHandle _fh) const
 const face - vertex circulator
 
ConstFaceVertexCWIter cfv_cwend (FaceHandle _fh) const
 const face - vertex circulator cw
 
ConstFaceVertexCCWIter cfv_ccwend (FaceHandle _fh) const
 const face - vertex circulator ccw
 
ConstFaceHalfedgeIter cfh_end (FaceHandle _fh) const
 const face - halfedge circulator
 
ConstFaceHalfedgeCWIter cfh_cwend (FaceHandle _fh) const
 const face - halfedge circulator cw
 
ConstFaceHalfedgeCCWIter cfh_ccwend (FaceHandle _fh) const
 const face - halfedge circulator ccw
 
ConstFaceEdgeIter cfe_end (FaceHandle _fh) const
 const face - edge circulator
 
ConstFaceEdgeCWIter cfe_cwend (FaceHandle _fh) const
 const face - edge circulator cw
 
ConstFaceEdgeCCWIter cfe_ccwend (FaceHandle _fh) const
 const face - edge circulator ccw
 
ConstFaceFaceIter cff_end (FaceHandle _fh) const
 const face - face circulator
 
ConstFaceFaceCWIter cff_cwend (FaceHandle _fh) const
 const face - face circulator
 
ConstFaceFaceCCWIter cff_ccwend (FaceHandle _fh) const
 const face - face circulator
 
ConstHalfedgeLoopIter chl_end (HalfedgeHandle _heh) const
 const face - face circulator
 
ConstHalfedgeLoopCWIter chl_cwend (HalfedgeHandle _heh) const
 const face - face circulator cw
 
ConstHalfedgeLoopCCWIter chl_ccwend (HalfedgeHandle _heh) const
 const face - face circulator ccw
 
bool is_boundary (HalfedgeHandle _heh) const
 Check if the halfedge is at the boundary. More...
 
bool is_boundary (EdgeHandle _eh) const
 Is the edge a boundary edge? More...
 
bool is_boundary (VertexHandle _vh) const
 Is vertex _vh a boundary vertex ? More...
 
bool is_boundary (FaceHandle _fh, bool _check_vertex=false) const
 Check if face is at the boundary. More...
 
bool is_manifold (VertexHandle _vh) const
 Is (the mesh at) vertex _vh two-manifold ? More...
 
 PolyConnectivity ()
 Alias typedef.
 
virtual ~PolyConnectivity ()
 Alias typedef.
 
void assign_connectivity (const PolyConnectivity &_other)
 assign_connectivity() method. More...
 
ConstVertexRangeSkipping vertices () const
 
ConstVertexRange all_vertices () const
 
ConstHalfedgeRangeSkipping halfedges () const
 
ConstHalfedgeRange all_halfedges () const
 
ConstEdgeRangeSkipping edges () const
 
ConstEdgeRange all_edges () const
 
ConstFaceRangeSkipping faces () const
 
ConstFaceRange all_faces () const
 
template<typename HandleType >
ElementRange< HandleType >::RangeSkipping elements () const
 
template<typename HandleType >
ElementRange< HandleType >::Range all_elements () const
 
ConstVertexVertexRange vv_range (VertexHandle _vh) const
 
ConstVertexIHalfedgeRange vih_range (VertexHandle _vh) const
 
ConstVertexIHalfedgeRange vih_range (HalfedgeHandle _heh) const
 
ConstVertexOHalfedgeRange voh_range (VertexHandle _vh) const
 
ConstVertexOHalfedgeRange voh_range (HalfedgeHandle _heh) const
 
ConstVertexEdgeRange ve_range (VertexHandle _vh) const
 
ConstVertexFaceRange vf_range (VertexHandle _vh) const
 
ConstFaceVertexRange fv_range (FaceHandle _fh) const
 
ConstFaceHalfedgeRange fh_range (FaceHandle _fh) const
 
ConstFaceEdgeRange fe_range (FaceHandle _fh) const
 
ConstFaceFaceRange ff_range (FaceHandle _fh) const
 
ConstHalfedgeLoopRange hl_range (HalfedgeHandle _heh) const
 
ConstVertexVertexCWRange vv_cw_range (VertexHandle _vh) const
 
ConstVertexIHalfedgeCWRange vih_cw_range (VertexHandle _vh) const
 
ConstVertexIHalfedgeCWRange vih_cw_range (HalfedgeHandle _heh) const
 
ConstVertexOHalfedgeCWRange voh_cw_range (VertexHandle _vh) const
 
ConstVertexOHalfedgeCWRange voh_cw_range (HalfedgeHandle _heh) const
 
ConstVertexEdgeCWRange ve_cw_range (VertexHandle _vh) const
 
ConstVertexFaceCWRange vf_cw_range (VertexHandle _vh) const
 
ConstFaceVertexCWRange fv_cw_range (FaceHandle _fh) const
 
ConstFaceHalfedgeCWRange fh_cw_range (FaceHandle _fh) const
 
ConstFaceEdgeCWRange fe_cw_range (FaceHandle _fh) const
 
ConstFaceFaceCWRange ff_cw_range (FaceHandle _fh) const
 
ConstHalfedgeLoopCWRange hl_cw_range (HalfedgeHandle _heh) const
 
ConstVertexVertexCCWRange vv_ccw_range (VertexHandle _vh) const
 
ConstVertexIHalfedgeCCWRange vih_ccw_range (VertexHandle _vh) const
 
ConstVertexIHalfedgeCCWRange vih_ccw_range (HalfedgeHandle _heh) const
 
ConstVertexOHalfedgeCCWRange voh_ccw_range (VertexHandle _vh) const
 
ConstVertexOHalfedgeCCWRange voh_ccw_range (HalfedgeHandle _heh) const
 
ConstVertexEdgeCCWRange ve_ccw_range (VertexHandle _vh) const
 
ConstVertexFaceCCWRange vf_ccw_range (VertexHandle _vh) const
 
ConstFaceVertexCCWRange fv_ccw_range (FaceHandle _fh) const
 
ConstFaceHalfedgeCCWRange fh_ccw_range (FaceHandle _fh) const
 
ConstFaceEdgeCCWRange fe_ccw_range (FaceHandle _fh) const
 
ConstFaceFaceCCWRange ff_ccw_range (FaceHandle _fh) const
 
ConstHalfedgeLoopCCWRange hl_ccw_range (HalfedgeHandle _heh) const
 
const Vertex & deref (VertexHandle _h) const
 Get item from handle.
 
Vertex & deref (VertexHandle _h)
 Get item from handle.
 
const Halfedge & deref (HalfedgeHandle _h) const
 Get item from handle.
 
Halfedge & deref (HalfedgeHandle _h)
 Get item from handle.
 
const Edge & deref (EdgeHandle _h) const
 Get item from handle.
 
Edge & deref (EdgeHandle _h)
 Get item from handle.
 
const Face & deref (FaceHandle _h) const
 Get item from handle.
 
Face & deref (FaceHandle _h)
 Get item from handle.
 
SmartHalfedgeHandle next_halfedge_handle (SmartHalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
SmartHalfedgeHandle prev_halfedge_handle (SmartHalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
SmartHalfedgeHandle opposite_halfedge_handle (SmartHalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
SmartHalfedgeHandle ccw_rotated_halfedge_handle (SmartHalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
SmartHalfedgeHandle cw_rotated_halfedge_handle (SmartHalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
SmartHalfedgeHandle halfedge_handle (SmartEdgeHandle _eh, unsigned int _i) const
 returns the face handle of the opposite halfedge
 
SmartHalfedgeHandle halfedge_handle (SmartFaceHandle _fh) const
 returns the face handle of the opposite halfedge
 
SmartHalfedgeHandle halfedge_handle (SmartVertexHandle _vh) const
 returns the face handle of the opposite halfedge
 
SmartEdgeHandle edge_handle (SmartHalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
SmartFaceHandle face_handle (SmartHalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
SmartFaceHandle opposite_face_handle (HalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle next_halfedge_handle (HalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle prev_halfedge_handle (HalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle prev_halfedge_handle (HalfedgeHandle _heh, GenProg::TrueType) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle prev_halfedge_handle (HalfedgeHandle _heh, GenProg::FalseType) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle opposite_halfedge_handle (HalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle ccw_rotated_halfedge_handle (HalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle cw_rotated_halfedge_handle (HalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle halfedge_handle (unsigned int _i) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle halfedge_handle (VertexHandle _vh) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle halfedge_handle (EdgeHandle _eh, unsigned int _i) const
 returns the face handle of the opposite halfedge
 
HalfedgeHandle halfedge_handle (FaceHandle _fh) const
 returns the face handle of the opposite halfedge
 
EdgeHandle edge_handle (unsigned int _i) const
 returns the face handle of the opposite halfedge
 
EdgeHandle edge_handle (HalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
FaceHandle face_handle (unsigned int _i) const
 returns the face handle of the opposite halfedge
 
FaceHandle face_handle (HalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 
- Public Member Functions inherited from OpenMesh::ArrayKernel
void assign_connectivity (const ArrayKernel &_other)
 ArrayKernel uses the default copy constructor and assignment operator, which means that the connectivity and all properties are copied, including reference counters, allocated bit status masks, etc. More...
 
VertexHandle handle (const Vertex &_v) const
 
HalfedgeHandle handle (const Halfedge &_he) const
 
EdgeHandle handle (const Edge &_e) const
 
FaceHandle handle (const Face &_f) const
 
bool is_valid_handle (VertexHandle _vh) const
 checks handle validity - useful for debugging
 
bool is_valid_handle (HalfedgeHandle _heh) const
 checks handle validity - useful for debugging
 
bool is_valid_handle (EdgeHandle _eh) const
 checks handle validity - useful for debugging
 
bool is_valid_handle (FaceHandle _fh) const
 checks handle validity - useful for debugging
 
const Vertex & vertex (VertexHandle _vh) const
 
Vertex & vertex (VertexHandle _vh)
 
const Halfedge & halfedge (HalfedgeHandle _heh) const
 
Halfedge & halfedge (HalfedgeHandle _heh)
 
const Edge & edge (EdgeHandle _eh) const
 
Edge & edge (EdgeHandle _eh)
 
const Face & face (FaceHandle _fh) const
 
Face & face (FaceHandle _fh)
 
VertexHandle vertex_handle (unsigned int _i) const
 
HalfedgeHandle halfedge_handle (unsigned int _i) const
 
EdgeHandle edge_handle (unsigned int _i) const
 
FaceHandle face_handle (unsigned int _i) const
 
VertexHandle new_vertex ()
 Add a new vertex. More...
 
VertexHandle new_vertex_dirty ()
 Same as new_vertex() but uses PropertyContainer::resize_if_smaller() to resize the vertex property container. More...
 
HalfedgeHandle new_edge (VertexHandle _start_vh, VertexHandle _end_vh)
 
FaceHandle new_face ()
 
FaceHandle new_face (const Face &_f)
 
void resize (size_t _n_vertices, size_t _n_edges, size_t _n_faces)
 
void reserve (size_t _n_vertices, size_t _n_edges, size_t _n_faces)
 
void garbage_collection (bool _v=true, bool _e=true, bool _f=true)
 garbage collection More...
 
template<typename std_API_Container_VHandlePointer , typename std_API_Container_HHandlePointer , typename std_API_Container_FHandlePointer >
void garbage_collection (std_API_Container_VHandlePointer &vh_to_update, std_API_Container_HHandlePointer &hh_to_update, std_API_Container_FHandlePointer &fh_to_update, bool _v=true, bool _e=true, bool _f=true)
 garbage collection with handle tracking More...
 
void clear ()
 Does the same as clean() and in addition erases all properties.
 
void clean ()
 Remove all vertices, edges and faces and deallocates their memory. More...
 
void clean_keep_reservation ()
 Remove all vertices, edges and faces but keep memory allocated. More...
 
size_t n_vertices () const override
 You should not use this function directly. More...
 
size_t n_halfedges () const override
 You should not use this function directly. More...
 
size_t n_edges () const override
 You should not use this function directly. More...
 
size_t n_faces () const override
 You should not use this function directly. More...
 
bool vertices_empty () const
 
bool halfedges_empty () const
 
bool edges_empty () const
 
bool faces_empty () const
 
HalfedgeHandle halfedge_handle (VertexHandle _vh) const
 
void set_halfedge_handle (VertexHandle _vh, HalfedgeHandle _heh)
 
bool is_isolated (VertexHandle _vh) const
 
void set_isolated (VertexHandle _vh)
 
unsigned int delete_isolated_vertices ()
 
VertexHandle to_vertex_handle (HalfedgeHandle _heh) const
 
VertexHandle from_vertex_handle (HalfedgeHandle _heh) const
 
void set_vertex_handle (HalfedgeHandle _heh, VertexHandle _vh)
 
FaceHandle face_handle (HalfedgeHandle _heh) const
 
void set_face_handle (HalfedgeHandle _heh, FaceHandle _fh)
 
void set_boundary (HalfedgeHandle _heh)
 
bool is_boundary (HalfedgeHandle _heh) const
 Is halfedge _heh a boundary halfedge (is its face handle invalid) ?
 
HalfedgeHandle next_halfedge_handle (HalfedgeHandle _heh) const
 
void set_next_halfedge_handle (HalfedgeHandle _heh, HalfedgeHandle _nheh)
 
void set_prev_halfedge_handle (HalfedgeHandle _heh, HalfedgeHandle _pheh)
 
void set_prev_halfedge_handle (HalfedgeHandle _heh, HalfedgeHandle _pheh, GenProg::TrueType)
 
void set_prev_halfedge_handle (HalfedgeHandle, HalfedgeHandle, GenProg::FalseType)
 
HalfedgeHandle prev_halfedge_handle (HalfedgeHandle _heh) const
 
HalfedgeHandle prev_halfedge_handle (HalfedgeHandle _heh, GenProg::TrueType) const
 
HalfedgeHandle prev_halfedge_handle (HalfedgeHandle _heh, GenProg::FalseType) const
 
HalfedgeHandle opposite_halfedge_handle (HalfedgeHandle _heh) const
 
HalfedgeHandle ccw_rotated_halfedge_handle (HalfedgeHandle _heh) const
 
HalfedgeHandle cw_rotated_halfedge_handle (HalfedgeHandle _heh) const
 
HalfedgeHandle halfedge_handle (EdgeHandle _eh, unsigned int _i) const
 
EdgeHandle edge_handle (HalfedgeHandle _heh) const
 
HalfedgeHandle halfedge_handle (FaceHandle _fh) const
 
void set_halfedge_handle (FaceHandle _fh, HalfedgeHandle _heh)
 
const StatusInfostatus (VertexHandle _vh) const
 Status Query API.
 
StatusInfostatus (VertexHandle _vh)
 
void reset_status ()
 Reinitializes the status of all vertices using the StatusInfo default constructor, i.e. More...
 
const StatusInfostatus (HalfedgeHandle _hh) const
 
StatusInfostatus (HalfedgeHandle _hh)
 
const StatusInfostatus (EdgeHandle _eh) const
 
StatusInfostatus (EdgeHandle _eh)
 
const StatusInfostatus (FaceHandle _fh) const
 
StatusInfostatus (FaceHandle _fh)
 
bool has_vertex_status () const
 
bool has_halfedge_status () const
 
bool has_edge_status () const
 
bool has_face_status () const
 
VertexStatusPropertyHandle vertex_status_pph () const
 
HalfedgeStatusPropertyHandle halfedge_status_pph () const
 
EdgeStatusPropertyHandle edge_status_pph () const
 
FaceStatusPropertyHandle face_status_pph () const
 
VertexStatusPropertyHandle status_pph (VertexHandle) const
 status property by handle
 
HalfedgeStatusPropertyHandle status_pph (HalfedgeHandle) const
 
EdgeStatusPropertyHandle status_pph (EdgeHandle) const
 
FaceStatusPropertyHandle status_pph (FaceHandle) const
 
void request_vertex_status ()
 Status Request API.
 
void request_halfedge_status ()
 
void request_edge_status ()
 
void request_face_status ()
 
void release_vertex_status ()
 Status Release API.
 
void release_halfedge_status ()
 
void release_edge_status ()
 
void release_face_status ()
 
- Public Member Functions inherited from OpenMesh::BaseKernel
template<>
size_t n_elements () const
 
template<>
size_t n_elements () const
 
template<>
size_t n_elements () const
 
template<>
size_t n_elements () const
 
template<class T >
void add_property (VPropHandleT< T > &_ph, const std::string &_name="<vprop>")
 You should not use this function directly. More...
 
template<class T >
void add_property (HPropHandleT< T > &_ph, const std::string &_name="<hprop>")
 You should not use this function directly. More...
 
template<class T >
void add_property (EPropHandleT< T > &_ph, const std::string &_name="<eprop>")
 You should not use this function directly. More...
 
template<class T >
void add_property (FPropHandleT< T > &_ph, const std::string &_name="<fprop>")
 You should not use this function directly. More...
 
template<class T >
void add_property (MPropHandleT< T > &_ph, const std::string &_name="<mprop>")
 You should not use this function directly. More...
 
template<typename T >
void remove_property (VPropHandleT< T > &_ph)
 You should not use this function directly. More...
 
template<typename T >
void remove_property (HPropHandleT< T > &_ph)
 You should not use this function directly. More...
 
template<typename T >
void remove_property (EPropHandleT< T > &_ph)
 You should not use this function directly. More...
 
template<typename T >
void remove_property (FPropHandleT< T > &_ph)
 You should not use this function directly. More...
 
template<typename T >
void remove_property (MPropHandleT< T > &_ph)
 You should not use this function directly. More...
 
template<class T >
bool get_property_handle (VPropHandleT< T > &_ph, const std::string &_name) const
 You should not use this function directly. More...
 
template<class T >
bool get_property_handle (HPropHandleT< T > &_ph, const std::string &_name) const
 You should not use this function directly. More...
 
template<class T >
bool get_property_handle (EPropHandleT< T > &_ph, const std::string &_name) const
 You should not use this function directly. More...
 
template<class T >
bool get_property_handle (FPropHandleT< T > &_ph, const std::string &_name) const
 You should not use this function directly. More...
 
template<class T >
bool get_property_handle (MPropHandleT< T > &_ph, const std::string &_name) const
 You should not use this function directly. More...
 
template<class T >
PropertyT< T > & property (VPropHandleT< T > _ph)
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
const PropertyT< T > & property (VPropHandleT< T > _ph) const
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
PropertyT< T > & property (HPropHandleT< T > _ph)
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
const PropertyT< T > & property (HPropHandleT< T > _ph) const
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
PropertyT< T > & property (EPropHandleT< T > _ph)
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
const PropertyT< T > & property (EPropHandleT< T > _ph) const
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
PropertyT< T > & property (FPropHandleT< T > _ph)
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
const PropertyT< T > & property (FPropHandleT< T > _ph) const
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
PropertyT< T > & mproperty (MPropHandleT< T > _ph)
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
const PropertyT< T > & mproperty (MPropHandleT< T > _ph) const
 In most cases you should use the convenient PropertyManager wrapper and use of this function should not be necessary. More...
 
template<class T >
VPropHandleT< T >::reference property (VPropHandleT< T > _ph, VertexHandle _vh)
 You should not use this function directly. More...
 
template<class T >
VPropHandleT< T >::const_reference property (VPropHandleT< T > _ph, VertexHandle _vh) const
 You should not use this function directly. More...
 
template<class T >
HPropHandleT< T >::reference property (HPropHandleT< T > _ph, HalfedgeHandle _hh)
 You should not use this function directly. More...
 
template<class T >
HPropHandleT< T >::const_reference property (HPropHandleT< T > _ph, HalfedgeHandle _hh) const
 You should not use this function directly. More...
 
template<class T >
EPropHandleT< T >::reference property (EPropHandleT< T > _ph, EdgeHandle _eh)
 You should not use this function directly. More...
 
template<class T >
EPropHandleT< T >::const_reference property (EPropHandleT< T > _ph, EdgeHandle _eh) const
 You should not use this function directly. More...
 
template<class T >
FPropHandleT< T >::reference property (FPropHandleT< T > _ph, FaceHandle _fh)
 You should not use this function directly. More...
 
template<class T >
FPropHandleT< T >::const_reference property (FPropHandleT< T > _ph, FaceHandle _fh) const
 You should not use this function directly. More...
 
template<class T >
MPropHandleT< T >::reference property (MPropHandleT< T > _ph)
 You should not use this function directly. More...
 
template<class T >
MPropHandleT< T >::const_reference property (MPropHandleT< T > _ph) const
 You should not use this function directly. More...
 
template<class T >
void copy_property (VPropHandleT< T > &_ph, VertexHandle _vh_from, VertexHandle _vh_to)
 You should not use this function directly. More...
 
template<class T >
void copy_property (HPropHandleT< T > _ph, HalfedgeHandle _hh_from, HalfedgeHandle _hh_to)
 You should not use this function directly. More...
 
template<class T >
void copy_property (EPropHandleT< T > _ph, EdgeHandle _eh_from, EdgeHandle _eh_to)
 You should not use this function directly. More...
 
template<class T >
void copy_property (FPropHandleT< T > _ph, FaceHandle _fh_from, FaceHandle _fh_to)
 You should not use this function directly. More...
 
void copy_all_properties (VertexHandle _vh_from, VertexHandle _vh_to, bool _copyBuildIn=false)
 Copies all properties from one mesh element to another (of the same type) More...
 
void copy_all_properties (HalfedgeHandle _hh_from, HalfedgeHandle _hh_to, bool _copyBuildIn=false)
 Copies all properties from one mesh element to another (of the same type) More...
 
void copy_all_properties (EdgeHandle _eh_from, EdgeHandle _eh_to, bool _copyBuildIn=false)
 Copies all properties from one mesh element to another (of the same type) More...
 
void copy_all_properties (FaceHandle _fh_from, FaceHandle _fh_to, bool _copyBuildIn=false)
 Copies all properties from one mesh element to another (of the same type) More...
 
void copy_all_kernel_properties (const BaseKernel &_other)
 copy_all_kernel_properties uses the = operator to copy all properties from a given other BaseKernel. More...
 
size_t n_vprops (void) const
 You should not use this function directly. More...
 
size_t n_eprops (void) const
 You should not use this function directly. More...
 
size_t n_hprops (void) const
 You should not use this function directly. More...
 
size_t n_fprops (void) const
 You should not use this function directly. More...
 
size_t n_mprops (void) const
 You should not use this function directly. More...
 
BaseProperty_get_vprop (const std::string &_name)
 You should not use this function directly. More...
 
BaseProperty_get_eprop (const std::string &_name)
 You should not use this function directly. More...
 
BaseProperty_get_hprop (const std::string &_name)
 You should not use this function directly. More...
 
BaseProperty_get_fprop (const std::string &_name)
 You should not use this function directly. More...
 
BaseProperty_get_mprop (const std::string &_name)
 You should not use this function directly. More...
 
const BaseProperty_get_vprop (const std::string &_name) const
 You should not use this function directly. More...
 
const BaseProperty_get_eprop (const std::string &_name) const
 You should not use this function directly. More...
 
const BaseProperty_get_hprop (const std::string &_name) const
 You should not use this function directly. More...
 
const BaseProperty_get_fprop (const std::string &_name) const
 You should not use this function directly. More...
 
const BaseProperty_get_mprop (const std::string &_name) const
 You should not use this function directly. More...
 
BaseProperty_vprop (size_t _idx)
 You should not use this function directly. More...
 
BaseProperty_eprop (size_t _idx)
 You should not use this function directly. More...
 
BaseProperty_hprop (size_t _idx)
 You should not use this function directly. More...
 
BaseProperty_fprop (size_t _idx)
 You should not use this function directly. More...
 
BaseProperty_mprop (size_t _idx)
 You should not use this function directly. More...
 
const BaseProperty_vprop (size_t _idx) const
 You should not use this function directly. More...
 
const BaseProperty_eprop (size_t _idx) const
 You should not use this function directly. More...
 
const BaseProperty_hprop (size_t _idx) const
 You should not use this function directly. More...
 
const BaseProperty_fprop (size_t _idx) const
 You should not use this function directly. More...
 
const BaseProperty_mprop (size_t _idx) const
 You should not use this function directly. More...
 
size_t _add_vprop (BaseProperty *_bp)
 You should not use this function directly. More...
 
size_t _add_eprop (BaseProperty *_bp)
 You should not use this function directly. More...
 
size_t _add_hprop (BaseProperty *_bp)
 You should not use this function directly. More...
 
size_t _add_fprop (BaseProperty *_bp)
 You should not use this function directly. More...
 
size_t _add_mprop (BaseProperty *_bp)
 You should not use this function directly. More...
 
template<typename HandleT >
size_t n_elements () const
 You should not use this function directly. More...
 
void property_stats () const
 You should not use this function directly. More...
 
void property_stats (std::ostream &_ostr) const
 You should not use this function directly. More...
 
void vprop_stats (std::string &_string) const
 You should not use this function directly. More...
 
void hprop_stats (std::string &_string) const
 You should not use this function directly. More...
 
void eprop_stats (std::string &_string) const
 You should not use this function directly. More...
 
void fprop_stats (std::string &_string) const
 You should not use this function directly. More...
 
void mprop_stats (std::string &_string) const
 You should not use this function directly. More...
 
void vprop_stats () const
 You should not use this function directly. More...
 
void hprop_stats () const
 You should not use this function directly. More...
 
void eprop_stats () const
 You should not use this function directly. More...
 
void fprop_stats () const
 You should not use this function directly. More...
 
void mprop_stats () const
 You should not use this function directly. More...
 
void vprop_stats (std::ostream &_ostr) const
 You should not use this function directly. More...
 
void hprop_stats (std::ostream &_ostr) const
 You should not use this function directly. More...
 
void eprop_stats (std::ostream &_ostr) const
 You should not use this function directly. More...
 
void fprop_stats (std::ostream &_ostr) const
 You should not use this function directly. More...
 
void mprop_stats (std::ostream &_ostr) const
 You should not use this function directly. More...
 
prop_iterator vprops_begin ()
 You should not use this function directly. More...
 
prop_iterator vprops_end ()
 You should not use this function directly. More...
 
const_prop_iterator vprops_begin () const
 You should not use this function directly. More...
 
const_prop_iterator vprops_end () const
 You should not use this function directly. More...
 
prop_iterator eprops_begin ()
 You should not use this function directly. More...
 
prop_iterator eprops_end ()
 You should not use this function directly. More...
 
const_prop_iterator eprops_begin () const
 You should not use this function directly. More...
 
const_prop_iterator eprops_end () const
 You should not use this function directly. More...
 
prop_iterator hprops_begin ()
 You should not use this function directly. More...
 
prop_iterator hprops_end ()
 You should not use this function directly. More...
 
const_prop_iterator hprops_begin () const
 You should not use this function directly. More...
 
const_prop_iterator hprops_end () const
 You should not use this function directly. More...
 
prop_iterator fprops_begin ()
 You should not use this function directly. More...
 
prop_iterator fprops_end ()
 You should not use this function directly. More...
 
const_prop_iterator fprops_begin () const
 You should not use this function directly. More...
 
const_prop_iterator fprops_end () const
 You should not use this function directly. More...
 
prop_iterator mprops_begin ()
 You should not use this function directly. More...
 
prop_iterator mprops_end ()
 You should not use this function directly. More...
 
const_prop_iterator mprops_begin () const
 You should not use this function directly. More...
 
const_prop_iterator mprops_end () const
 You should not use this function directly. More...
 

Static Public Member Functions

static bool is_triangles ()
 
- Static Public Member Functions inherited from OpenMesh::PolyConnectivity
static bool is_triangles ()
 Alias typedef.
 
static SmartHalfedgeHandle s_halfedge_handle (SmartEdgeHandle _eh, unsigned int _i)
 returns the face handle of the opposite halfedge
 
static SmartEdgeHandle s_edge_handle (SmartHalfedgeHandle _heh)
 returns the face handle of the opposite halfedge
 
static HalfedgeHandle s_halfedge_handle (EdgeHandle _eh, unsigned int _i)
 returns the face handle of the opposite halfedge
 
static EdgeHandle s_edge_handle (HalfedgeHandle _heh)
 returns the face handle of the opposite halfedge
 
- Static Public Member Functions inherited from OpenMesh::ArrayKernel
static HalfedgeHandle s_halfedge_handle (EdgeHandle _eh, unsigned int _i)
 
static EdgeHandle s_edge_handle (HalfedgeHandle _heh)
 

Topology modifying operators

bool is_collapse_ok (HalfedgeHandle _heh)
 Returns whether collapsing halfedge _heh is ok or would lead to topological inconsistencies. More...
 
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. More...
 
void split (EdgeHandle _eh, VertexHandle _vh)
 Edge split (= 2-to-4 split) More...
 
void split_edge (EdgeHandle _eh, VertexHandle _vh)
 Edge split (= 2-to-4 split) More...
 
void split_copy (EdgeHandle _eh, VertexHandle _vh)
 Edge split (= 2-to-4 split) More...
 
void split_edge_copy (EdgeHandle _eh, VertexHandle _vh)
 Edge split (= 2-to-4 split) More...
 
void split (FaceHandle _fh, VertexHandle _vh)
 Face split (= 1-to-3) split, calls corresponding PolyMeshT function). More...
 
void split_copy (FaceHandle _fh, VertexHandle _vh)
 Face split (= 1-to-3) split, calls corresponding PolyMeshT function). More...
 

Additional Inherited Members

- Public Types inherited from OpenMesh::PolyConnectivity
typedef Iterators::GenericIteratorT< This, This::VertexHandle, ArrayKernel, &ArrayKernel::has_vertex_status, &ArrayKernel::n_verticesVertexIter
 Linear iterator.
 
typedef Iterators::GenericIteratorT< This, This::HalfedgeHandle, ArrayKernel, &ArrayKernel::has_halfedge_status, &ArrayKernel::n_halfedgesHalfedgeIter
 Linear iterator.
 
typedef Iterators::GenericIteratorT< This, This::EdgeHandle, ArrayKernel, &ArrayKernel::has_edge_status, &ArrayKernel::n_edgesEdgeIter
 Linear iterator.
 
typedef Iterators::GenericIteratorT< This, This::FaceHandle, ArrayKernel, &ArrayKernel::has_face_status, &ArrayKernel::n_facesFaceIter
 Linear iterator.
 
typedef VertexIter ConstVertexIter
 Linear iterator.
 
typedef HalfedgeIter ConstHalfedgeIter
 Linear iterator.
 
typedef EdgeIter ConstEdgeIter
 Linear iterator.
 
typedef FaceIter ConstFaceIter
 Linear iterator.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexVertexTraitsVertexVertexIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexVertexTraits, true > VertexVertexCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexVertexTraits, false > VertexVertexCCWIter
 Enumerates 1-ring vertices in a counter clockwise fashion.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexHalfedgeTraitsVertexOHalfedgeIter
 Enumerates outgoing half edges in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexHalfedgeTraits, true > VertexOHalfedgeCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexHalfedgeTraits, false > VertexOHalfedgeCCWIter
 Enumerates outgoing half edges in a counter clockwise fashion.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexOppositeHalfedgeTraitsVertexIHalfedgeIter
 Enumerates incoming half edges in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexOppositeHalfedgeTraits, true > VertexIHalfedgeCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexOppositeHalfedgeTraits, false > VertexIHalfedgeCCWIter
 Enumerates incoming half edges in a counter clockwise fashion.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexFaceTraitsVertexFaceIter
 Enumerates incident faces in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexFaceTraits, true > VertexFaceCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexFaceTraits, false > VertexFaceCCWIter
 Enumerates incident faces in a counter clockwise fashion.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexEdgeTraitsVertexEdgeIter
 Enumerates incident edges in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexEdgeTraits, true > VertexEdgeCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< VertexEdgeTraits, false > VertexEdgeCCWIter
 Enumerates incident edges in a counter clockwise fashion.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceHalfedgeTraitsHalfedgeLoopIter
 Identical to FaceHalfedgeIter. More...
 
typedef Iterators::GenericCirculatorT< FaceHalfedgeTraits, false > HalfedgeLoopCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< FaceHalfedgeTraits, true > HalfedgeLoopCCWIter
 Identical to FaceHalfedgeIter. More...
 
typedef VertexVertexIter ConstVertexVertexIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexVertexCWIter ConstVertexVertexCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexVertexCCWIter ConstVertexVertexCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexOHalfedgeIter ConstVertexOHalfedgeIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexOHalfedgeCWIter ConstVertexOHalfedgeCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexOHalfedgeCCWIter ConstVertexOHalfedgeCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexIHalfedgeIter ConstVertexIHalfedgeIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexIHalfedgeCWIter ConstVertexIHalfedgeCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexIHalfedgeCCWIter ConstVertexIHalfedgeCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexFaceIter ConstVertexFaceIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexFaceCWIter ConstVertexFaceCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexFaceCCWIter ConstVertexFaceCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexEdgeIter ConstVertexEdgeIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexEdgeCWIter ConstVertexEdgeCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef VertexEdgeCCWIter ConstVertexEdgeCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceVertexTraitsFaceVertexIter
 Enumerate incident vertices in a counter clockwise fashion.
 
typedef Iterators::GenericCirculatorT< FaceVertexTraits, true > FaceVertexCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< FaceVertexTraits, false > FaceVertexCWIter
 Enumerate incident vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceHalfedgeTraitsFaceHalfedgeIter
 Enumerate incident half edges in a counter clockwise fashion.
 
typedef Iterators::GenericCirculatorT< FaceHalfedgeTraits, true > FaceHalfedgeCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< FaceHalfedgeTraits, false > FaceHalfedgeCWIter
 Enumerate incident half edges in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceEdgeTraitsFaceEdgeIter
 Enumerate incident edges in a counter clockwise fashion.
 
typedef Iterators::GenericCirculatorT< FaceEdgeTraits, true > FaceEdgeCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< FaceEdgeTraits, false > FaceEdgeCWIter
 Enumerate incident edges in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceFaceTraitsFaceFaceIter
 Enumerate adjacent faces in a counter clockwise fashion.
 
typedef Iterators::GenericCirculatorT< FaceFaceTraits, true > FaceFaceCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef Iterators::GenericCirculatorT< FaceFaceTraits, false > FaceFaceCWIter
 Enumerate adjacent faces in a clockwise fashion.
 
typedef FaceVertexIter ConstFaceVertexIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceVertexCWIter ConstFaceVertexCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceVertexCCWIter ConstFaceVertexCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceHalfedgeIter ConstFaceHalfedgeIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceHalfedgeCWIter ConstFaceHalfedgeCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceHalfedgeCCWIter ConstFaceHalfedgeCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceEdgeIter ConstFaceEdgeIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceEdgeCWIter ConstFaceEdgeCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceEdgeCCWIter ConstFaceEdgeCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceFaceIter ConstFaceFaceIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceFaceCWIter ConstFaceFaceCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef FaceFaceCCWIter ConstFaceFaceCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef HalfedgeLoopIter ConstHalfedgeLoopIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef HalfedgeLoopCWIter ConstHalfedgeLoopCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef HalfedgeLoopCCWIter ConstHalfedgeLoopCCWIter
 Enumerates 1-ring vertices in a clockwise fashion.
 
typedef PolyConnectivity This
 Invalid handle.
 
typedef VertexHandle VHandle
 Alias typedef.
 
typedef HalfedgeHandle HHandle
 Alias typedef.
 
typedef EdgeHandle EHandle
 Alias typedef.
 
typedef FaceHandle FHandle
 Alias typedef.
 
typedef VertexIter VIter
 Alias typedef.
 
typedef HalfedgeIter HIter
 Alias typedef.
 
typedef EdgeIter EIter
 Alias typedef.
 
typedef FaceIter FIter
 Alias typedef.
 
typedef ConstVertexIter CVIter
 Alias typedef.
 
typedef ConstHalfedgeIter CHIter
 Alias typedef.
 
typedef ConstEdgeIter CEIter
 Alias typedef.
 
typedef ConstFaceIter CFIter
 Alias typedef.
 
typedef VertexVertexIter VVIter
 Alias typedef.
 
typedef VertexVertexCWIter VVCWIter
 Alias typedef.
 
typedef VertexVertexCCWIter VVCCWIter
 Alias typedef.
 
typedef VertexOHalfedgeIter VOHIter
 Alias typedef.
 
typedef VertexOHalfedgeCWIter VOHCWIter
 Alias typedef.
 
typedef VertexOHalfedgeCCWIter VOHCCWIter
 Alias typedef.
 
typedef VertexIHalfedgeIter VIHIter
 Alias typedef.
 
typedef VertexIHalfedgeCWIter VIHICWter
 Alias typedef.
 
typedef VertexIHalfedgeCCWIter VIHICCWter
 Alias typedef.
 
typedef VertexEdgeIter VEIter
 Alias typedef.
 
typedef VertexEdgeCWIter VECWIter
 Alias typedef.
 
typedef VertexEdgeCCWIter VECCWIter
 Alias typedef.
 
typedef VertexFaceIter VFIter
 Alias typedef.
 
typedef VertexFaceCWIter VFCWIter
 Alias typedef.
 
typedef VertexFaceCCWIter VFCCWIter
 Alias typedef.
 
typedef FaceVertexIter FVIter
 Alias typedef.
 
typedef FaceVertexCWIter FVCWIter
 Alias typedef.
 
typedef FaceVertexCCWIter FVCCWIter
 Alias typedef.
 
typedef FaceHalfedgeIter FHIter
 Alias typedef.
 
typedef FaceHalfedgeCWIter FHCWIter
 Alias typedef.
 
typedef FaceHalfedgeCCWIter FHCWWIter
 Alias typedef.
 
typedef FaceEdgeIter FEIter
 Alias typedef.
 
typedef FaceEdgeCWIter FECWIter
 Alias typedef.
 
typedef FaceEdgeCCWIter FECWWIter
 Alias typedef.
 
typedef FaceFaceIter FFIter
 Alias typedef.
 
typedef ConstVertexVertexIter CVVIter
 Alias typedef.
 
typedef ConstVertexVertexCWIter CVVCWIter
 Alias typedef.
 
typedef ConstVertexVertexCCWIter CVVCCWIter
 Alias typedef.
 
typedef ConstVertexOHalfedgeIter CVOHIter
 Alias typedef.
 
typedef ConstVertexOHalfedgeCWIter CVOHCWIter
 Alias typedef.
 
typedef ConstVertexOHalfedgeCCWIter CVOHCCWIter
 Alias typedef.
 
typedef ConstVertexIHalfedgeIter CVIHIter
 Alias typedef.
 
typedef ConstVertexIHalfedgeCWIter CVIHCWIter
 Alias typedef.
 
typedef ConstVertexIHalfedgeCCWIter CVIHCCWIter
 Alias typedef.
 
typedef ConstVertexEdgeIter CVEIter
 Alias typedef.
 
typedef ConstVertexEdgeCWIter CVECWIter
 Alias typedef.
 
typedef ConstVertexEdgeCCWIter CVECCWIter
 Alias typedef.
 
typedef ConstVertexFaceIter CVFIter
 Alias typedef.
 
typedef ConstVertexFaceCWIter CVFCWIter
 Alias typedef.
 
typedef ConstVertexFaceCCWIter CVFCCWIter
 Alias typedef.
 
typedef ConstFaceVertexIter CFVIter
 Alias typedef.
 
typedef ConstFaceVertexCWIter CFVCWIter
 Alias typedef.
 
typedef ConstFaceVertexCCWIter CFVCCWIter
 Alias typedef.
 
typedef ConstFaceHalfedgeIter CFHIter
 Alias typedef.
 
typedef ConstFaceHalfedgeCWIter CFHCWIter
 Alias typedef.
 
typedef ConstFaceHalfedgeCCWIter CFHCCWIter
 Alias typedef.
 
typedef ConstFaceEdgeIter CFEIter
 Alias typedef.
 
typedef ConstFaceEdgeCWIter CFECWIter
 Alias typedef.
 
typedef ConstFaceEdgeCCWIter CFECCWIter
 Alias typedef.
 
typedef ConstFaceFaceIter CFFIter
 Alias typedef.
 
typedef ConstFaceFaceCWIter CFFCWIter
 Alias typedef.
 
typedef ConstFaceFaceCCWIter CFFCCWIter
 Alias typedef.
 
typedef EntityRange< RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstVertexIter, &PolyConnectivity::vertices_begin, &PolyConnectivity::vertices_end > > ConstVertexRange
 
typedef EntityRange< RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstVertexIter, &PolyConnectivity::vertices_sbegin, &PolyConnectivity::vertices_end > > ConstVertexRangeSkipping
 
typedef EntityRange< RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter, &PolyConnectivity::halfedges_begin, &PolyConnectivity::halfedges_end > > ConstHalfedgeRange
 
typedef EntityRange< RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter, &PolyConnectivity::halfedges_sbegin, &PolyConnectivity::halfedges_end > > ConstHalfedgeRangeSkipping
 
typedef EntityRange< RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstEdgeIter, &PolyConnectivity::edges_begin, &PolyConnectivity::edges_end > > ConstEdgeRange
 
typedef EntityRange< RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstEdgeIter, &PolyConnectivity::edges_sbegin, &PolyConnectivity::edges_end > > ConstEdgeRangeSkipping
 
typedef EntityRange< RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstFaceIter, &PolyConnectivity::faces_begin, &PolyConnectivity::faces_end > > ConstFaceRange
 
typedef EntityRange< RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstFaceIter, &PolyConnectivity::faces_sbegin, &PolyConnectivity::faces_end > > ConstFaceRangeSkipping
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexVertexIter, VertexHandle, VertexHandle, &PolyConnectivity::cvv_begin, &PolyConnectivity::cvv_end > > ConstVertexVertexRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexIHalfedgeIter, VertexHandle, HalfedgeHandle, &PolyConnectivity::cvih_begin, &PolyConnectivity::cvih_end > > ConstVertexIHalfedgeRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexOHalfedgeIter, VertexHandle, HalfedgeHandle, &PolyConnectivity::cvoh_begin, &PolyConnectivity::cvoh_end > > ConstVertexOHalfedgeRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexEdgeIter, VertexHandle, EdgeHandle, &PolyConnectivity::cve_begin, &PolyConnectivity::cve_end > > ConstVertexEdgeRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexFaceIter, VertexHandle, FaceHandle, &PolyConnectivity::cvf_begin, &PolyConnectivity::cvf_end > > ConstVertexFaceRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceVertexIter, FaceHandle, VertexHandle, &PolyConnectivity::cfv_begin, &PolyConnectivity::cfv_end > > ConstFaceVertexRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceHalfedgeIter, FaceHandle, HalfedgeHandle, &PolyConnectivity::cfh_begin, &PolyConnectivity::cfh_end > > ConstFaceHalfedgeRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceEdgeIter, FaceHandle, EdgeHandle, &PolyConnectivity::cfe_begin, &PolyConnectivity::cfe_end > > ConstFaceEdgeRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceFaceIter, FaceHandle, FaceHandle, &PolyConnectivity::cff_begin, &PolyConnectivity::cff_end > > ConstFaceFaceRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstHalfedgeLoopIter, HalfedgeHandle, HalfedgeHandle, &PolyConnectivity::chl_begin, &PolyConnectivity::chl_end > > ConstHalfedgeLoopRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexVertexCWIter, VertexHandle, VertexHandle, &PolyConnectivity::cvv_cwbegin, &PolyConnectivity::cvv_cwend > > ConstVertexVertexCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexIHalfedgeCWIter, VertexHandle, HalfedgeHandle, &PolyConnectivity::cvih_cwbegin, &PolyConnectivity::cvih_cwend > > ConstVertexIHalfedgeCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexOHalfedgeCWIter, VertexHandle, HalfedgeHandle, &PolyConnectivity::cvoh_cwbegin, &PolyConnectivity::cvoh_cwend > > ConstVertexOHalfedgeCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexEdgeCWIter, VertexHandle, EdgeHandle, &PolyConnectivity::cve_cwbegin, &PolyConnectivity::cve_cwend > > ConstVertexEdgeCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexFaceCWIter, VertexHandle, FaceHandle, &PolyConnectivity::cvf_cwbegin, &PolyConnectivity::cvf_cwend > > ConstVertexFaceCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceVertexCWIter, FaceHandle, VertexHandle, &PolyConnectivity::cfv_cwbegin, &PolyConnectivity::cfv_cwend > > ConstFaceVertexCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceHalfedgeCWIter, FaceHandle, HalfedgeHandle, &PolyConnectivity::cfh_cwbegin, &PolyConnectivity::cfh_cwend > > ConstFaceHalfedgeCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceEdgeCWIter, FaceHandle, EdgeHandle, &PolyConnectivity::cfe_cwbegin, &PolyConnectivity::cfe_cwend > > ConstFaceEdgeCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceFaceCWIter, FaceHandle, FaceHandle, &PolyConnectivity::cff_cwbegin, &PolyConnectivity::cff_cwend > > ConstFaceFaceCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstHalfedgeLoopCWIter, HalfedgeHandle, HalfedgeHandle, &PolyConnectivity::chl_cwbegin, &PolyConnectivity::chl_cwend > > ConstHalfedgeLoopCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexVertexCCWIter, VertexHandle, VertexHandle, &PolyConnectivity::cvv_ccwbegin, &PolyConnectivity::cvv_ccwend > > ConstVertexVertexCCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexIHalfedgeCCWIter, VertexHandle, HalfedgeHandle, &PolyConnectivity::cvih_ccwbegin, &PolyConnectivity::cvih_ccwend > > ConstVertexIHalfedgeCCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexOHalfedgeCCWIter, VertexHandle, HalfedgeHandle, &PolyConnectivity::cvoh_ccwbegin, &PolyConnectivity::cvoh_ccwend > > ConstVertexOHalfedgeCCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexEdgeCCWIter, VertexHandle, EdgeHandle, &PolyConnectivity::cve_ccwbegin, &PolyConnectivity::cve_ccwend > > ConstVertexEdgeCCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstVertexFaceCCWIter, VertexHandle, FaceHandle, &PolyConnectivity::cvf_ccwbegin, &PolyConnectivity::cvf_ccwend > > ConstVertexFaceCCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceVertexCCWIter, FaceHandle, VertexHandle, &PolyConnectivity::cfv_ccwbegin, &PolyConnectivity::cfv_ccwend > > ConstFaceVertexCCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceHalfedgeCCWIter, FaceHandle, HalfedgeHandle, &PolyConnectivity::cfh_ccwbegin, &PolyConnectivity::cfh_ccwend > > ConstFaceHalfedgeCCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceEdgeCCWIter, FaceHandle, EdgeHandle, &PolyConnectivity::cfe_ccwbegin, &PolyConnectivity::cfe_ccwend > > ConstFaceEdgeCCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstFaceFaceCCWIter, FaceHandle, FaceHandle, &PolyConnectivity::cff_ccwbegin, &PolyConnectivity::cff_ccwend > > ConstFaceFaceCCWRange
 
typedef CirculatorRange< CirculatorRangeTraitT< PolyConnectivity, ConstHalfedgeLoopCCWIter, HalfedgeHandle, HalfedgeHandle, &PolyConnectivity::chl_ccwbegin, &PolyConnectivity::chl_ccwend > > ConstHalfedgeLoopCCWRange
 
- Public Types inherited from OpenMesh::ArrayKernel
typedef OpenMesh::VertexHandle VertexHandle
 
typedef OpenMesh::HalfedgeHandle HalfedgeHandle
 
typedef OpenMesh::EdgeHandle EdgeHandle
 
typedef OpenMesh::FaceHandle FaceHandle
 
typedef Attributes::StatusInfo StatusInfo
 
typedef VPropHandleT< StatusInfoVertexStatusPropertyHandle
 
typedef HPropHandleT< StatusInfoHalfedgeStatusPropertyHandle
 
typedef EPropHandleT< StatusInfoEdgeStatusPropertyHandle
 
typedef FPropHandleT< StatusInfoFaceStatusPropertyHandle
 
typedef AutoStatusSetT< VertexHandleVertexStatusSet
 
typedef AutoStatusSetT< EdgeHandleEdgeStatusSet
 
typedef AutoStatusSetT< FaceHandleFaceStatusSet
 
typedef AutoStatusSetT< HalfedgeHandleHalfedgeStatusSet
 
typedef ExtStatusSetT< FaceHandleExtFaceStatusSet
 
typedef ExtStatusSetT< VertexHandleExtVertexStatusSet
 
typedef ExtStatusSetT< EdgeHandleExtEdgeStatusSet
 
typedef ExtStatusSetT< HalfedgeHandleExtHalfedgeStatusSet
 
- Public Types inherited from OpenMesh::BaseKernel
typedef PropertyContainer::iterator prop_iterator
 You should not use this function directly. More...
 
typedef PropertyContainer::const_iterator const_prop_iterator
 You should not use this function directly. More...
 
- Static Public Attributes inherited from OpenMesh::PolyConnectivity
static const VertexHandle InvalidVertexHandle
 Invalid handle.
 
static const HalfedgeHandle InvalidHalfedgeHandle
 Invalid handle.
 
static const EdgeHandle InvalidEdgeHandle
 Invalid handle.
 
static const FaceHandle InvalidFaceHandle
 Invalid handle.
 
- Protected Member Functions inherited from OpenMesh::PolyConnectivity
void collapse_edge (HalfedgeHandle _hh)
 Helper for halfedge collapse.
 
void collapse_loop (HalfedgeHandle _hh)
 Helper for halfedge collapse.
 
- Protected Member Functions inherited from OpenMesh::BaseKernel
BaseProperty_vprop (BaseHandle _h)
 You should not use this function directly. More...
 
BaseProperty_eprop (BaseHandle _h)
 You should not use this function directly. More...
 
BaseProperty_hprop (BaseHandle _h)
 You should not use this function directly. More...
 
BaseProperty_fprop (BaseHandle _h)
 You should not use this function directly. More...
 
BaseProperty_mprop (BaseHandle _h)
 You should not use this function directly. More...
 
const BaseProperty_vprop (BaseHandle _h) const
 You should not use this function directly. More...
 
const BaseProperty_eprop (BaseHandle _h) const
 You should not use this function directly. More...
 
const BaseProperty_hprop (BaseHandle _h) const
 You should not use this function directly. More...
 
const BaseProperty_fprop (BaseHandle _h) const
 You should not use this function directly. More...
 
const BaseProperty_mprop (BaseHandle _h) const
 You should not use this function directly. More...
 
void vprops_reserve (size_t _n) const
 Reserves space for _n elements in all vertex property vectors.
 
void vprops_resize (size_t _n) const
 Resizes all vertex property vectors to the specified size.
 
void vprops_resize_if_smaller (size_t _n) const
 Same as vprops_resize() but ignores vertex property vectors that have a size larger than _n. More...
 
void vprops_clear ()
 You should not use this function directly. More...
 
void vprops_swap (unsigned int _i0, unsigned int _i1) const
 You should not use this function directly. More...
 
void hprops_reserve (size_t _n) const
 You should not use this function directly. More...
 
void hprops_resize (size_t _n) const
 You should not use this function directly. More...
 
void hprops_clear ()
 You should not use this function directly. More...
 
void hprops_swap (unsigned int _i0, unsigned int _i1) const
 You should not use this function directly. More...
 
void eprops_reserve (size_t _n) const
 You should not use this function directly. More...
 
void eprops_resize (size_t _n) const
 You should not use this function directly. More...
 
void eprops_clear ()
 You should not use this function directly. More...
 
void eprops_swap (unsigned int _i0, unsigned int _i1) const
 You should not use this function directly. More...
 
void fprops_reserve (size_t _n) const
 You should not use this function directly. More...
 
void fprops_resize (size_t _n) const
 You should not use this function directly. More...
 
void fprops_clear ()
 You should not use this function directly. More...
 
void fprops_swap (unsigned int _i0, unsigned int _i1) const
 You should not use this function directly. More...
 
void mprops_resize (size_t _n) const
 You should not use this function directly. More...
 
void mprops_clear ()
 You should not use this function directly. More...
 
- Protected Attributes inherited from OpenMesh::ArrayKernel
VertexStatusPropertyHandle vertex_status_
 
HalfedgeStatusPropertyHandle halfedge_status_
 
EdgeStatusPropertyHandle edge_status_
 
FaceStatusPropertyHandle face_status_
 
unsigned int refcount_vstatus_
 
unsigned int refcount_hstatus_
 
unsigned int refcount_estatus_
 
unsigned int refcount_fstatus_
 

Detailed Description

Connectivity Class for Triangle Meshes.

Member Function Documentation

◆ add_face() [1/4]

SmartFaceHandle OpenMesh::TriConnectivity::add_face ( const std::vector< SmartVertexHandle > &  _vhandles)

Add a face with arbitrary valence to the triangle mesh.

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.

◆ add_face() [2/4]

SmartFaceHandle OpenMesh::TriConnectivity::add_face ( const std::vector< VertexHandle > &  _vhandles)

Add a face with arbitrary valence to the triangle mesh.

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.

◆ add_face() [3/4]

SmartFaceHandle OpenMesh::TriConnectivity::add_face ( const VertexHandle _vhandles,
size_t  _vhs_size 
)

Add a face with arbitrary valence to the triangle mesh.

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.

face is triangle -> ok

face is not a triangle -> triangulate

◆ add_face() [4/4]

SmartFaceHandle OpenMesh::TriConnectivity::add_face ( VertexHandle  _vh0,
VertexHandle  _vh1,
VertexHandle  _vh2 
)

Add a face to the mesh (triangle)

This function adds a triangle to the mesh. The triangle is passed directly to the underlying PolyConnectivity as we don't explicitly need to triangulate something.

Parameters
_vh0VertexHandle 1
_vh1VertexHandle 2
_vh2VertexHandle 3
Returns
FaceHandle of the added face (invalid, if the operation failed)

◆ assign_connectivity()

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

◆ flip()

void OpenMesh::TriConnectivity::flip ( EdgeHandle  _eh)

Flip edge _eh.

Check for topological correctness first using is_flip_ok().

◆ is_collapse_ok()

bool OpenMesh::TriConnectivity::is_collapse_ok ( HalfedgeHandle  _heh)

Returns whether collapsing halfedge _heh is ok or would lead to topological inconsistencies.

Attention
This method need the Attributes::Status attribute and changes the tagged bit.

◆ split() [1/2]

void OpenMesh::TriConnectivity::split ( EdgeHandle  _eh,
VertexHandle  _vh 
)

Edge split (= 2-to-4 split)

The function will introduce two new faces ( non-boundary case) or one additional face (if edge is boundary)

Note
The properties of the new edges, halfedges, and faces will be undefined!
Parameters
_ehEdge handle that should be split
_vhVertex handle that will be inserted at the edge

◆ split() [2/2]

void OpenMesh::TriConnectivity::split ( FaceHandle  _fh,
VertexHandle  _vh 
)
inline

Face split (= 1-to-3) split, calls corresponding PolyMeshT function).

Parameters
_fhFace handle that should be split
_vhVertex handle that will be inserted at the face

◆ split_copy() [1/2]

void OpenMesh::TriConnectivity::split_copy ( EdgeHandle  _eh,
VertexHandle  _vh 
)

Edge split (= 2-to-4 split)

The function will introduce two new faces ( non-boundary case) or one additional face (if edge is boundary)

Note
The properties of the new edges and faces will be adjusted to the properties of the original edge and face
The properties of the new halfedges will be undefined
Parameters
_ehEdge handle that should be split
_vhVertex handle that will be inserted at the edge

◆ split_copy() [2/2]

void OpenMesh::TriConnectivity::split_copy ( FaceHandle  _fh,
VertexHandle  _vh 
)
inline

Face split (= 1-to-3) split, calls corresponding PolyMeshT function).

Parameters
_fhFace handle that should be split
_vhVertex handle that will be inserted at the face

◆ split_edge()

void OpenMesh::TriConnectivity::split_edge ( EdgeHandle  _eh,
VertexHandle  _vh 
)
inline

Edge split (= 2-to-4 split)

The function will introduce two new faces ( non-boundary case) or one additional face (if edge is boundary)

Note
The properties of the new edges, halfedges, and faces will be undefined!
This is an override to prevent a direct call to PolyConnectivity split_edge, which would introduce a singular vertex with valence 2 which is not allowed on TriMeshes
Parameters
_ehEdge handle that should be split
_vhVertex handle that will be inserted at the edge

◆ split_edge_copy()

void OpenMesh::TriConnectivity::split_edge_copy ( EdgeHandle  _eh,
VertexHandle  _vh 
)
inline

Edge split (= 2-to-4 split)

The function will introduce two new faces ( non-boundary case) or one additional face (if edge is boundary)

Note
The properties of the new edges and faces will be adjusted to the properties of the original edge and face
The properties of the new halfedges will be undefined
This is an override to prevent a direct call to PolyConnectivity split_edge_copy, which would introduce a singular vertex with valence 2 which is not allowed on TriMeshes
Parameters
_ehEdge handle that should be split
_vhVertex handle that will be inserted at the edge

The documentation for this class was generated from the following files:

Project OpenMesh, ©  Visual Computing Institute, RWTH Aachen. Documentation generated using doxygen .