49 #include <OpenMesh/Core/Mesh/PolyConnectivity.hh> 50 #include <OpenMesh/Core/System/OpenMeshDLLMacros.hh> 59 struct SmartVertexHandle;
60 struct SmartHalfedgeHandle;
61 struct SmartEdgeHandle;
62 struct SmartFaceHandle;
107 uint valence()
const;
109 bool is_boundary()
const;
111 bool is_manifold()
const;
119 SmartHalfedgeHandle next()
const;
121 SmartHalfedgeHandle prev()
const;
123 SmartHalfedgeHandle opp()
const;
134 bool is_boundary()
const;
159 bool is_boundary()
const;
179 uint valence()
const;
181 bool is_boundary()
const;
205 template <
typename HandleT>
216 assert(mesh() !=
nullptr);
217 return make_smart(mesh()->halfedge_handle(*
this), mesh());
232 assert(mesh() !=
nullptr);
233 return mesh()->valence(*
this);
238 assert(mesh() !=
nullptr);
239 return mesh()->is_boundary(*
this);
244 assert(mesh() !=
nullptr);
245 return mesh()->is_manifold(*
this);
250 assert(mesh() !=
nullptr);
251 return make_smart(mesh()->next_halfedge_handle(*
this), mesh());
256 assert(mesh() !=
nullptr);
257 return make_smart(mesh()->prev_halfedge_handle(*
this), mesh());
262 assert(mesh() !=
nullptr);
263 return make_smart(mesh()->opposite_halfedge_handle(*
this), mesh());
268 assert(mesh() !=
nullptr);
269 return make_smart(mesh()->to_vertex_handle(*
this), mesh());
274 assert(mesh() !=
nullptr);
275 return make_smart(mesh()->from_vertex_handle(*
this), mesh());
280 assert(mesh() !=
nullptr);
281 return make_smart(mesh()->edge_handle(*
this), mesh());
286 assert(mesh() !=
nullptr);
287 return make_smart(mesh()->face_handle(*
this), mesh());
292 assert(mesh() !=
nullptr);
293 return mesh()->is_boundary(*
this);
298 assert(mesh() !=
nullptr);
299 return make_smart(mesh()->halfedge_handle(*
this, _i), mesh());
319 return halfedge(_i).from();
339 assert(mesh() !=
nullptr);
340 return mesh()->is_boundary(*
this);
345 assert(mesh() !=
nullptr);
346 return make_smart(mesh()->halfedge_handle(*
this), mesh());
351 assert(mesh() !=
nullptr);
352 return mesh()->valence(*
this);
357 assert(mesh() !=
nullptr);
358 return mesh()->is_boundary(*
this);
bool is_manifold() const
Returns true iff (the mesh at) the vertex is two-manifold ?
Handle for a edge entity.
uint valence() const
Returns the valence of the face.
Handle for a face entity.
bool is_boundary() const
Returns true iff the vertex is incident to a boundary halfedge.
bool is_boundary() const
Returns true iff the edge lies on the boundary (i.e. one of the halfedges is boundary) ...
SmartHalfedgeHandle next() const
Returns next halfedge handle.
SmartVertexHandle v(unsigned int _i) const
Shorthand for vertex()
const PolyConnectivity * mesh() const
Get the underlying mesh of this handle.
SmartEdgeHandle edge() const
Returns incident edge of halfedge.
Handle for a halfedge entity.
int idx() const
Get the underlying index of this handle.
SmartHalfedgeHandle halfedge(unsigned int _i) const
Returns one of the two halfedges of the edge.
SmartHalfedgeHandle halfedge() const
Returns one of the halfedges of the face.
Handle for a vertex entity.
SmartHalfedgeHandle in() const
Returns an incoming halfedge.
SmartHalfedgeHandle prev() const
Returns previous halfedge handle.
SmartVertexHandle v0() const
Shorthand for vertex(0)
SmartVertexHandle v1() const
Shorthand for vertex(1)
SmartHalfedgeHandle h(unsigned int _i) const
Shorthand for halfedge()
Base class for all smart handle types.
SmartHalfedgeHandle opp() const
Returns opposite halfedge handle.
SmartVertexHandle from() const
Returns vertex at start of halfedge.
SmartVertexHandle make_smart(VertexHandle _vh, const PolyConnectivity *_mesh)
Creats a SmartVertexHandle from a VertexHandle and a Mesh.
SmartHalfedgeHandle h0() const
Shorthand for halfedge(0)
Generic class for iterator ranges.
SmartHalfedgeHandle halfedge() const
Returns an outgoing halfedge.
bool is_boundary() const
Returns true iff the halfedge is on the boundary (i.e. it has no corresponding face) ...
SmartHalfedgeHandle h1() const
Shorthand for halfedge(1)
SmartVertexHandle to() const
Returns vertex pointed to by halfedge.
SmartHalfedgeHandle out() const
Returns an outgoing halfedge.
SmartVertexHandle vertex(unsigned int _i) const
Returns one of the two incident vertices of the edge.
uint valence() const
Returns valence of the vertex.
Smart version of VertexHandle contains a pointer to the corresponding mesh and allows easier access t...
Connectivity Class for polygonal meshes.
bool is_boundary() const
Returns true iff the face lies at the boundary (i.e. one of the edges is boundary) ...
SmartFaceHandle face() const
Returns incident face of halfedge.