Developer Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
OpenMesh::PolyConnectivity Class Reference

Connectivity Class for polygonal meshes. More...

`#include <OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Core/Mesh/PolyConnectivity.hh>`

Inheritance diagram for OpenMesh::PolyConnectivity:

## Classes
struct | AddFaceEdgeInfo
struct | ElementRange
struct | ElementRange< EdgeHandle >
struct | ElementRange< FaceHandle >
struct | ElementRange< HalfedgeHandle >
struct | ElementRange< VertexHandle >
struct | FaceEdgeTraits
struct | FaceFaceTraits
struct | FaceHalfedgeTraits
struct | FaceVertexTraits
struct | VertexEdgeTraits
struct | VertexFaceTraits
struct | VertexHalfedgeTraits
struct | VertexOppositeHalfedgeTraits
struct | VertexVertexTraits

## Public Types
typedef PolyConnectivity | This
Mesh Iterators
Refer to OpenMesh::Mesh::Iterators or Mesh Iterators and Circulators for documentation.
typedef Iterators::GenericIteratorT< This, This::VertexHandle, ArrayKernel, &ArrayKernel::has_vertex_status, &ArrayKernel::n_vertices > | VertexIter
| Linear iterator.
typedef Iterators::GenericIteratorT< This, This::HalfedgeHandle, ArrayKernel, &ArrayKernel::has_halfedge_status, &ArrayKernel::n_halfedges > | HalfedgeIter
| Linear iterator.
typedef Iterators::GenericIteratorT< This, This::EdgeHandle, ArrayKernel, &ArrayKernel::has_edge_status, &ArrayKernel::n_edges > | EdgeIter
| Linear iterator.
typedef Iterators::GenericIteratorT< This, This::FaceHandle, ArrayKernel, &ArrayKernel::has_face_status, &ArrayKernel::n_faces > | FaceIter
| Linear iterator.
typedef VertexIter | ConstVertexIter
| Linear iterator.
typedef HalfedgeIter | ConstHalfedgeIter
| Linear iterator.
typedef EdgeIter | ConstEdgeIter
| Linear iterator.
typedef FaceIter | ConstFaceIter
| Linear iterator.
Mesh Circulators
Refer to OpenMesh::Mesh::Iterators or Mesh Iterators and Circulators for documentation.
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexVertexTraits > | VertexVertexIter
typedef Iterators::GenericCirculatorT< VertexVertexTraits, true > | VertexVertexCWIter
typedef Iterators::GenericCirculatorT< VertexVertexTraits, false > | VertexVertexCCWIter
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexHalfedgeTraits > | VertexOHalfedgeIter
typedef Iterators::GenericCirculatorT< VertexHalfedgeTraits, true > | VertexOHalfedgeCWIter
typedef Iterators::GenericCirculatorT< VertexHalfedgeTraits, false > | VertexOHalfedgeCCWIter
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexOppositeHalfedgeTraits > | VertexIHalfedgeIter
typedef Iterators::GenericCirculatorT< VertexOppositeHalfedgeTraits, true > | VertexIHalfedgeCWIter
typedef Iterators::GenericCirculatorT< VertexOppositeHalfedgeTraits, false > | VertexIHalfedgeCCWIter
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexFaceTraits > | VertexFaceIter
typedef Iterators::GenericCirculatorT< VertexFaceTraits, true > | VertexFaceCWIter
typedef Iterators::GenericCirculatorT< VertexFaceTraits, false > | VertexFaceCCWIter
typedef Iterators::GenericCirculatorT_DEPRECATED< VertexEdgeTraits > | VertexEdgeIter
typedef Iterators::GenericCirculatorT< VertexEdgeTraits, true > | VertexEdgeCWIter
typedef Iterators::GenericCirculatorT< VertexEdgeTraits, false > | VertexEdgeCCWIter
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceHalfedgeTraits > | HalfedgeLoopIter
typedef Iterators::GenericCirculatorT< FaceHalfedgeTraits, false > | HalfedgeLoopCWIter
typedef Iterators::GenericCirculatorT< FaceHalfedgeTraits, true > | HalfedgeLoopCCWIter
typedef VertexVertexIter | ConstVertexVertexIter
typedef VertexVertexCWIter | ConstVertexVertexCWIter
typedef VertexVertexCCWIter | ConstVertexVertexCCWIter
typedef VertexOHalfedgeIter | ConstVertexOHalfedgeIter
typedef VertexOHalfedgeCWIter | ConstVertexOHalfedgeCWIter
typedef VertexOHalfedgeCCWIter | ConstVertexOHalfedgeCCWIter
typedef VertexIHalfedgeIter | ConstVertexIHalfedgeIter
typedef VertexIHalfedgeCWIter | ConstVertexIHalfedgeCWIter
typedef VertexIHalfedgeCCWIter | ConstVertexIHalfedgeCCWIter
typedef VertexFaceIter | ConstVertexFaceIter
typedef VertexFaceCWIter | ConstVertexFaceCWIter
typedef VertexFaceCCWIter | ConstVertexFaceCCWIter
typedef VertexEdgeIter | ConstVertexEdgeIter
typedef VertexEdgeCWIter | ConstVertexEdgeCWIter
typedef VertexEdgeCCWIter | ConstVertexEdgeCCWIter
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceVertexTraits > | FaceVertexIter
typedef Iterators::GenericCirculatorT< FaceVertexTraits, true > | FaceVertexCCWIter
typedef Iterators::GenericCirculatorT< FaceVertexTraits, false > | FaceVertexCWIter
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceHalfedgeTraits > | FaceHalfedgeIter
typedef Iterators::GenericCirculatorT< FaceHalfedgeTraits, true > | FaceHalfedgeCCWIter
typedef Iterators::GenericCirculatorT< FaceHalfedgeTraits, false > | FaceHalfedgeCWIter
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceEdgeTraits > | FaceEdgeIter
typedef Iterators::GenericCirculatorT< FaceEdgeTraits, true > | FaceEdgeCCWIter
typedef Iterators::GenericCirculatorT< FaceEdgeTraits, false > | FaceEdgeCWIter
typedef Iterators::GenericCirculatorT_DEPRECATED< FaceFaceTraits > | FaceFaceIter
typedef Iterators::GenericCirculatorT< FaceFaceTraits, true > | FaceFaceCCWIter
typedef Iterators::GenericCirculatorT< FaceFaceTraits, false > | FaceFaceCWIter
typedef FaceVertexIter | ConstFaceVertexIter
typedef FaceVertexCWIter | ConstFaceVertexCWIter
typedef FaceVertexCCWIter | ConstFaceVertexCCWIter
typedef FaceHalfedgeIter | ConstFaceHalfedgeIter
typedef FaceHalfedgeCWIter | ConstFaceHalfedgeCWIter
typedef FaceHalfedgeCCWIter | ConstFaceHalfedgeCCWIter
typedef FaceEdgeIter | ConstFaceEdgeIter
typedef FaceEdgeCWIter | ConstFaceEdgeCWIter
typedef FaceEdgeCCWIter | ConstFaceEdgeCCWIter
typedef FaceFaceIter | ConstFaceFaceIter
typedef FaceFaceCWIter | ConstFaceFaceCWIter
typedef FaceFaceCCWIter | ConstFaceFaceCCWIter
typedef HalfedgeLoopIter | ConstHalfedgeLoopIter
typedef HalfedgeLoopCWIter | ConstHalfedgeLoopCWIter
typedef HalfedgeLoopCCWIter | ConstHalfedgeLoopCCWIter
Typedef Shortcuts
Provided for convenience only
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.
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< StatusInfo > | VertexStatusPropertyHandle
typedef HPropHandleT< StatusInfo > | HalfedgeStatusPropertyHandle
typedef EPropHandleT< StatusInfo > | EdgeStatusPropertyHandle
typedef FPropHandleT< StatusInfo > | FaceStatusPropertyHandle
typedef AutoStatusSetT< VertexHandle > | VertexStatusSet
typedef AutoStatusSetT< EdgeHandle > | EdgeStatusSet
typedef AutoStatusSetT< FaceHandle > | FaceStatusSet
typedef AutoStatusSetT< HalfedgeHandle > | HalfedgeStatusSet
typedef ExtStatusSetT< FaceHandle > | ExtFaceStatusSet
typedef ExtStatusSetT< VertexHandle > | ExtVertexStatusSet
typedef ExtStatusSetT< EdgeHandle > | ExtEdgeStatusSet
typedef ExtStatusSetT< HalfedgeHandle > | ExtHalfedgeStatusSet
Public Types inherited from OpenMesh::BaseKernel
typedef PropertyContainer::iterator | prop_iterator
typedef PropertyContainer::const_iterator | const_prop_iterator

