42#ifndef OPENMESH_POLYCONNECTIVITY_INTERFACE_INCLUDE
43#error Do not include this directly, include instead PolyConnectivity.hh
46#include <OpenMesh/Core/Mesh/PolyConnectivity.hh>
54struct SmartVertexHandle;
55struct SmartHalfedgeHandle;
56struct SmartEdgeHandle;
57struct SmartFaceHandle;
79template <
typename HandleType>
100template <
typename HandleType>
164 uint valence()
const;
166 bool is_manifold()
const;
260 uint valence()
const;
284template <
typename HandleT>
293template <
typename HandleType>
296 const auto& handle =
static_cast<const HandleType&
>(*this);
297 assert(handle.mesh() !=
nullptr);
298 return handle.mesh()->status(handle).feature();
301template <
typename HandleType>
304 const auto& handle =
static_cast<const HandleType&
>(*this);
305 assert(handle.mesh() !=
nullptr);
306 return handle.mesh()->status(handle).selected();
309template <
typename HandleType>
312 const auto& handle =
static_cast<const HandleType&
>(*this);
313 assert(handle.mesh() !=
nullptr);
314 return handle.mesh()->status(handle).tagged();
317template <
typename HandleType>
320 const auto& handle =
static_cast<const HandleType&
>(*this);
321 assert(handle.mesh() !=
nullptr);
322 return handle.mesh()->status(handle).tagged2();
325template <
typename HandleType>
328 const auto& handle =
static_cast<const HandleType&
>(*this);
329 assert(handle.mesh() !=
nullptr);
330 return handle.mesh()->status(handle).locked();
333template <
typename HandleType>
336 const auto& handle =
static_cast<const HandleType&
>(*this);
337 assert(handle.mesh() !=
nullptr);
338 return handle.mesh()->status(handle).hidden();
341template <
typename HandleType>
344 const auto& handle =
static_cast<const HandleType&
>(*this);
345 assert(handle.mesh() !=
nullptr);
346 return handle.mesh()->status(handle).deleted();
349template <
typename HandleType>
352 const auto& handle =
static_cast<const HandleType&
>(*this);
353 assert(handle.mesh() !=
nullptr);
354 return handle.mesh()->is_boundary(handle);
359 assert(
mesh() !=
nullptr);
375 assert(
mesh() !=
nullptr);
381 assert(
mesh() !=
nullptr);
387 assert(
mesh() !=
nullptr);
393 assert(
mesh() !=
nullptr);
399 assert(
mesh() !=
nullptr);
405 assert(
mesh() !=
nullptr);
411 assert(
mesh() !=
nullptr);
417 assert(
mesh() !=
nullptr);
423 assert(
mesh() !=
nullptr);
429 assert(
mesh() !=
nullptr);
470 assert(
mesh() !=
nullptr);
476 assert(
mesh() !=
nullptr);
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:59
SmartVertexHandle make_smart(VertexHandle _vh, const PolyConnectivity *_mesh)
Creats a SmartVertexHandle from a VertexHandle and a Mesh.
Definition: SmartHandles.hh:265
Generic class for iterator ranges.
Definition: PolyConnectivity_inline_impl.hh:92
int idx() const
Get the underlying index of this handle.
Definition: Handles.hh:69
Handle for a vertex entity.
Definition: Handles.hh:121
Handle for a halfedge entity.
Definition: Handles.hh:128
Handle for a edge entity.
Definition: Handles.hh:135
Handle for a face entity.
Definition: Handles.hh:142
Connectivity Class for polygonal meshes.
Definition: PolyConnectivity.hh:115
uint valence(VertexHandle _vh) const
Vertex valence.
Definition: PolyConnectivity.cc:1072
bool is_manifold(VertexHandle _vh) const
Is (the mesh at) vertex _vh two-manifold ?
Definition: PolyConnectivity.cc:84
Base class for all smart handle types.
Definition: SmartHandles.hh:64
const PolyConnectivity * mesh() const
Get the underlying mesh of this handle.
Definition: SmartHandles.hh:69
Base class for all smart handle types that contains status related methods.
Definition: SmartHandles.hh:81
bool selected() const
Returns true iff the handle is marked as selected.
Definition: SmartHandles.hh:302
bool feature() const
Returns true iff the handle is marked as feature.
Definition: SmartHandles.hh:294
bool locked() const
Returns true iff the handle is marked as locked.
Definition: SmartHandles.hh:326
bool deleted() const
Returns true iff the handle is marked as deleted.
Definition: SmartHandles.hh:342
bool tagged() const
Returns true iff the handle is marked as tagged.
Definition: SmartHandles.hh:310
bool tagged2() const
Returns true iff the handle is marked as tagged2.
Definition: SmartHandles.hh:318
bool hidden() const
Returns true iff the handle is marked as hidden.
Definition: SmartHandles.hh:334
Base class for all smart handle types that contains status related methods.
Definition: SmartHandles.hh:102
bool is_boundary() const
Returns true iff the handle is boundary.
Definition: SmartHandles.hh:350
Smart version of VertexHandle contains a pointer to the corresponding mesh and allows easier access t...
Definition: SmartHandles.hh:110
SmartHalfedgeHandle halfedge() const
Returns an outgoing halfedge.
Definition: SmartHandles.hh:363
SmartHalfedgeHandle out() const
Returns an outgoing halfedge.
Definition: SmartHandles.hh:357
bool is_manifold() const
Returns true iff (the mesh at) the vertex is two-manifold ?
Definition: SmartHandles.hh:379
SmartHalfedgeHandle in() const
Returns an incoming halfedge.
Definition: SmartHandles.hh:368
uint valence() const
Returns valence of the vertex.
Definition: SmartHandles.hh:373
Definition: SmartHandles.hh:170
SmartFaceHandle face() const
Returns incident face of halfedge.
Definition: SmartHandles.hh:421
SmartVertexHandle from() const
Returns vertex at start of halfedge.
Definition: SmartHandles.hh:409
SmartHalfedgeHandle next() const
Returns next halfedge handle.
Definition: SmartHandles.hh:385
SmartHalfedgeHandle prev() const
Returns previous halfedge handle.
Definition: SmartHandles.hh:391
SmartEdgeHandle edge() const
Returns incident edge of halfedge.
Definition: SmartHandles.hh:415
SmartHalfedgeHandle opp() const
Returns opposite halfedge handle.
Definition: SmartHandles.hh:397
SmartVertexHandle to() const
Returns vertex pointed to by halfedge.
Definition: SmartHandles.hh:403
Definition: SmartHandles.hh:197
SmartVertexHandle v(unsigned int _i) const
Shorthand for vertex()
Definition: SmartHandles.hh:453
SmartVertexHandle v1() const
Shorthand for vertex(1)
Definition: SmartHandles.hh:463
SmartHalfedgeHandle h(unsigned int _i) const
Shorthand for halfedge()
Definition: SmartHandles.hh:433
SmartHalfedgeHandle h1() const
Shorthand for halfedge(1)
Definition: SmartHandles.hh:443
SmartVertexHandle vertex(unsigned int _i) const
Returns one of the two incident vertices of the edge.
Definition: SmartHandles.hh:448
SmartVertexHandle v0() const
Shorthand for vertex(0)
Definition: SmartHandles.hh:458
SmartHalfedgeHandle halfedge(unsigned int _i) const
Returns one of the two halfedges of the edge.
Definition: SmartHandles.hh:427
SmartHalfedgeHandle h0() const
Shorthand for halfedge(0)
Definition: SmartHandles.hh:438
Definition: SmartHandles.hh:228
uint valence() const
Returns the valence of the face.
Definition: SmartHandles.hh:474
SmartHalfedgeHandle halfedge() const
Returns one of the halfedges of the face.
Definition: SmartHandles.hh:468
Definition: SmartHandles.hh:285