OpenMesh::PolyConnectivity Class Reference

Connectifity Class for polygonal meshes. More...

#include <PolyConnectivity.hh>

Inheritance diagram for OpenMesh::PolyConnectivity:
Inheritance graph
[legend]

List of all members.

Public Types

typedef PolyConnectivity This
Typedef Shortcuts

Provided for convenience only

typedef ConstEdgeIter CEIter
typedef ConstFaceEdgeIter CFEIter
typedef ConstFaceFaceIter CFFIter
typedef ConstFaceHalfedgeIter CFHIter
typedef ConstFaceIter CFIter
typedef ConstFaceVertexIter CFVIter
typedef ConstHalfedgeIter CHIter
typedef ConstVertexEdgeIter CVEIter
typedef ConstVertexFaceIter CVFIter
typedef ConstVertexIHalfedgeIter CVIHIter
typedef ConstVertexIter CVIter
typedef ConstVertexOHalfedgeIter CVOHIter
typedef ConstVertexVertexIter CVVIter
typedef EdgeHandle EHandle
typedef EdgeIter EIter
typedef FaceEdgeIter FEIter
typedef FaceFaceIter FFIter
typedef FaceHandle FHandle
typedef FaceHalfedgeIter FHIter
typedef FaceIter FIter
typedef FaceVertexIter FVIter
typedef HalfedgeHandle HHandle
typedef HalfedgeIter HIter
typedef VertexEdgeIter VEIter
typedef VertexFaceIter VFIter
typedef VertexHandle VHandle
 Alias typedef.
typedef VertexIHalfedgeIter VIHIter
typedef VertexIter VIter
typedef VertexOHalfedgeIter VOHIter
typedef VertexVertexIter VVIter
Mesh Iterators

Refer to OpenMesh::Mesh::Iterators or mesh_iterators for documentation.

typedef
Iterators::ConstEdgeIterT
< This
ConstEdgeIter
typedef
Iterators::ConstFaceIterT
< This
ConstFaceIter
typedef
Iterators::ConstHalfedgeIterT
< This
ConstHalfedgeIter
typedef
Iterators::ConstVertexIterT
< This
ConstVertexIter
typedef Iterators::EdgeIterT
< This
EdgeIter
typedef Iterators::FaceIterT
< This
FaceIter
typedef
Iterators::HalfedgeIterT< This
HalfedgeIter
typedef Iterators::VertexIterT
< This
VertexIter
 Linear iterator.
Mesh Circulators

Refer to OpenMesh::Mesh::Iterators or mesh_iterators for documentation.

typedef
Iterators::ConstFaceEdgeIterT
< This
ConstFaceEdgeIter
typedef
Iterators::ConstFaceFaceIterT
< This
ConstFaceFaceIter
typedef
Iterators::ConstFaceHalfedgeIterT
< This
ConstFaceHalfedgeIter
typedef
Iterators::ConstFaceVertexIterT
< This
ConstFaceVertexIter
typedef
Iterators::ConstVertexEdgeIterT
< This
ConstVertexEdgeIter
typedef
Iterators::ConstVertexFaceIterT
< This
ConstVertexFaceIter
typedef
Iterators::ConstVertexIHalfedgeIterT
< This
ConstVertexIHalfedgeIter
typedef
Iterators::ConstVertexOHalfedgeIterT
< This
ConstVertexOHalfedgeIter
typedef
Iterators::ConstVertexVertexIterT
< This
ConstVertexVertexIter
typedef
Iterators::FaceEdgeIterT< This
FaceEdgeIter
typedef
Iterators::FaceFaceIterT< This
FaceFaceIter
typedef
Iterators::FaceHalfedgeIterT
< This
FaceHalfedgeIter
typedef
Iterators::FaceVertexIterT
< This
FaceVertexIter
typedef
Iterators::VertexEdgeIterT
< This
VertexEdgeIter
typedef
Iterators::VertexFaceIterT
< This
VertexFaceIter
typedef
Iterators::VertexIHalfedgeIterT
< This
VertexIHalfedgeIter
typedef
Iterators::VertexOHalfedgeIterT
< This
VertexOHalfedgeIter
typedef
Iterators::VertexVertexIterT
< This
VertexVertexIter
 Circulator.

Public Member Functions

void adjust_outgoing_halfedge (VertexHandle _vh)
void assign_connectivity (const PolyConnectivity &_other)
void collapse (HalfedgeHandle _heh)
HalfedgeHandle find_halfedge (VertexHandle _start_vh, VertexHandle _end_vh) const
 Find halfedge from _vh0 to _vh1. Returns invalid handle if not found.
HalfedgeHandle insert_edge (HalfedgeHandle _prev_heh, HalfedgeHandle _next_heh)
bool is_simple_link (EdgeHandle _eh) const
bool is_simply_connected (FaceHandle _fh) const
FaceHandle opposite_face_handle (HalfedgeHandle _heh) const
 returns the face handle of the opposite halfedge
 PolyConnectivity ()
void reinsert_edge (EdgeHandle _eh)
FaceHandle remove_edge (EdgeHandle _eh)
void split (FaceHandle _fh, VertexHandle _vh)
 Face split (= 1-to-n split).