## Public Member Functions
void | assign_connectivity (const PolyConnectivity &_other)
FaceHandle | opposite_face_handle (HalfedgeHandle _heh) const
| returns the face handle of the opposite halfedge
void | adjust_outgoing_halfedge (VertexHandle _vh)
HalfedgeHandle | 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)
bool | is_simple_link (EdgeHandle _eh) const
bool | is_simply_connected (FaceHandle _fh) const
FaceHandle | remove_edge (EdgeHandle _eh)
void | reinsert_edge (EdgeHandle _eh)
HalfedgeHandle | insert_edge (HalfedgeHandle _prev_heh, HalfedgeHandle _next_heh)
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)
void | split_edge_copy (EdgeHandle _eh, VertexHandle _vh)
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
Adding items to a mesh
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...
Deleting mesh items and other connectivity/topology modifications
bool | is_collapse_ok (HalfedgeHandle _he)
void | delete_vertex (VertexHandle _vh, bool _delete_isolated_vertices=true)
void | delete_edge (EdgeHandle _eh, bool _delete_isolated_vertices=true)
void | delete_face (FaceHandle _fh, bool _delete_isolated_vertices=true)
Begin and end iterators
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.
Begin for skipping iterators
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.
Vertex and Face circulators
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
Boundary and manifold tests
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...
Generic handle derefertiation.
Calls the respective vertex(), halfedge(), edge(), face() method of the mesh kernel.
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.
Public Member Functions inherited from OpenMesh::ArrayKernel
void | assign_connectivity (const ArrayKernel &_other)
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 ()
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
size_t | n_halfedges () const override
size_t | n_edges () const override
size_t | n_faces () const override
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 StatusInfo & | status (VertexHandle _vh) const
| Status Query API.
StatusInfo & | status (VertexHandle _vh)
void | reset_status ()
const StatusInfo & | status (HalfedgeHandle _hh) const
StatusInfo & | status (HalfedgeHandle _hh)
const StatusInfo & | status (EdgeHandle _eh) const
StatusInfo & | status (EdgeHandle _eh)
const StatusInfo & | status (FaceHandle _fh) const
StatusInfo & | status (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<class T >
void | copy_property (VPropHandleT< T > &_ph, VertexHandle _vh_from, VertexHandle _vh_to)
template<class T >
void | copy_property (HPropHandleT< T > _ph, HalfedgeHandle _hh_from, HalfedgeHandle _hh_to)
template<class T >
void | copy_property (EPropHandleT< T > _ph, EdgeHandle _eh_from, EdgeHandle _eh_to)
template<class T >
void | copy_property (FPropHandleT< T > _ph, FaceHandle _fh_from, FaceHandle _fh_to)
void | copy_all_properties (VertexHandle _vh_from, VertexHandle _vh_to, bool _copyBuildIn=false)
void | copy_all_properties (HalfedgeHandle _hh_from, HalfedgeHandle _hh_to, bool _copyBuildIn=false)
void | copy_all_properties (EdgeHandle _eh_from, EdgeHandle _eh_to, bool _copyBuildIn=false)
void | copy_all_properties (FaceHandle _fh_from, FaceHandle _fh_to, bool _copyBuildIn=false)
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
size_t | n_eprops (void) const
size_t | n_hprops (void) const
size_t | n_fprops (void) const
size_t | n_mprops (void) const
BaseProperty * | _get_vprop (const std::string &_name)
BaseProperty * | _get_eprop (const std::string &_name)
BaseProperty * | _get_hprop (const std::string &_name)
BaseProperty * | _get_fprop (const std::string &_name)
BaseProperty * | _get_mprop (const std::string &_name)
const BaseProperty * | _get_vprop (const std::string &_name) const
const BaseProperty * | _get_eprop (const std::string &_name) const
const BaseProperty * | _get_hprop (const std::string &_name) const
const BaseProperty * | _get_fprop (const std::string &_name) const
const BaseProperty * | _get_mprop (const std::string &_name) const
BaseProperty & | _vprop (size_t _idx)
BaseProperty & | _eprop (size_t _idx)
BaseProperty & | _hprop (size_t _idx)
BaseProperty & | _fprop (size_t _idx)
BaseProperty & | _mprop (size_t _idx)
const BaseProperty & | _vprop (size_t _idx) const
const BaseProperty & | _eprop (size_t _idx) const
const BaseProperty & | _hprop (size_t _idx) const
const BaseProperty & | _fprop (size_t _idx) const
const BaseProperty & | _mprop (size_t _idx) const
size_t | _add_vprop (BaseProperty *_bp)
size_t | _add_eprop (BaseProperty *_bp)
size_t | _add_hprop (BaseProperty *_bp)
size_t | _add_fprop (BaseProperty *_bp)
size_t | _add_mprop (BaseProperty *_bp)
template<typename HandleT >
size_t | n_elements () const
void | property_stats () const
void | property_stats (std::ostream &_ostr) const
void | vprop_stats (std::string &_string) const
void | hprop_stats (std::string &_string) const
void | eprop_stats (std::string &_string) const
void | fprop_stats (std::string &_string) const
void | mprop_stats (std::string &_string) const
void | vprop_stats () const
void | hprop_stats () const
void | eprop_stats () const
void | fprop_stats () const
void | mprop_stats () const
void | vprop_stats (std::ostream &_ostr) const
void | hprop_stats (std::ostream &_ostr) const
void | eprop_stats (std::ostream &_ostr) const
void | fprop_stats (std::ostream &_ostr) const
void | mprop_stats (std::ostream &_ostr) const
prop_iterator | vprops_begin ()
prop_iterator | vprops_end ()
const_prop_iterator | vprops_begin () const
const_prop_iterator | vprops_end () const
prop_iterator | eprops_begin ()
prop_iterator | eprops_end ()
const_prop_iterator | eprops_begin () const
const_prop_iterator | eprops_end () const
prop_iterator | hprops_begin ()
prop_iterator | hprops_end ()
const_prop_iterator | hprops_begin () const
const_prop_iterator | hprops_end () const
prop_iterator | fprops_begin ()
prop_iterator | fprops_end ()
const_prop_iterator | fprops_begin () const
const_prop_iterator | fprops_end () const
prop_iterator | mprops_begin ()
prop_iterator | mprops_end ()
const_prop_iterator | mprops_begin () const
const_prop_iterator | mprops_end () const
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>")
template<class T >
void | add_property (HPropHandleT< T > &_ph, const std::string &_name="<hprop>")
template<class T >
void | add_property (EPropHandleT< T > &_ph, const std::string &_name="<eprop>")
template<class T >
void | add_property (FPropHandleT< T > &_ph, const std::string &_name="<fprop>")
template<class T >
void | add_property (MPropHandleT< T > &_ph, const std::string &_name="<mprop>")
template<typename T >
void | remove_property (VPropHandleT< T > &_ph)
template<typename T >
void | remove_property (HPropHandleT< T > &_ph)
template<typename T >
void | remove_property (EPropHandleT< T > &_ph)
template<typename T >
void | remove_property (FPropHandleT< T > &_ph)
template<typename T >
void | remove_property (MPropHandleT< T > &_ph)
template<class T >
bool | get_property_handle (VPropHandleT< T > &_ph, const std::string &_name) const
template<class T >
bool | get_property_handle (HPropHandleT< T > &_ph, const std::string &_name) const
template<class T >
bool | get_property_handle (EPropHandleT< T > &_ph, const std::string &_name) const
template<class T >
bool | get_property_handle (FPropHandleT< T > &_ph, const std::string &_name) const
template<class T >
bool | get_property_handle (MPropHandleT< T > &_ph, const std::string &_name) const
template<class T >
PropertyT< T > & | property (VPropHandleT< T > _ph)
template<class T >
const PropertyT< T > & | property (VPropHandleT< T > _ph) const
template<class T >
PropertyT< T > & | property (HPropHandleT< T > _ph)
template<class T >
const PropertyT< T > & | property (HPropHandleT< T > _ph) const
template<class T >
PropertyT< T > & | property (EPropHandleT< T > _ph)
template<class T >
const PropertyT< T > & | property (EPropHandleT< T > _ph) const
template<class T >
PropertyT< T > & | property (FPropHandleT< T > _ph)
template<class T >
const PropertyT< T > & | property (FPropHandleT< T > _ph) const
template<class T >
PropertyT< T > & | mproperty (MPropHandleT< T > _ph)
template<class T >
const PropertyT< T > & | mproperty (MPropHandleT< T > _ph) const
template<class T >
VPropHandleT< T >::reference | property (VPropHandleT< T > _ph, VertexHandle _vh)
template<class T >
VPropHandleT< T >::const_reference | property (VPropHandleT< T > _ph, VertexHandle _vh) const
template<class T >
HPropHandleT< T >::reference | property (HPropHandleT< T > _ph, HalfedgeHandle _hh)
template<class T >
HPropHandleT< T >::const_reference | property (HPropHandleT< T > _ph, HalfedgeHandle _hh) const
template<class T >
EPropHandleT< T >::reference | property (EPropHandleT< T > _ph, EdgeHandle _eh)
template<class T >
EPropHandleT< T >::const_reference | property (EPropHandleT< T > _ph, EdgeHandle _eh) const
template<class T >
FPropHandleT< T >::reference | property (FPropHandleT< T > _ph, FaceHandle _fh)
template<class T >
FPropHandleT< T >::const_reference | property (FPropHandleT< T > _ph, FaceHandle _fh) const
template<class T >
MPropHandleT< T >::reference | property (MPropHandleT< T > _ph)
template<class T >
MPropHandleT< T >::const_reference | property (MPropHandleT< T > _ph) const

## Static Public Member Functions
static bool | is_triangles ()
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)

