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);
SmartVertexHandle vertex(unsigned int _i) const
Returns one of the two incident vertices of the edge.
Definition: SmartHandles.hh:317
Handle for a face entity.
Definition: Handles.hh:141
SmartEdgeHandle edge() const
Returns incident edge of halfedge.
Definition: SmartHandles.hh:278
uint valence() const
Returns the valence of the face.
Definition: SmartHandles.hh:349
SmartVertexHandle v(unsigned int _i) const
Shorthand for vertex()
Definition: SmartHandles.hh:322
bool is_boundary() const
Returns true iff the face lies at the boundary (i.e. one of the edges is boundary) ...
Definition: SmartHandles.hh:355
SmartHalfedgeHandle halfedge() const
Returns one of the halfedges of the face.
Definition: SmartHandles.hh:343
SmartHalfedgeHandle h(unsigned int _i) const
Shorthand for halfedge()
Definition: SmartHandles.hh:302
uint valence() const
Returns valence of the vertex.
Definition: SmartHandles.hh:230
SmartVertexHandle to() const
Returns vertex pointed to by halfedge.
Definition: SmartHandles.hh:266
bool is_boundary() const
Returns true iff the edge lies on the boundary (i.e. one of the halfedges is boundary) ...
Definition: SmartHandles.hh:337
const PolyConnectivity * mesh() const
Get the underlying mesh of this handle.
Definition: SmartHandles.hh:74
Base class for all smart handle types.
Definition: SmartHandles.hh:68
bool is_manifold() const
Returns true iff (the mesh at) the vertex is two-manifold ?
Definition: SmartHandles.hh:242
SmartHalfedgeHandle opp() const
Returns opposite halfedge handle.
Definition: SmartHandles.hh:260
bool is_boundary() const
Returns true iff the vertex is incident to a boundary halfedge.
Definition: SmartHandles.hh:236
SmartVertexHandle from() const
Returns vertex at start of halfedge.
Definition: SmartHandles.hh:272
Definition: SmartHandles.hh:206
SmartHalfedgeHandle h1() const
Shorthand for halfedge(1)
Definition: SmartHandles.hh:312
Handle for a vertex entity.
Definition: Handles.hh:120
SmartHalfedgeHandle next() const
Returns next halfedge handle.
Definition: SmartHandles.hh:248
SmartVertexHandle v0() const
Shorthand for vertex(0)
Definition: SmartHandles.hh:327
Definition: SmartHandles.hh:114
SmartHalfedgeHandle out() const
Returns an outgoing halfedge.
Definition: SmartHandles.hh:214
int idx() const
Get the underlying index of this handle.
Definition: Handles.hh:69
SmartHalfedgeHandle h0() const
Shorthand for halfedge(0)
Definition: SmartHandles.hh:307
SmartHalfedgeHandle prev() const
Returns previous halfedge handle.
Definition: SmartHandles.hh:254
Definition: SmartHandles.hh:162
Smart version of VertexHandle contains a pointer to the corresponding mesh and allows easier access t...
Definition: SmartHandles.hh:84
Generic class for iterator ranges.
Definition: PolyConnectivity.hh:86
Handle for a edge entity.
Definition: Handles.hh:134
SmartFaceHandle face() const
Returns incident face of halfedge.
Definition: SmartHandles.hh:284
SmartHalfedgeHandle halfedge(unsigned int _i) const
Returns one of the two halfedges of the edge.
Definition: SmartHandles.hh:296
SmartVertexHandle make_smart(VertexHandle _vh, const PolyConnectivity *_mesh)
Creats a SmartVertexHandle from a VertexHandle and a Mesh.
Definition: SmartHandles.hh:186
Definition: SmartHandles.hh:137
Connectivity Class for polygonal meshes.
Definition: PolyConnectivity.hh:112
SmartHalfedgeHandle halfedge() const
Returns an outgoing halfedge.
Definition: SmartHandles.hh:220
bool is_boundary() const
Returns true iff the halfedge is on the boundary (i.e. it has no corresponding face) ...
Definition: SmartHandles.hh:290
SmartHalfedgeHandle in() const
Returns an incoming halfedge.
Definition: SmartHandles.hh:225
SmartVertexHandle v1() const
Shorthand for vertex(1)
Definition: SmartHandles.hh:332
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:59
Handle for a halfedge entity.
Definition: Handles.hh:127