void triangulate ()
 triangulate the entire mesh
void triangulate (FaceHandle _fh)
 triangulate the face _fh
uint valence (FaceHandle _fh) const
 Face valence.
uint valence (VertexHandle _vh) const
 Vertex valence.
virtual ~PolyConnectivity ()
Adding items to a mesh

FaceHandle add_face (const VertexHandle *_vhandles, uint _vhs_size)
 Add and connect a new face.
FaceHandle add_face (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2, VertexHandle _vh3)
 Add and connect a new face.
FaceHandle add_face (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2)
 Add and connect a new face.
FaceHandle add_face (const std::vector< VertexHandle > &_vhandles)
 Add and connect a new face.
VertexHandle add_vertex ()
 Add a new vertex.
Vertex and Face circulators

ConstFaceEdgeIter cfe_begin (FaceHandle _fh) const
 const face - edge circulator
ConstFaceEdgeIter cfe_end (FaceHandle _fh) const
 const face - edge circulator
ConstFaceEdgeIter cfe_iter (FaceHandle _fh) const
 const face - edge circulator
ConstFaceFaceIter cff_begin (FaceHandle _fh) const
 const face - face circulator
ConstFaceFaceIter cff_end (FaceHandle _fh) const
 const face - face circulator
ConstFaceFaceIter cff_iter (FaceHandle _fh) const
 const face - face circulator
ConstFaceHalfedgeIter cfh_begin (FaceHandle _fh) const
 const face - halfedge circulator
ConstFaceHalfedgeIter cfh_end (FaceHandle _fh) const
 const face - halfedge circulator
ConstFaceHalfedgeIter cfh_iter (FaceHandle _fh) const
 const face - halfedge circulator
ConstFaceVertexIter cfv_begin (FaceHandle _fh) const
 const face - vertex circulator
ConstFaceVertexIter cfv_end (FaceHandle _fh) const
 const face - vertex circulator
ConstFaceVertexIter cfv_iter (FaceHandle _fh) const
 const face - vertex circulator
ConstVertexEdgeIter cve_begin (VertexHandle _vh) const
 const vertex - edge circulator
ConstVertexEdgeIter cve_end (VertexHandle _vh) const
 const vertex - edge circulator
ConstVertexEdgeIter cve_iter (VertexHandle _vh) const
 const vertex - edge circulator
ConstVertexFaceIter cvf_begin (VertexHandle _vh) const
 const vertex - face circulator
ConstVertexFaceIter cvf_end (VertexHandle _vh) const
 const vertex - face circulator
ConstVertexFaceIter cvf_iter (VertexHandle _vh) const
 const vertex - face circulator
ConstVertexIHalfedgeIter cvih_begin (VertexHandle _vh) const
 const vertex - incoming halfedge circulator
ConstVertexIHalfedgeIter cvih_end (VertexHandle _vh) const
 const vertex - incoming halfedge circulator
ConstVertexIHalfedgeIter cvih_iter (VertexHandle _vh) const
 const vertex - incoming halfedge circulator