## Static Public Attributes
Mesh Handles
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
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)
BaseProperty & | _eprop (BaseHandle _h)
BaseProperty & | _hprop (BaseHandle _h)
BaseProperty & | _fprop (BaseHandle _h)
BaseProperty & | _mprop (BaseHandle _h)
const BaseProperty & | _vprop (BaseHandle _h) const
const BaseProperty & | _eprop (BaseHandle _h) const
const BaseProperty & | _hprop (BaseHandle _h) const
const BaseProperty & | _fprop (BaseHandle _h) const
const BaseProperty & | _mprop (BaseHandle _h) const
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
void | vprops_clear ()
void | vprops_swap (unsigned int _i0, unsigned int _i1) const
void | hprops_reserve (size_t _n) const
void | hprops_resize (size_t _n) const
void | hprops_clear ()
void | hprops_swap (unsigned int _i0, unsigned int _i1) const
void | eprops_reserve (size_t _n) const
void | eprops_resize (size_t _n) const
void | eprops_clear ()
void | eprops_swap (unsigned int _i0, unsigned int _i1) const
void | fprops_reserve (size_t _n) const
void | fprops_resize (size_t _n) const
void | fprops_clear ()
void | fprops_swap (unsigned int _i0, unsigned int _i1) const
void | mprops_resize (size_t _n) const
void | mprops_clear ()

## Private Attributes
std::vector< AddFaceEdgeInfo > | edgeData_
std::vector< std::pair< HalfedgeHandle, HalfedgeHandle > > | next_cache_

## Navigation with smart handles to allow usage of old-style navigation with smart handles
SmartHalfedgeHandle | next_halfedge_handle (SmartHalfedgeHandle _heh) const
SmartHalfedgeHandle | prev_halfedge_handle (SmartHalfedgeHandle _heh) const
SmartHalfedgeHandle | opposite_halfedge_handle (SmartHalfedgeHandle _heh) const
SmartHalfedgeHandle | ccw_rotated_halfedge_handle (SmartHalfedgeHandle _heh) const
SmartHalfedgeHandle | cw_rotated_halfedge_handle (SmartHalfedgeHandle _heh) const
SmartHalfedgeHandle | halfedge_handle (SmartEdgeHandle _eh, unsigned int _i) const
SmartHalfedgeHandle | halfedge_handle (SmartFaceHandle _fh) const
SmartHalfedgeHandle | halfedge_handle (SmartVertexHandle _vh) const
SmartEdgeHandle | edge_handle (SmartHalfedgeHandle _heh) const
SmartFaceHandle | face_handle (SmartHalfedgeHandle _heh) const
static SmartHalfedgeHandle | s_halfedge_handle (SmartEdgeHandle _eh, unsigned int _i)
static SmartEdgeHandle | s_edge_handle (SmartHalfedgeHandle _heh)

## Range based iterators and circulators
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, ConstVertexVertexCWIter, VertexHandle, VertexHandle, &PolyConnectivity::cvv_cwbegin, &PolyConnectivity::cvv_cwend > > | 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
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
ConstVertexOHalfedgeRange | voh_range (VertexHandle _vh) 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

## Additional Inherited Members
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 polygonal meshes.

Definition at line 112 of file PolyConnectivity.hh.

## Member Typedef Documentation

## ◆ ConstEdgeRange

typedef EntityRange<RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstEdgeIter, &PolyConnectivity::edges_begin, &PolyConnectivity::edges_end> > OpenMesh::PolyConnectivity::ConstEdgeRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1084 of file PolyConnectivity.hh.

## ◆ ConstEdgeRangeSkipping

typedef EntityRange<RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstEdgeIter, &PolyConnectivity::edges_sbegin, &PolyConnectivity::edges_end> > OpenMesh::PolyConnectivity::ConstEdgeRangeSkipping

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1089 of file PolyConnectivity.hh.

## ◆ ConstFaceEdgeCCWIter

typedef FaceEdgeCCWIter OpenMesh::PolyConnectivity::ConstFaceEdgeCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 375 of file PolyConnectivity.hh.

## ◆ ConstFaceEdgeCWIter

typedef FaceEdgeCWIter OpenMesh::PolyConnectivity::ConstFaceEdgeCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 374 of file PolyConnectivity.hh.

## ◆ ConstFaceEdgeIter

typedef FaceEdgeIter OpenMesh::PolyConnectivity::ConstFaceEdgeIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 373 of file PolyConnectivity.hh.

## ◆ ConstFaceEdgeRange

typedef CirculatorRange<CirculatorRangeTraitT< PolyConnectivity, ConstFaceEdgeIter, FaceHandle, EdgeHandle, &PolyConnectivity::cfe_begin, &PolyConnectivity::cfe_end> > OpenMesh::PolyConnectivity::ConstFaceEdgeRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1223 of file PolyConnectivity.hh.

## ◆ ConstFaceFaceCCWIter

typedef FaceFaceCCWIter OpenMesh::PolyConnectivity::ConstFaceFaceCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 378 of file PolyConnectivity.hh.

## ◆ ConstFaceFaceCWIter

typedef FaceFaceCWIter OpenMesh::PolyConnectivity::ConstFaceFaceCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 377 of file PolyConnectivity.hh.

## ◆ ConstFaceFaceIter

typedef FaceFaceIter OpenMesh::PolyConnectivity::ConstFaceFaceIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 376 of file PolyConnectivity.hh.

## ◆ ConstFaceFaceRange

typedef CirculatorRange<CirculatorRangeTraitT< PolyConnectivity, ConstFaceFaceIter, FaceHandle, FaceHandle, &PolyConnectivity::cff_begin, &PolyConnectivity::cff_end> > OpenMesh::PolyConnectivity::ConstFaceFaceRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1230 of file PolyConnectivity.hh.

## ◆ ConstFaceHalfedgeCCWIter

typedef FaceHalfedgeCCWIter OpenMesh::PolyConnectivity::ConstFaceHalfedgeCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 372 of file PolyConnectivity.hh.

## ◆ ConstFaceHalfedgeCWIter

typedef FaceHalfedgeCWIter OpenMesh::PolyConnectivity::ConstFaceHalfedgeCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 371 of file PolyConnectivity.hh.

## ◆ ConstFaceHalfedgeIter

typedef FaceHalfedgeIter OpenMesh::PolyConnectivity::ConstFaceHalfedgeIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 370 of file PolyConnectivity.hh.

## ◆ ConstFaceHalfedgeRange

typedef CirculatorRange<CirculatorRangeTraitT< PolyConnectivity, ConstFaceHalfedgeIter, FaceHandle, HalfedgeHandle, &PolyConnectivity::cfh_begin, &PolyConnectivity::cfh_end> > OpenMesh::PolyConnectivity::ConstFaceHalfedgeRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1216 of file PolyConnectivity.hh.

## ◆ ConstFaceRange

typedef EntityRange<RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstFaceIter, &PolyConnectivity::faces_begin, &PolyConnectivity::faces_end> > OpenMesh::PolyConnectivity::ConstFaceRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1094 of file PolyConnectivity.hh.

## ◆ ConstFaceRangeSkipping

typedef EntityRange<RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstFaceIter, &PolyConnectivity::faces_sbegin, &PolyConnectivity::faces_end> > OpenMesh::PolyConnectivity::ConstFaceRangeSkipping

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1099 of file PolyConnectivity.hh.

## ◆ ConstFaceVertexCCWIter

typedef FaceVertexCCWIter OpenMesh::PolyConnectivity::ConstFaceVertexCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 369 of file PolyConnectivity.hh.

## ◆ ConstFaceVertexCWIter

typedef FaceVertexCWIter OpenMesh::PolyConnectivity::ConstFaceVertexCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 368 of file PolyConnectivity.hh.

## ◆ ConstFaceVertexIter

typedef FaceVertexIter OpenMesh::PolyConnectivity::ConstFaceVertexIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 367 of file PolyConnectivity.hh.

## ◆ ConstFaceVertexRange

typedef CirculatorRange<CirculatorRangeTraitT< PolyConnectivity, ConstFaceVertexIter, FaceHandle, VertexHandle, &PolyConnectivity::cfv_begin, &PolyConnectivity::cfv_end> > OpenMesh::PolyConnectivity::ConstFaceVertexRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1209 of file PolyConnectivity.hh.

## ◆ ConstHalfedgeLoopCCWIter

typedef HalfedgeLoopCCWIter OpenMesh::PolyConnectivity::ConstHalfedgeLoopCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 385 of file PolyConnectivity.hh.

## ◆ ConstHalfedgeLoopCWIter

typedef HalfedgeLoopCWIter OpenMesh::PolyConnectivity::ConstHalfedgeLoopCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 384 of file PolyConnectivity.hh.

## ◆ ConstHalfedgeLoopIter

typedef HalfedgeLoopIter OpenMesh::PolyConnectivity::ConstHalfedgeLoopIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 383 of file PolyConnectivity.hh.

## ◆ ConstHalfedgeRange

typedef EntityRange<RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter, &PolyConnectivity::halfedges_begin, &PolyConnectivity::halfedges_end> > OpenMesh::PolyConnectivity::ConstHalfedgeRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1074 of file PolyConnectivity.hh.

## ◆ ConstHalfedgeRangeSkipping

typedef EntityRange<RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter, &PolyConnectivity::halfedges_sbegin, &PolyConnectivity::halfedges_end> > OpenMesh::PolyConnectivity::ConstHalfedgeRangeSkipping

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1079 of file PolyConnectivity.hh.

## ◆ ConstVertexEdgeCCWIter

typedef VertexEdgeCCWIter OpenMesh::PolyConnectivity::ConstVertexEdgeCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 291 of file PolyConnectivity.hh.

## ◆ ConstVertexEdgeCWIter

typedef VertexEdgeCWIter OpenMesh::PolyConnectivity::ConstVertexEdgeCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 290 of file PolyConnectivity.hh.

## ◆ ConstVertexEdgeIter

typedef VertexEdgeIter OpenMesh::PolyConnectivity::ConstVertexEdgeIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 289 of file PolyConnectivity.hh.

## ◆ ConstVertexEdgeRange

typedef CirculatorRange<CirculatorRangeTraitT< PolyConnectivity, ConstVertexEdgeIter, VertexHandle, EdgeHandle, &PolyConnectivity::cve_begin, &PolyConnectivity::cve_end> > OpenMesh::PolyConnectivity::ConstVertexEdgeRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1195 of file PolyConnectivity.hh.

## ◆ ConstVertexFaceCCWIter

typedef VertexFaceCCWIter OpenMesh::PolyConnectivity::ConstVertexFaceCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 288 of file PolyConnectivity.hh.

## ◆ ConstVertexFaceCWIter

typedef VertexFaceCWIter OpenMesh::PolyConnectivity::ConstVertexFaceCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 287 of file PolyConnectivity.hh.

## ◆ ConstVertexFaceIter

typedef VertexFaceIter OpenMesh::PolyConnectivity::ConstVertexFaceIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 286 of file PolyConnectivity.hh.

## ◆ ConstVertexFaceRange

typedef CirculatorRange<CirculatorRangeTraitT< PolyConnectivity, ConstVertexFaceIter, VertexHandle, FaceHandle, &PolyConnectivity::cvf_begin, &PolyConnectivity::cvf_end> > OpenMesh::PolyConnectivity::ConstVertexFaceRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1202 of file PolyConnectivity.hh.

## ◆ ConstVertexIHalfedgeCCWIter

typedef VertexIHalfedgeCCWIter OpenMesh::PolyConnectivity::ConstVertexIHalfedgeCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 285 of file PolyConnectivity.hh.

## ◆ ConstVertexIHalfedgeCWIter

typedef VertexIHalfedgeCWIter OpenMesh::PolyConnectivity::ConstVertexIHalfedgeCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 284 of file PolyConnectivity.hh.

## ◆ ConstVertexIHalfedgeIter

typedef VertexIHalfedgeIter OpenMesh::PolyConnectivity::ConstVertexIHalfedgeIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 283 of file PolyConnectivity.hh.

## ◆ ConstVertexIHalfedgeRange

typedef CirculatorRange<CirculatorRangeTraitT< PolyConnectivity, ConstVertexIHalfedgeIter, VertexHandle, HalfedgeHandle, &PolyConnectivity::cvih_begin, &PolyConnectivity::cvih_end> > OpenMesh::PolyConnectivity::ConstVertexIHalfedgeRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1181 of file PolyConnectivity.hh.