ConstVertexOHalfedgeIter cvoh_begin (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator
ConstVertexOHalfedgeIter cvoh_end (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator
ConstVertexOHalfedgeIter cvoh_iter (VertexHandle _vh) const
 const vertex - outgoing halfedge circulator
ConstVertexVertexIter cvv_begin (VertexHandle _vh) const
 const vertex circulator
ConstVertexVertexIter cvv_end (VertexHandle _vh) const
 const vertex circulator
ConstVertexVertexIter cvv_iter (VertexHandle _vh) const
 const vertex circulator
FaceEdgeIter fe_begin (FaceHandle _fh)
 face - edge circulator
FaceEdgeIter fe_end (FaceHandle _fh)
 face - edge circulator
FaceEdgeIter fe_iter (FaceHandle _fh)
 face - edge circulator
FaceFaceIter ff_begin (FaceHandle _fh)
 face - face circulator
FaceFaceIter ff_end (FaceHandle _fh)
 face - face circulator
FaceFaceIter ff_iter (FaceHandle _fh)
 face - face circulator
FaceHalfedgeIter fh_begin (FaceHandle _fh)
 face - halfedge circulator
FaceHalfedgeIter fh_end (FaceHandle _fh)
 face - halfedge circulator
FaceHalfedgeIter fh_iter (FaceHandle _fh)
 face - halfedge circulator
FaceVertexIter fv_begin (FaceHandle _fh)
 face - vertex circulator
FaceVertexIter fv_end (FaceHandle _fh)
 face - vertex circulator
FaceVertexIter fv_iter (FaceHandle _fh)
 face - vertex circulator
VertexEdgeIter ve_begin (VertexHandle _vh)
 vertex - edge circulator
VertexEdgeIter ve_end (VertexHandle _vh)
 vertex - edge circulator
VertexEdgeIter ve_iter (VertexHandle _vh)
 vertex - edge circulator
VertexFaceIter vf_begin (VertexHandle _vh)
 vertex - face circulator
VertexFaceIter vf_end (VertexHandle _vh)
 vertex - face circulator
VertexFaceIter vf_iter (VertexHandle _vh)
 vertex - face circulator
VertexIHalfedgeIter vih_begin (VertexHandle _vh)
 vertex - incoming halfedge circulator
VertexIHalfedgeIter vih_end (VertexHandle _vh)
 vertex - incoming halfedge circulator
VertexIHalfedgeIter vih_iter (VertexHandle _vh)
 vertex - incoming halfedge circulator
VertexOHalfedgeIter voh_begin (VertexHandle _vh)
 vertex - outgoing halfedge circulator
VertexOHalfedgeIter voh_end (VertexHandle _vh)
 vertex - outgoing halfedge circulator
VertexOHalfedgeIter voh_iter (VertexHandle _vh)
 vertex - outgoing halfedge circulator
VertexVertexIter vv_begin (VertexHandle _vh)
 vertex - vertex circulator
VertexVertexIter vv_end (VertexHandle _vh)
 vertex - vertex circulator
VertexVertexIter vv_iter (VertexHandle _vh)
 vertex - vertex circulator
Deleting mesh items and other connectivity/topology modifications

void delete_edge (EdgeHandle _eh, bool _delete_isolated_vertices=true)
void delete_face (FaceHandle _fh, bool _delete_isolated_vertices=true)
void delete_vertex (VertexHandle _vh, bool _delete_isolated_vertices=true)
Generic handle derefertiation.

Calls the respective vertex(), halfedge(), edge(), face() method of the mesh kernel.

Facederef (FaceHandle _h)
const Facederef (FaceHandle _h) const
Edgederef (EdgeHandle _h)
const Edgederef (EdgeHandle _h) const
Halfedgederef (HalfedgeHandle _h)
const Halfedgederef (HalfedgeHandle _h) const
Vertexderef (VertexHandle _h)
const Vertexderef (VertexHandle _h) const
 Get item from handle.
Begin and end iterators

ConstEdgeIter edges_begin () const
 Const begin iterator for edges.
EdgeIter edges_begin ()
 Begin iterator for edges.
ConstEdgeIter edges_end () const
 Const end iterator for edges.
EdgeIter edges_end ()
 End iterator for edges.
ConstFaceIter faces_begin () const
 Const begin iterator for faces.
FaceIter faces_begin ()
 Begin iterator for faces.
ConstFaceIter faces_end () const
 Const end iterator for faces.
FaceIter faces_end ()
 End iterator for faces.
ConstHalfedgeIter halfedges_begin () const
 Const begin iterator for halfedges.
HalfedgeIter halfedges_begin ()
 Begin iterator for halfedges.
ConstHalfedgeIter halfedges_end () const
 Const end iterator for halfedges.
HalfedgeIter halfedges_end ()
 End iterator for halfedges.
ConstVertexIter vertices_begin () const
 Const begin iterator for vertices.
VertexIter vertices_begin ()
 Begin iterator for vertices.
ConstVertexIter vertices_end () const
 Const end iterator for vertices.
VertexIter vertices_end ()
 End iterator for vertices.
Begin for skipping iterators

ConstEdgeIter edges_sbegin () const
 Const begin iterator for edges.
EdgeIter edges_sbegin ()
 Begin iterator for edges.
ConstFaceIter faces_sbegin () const
 Const begin iterator for faces.
FaceIter faces_sbegin ()
 Begin iterator for faces.
ConstHalfedgeIter halfedges_sbegin () const
 Const begin iterator for halfedges.
HalfedgeIter halfedges_sbegin ()
 Begin iterator for halfedges.
ConstVertexIter vertices_sbegin () const
 Const begin iterator for vertices.
VertexIter vertices_sbegin ()
 Begin iterator for vertices.
Boundary and manifold tests

bool is_boundary (FaceHandle _fh, bool _check_vertex=false) const
bool is_boundary (VertexHandle _vh) const
 Is vertex _vh a boundary vertex ?
bool is_boundary (EdgeHandle _eh) const
bool is_boundary (HalfedgeHandle _heh) const
 Is halfedge _heh a boundary halfedge (is its face handle invalid) ?
bool is_manifold (VertexHandle _vh) const
 Is (the mesh at) vertex _vh two-manifold ?

Static Public Member Functions

static bool is_triangles ()

Static Public Attributes

Mesh Handles

static const EdgeHandle InvalidEdgeHandle
 Invalid handle.
static const FaceHandle InvalidFaceHandle
 Invalid handle.
static const HalfedgeHandle InvalidHalfedgeHandle
 Invalid handle.
static const VertexHandle InvalidVertexHandle
 Invalid handle.

Protected Member Functions

void collapse_edge (HalfedgeHandle _hh)
 Helper for halfedge collapse.
void collapse_loop (HalfedgeHandle _hh)
 Helper for halfedge collapse.

Detailed Description

Connectifity Class for polygonal meshes.

Definition at line 54 of file PolyConnectivity.hh.


Member Typedef Documentation

Definition at line 138 of file PolyConnectivity.hh.

Definition at line 158 of file PolyConnectivity.hh.

Definition at line 159 of file PolyConnectivity.hh.

Definition at line 157 of file PolyConnectivity.hh.

Definition at line 139 of file PolyConnectivity.hh.

Definition at line 156 of file PolyConnectivity.hh.

Definition at line 137 of file PolyConnectivity.hh.

Definition at line 86 of file PolyConnectivity.hh.

Definition at line 115 of file PolyConnectivity.hh.

Definition at line 116 of file PolyConnectivity.hh.

Definition at line 114 of file PolyConnectivity.hh.

Definition at line 87 of file PolyConnectivity.hh.

Definition at line 113 of file PolyConnectivity.hh.

Definition at line 85 of file PolyConnectivity.hh.

Definition at line 111 of file PolyConnectivity.hh.

Definition at line 112 of file PolyConnectivity.hh.

Definition at line 110 of file PolyConnectivity.hh.

Definition at line 84 of file PolyConnectivity.hh.

Definition at line 109 of file PolyConnectivity.hh.

Definition at line 108 of file PolyConnectivity.hh.

Definition at line 154 of file PolyConnectivity.hh.

Definition at line 155 of file PolyConnectivity.hh.

Definition at line 153 of file PolyConnectivity.hh.

Definition at line 136 of file PolyConnectivity.hh.

Definition at line 152 of file PolyConnectivity.hh.

Definition at line 151 of file PolyConnectivity.hh.

Definition at line 81 of file PolyConnectivity.hh.

Definition at line 128 of file PolyConnectivity.hh.

Definition at line 133 of file PolyConnectivity.hh.

Definition at line 105 of file PolyConnectivity.hh.

Definition at line 106 of file PolyConnectivity.hh.

Definition at line 104 of file PolyConnectivity.hh.

Definition at line 82 of file PolyConnectivity.hh.

Definition at line 103 of file PolyConnectivity.hh.

Definition at line 148 of file PolyConnectivity.hh.

Definition at line 149 of file PolyConnectivity.hh.

Definition at line 129 of file PolyConnectivity.hh.

Definition at line 147 of file PolyConnectivity.hh.

Definition at line 134 of file PolyConnectivity.hh.

Definition at line 146 of file PolyConnectivity.hh.

Definition at line 80 of file PolyConnectivity.hh.

Definition at line 127 of file PolyConnectivity.hh.

Definition at line 132 of file PolyConnectivity.hh.

Definition at line 69 of file PolyConnectivity.hh.

Definition at line 144 of file PolyConnectivity.hh.

Definition at line 101 of file PolyConnectivity.hh.

Definition at line 102 of file PolyConnectivity.hh.

Definition at line 100 of file PolyConnectivity.hh.

Linear iterator.

Definition at line 79 of file PolyConnectivity.hh.

Definition at line 99 of file PolyConnectivity.hh.

Circulator.

Definition at line 98 of file PolyConnectivity.hh.

Definition at line 145 of file PolyConnectivity.hh.

Alias typedef.

Definition at line 126 of file PolyConnectivity.hh.

Definition at line 143 of file PolyConnectivity.hh.

Definition at line 131 of file PolyConnectivity.hh.

Definition at line 142 of file PolyConnectivity.hh.

Definition at line 141 of file PolyConnectivity.hh.


Constructor & Destructor Documentation

OpenMesh::PolyConnectivity::PolyConnectivity (  )  [inline]

Definition at line 164 of file PolyConnectivity.hh.

virtual OpenMesh::PolyConnectivity::~PolyConnectivity (  )  [inline, virtual]

Definition at line 165 of file PolyConnectivity.hh.


Member Function Documentation

FaceHandle OpenMesh::PolyConnectivity::add_face ( const VertexHandle _vhandles,
uint  _vhs_size 
)

Add and connect a new face.

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

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

Reimplemented in OpenMesh::TriConnectivity.

FaceHandle OpenMesh::PolyConnectivity::add_face ( VertexHandle  _vh0,
VertexHandle  _vh1,
VertexHandle  _vh2,
VertexHandle  _vh3 
) [inline]

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 219 of file PolyConnectivity.hh.

FaceHandle OpenMesh::PolyConnectivity::add_face ( VertexHandle  _vh0,
VertexHandle  _vh1,
VertexHandle  _vh2 
) [inline]

Add and connect a new face.

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

Parameters:
_vh0 First vertex handle
_vh1 Second vertex handle
_vh2 Third vertex handle

Reimplemented in OpenMesh::TriConnectivity.

Definition at line 203 of file PolyConnectivity.hh.

FaceHandle OpenMesh::PolyConnectivity::add_face ( const std::vector< VertexHandle > &  _vhandles  )  [inline]

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)

Reimplemented in OpenMesh::TriConnectivity.

Definition at line 190 of file PolyConnectivity.hh.

VertexHandle OpenMesh::PolyConnectivity::add_vertex (  )  [inline]

Add a new vertex.

Definition at line 180 of file PolyConnectivity.hh.

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

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

void OpenMesh::PolyConnectivity::assign_connectivity ( const PolyConnectivity _other  )  [inline]

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

Reimplemented in OpenMesh::TriConnectivity.

Definition at line 172 of file PolyConnectivity.hh.

ConstFaceEdgeIter OpenMesh::PolyConnectivity::cfe_begin ( FaceHandle  _fh  )  const [inline]

const face - edge circulator

Definition at line 482 of file PolyConnectivity.hh.

ConstFaceEdgeIter OpenMesh::PolyConnectivity::cfe_end ( FaceHandle  _fh  )  const [inline]

const face - edge circulator

Definition at line 542 of file PolyConnectivity.hh.

ConstFaceEdgeIter OpenMesh::PolyConnectivity::cfe_iter ( FaceHandle  _fh  )  const [inline]

const face - edge circulator

Definition at line 422 of file PolyConnectivity.hh.

ConstFaceFaceIter OpenMesh::PolyConnectivity::cff_begin ( FaceHandle  _fh  )  const [inline]

const face - face circulator

Definition at line 485 of file PolyConnectivity.hh.

ConstFaceFaceIter OpenMesh::PolyConnectivity::cff_end ( FaceHandle  _fh  )  const [inline]

const face - face circulator

Definition at line 545 of file PolyConnectivity.hh.

ConstFaceFaceIter OpenMesh::PolyConnectivity::cff_iter ( FaceHandle  _fh  )  const [inline]

const face - face circulator

Definition at line 425 of file PolyConnectivity.hh.

ConstFaceHalfedgeIter OpenMesh::PolyConnectivity::cfh_begin ( FaceHandle  _fh  )  const [inline]

const face - halfedge circulator

Definition at line 479 of file PolyConnectivity.hh.

ConstFaceHalfedgeIter OpenMesh::PolyConnectivity::cfh_end ( FaceHandle  _fh  )  const [inline]

const face - halfedge circulator

Definition at line 539 of file PolyConnectivity.hh.

ConstFaceHalfedgeIter OpenMesh::PolyConnectivity::cfh_iter ( FaceHandle  _fh  )  const [inline]

const face - halfedge circulator

Definition at line 419 of file PolyConnectivity.hh.

ConstFaceVertexIter OpenMesh::PolyConnectivity::cfv_begin ( FaceHandle  _fh  )  const [inline]

const face - vertex circulator

Definition at line 476 of file PolyConnectivity.hh.

ConstFaceVertexIter OpenMesh::PolyConnectivity::cfv_end ( FaceHandle  _fh  )  const [inline]

const face - vertex circulator

Definition at line 536 of file PolyConnectivity.hh.

ConstFaceVertexIter OpenMesh::PolyConnectivity::cfv_iter ( FaceHandle  _fh  )  const [inline]

const face - vertex circulator

Definition at line 416 of file PolyConnectivity.hh.

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:
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().
Todo:
Implement is_collapse_ok() const for polygonal/triangle meshes
void OpenMesh::PolyConnectivity::collapse_edge ( HalfedgeHandle  _hh  )  [protected]

Helper for halfedge collapse.

void OpenMesh::PolyConnectivity::collapse_loop ( HalfedgeHandle  _hh  )  [protected]

Helper for halfedge collapse.

ConstVertexEdgeIter OpenMesh::PolyConnectivity::cve_begin ( VertexHandle  _vh  )  const [inline]

const vertex - edge circulator

Definition at line 456 of file PolyConnectivity.hh.

ConstVertexEdgeIter OpenMesh::PolyConnectivity::cve_end ( VertexHandle  _vh  )  const [inline]

const vertex - edge circulator

Definition at line 516 of file PolyConnectivity.hh.

ConstVertexEdgeIter OpenMesh::PolyConnectivity::cve_iter ( VertexHandle  _vh  )  const [inline]

const vertex - edge circulator

Definition at line 396 of file PolyConnectivity.hh.

ConstVertexFaceIter OpenMesh::PolyConnectivity::cvf_begin ( VertexHandle  _vh  )  const [inline]

const vertex - face circulator

Definition at line 459 of file PolyConnectivity.hh.

ConstVertexFaceIter OpenMesh::PolyConnectivity::cvf_end ( VertexHandle  _vh  )  const [inline]

const vertex - face circulator

Definition at line 519 of file PolyConnectivity.hh.

ConstVertexFaceIter OpenMesh::PolyConnectivity::cvf_iter ( VertexHandle  _vh  )  const [inline]

const vertex - face circulator

Definition at line 399 of file PolyConnectivity.hh.

ConstVertexIHalfedgeIter OpenMesh::PolyConnectivity::cvih_begin ( VertexHandle  _vh  )  const [inline]

const vertex - incoming halfedge circulator

Definition at line 450 of file PolyConnectivity.hh.

ConstVertexIHalfedgeIter OpenMesh::PolyConnectivity::cvih_end ( VertexHandle  _vh  )  const [inline]

const vertex - incoming halfedge circulator

Definition at line 510 of file PolyConnectivity.hh.

ConstVertexIHalfedgeIter OpenMesh::PolyConnectivity::cvih_iter ( VertexHandle  _vh  )  const [inline]

const vertex - incoming halfedge circulator

Definition at line 390 of file PolyConnectivity.hh.

ConstVertexOHalfedgeIter OpenMesh::PolyConnectivity::cvoh_begin ( VertexHandle  _vh  )  const [inline]

const vertex - outgoing halfedge circulator

Definition at line 453 of file PolyConnectivity.hh.

ConstVertexOHalfedgeIter OpenMesh::PolyConnectivity::cvoh_end ( VertexHandle  _vh  )  const [inline]

const vertex - outgoing halfedge circulator

Definition at line 513 of file PolyConnectivity.hh.

ConstVertexOHalfedgeIter OpenMesh::PolyConnectivity::cvoh_iter ( VertexHandle  _vh  )  const [inline]

const vertex - outgoing halfedge circulator

Definition at line 393 of file PolyConnectivity.hh.

ConstVertexVertexIter OpenMesh::PolyConnectivity::cvv_begin ( VertexHandle  _vh  )  const [inline]

const vertex circulator

Definition at line 447 of file PolyConnectivity.hh.

ConstVertexVertexIter OpenMesh::PolyConnectivity::cvv_end ( VertexHandle  _vh  )  const [inline]

const vertex circulator

Definition at line 507 of file PolyConnectivity.hh.

ConstVertexVertexIter OpenMesh::PolyConnectivity::cvv_iter ( VertexHandle  _vh  )  const [inline]

const vertex circulator

Definition at line 387 of file PolyConnectivity.hh.

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.
void OpenMesh::PolyConnectivity::delete_face ( FaceHandle  _fh,
bool  _delete_isolated_vertices = true 
)

Delete face _fh and resulting degenerated empty halfedges as well. Resultling 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.
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.
Face& OpenMesh::PolyConnectivity::deref ( FaceHandle  _h  )  [inline]

Definition at line 674 of file PolyConnectivity.hh.

const Face& OpenMesh::PolyConnectivity::deref ( FaceHandle  _h  )  const [inline]

Definition at line 673 of file PolyConnectivity.hh.

Edge& OpenMesh::PolyConnectivity::deref ( EdgeHandle  _h  )  [inline]

Definition at line 672 of file PolyConnectivity.hh.

const Edge& OpenMesh::PolyConnectivity::deref ( EdgeHandle  _h  )  const [inline]

Definition at line 671 of file PolyConnectivity.hh.

Halfedge& OpenMesh::PolyConnectivity::deref ( HalfedgeHandle  _h  )  [inline]

Definition at line 670 of file PolyConnectivity.hh.

const Halfedge& OpenMesh::PolyConnectivity::deref ( HalfedgeHandle  _h  )  const [inline]

Definition at line 669 of file PolyConnectivity.hh.

Vertex& OpenMesh::PolyConnectivity::deref ( VertexHandle  _h  )  [inline]

Definition at line 668 of file PolyConnectivity.hh.

const Vertex& OpenMesh::PolyConnectivity::deref ( VertexHandle  _h  )  const [inline]

Get item from handle.

Definition at line 667 of file PolyConnectivity.hh.

ConstEdgeIter OpenMesh::PolyConnectivity::edges_begin (  )  const [inline]

Const begin iterator for edges.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 304 of file PolyConnectivity.hh.

EdgeIter OpenMesh::PolyConnectivity::edges_begin (  )  [inline]

Begin iterator for edges.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 301 of file PolyConnectivity.hh.

ConstEdgeIter OpenMesh::PolyConnectivity::edges_end (  )  const [inline]

Const end iterator for edges.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 310 of file PolyConnectivity.hh.

EdgeIter OpenMesh::PolyConnectivity::edges_end (  )  [inline]

End iterator for edges.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 307 of file PolyConnectivity.hh.

ConstEdgeIter OpenMesh::PolyConnectivity::edges_sbegin (  )  const [inline]

Const begin iterator for edges.

Definition at line 352 of file PolyConnectivity.hh.

EdgeIter OpenMesh::PolyConnectivity::edges_sbegin (  )  [inline]

Begin iterator for edges.

Definition at line 349 of file PolyConnectivity.hh.

ConstFaceIter OpenMesh::PolyConnectivity::faces_begin (  )  const [inline]

Const begin iterator for faces.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 317 of file PolyConnectivity.hh.

FaceIter OpenMesh::PolyConnectivity::faces_begin (  )  [inline]

Begin iterator for faces.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 314 of file PolyConnectivity.hh.

ConstFaceIter OpenMesh::PolyConnectivity::faces_end (  )  const [inline]

Const end iterator for faces.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 323 of file PolyConnectivity.hh.

FaceIter OpenMesh::PolyConnectivity::faces_end (  )  [inline]

End iterator for faces.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 320 of file PolyConnectivity.hh.

ConstFaceIter OpenMesh::PolyConnectivity::faces_sbegin (  )  const [inline]

Const begin iterator for faces.

Definition at line 359 of file PolyConnectivity.hh.

FaceIter OpenMesh::PolyConnectivity::faces_sbegin (  )  [inline]

Begin iterator for faces.

Definition at line 356 of file PolyConnectivity.hh.

FaceEdgeIter OpenMesh::PolyConnectivity::fe_begin ( FaceHandle  _fh  )  [inline]

face - edge circulator

Definition at line 469 of file PolyConnectivity.hh.

FaceEdgeIter OpenMesh::PolyConnectivity::fe_end ( FaceHandle  _fh  )  [inline]

face - edge circulator

Definition at line 529 of file PolyConnectivity.hh.

FaceEdgeIter OpenMesh::PolyConnectivity::fe_iter ( FaceHandle  _fh  )  [inline]

face - edge circulator

Definition at line 409 of file PolyConnectivity.hh.

FaceFaceIter OpenMesh::PolyConnectivity::ff_begin ( FaceHandle  _fh  )  [inline]

face - face circulator

Definition at line 472 of file PolyConnectivity.hh.

FaceFaceIter OpenMesh::PolyConnectivity::ff_end ( FaceHandle  _fh  )  [inline]

face - face circulator

Definition at line 532 of file PolyConnectivity.hh.

FaceFaceIter OpenMesh::PolyConnectivity::ff_iter ( FaceHandle  _fh  )  [inline]

face - face circulator

Definition at line 412 of file PolyConnectivity.hh.

FaceHalfedgeIter OpenMesh::PolyConnectivity::fh_begin ( FaceHandle  _fh  )  [inline]

face - halfedge circulator

Definition at line 466 of file PolyConnectivity.hh.

FaceHalfedgeIter OpenMesh::PolyConnectivity::fh_end ( FaceHandle  _fh  )  [inline]

face - halfedge circulator

Definition at line 526 of file PolyConnectivity.hh.

FaceHalfedgeIter OpenMesh::PolyConnectivity::fh_iter ( FaceHandle  _fh  )  [inline]

face - halfedge circulator

Definition at line 406 of file PolyConnectivity.hh.

HalfedgeHandle OpenMesh::PolyConnectivity::find_halfedge ( VertexHandle  _start_vh,
VertexHandle  _end_vh 
) const

Find halfedge from _vh0 to _vh1. Returns invalid handle if not found.

FaceVertexIter OpenMesh::PolyConnectivity::fv_begin ( FaceHandle  _fh  )  [inline]

face - vertex circulator

Definition at line 463 of file PolyConnectivity.hh.

FaceVertexIter OpenMesh::PolyConnectivity::fv_end ( FaceHandle  _fh  )  [inline]

face - vertex circulator

Definition at line 523 of file PolyConnectivity.hh.

FaceVertexIter OpenMesh::PolyConnectivity::fv_iter ( FaceHandle  _fh  )  [inline]

face - vertex circulator

Definition at line 403 of file PolyConnectivity.hh.

ConstHalfedgeIter OpenMesh::PolyConnectivity::halfedges_begin (  )  const [inline]

Const begin iterator for halfedges.

Definition at line 291 of file PolyConnectivity.hh.

HalfedgeIter OpenMesh::PolyConnectivity::halfedges_begin (  )  [inline]

Begin iterator for halfedges.

Definition at line 288 of file PolyConnectivity.hh.

ConstHalfedgeIter OpenMesh::PolyConnectivity::halfedges_end (  )  const [inline]

Const end iterator for halfedges.

Definition at line 297 of file PolyConnectivity.hh.

HalfedgeIter OpenMesh::PolyConnectivity::halfedges_end (  )  [inline]

End iterator for halfedges.

Definition at line 294 of file PolyConnectivity.hh.

ConstHalfedgeIter OpenMesh::PolyConnectivity::halfedges_sbegin (  )  const [inline]

Const begin iterator for halfedges.

Definition at line 345 of file PolyConnectivity.hh.

HalfedgeIter OpenMesh::PolyConnectivity::halfedges_sbegin (  )  [inline]

Begin iterator for halfedges.

Definition at line 342 of file PolyConnectivity.hh.

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
bool OpenMesh::PolyConnectivity::is_boundary ( FaceHandle  _fh,
bool  _check_vertex = false 
) const

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.
bool OpenMesh::PolyConnectivity::is_boundary ( VertexHandle  _vh  )  const [inline]

Is vertex _vh a boundary vertex ?

Definition at line 563 of file PolyConnectivity.hh.

bool OpenMesh::PolyConnectivity::is_boundary ( EdgeHandle  _eh  )  const [inline]

Is the edge _eh a boundary edge, i.e. is one of its halfedges a boundary halfege ?

Definition at line 557 of file PolyConnectivity.hh.

bool OpenMesh::PolyConnectivity::is_boundary ( HalfedgeHandle  _heh  )  const [inline]

Is halfedge _heh a boundary halfedge (is its face handle invalid) ?

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 552 of file PolyConnectivity.hh.

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

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

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.

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.

static bool OpenMesh::PolyConnectivity::is_triangles (  )  [inline, static]

Reimplemented in OpenMesh::TriConnectivity.

Definition at line 167 of file PolyConnectivity.hh.

FaceHandle OpenMesh::PolyConnectivity::opposite_face_handle ( HalfedgeHandle  _heh  )  const [inline]

returns the face handle of the opposite halfedge

Definition at line 583 of file PolyConnectivity.hh.

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.

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.
void OpenMesh::PolyConnectivity::split ( FaceHandle  _fh,
VertexHandle  _vh 
)

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

Reimplemented in OpenMesh::TriConnectivity.

void OpenMesh::PolyConnectivity::triangulate (  ) 

triangulate the entire mesh

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

triangulate the face _fh

uint OpenMesh::PolyConnectivity::valence ( FaceHandle  _fh  )  const

Face valence.

uint OpenMesh::PolyConnectivity::valence ( VertexHandle  _vh  )  const

Vertex valence.

VertexEdgeIter OpenMesh::PolyConnectivity::ve_begin ( VertexHandle  _vh  )  [inline]

vertex - edge circulator

Definition at line 440 of file PolyConnectivity.hh.

VertexEdgeIter OpenMesh::PolyConnectivity::ve_end ( VertexHandle  _vh  )  [inline]

vertex - edge circulator

Definition at line 500 of file PolyConnectivity.hh.

VertexEdgeIter OpenMesh::PolyConnectivity::ve_iter ( VertexHandle  _vh  )  [inline]

vertex - edge circulator

Definition at line 380 of file PolyConnectivity.hh.

ConstVertexIter OpenMesh::PolyConnectivity::vertices_begin (  )  const [inline]

Const begin iterator for vertices.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 278 of file PolyConnectivity.hh.

VertexIter OpenMesh::PolyConnectivity::vertices_begin (  )  [inline]

Begin iterator for vertices.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 275 of file PolyConnectivity.hh.

ConstVertexIter OpenMesh::PolyConnectivity::vertices_end (  )  const [inline]

Const end iterator for vertices.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 284 of file PolyConnectivity.hh.

VertexIter OpenMesh::PolyConnectivity::vertices_end (  )  [inline]

End iterator for vertices.

Reimplemented from OpenMesh::ArrayKernel.

Definition at line 281 of file PolyConnectivity.hh.

ConstVertexIter OpenMesh::PolyConnectivity::vertices_sbegin (  )  const [inline]

Const begin iterator for vertices.

Definition at line 338 of file PolyConnectivity.hh.

VertexIter OpenMesh::PolyConnectivity::vertices_sbegin (  )  [inline]

Begin iterator for vertices.

Definition at line 335 of file PolyConnectivity.hh.

VertexFaceIter OpenMesh::PolyConnectivity::vf_begin ( VertexHandle  _vh  )  [inline]

vertex - face circulator

Definition at line 443 of file PolyConnectivity.hh.

VertexFaceIter OpenMesh::PolyConnectivity::vf_end ( VertexHandle  _vh  )  [inline]

vertex - face circulator

Definition at line 503 of file PolyConnectivity.hh.

VertexFaceIter OpenMesh::PolyConnectivity::vf_iter ( VertexHandle  _vh  )  [inline]

vertex - face circulator

Definition at line 383 of file PolyConnectivity.hh.

VertexIHalfedgeIter OpenMesh::PolyConnectivity::vih_begin ( VertexHandle  _vh  )  [inline]

vertex - incoming halfedge circulator

Definition at line 434 of file PolyConnectivity.hh.

VertexIHalfedgeIter OpenMesh::PolyConnectivity::vih_end ( VertexHandle  _vh  )  [inline]

vertex - incoming halfedge circulator

Definition at line 494 of file PolyConnectivity.hh.

VertexIHalfedgeIter OpenMesh::PolyConnectivity::vih_iter ( VertexHandle  _vh  )  [inline]

vertex - incoming halfedge circulator

Definition at line 374 of file PolyConnectivity.hh.

VertexOHalfedgeIter OpenMesh::PolyConnectivity::voh_begin ( VertexHandle  _vh  )  [inline]

vertex - outgoing halfedge circulator

Definition at line 437 of file PolyConnectivity.hh.

VertexOHalfedgeIter OpenMesh::PolyConnectivity::voh_end ( VertexHandle  _vh  )  [inline]

vertex - outgoing halfedge circulator

Definition at line 497 of file PolyConnectivity.hh.

VertexOHalfedgeIter OpenMesh::PolyConnectivity::voh_iter ( VertexHandle  _vh  )  [inline]

vertex - outgoing halfedge circulator

Definition at line 377 of file PolyConnectivity.hh.

VertexVertexIter OpenMesh::PolyConnectivity::vv_begin ( VertexHandle  _vh  )  [inline]

vertex - vertex circulator

Definition at line 431 of file PolyConnectivity.hh.

VertexVertexIter OpenMesh::PolyConnectivity::vv_end ( VertexHandle  _vh  )  [inline]

vertex - vertex circulator

Definition at line 491 of file PolyConnectivity.hh.

VertexVertexIter OpenMesh::PolyConnectivity::vv_iter ( VertexHandle  _vh  )  [inline]

vertex - vertex circulator

Definition at line 371 of file PolyConnectivity.hh.


Member Data Documentation

Invalid handle.

Definition at line 64 of file PolyConnectivity.hh.

Invalid handle.

Definition at line 66 of file PolyConnectivity.hh.

Invalid handle.

Definition at line 62 of file PolyConnectivity.hh.

Invalid handle.

Definition at line 60 of file PolyConnectivity.hh.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


openmesh
Author(s): Benjamin Pitzer
autogenerated on Fri Jan 11 12:11:16 2013