## ◆ ConstVertexOHalfedgeCCWIter

typedef VertexOHalfedgeCCWIter OpenMesh::PolyConnectivity::ConstVertexOHalfedgeCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 282 of file PolyConnectivity.hh.

## ◆ ConstVertexOHalfedgeCWIter

typedef VertexOHalfedgeCWIter OpenMesh::PolyConnectivity::ConstVertexOHalfedgeCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 281 of file PolyConnectivity.hh.

## ◆ ConstVertexOHalfedgeIter

typedef VertexOHalfedgeIter OpenMesh::PolyConnectivity::ConstVertexOHalfedgeIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 280 of file PolyConnectivity.hh.

## ◆ ConstVertexOHalfedgeRange

typedef CirculatorRange<CirculatorRangeTraitT< PolyConnectivity, ConstVertexOHalfedgeIter, VertexHandle, HalfedgeHandle, &PolyConnectivity::cvoh_begin, &PolyConnectivity::cvoh_end> > OpenMesh::PolyConnectivity::ConstVertexOHalfedgeRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1188 of file PolyConnectivity.hh.

## ◆ ConstVertexRange

typedef EntityRange<RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstVertexIter, &PolyConnectivity::vertices_begin, &PolyConnectivity::vertices_end> > OpenMesh::PolyConnectivity::ConstVertexRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1064 of file PolyConnectivity.hh.

## ◆ ConstVertexRangeSkipping

typedef EntityRange<RangeTraitT< const PolyConnectivity, PolyConnectivity::ConstVertexIter, &PolyConnectivity::vertices_sbegin, &PolyConnectivity::vertices_end> > OpenMesh::PolyConnectivity::ConstVertexRangeSkipping

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1069 of file PolyConnectivity.hh.

## ◆ ConstVertexVertexCCWIter

typedef VertexVertexCCWIter OpenMesh::PolyConnectivity::ConstVertexVertexCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 279 of file PolyConnectivity.hh.

## ◆ ConstVertexVertexCWIter

typedef VertexVertexCWIter OpenMesh::PolyConnectivity::ConstVertexVertexCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 278 of file PolyConnectivity.hh.

## ◆ ConstVertexVertexIter

typedef VertexVertexIter OpenMesh::PolyConnectivity::ConstVertexVertexIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 277 of file PolyConnectivity.hh.

## ◆ ConstVertexVertexRange

typedef CirculatorRange<CirculatorRangeTraitT< PolyConnectivity, ConstVertexVertexCWIter, VertexHandle, VertexHandle, &PolyConnectivity::cvv_cwbegin, &PolyConnectivity::cvv_cwend> > OpenMesh::PolyConnectivity::ConstVertexVertexRange

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 1174 of file PolyConnectivity.hh.

## ◆ FaceEdgeCCWIter

typedef Iterators::GenericCirculatorT<FaceEdgeTraits, true> OpenMesh::PolyConnectivity::FaceEdgeCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 340 of file PolyConnectivity.hh.

## ◆ FaceEdgeCWIter

typedef Iterators::GenericCirculatorT<FaceEdgeTraits, false> OpenMesh::PolyConnectivity::FaceEdgeCWIter

Enumerate incident edges in a clockwise fashion.

Definition at line 345 of file PolyConnectivity.hh.

## ◆ FaceEdgeIter

typedef Iterators::GenericCirculatorT_DEPRECATED<FaceEdgeTraits> OpenMesh::PolyConnectivity::FaceEdgeIter

Enumerate incident edges in a counter clockwise fashion.

Definition at line 339 of file PolyConnectivity.hh.

## ◆ FaceFaceCCWIter

typedef Iterators::GenericCirculatorT<FaceFaceTraits, true> OpenMesh::PolyConnectivity::FaceFaceCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 360 of file PolyConnectivity.hh.

## ◆ FaceFaceCWIter

typedef Iterators::GenericCirculatorT<FaceFaceTraits, false> OpenMesh::PolyConnectivity::FaceFaceCWIter

Enumerate adjacent faces in a clockwise fashion.

Definition at line 365 of file PolyConnectivity.hh.

## ◆ FaceFaceIter

typedef Iterators::GenericCirculatorT_DEPRECATED<FaceFaceTraits> OpenMesh::PolyConnectivity::FaceFaceIter

Enumerate adjacent faces in a counter clockwise fashion.

Definition at line 359 of file PolyConnectivity.hh.

## ◆ FaceHalfedgeCCWIter

typedef Iterators::GenericCirculatorT<FaceHalfedgeTraits, true> OpenMesh::PolyConnectivity::FaceHalfedgeCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 320 of file PolyConnectivity.hh.

## ◆ FaceHalfedgeCWIter

typedef Iterators::GenericCirculatorT<FaceHalfedgeTraits, false> OpenMesh::PolyConnectivity::FaceHalfedgeCWIter

Enumerate incident half edges in a clockwise fashion.

Definition at line 325 of file PolyConnectivity.hh.

## ◆ FaceHalfedgeIter

typedef Iterators::GenericCirculatorT_DEPRECATED<FaceHalfedgeTraits> OpenMesh::PolyConnectivity::FaceHalfedgeIter

Enumerate incident half edges in a counter clockwise fashion.

Definition at line 319 of file PolyConnectivity.hh.

## ◆ FaceVertexCCWIter

typedef Iterators::GenericCirculatorT<FaceVertexTraits, true> OpenMesh::PolyConnectivity::FaceVertexCCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 309 of file PolyConnectivity.hh.

## ◆ FaceVertexCWIter

typedef Iterators::GenericCirculatorT<FaceVertexTraits, false> OpenMesh::PolyConnectivity::FaceVertexCWIter

Enumerate incident vertices in a clockwise fashion.

Definition at line 314 of file PolyConnectivity.hh.

## ◆ FaceVertexIter

typedef Iterators::GenericCirculatorT_DEPRECATED<FaceVertexTraits> OpenMesh::PolyConnectivity::FaceVertexIter

Enumerate incident vertices in a counter clockwise fashion.

Definition at line 308 of file PolyConnectivity.hh.

## ◆ HalfedgeLoopCCWIter

typedef Iterators::GenericCirculatorT<FaceHalfedgeTraits, true> OpenMesh::PolyConnectivity::HalfedgeLoopCCWIter

Identical to FaceHalfedgeIter. God knows why this typedef exists.

Definition at line 275 of file PolyConnectivity.hh.

## ◆ HalfedgeLoopCWIter

typedef Iterators::GenericCirculatorT<FaceHalfedgeTraits, false> OpenMesh::PolyConnectivity::HalfedgeLoopCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 271 of file PolyConnectivity.hh.

## ◆ HalfedgeLoopIter

typedef Iterators::GenericCirculatorT_DEPRECATED<FaceHalfedgeTraits> OpenMesh::PolyConnectivity::HalfedgeLoopIter

Identical to FaceHalfedgeIter. God knows why this typedef exists.

Definition at line 270 of file PolyConnectivity.hh.

## ◆ VertexEdgeCCWIter

typedef Iterators::GenericCirculatorT<VertexEdgeTraits, false> OpenMesh::PolyConnectivity::VertexEdgeCCWIter

Enumerates incident edges in a counter clockwise fashion.

Definition at line 256 of file PolyConnectivity.hh.

## ◆ VertexEdgeCWIter

typedef Iterators::GenericCirculatorT<VertexEdgeTraits, true> OpenMesh::PolyConnectivity::VertexEdgeCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 252 of file PolyConnectivity.hh.

## ◆ VertexEdgeIter

typedef Iterators::GenericCirculatorT_DEPRECATED<VertexEdgeTraits> OpenMesh::PolyConnectivity::VertexEdgeIter

Enumerates incident edges in a clockwise fashion.

Definition at line 251 of file PolyConnectivity.hh.

## ◆ VertexFaceCCWIter

typedef Iterators::GenericCirculatorT<VertexFaceTraits, false> OpenMesh::PolyConnectivity::VertexFaceCCWIter

Enumerates incident faces in a counter clockwise fashion.

Definition at line 237 of file PolyConnectivity.hh.

## ◆ VertexFaceCWIter

typedef Iterators::GenericCirculatorT<VertexFaceTraits, true> OpenMesh::PolyConnectivity::VertexFaceCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 232 of file PolyConnectivity.hh.

## ◆ VertexFaceIter

typedef Iterators::GenericCirculatorT_DEPRECATED<VertexFaceTraits> OpenMesh::PolyConnectivity::VertexFaceIter

Enumerates incident faces in a clockwise fashion.

Definition at line 231 of file PolyConnectivity.hh.

## ◆ VertexIHalfedgeCCWIter

typedef Iterators::GenericCirculatorT<VertexOppositeHalfedgeTraits, false> OpenMesh::PolyConnectivity::VertexIHalfedgeCCWIter

Enumerates incoming half edges in a counter clockwise fashion.

Definition at line 217 of file PolyConnectivity.hh.

## ◆ VertexIHalfedgeCWIter

typedef Iterators::GenericCirculatorT<VertexOppositeHalfedgeTraits, true> OpenMesh::PolyConnectivity::VertexIHalfedgeCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 212 of file PolyConnectivity.hh.

## ◆ VertexIHalfedgeIter

typedef Iterators::GenericCirculatorT_DEPRECATED<VertexOppositeHalfedgeTraits> OpenMesh::PolyConnectivity::VertexIHalfedgeIter

Enumerates incoming half edges in a clockwise fashion.

Definition at line 211 of file PolyConnectivity.hh.

## ◆ VertexOHalfedgeCCWIter

typedef Iterators::GenericCirculatorT<VertexHalfedgeTraits, false> OpenMesh::PolyConnectivity::VertexOHalfedgeCCWIter

Enumerates outgoing half edges in a counter clockwise fashion.

Definition at line 198 of file PolyConnectivity.hh.

## ◆ VertexOHalfedgeCWIter

typedef Iterators::GenericCirculatorT<VertexHalfedgeTraits, true> OpenMesh::PolyConnectivity::VertexOHalfedgeCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 193 of file PolyConnectivity.hh.

## ◆ VertexOHalfedgeIter

typedef Iterators::GenericCirculatorT_DEPRECATED<VertexHalfedgeTraits> OpenMesh::PolyConnectivity::VertexOHalfedgeIter

Enumerates outgoing half edges in a clockwise fashion.

Definition at line 192 of file PolyConnectivity.hh.

## ◆ VertexVertexCCWIter

typedef Iterators::GenericCirculatorT<VertexVertexTraits, false> OpenMesh::PolyConnectivity::VertexVertexCCWIter

Enumerates 1-ring vertices in a counter clockwise fashion.

Definition at line 178 of file PolyConnectivity.hh.

## ◆ VertexVertexCWIter

typedef Iterators::GenericCirculatorT<VertexVertexTraits, true> OpenMesh::PolyConnectivity::VertexVertexCWIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 173 of file PolyConnectivity.hh.

## ◆ VertexVertexIter

typedef Iterators::GenericCirculatorT_DEPRECATED<VertexVertexTraits> OpenMesh::PolyConnectivity::VertexVertexIter

Enumerates 1-ring vertices in a clockwise fashion.

Definition at line 172 of file PolyConnectivity.hh.

## Member Function Documentation

## ◆ add_face() [1/5]

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

Add and connect a new face.

Create a new face consisting of the vertices provided by the vertex handle vector. (The vertices have to be already added to the mesh by add_vertex)

Parameters

  _vhandles | sorted list of vertex handles (also defines order in which the vertices are added to the face)

Definition at line 321 of file PolyConnectivity.cc.

## ◆ add_face() [2/5]

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

Add and connect a new face.

Create a new face consisting of the vertices provided by the vertex handle vector. (The vertices have to be already added to the mesh by add_vertex)

Parameters

  _vhandles | sorted list of vertex handles (also defines order in which the vertices are added to the face)

Definition at line 326 of file PolyConnectivity.cc.

## ◆ add_face() [3/5]

SmartFaceHandle OpenMesh::PolyConnectivity::add_face | ( | VertexHandle | _vh0,
|  | VertexHandle | _vh1,
|  | VertexHandle | _vh2
| ) |  |

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)

Parameters

  _vh0 | First vertex handle
  _vh1 | Second vertex handle
  _vh2 | Third vertex handle

Definition at line 313 of file PolyConnectivity.cc.

## ◆ add_face() [4/5]

SmartFaceHandle OpenMesh::PolyConnectivity::add_face | ( | VertexHandle | _vh0,
|  | VertexHandle | _vh1,
|  | VertexHandle | _vh2,
|  | VertexHandle | _vh3
| ) |  |

Add and connect a new face.

Create a new face consisting of four vertices provided by the handles. (The vertices have to be already added to the mesh by add_vertex)

Parameters

  _vh0 | First vertex handle
  _vh1 | Second vertex handle
  _vh2 | Third vertex handle
  _vh3 | Fourth vertex handle

Definition at line 305 of file PolyConnectivity.cc.

## ◆ add_face() [5/5]

SmartFaceHandle OpenMesh::PolyConnectivity::add_face | ( | const VertexHandle * | _vhandles,
|  | size_t | _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)

Parameters

  _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

Definition at line 117 of file PolyConnectivity.cc.

## ◆ adjust_outgoing_halfedge()

void OpenMesh::PolyConnectivity::adjust_outgoing_halfedge | ( | VertexHandle | _vh | ) |

Adjust outgoing halfedge handle for vertices, so that it is a boundary halfedge whenever possible.

Definition at line 102 of file PolyConnectivity.cc.

## ◆ all_edges()

PolyConnectivity::ConstEdgeRange OpenMesh::PolyConnectivity::all_edges | ( |  | ) | const
| inline

Returns
  The edges as a range object suitable for C++11 range based for loops. Will include deleted edges.

Definition at line 117 of file PolyConnectivity_inline_impl.hh.

## ◆ all_elements()

template<typename HandleType >

ElementRange<HandleType>::Range OpenMesh::PolyConnectivity::all_elements | ( |  | ) | const

Returns
  The elements corresponding to the template type as a range object suitable for C++11 range based for loops. Will include deleted faces.

## ◆ all_faces()

PolyConnectivity::ConstFaceRange OpenMesh::PolyConnectivity::all_faces | ( |  | ) | const
| inline

Returns
  The faces as a range object suitable for C++11 range based for loops. Will include deleted faces.

Definition at line 119 of file PolyConnectivity_inline_impl.hh.

## ◆ all_halfedges()

PolyConnectivity::ConstHalfedgeRange OpenMesh::PolyConnectivity::all_halfedges | ( |  | ) | const
| inline

Returns
  The halfedges as a range object suitable for C++11 range based for loops. Will include deleted halfedges.

Definition at line 115 of file PolyConnectivity_inline_impl.hh.

## ◆ all_vertices()

PolyConnectivity::ConstVertexRange OpenMesh::PolyConnectivity::all_vertices | ( |  | ) | const
| inline

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will include deleted vertices.

Definition at line 113 of file PolyConnectivity_inline_impl.hh.

## ◆ assign_connectivity()

void OpenMesh::PolyConnectivity::assign_connectivity | ( | const PolyConnectivity & | _other | ) |
| inline

assign_connectivity() method. See ArrayKernel::assign_connectivity() for more details.

Definition at line 476 of file PolyConnectivity.hh.

## ◆ collapse()

void OpenMesh::PolyConnectivity::collapse | ( | HalfedgeHandle | _heh | ) |

Halfedge collapse: collapse the from-vertex of halfedge _heh into its to-vertex.

Attention
  Needs vertex/edge/face status attribute in order to delete the items that degenerate.

Note
  The from vertex is marked as deleted while the to vertex will still exist.
  This function does not perform a garbage collection. It only marks degenerate items as deleted.

Attention
  A halfedge collapse may lead to topological inconsistencies. Therefore you should check this using is_collapse_ok().

Definition at line 636 of file PolyConnectivity.cc.

## ◆ delete_edge()

void OpenMesh::PolyConnectivity::delete_edge | ( | EdgeHandle | _eh,
|  | bool | _delete_isolated_vertices = `true`
| ) |  |

Mark edge (two opposite halfedges) and incident faces deleted. Resulting isolated vertices are marked deleted if _delete_isolated_vertices is true. Items marked deleted will be removed by garbageCollection().

Attention
  Needs the Attributes::Status attribute for vertices, edges and faces.

Definition at line 495 of file PolyConnectivity.cc.

## ◆ delete_face()

void OpenMesh::PolyConnectivity::delete_face | ( | FaceHandle | _fh,
|  | bool | _delete_isolated_vertices = `true`
| ) |  |

Delete face _fh and resulting degenerated empty halfedges as well. Resulting isolated vertices will be deleted if _delete_isolated_vertices is true.

Attention
  All item will only be marked to be deleted. They will actually be removed by calling garbage_collection().
  Needs the Attributes::Status attribute for vertices, edges and faces.

Definition at line 522 of file PolyConnectivity.cc.

## ◆ delete_vertex()

void OpenMesh::PolyConnectivity::delete_vertex | ( | VertexHandle | _vh,
|  | bool | _delete_isolated_vertices = `true`
| ) |  |

Mark vertex and all incident edges and faces deleted. Items marked deleted will be removed by garbageCollection().

Attention
  Needs the Attributes::Status attribute for vertices, edges and faces.

Definition at line 474 of file PolyConnectivity.cc.

## ◆ edges()

PolyConnectivity::ConstEdgeRangeSkipping OpenMesh::PolyConnectivity::edges | ( |  | ) | const
| inline

Returns
  The edges as a range object suitable for C++11 range based for loops. Will skip deleted edges.

Definition at line 116 of file PolyConnectivity_inline_impl.hh.

## ◆ elements()

template<typename HandleType >

ElementRange<HandleType>::RangeSkipping OpenMesh::PolyConnectivity::elements | ( |  | ) | const

Returns
  The elements corresponding to the template type as a range object suitable for C++11 range based for loops. Will skip deleted faces.

## ◆ faces()

PolyConnectivity::ConstFaceRangeSkipping OpenMesh::PolyConnectivity::faces | ( |  | ) | const
| inline

Returns
  The faces as a range object suitable for C++11 range based for loops. Will skip deleted faces.

Definition at line 118 of file PolyConnectivity_inline_impl.hh.

## ◆ fe_range()

PolyConnectivity::ConstFaceEdgeRange OpenMesh::PolyConnectivity::fe_range | ( | FaceHandle | _fh | ) | const
| inline

Returns
  The edges incident to the specified face as a range object suitable for C++11 range based for loops.

Definition at line 159 of file PolyConnectivity_inline_impl.hh.

## ◆ ff_range()

PolyConnectivity::ConstFaceFaceRange OpenMesh::PolyConnectivity::ff_range | ( | FaceHandle | _fh | ) | const
| inline

Returns
  The faces adjacent to the specified face as a range object suitable for C++11 range based for loops.

Definition at line 163 of file PolyConnectivity_inline_impl.hh.

## ◆ fh_range()

PolyConnectivity::ConstFaceHalfedgeRange OpenMesh::PolyConnectivity::fh_range | ( | FaceHandle | _fh | ) | const
| inline

Returns
  The halfedges incident to the specified face as a range object suitable for C++11 range based for loops.

Definition at line 155 of file PolyConnectivity_inline_impl.hh.

## ◆ fv_range()

PolyConnectivity::ConstFaceVertexRange OpenMesh::PolyConnectivity::fv_range | ( | FaceHandle | _fh | ) | const
| inline

Returns
  The vertices incident to the specified face as a range object suitable for C++11 range based for loops.

Definition at line 151 of file PolyConnectivity_inline_impl.hh.

## ◆ halfedges()

PolyConnectivity::ConstHalfedgeRangeSkipping OpenMesh::PolyConnectivity::halfedges | ( |  | ) | const
| inline

Returns
  The halfedges as a range object suitable for C++11 range based for loops. Will skip deleted halfedges.

Definition at line 114 of file PolyConnectivity_inline_impl.hh.

## ◆ insert_edge()

PolyConnectivity::HalfedgeHandle OpenMesh::PolyConnectivity::insert_edge | ( | HalfedgeHandle | _prev_heh,
|  | HalfedgeHandle | _next_heh
| ) |  |

Inserts an edge between to_vh(_prev_heh) and from_vh(_next_heh). A new face is created started at heh0 of the inserted edge and its halfedges loop includes both _prev_heh and _next_heh. If an old face existed which includes the argument halfedges, it is split at the new edge. heh0 is returned.

Note
  assumes _prev_heh and _next_heh are either boundary or pointed to the same face

Definition at line 911 of file PolyConnectivity.cc.

## ◆ is_boundary() [1/4]

bool OpenMesh::PolyConnectivity::is_boundary | ( | HalfedgeHandle | _heh | ) | const
| inline

Check if the halfedge is at the boundary.

The halfedge is at the boundary, if no face is incident to it.

Parameters

  _heh | HalfedgeHandle to test

Returns
  boundary?

Definition at line 1300 of file PolyConnectivity.hh.

## ◆ is_boundary() [2/4]

bool OpenMesh::PolyConnectivity::is_boundary | ( | EdgeHandle | _eh | ) | const
| inline

Is the edge a boundary edge?

Checks it the edge _eh is a boundary edge, i.e. is one of its halfedges a boundary halfedge.

Parameters

  _eh | Edge handle to test

Returns
  boundary?

Definition at line 1311 of file PolyConnectivity.hh.

## ◆ is_boundary() [3/4]

bool OpenMesh::PolyConnectivity::is_boundary | ( | VertexHandle | _vh | ) | const
| inline

Is vertex _vh a boundary vertex ?

Checks if the associated halfedge (which would on a boundary be the outside halfedge), is connected to a face. Which is equivalent, if the vertex is at the boundary of the mesh, as OpenMesh will make sure, that if there is a boundary halfedge at the vertex, the halfedge will be the one which is associated to the vertex.

Parameters

  _vh | VertexHandle to test

Returns
  boundary?

Definition at line 1328 of file PolyConnectivity.hh.

## ◆ is_boundary() [4/4]

bool OpenMesh::PolyConnectivity::is_boundary | ( | FaceHandle | _fh,
|  | bool | _check_vertex = `false`
| ) |  | const

Check if face is at the boundary.

Is face _fh at boundary, i.e. is one of its edges (or vertices) a boundary edge?

Parameters

  _fh | Check this face
  _check_vertex | If `true`, check the corner vertices of the face, too.

Returns
  boundary?

Definition at line 70 of file PolyConnectivity.cc.

## ◆ is_collapse_ok()

bool OpenMesh::PolyConnectivity::is_collapse_ok | ( | HalfedgeHandle | _he | ) |

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.

Definition at line 334 of file PolyConnectivity.cc.

## ◆ is_manifold()

bool OpenMesh::PolyConnectivity::is_manifold | ( | VertexHandle | _vh | ) | const

Is (the mesh at) vertex _vh two-manifold ?

The vertex is non-manifold if more than one gap exists, i.e. more than one outgoing boundary halfedge. If (at least) one boundary halfedge exists, the vertex' halfedge must be a boundary halfedge.

Parameters

  _vh | VertexHandle to test

Returns
  manifold?

Definition at line 85 of file PolyConnectivity.cc.

## ◆ is_simple_link()

bool OpenMesh::PolyConnectivity::is_simple_link | ( | EdgeHandle | _eh | ) | const

return true if the this the only link between the faces adjacent to _eh. _eh is allowed to be boundary, in which case true is returned iff _eh is the only boundary edge of its ajdacent face.

Definition at line 758 of file PolyConnectivity.cc.

## ◆ is_simply_connected()

bool OpenMesh::PolyConnectivity::is_simply_connected | ( | FaceHandle | _fh | ) | const

return true if _fh shares only one edge with all of its adjacent faces. Boundary is treated as one face, i.e., the function false if _fh has more than one boundary edge.

Definition at line 779 of file PolyConnectivity.cc.

## ◆ reinsert_edge()

void OpenMesh::PolyConnectivity::reinsert_edge | ( | EdgeHandle | _eh | ) |

Inverse of remove_edge. _eh should be the handle of the edge and the vertex and halfedge handles pointed by edge(_eh) should be valid.

Definition at line 859 of file PolyConnectivity.cc.

## ◆ remove_edge()

PolyConnectivity::FaceHandle OpenMesh::PolyConnectivity::remove_edge | ( | EdgeHandle | _eh | ) |

Removes the edge _eh. Its adjacent faces are merged. _eh and one of the adjacent faces are set deleted. The handle of the remaining face is returned (InvalidFaceHandle is returned if _eh is a boundary edge).

Precondition
  is_simple_link(_eh). This ensures that there are no hole faces or isolated vertices appearing in result of the operation.

Attention
  Needs the Attributes::Status attribute for edges and faces.

Note
  This function does not perform a garbage collection. It only marks items as deleted.

Definition at line 798 of file PolyConnectivity.cc.

## ◆ split()

void OpenMesh::PolyConnectivity::split | ( | FaceHandle | _fh,
|  | VertexHandle | _vh
| ) |  |

Face split (= 1-to-n split).

Split an arbitrary face into triangles by connecting each vertex of fh to vh.

Note
  fh will remain valid (it will become one of the triangles)
  the halfedge handles of the new triangles will point to the old halfeges
  The properties of the new faces and all other new primitives will be undefined!

Parameters

  _fh | Face handle that should be splitted
  _vh | Vertex handle of the new vertex that will be inserted in the face

Definition at line 1008 of file PolyConnectivity.cc.

## ◆ split_copy()

void OpenMesh::PolyConnectivity::split_copy | ( | FaceHandle | _fh,
|  | VertexHandle | _vh
| ) |  |

Face split (= 1-to-n split).

Split an arbitrary face into triangles by connecting each vertex of fh to vh.

Note
  fh will remain valid (it will become one of the triangles)
  the halfedge handles of the new triangles will point to the old halfeges
  The properties of the new faces will be adjusted to the properties of the original faces
  Properties of the new edges and halfedges will be undefined

Parameters

  _fh | Face handle that should be splitted
  _vh | Vertex handle of the new vertex that will be inserted in the face

Definition at line 1051 of file PolyConnectivity.cc.

## ◆ split_edge()

void OpenMesh::PolyConnectivity::split_edge | ( | EdgeHandle | _eh,
|  | VertexHandle | _vh
| ) |  |

Edge split (inserts a vertex on the edge only)

This edge split only splits the edge without introducing new faces! As this is for polygonal meshes, we can have valence 2 vertices here.

Note
  The properties of the new edges and halfedges will be undefined!

Parameters

  _eh | Handle of the edge, that will be splitted
  _vh | Handle of the vertex that will be inserted at the edge

Definition at line 1080 of file PolyConnectivity.cc.

## ◆ split_edge_copy()

void OpenMesh::PolyConnectivity::split_edge_copy | ( | EdgeHandle | _eh,
|  | VertexHandle | _vh
| ) |  |

Edge split (inserts a vertex on the edge only)

This edge split only splits the edge without introducing new faces! As this is for polygonal meshes, we can have valence 2 vertices here.

Note
  The properties of the new edge will be copied from the splitted edge
  Properties of the new halfedges will be undefined

Parameters

  _eh | Handle of the edge, that will be splitted
  _vh | Handle of the vertex that will be inserted at the edge

Definition at line 1145 of file PolyConnectivity.cc.

## ◆ triangulate()

void OpenMesh::PolyConnectivity::triangulate | ( | FaceHandle | _fh | ) |

Triangulate the face _fh.

Split an arbitrary face into triangles by connecting each vertex of fh after its second to vh.

Note
  _fh will remain valid (it will become one of the triangles)
  The halfedge handles of the new triangles will point to the old halfedges

Parameters

  _fh | Handle of the face that should be triangulated

Definition at line 946 of file PolyConnectivity.cc.

## ◆ ve_range()

PolyConnectivity::ConstVertexEdgeRange OpenMesh::PolyConnectivity::ve_range | ( | VertexHandle | _vh | ) | const
| inline

Returns
  The edges incident to the specified vertex as a range object suitable for C++11 range based for loops.

Definition at line 143 of file PolyConnectivity_inline_impl.hh.

## ◆ vertices()

PolyConnectivity::ConstVertexRangeSkipping OpenMesh::PolyConnectivity::vertices | ( |  | ) | const
| inline

Returns
  The vertices as a range object suitable for C++11 range based for loops. Will skip deleted vertices.

Definition at line 112 of file PolyConnectivity_inline_impl.hh.

## ◆ vf_range()

PolyConnectivity::ConstVertexFaceRange OpenMesh::PolyConnectivity::vf_range | ( | VertexHandle | _vh | ) | const
| inline

Returns
  The faces incident to the specified vertex as a range object suitable for C++11 range based for loops.

Definition at line 147 of file PolyConnectivity_inline_impl.hh.

## ◆ vih_range()

PolyConnectivity::ConstVertexIHalfedgeRange OpenMesh::PolyConnectivity::vih_range | ( | VertexHandle | _vh | ) | const
| inline

Returns
  The incoming halfedges incident to the specified vertex as a range object suitable for C++11 range based for loops.

Definition at line 135 of file PolyConnectivity_inline_impl.hh.

## ◆ voh_range()

PolyConnectivity::ConstVertexOHalfedgeRange OpenMesh::PolyConnectivity::voh_range | ( | VertexHandle | _vh | ) | const
| inline

Returns
  The outgoing halfedges incident to the specified vertex as a range object suitable for C++11 range based for loops.

Definition at line 139 of file PolyConnectivity_inline_impl.hh.

## ◆ vv_range()

PolyConnectivity::ConstVertexVertexRange OpenMesh::PolyConnectivity::vv_range | ( | VertexHandle | _vh | ) | const
| inline

Returns
  The vertices adjacent to the specified vertex as a range object suitable for C++11 range based for loops.

Definition at line 131 of file PolyConnectivity_inline_impl.hh.

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

- OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Core/Mesh/PolyConnectivity.hh
- OpenFlipper/libs_required/OpenMesh/Doc/Examples/circulator_functions.cc
- OpenFlipper/libs_required/OpenMesh/Doc/Examples/nav_code4.cc
- OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Core/Mesh/PolyConnectivity.cc
- OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Core/Mesh/PolyConnectivity_inline_impl.hh