Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Public Member Functions | Public Attributes
pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT > Class Template Reference

Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the target). More...

#include <pcl/geometry/mesh_circulators.h>

+ Inheritance diagram for pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >:
+ Collaboration diagram for pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >:

Public Types

using Base = boost::equality_comparable< pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >, boost::unit_steppable< pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT > >>
 
using Self = pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >
 
using Mesh = MeshT
 
using VertexIndex = typename Mesh::VertexIndex
 
using HalfEdgeIndex = typename Mesh::HalfEdgeIndex
 

Public Member Functions

 IncomingHalfEdgeAroundVertexCirculator ()
 Constructor resulting in an invalid circulator. More...
 
 IncomingHalfEdgeAroundVertexCirculator (const VertexIndex &idx_vertex, Mesh *const mesh)
 Construct from the vertex around which we want to circulate. More...
 
 IncomingHalfEdgeAroundVertexCirculator (const HalfEdgeIndex &idx_incoming_half_edge, Mesh *const mesh)
 Construct directly from the incoming half-edge. More...
 
bool isValid () const
 Check if the circulator is valid. More...
 
bool operator== (const Self &other) const
 Comparison operators (with boost::operators): == !=. More...
 
Selfoperator++ ()
 Increment operators (with boost::operators): ++ (pre and post) More...
 
Selfoperator-- ()
 Decrement operators (with boost::operators): – (pre and post) More...
 
HalfEdgeIndex getTargetIndex () const
 Get the index to the incoming half-edge. More...
 
HalfEdgeIndex getCurrentHalfEdgeIndex () const
 Get the half-edge that is currently stored in the circulator. More...
 

Public Attributes

Meshmesh_
 The mesh to which this circulator belongs to. More...
 
HalfEdgeIndex idx_incoming_half_edge_
 The incoming half-edge of the vertex around which we want to circulate. More...
 

Detailed Description

template<class MeshT>
class pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >

Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the target).

The best way to declare the circulator is to use the method pcl::geometry::MeshBase::getIncomingHalfEdgeAroundVertexCirculator ().

Template Parameters
MeshTMesh to which this circulator belongs to.
Note
The circulator can't be used to change the connectivity in the mesh (only const circulators are valid).
Author
Martin Saelzle

Definition at line 277 of file mesh_circulators.h.

Member Typedef Documentation

◆ Base

template<class MeshT >
using pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::Base = boost::equality_comparable< pcl::geometry::IncomingHalfEdgeAroundVertexCirculator<MeshT>, boost::unit_steppable< pcl::geometry::IncomingHalfEdgeAroundVertexCirculator<MeshT> >>

Definition at line 283 of file mesh_circulators.h.

◆ HalfEdgeIndex

template<class MeshT >
using pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::HalfEdgeIndex = typename Mesh::HalfEdgeIndex

Definition at line 291 of file mesh_circulators.h.

◆ Mesh

template<class MeshT >
using pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::Mesh = MeshT

Definition at line 289 of file mesh_circulators.h.

◆ Self

Definition at line 287 of file mesh_circulators.h.

◆ VertexIndex

template<class MeshT >
using pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::VertexIndex = typename Mesh::VertexIndex

Definition at line 290 of file mesh_circulators.h.

Constructor & Destructor Documentation

◆ IncomingHalfEdgeAroundVertexCirculator() [1/3]

Constructor resulting in an invalid circulator.

Definition at line 294 of file mesh_circulators.h.

◆ IncomingHalfEdgeAroundVertexCirculator() [2/3]

template<class MeshT >
pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::IncomingHalfEdgeAroundVertexCirculator ( const VertexIndex idx_vertex,
Mesh *const  mesh 
)
inline

Construct from the vertex around which we want to circulate.

Definition at line 298 of file mesh_circulators.h.

◆ IncomingHalfEdgeAroundVertexCirculator() [3/3]

template<class MeshT >
pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::IncomingHalfEdgeAroundVertexCirculator ( const HalfEdgeIndex idx_incoming_half_edge,
Mesh *const  mesh 
)
inline

Construct directly from the incoming half-edge.

Definition at line 304 of file mesh_circulators.h.

Member Function Documentation

◆ getCurrentHalfEdgeIndex()

template<class MeshT >
HalfEdgeIndex pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::getCurrentHalfEdgeIndex ( ) const
inline

Get the half-edge that is currently stored in the circulator.

Definition at line 354 of file mesh_circulators.h.

References pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx_incoming_half_edge_.

◆ getTargetIndex()

template<class MeshT >
HalfEdgeIndex pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::getTargetIndex ( ) const
inline

◆ isValid()

template<class MeshT >
bool pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::isValid ( ) const
inline

Check if the circulator is valid.

Warning
Does NOT check if the stored mesh pointer is valid. You have to ensure this yourself when constructing the circulator.

Definition at line 313 of file mesh_circulators.h.

References pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx_incoming_half_edge_.

◆ operator++()

template<class MeshT >
Self& pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::operator++ ( )
inline

◆ operator--()

template<class MeshT >
Self& pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::operator-- ( )
inline

◆ operator==()

template<class MeshT >
bool pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::operator== ( const Self other) const
inline

Comparison operators (with boost::operators): == !=.

Warning
Does NOT check if the circulators belong to the same mesh. Please check this yourself.

Definition at line 322 of file mesh_circulators.h.

References pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx_incoming_half_edge_.

Member Data Documentation

◆ idx_incoming_half_edge_

template<class MeshT >
HalfEdgeIndex pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx_incoming_half_edge_

◆ mesh_

template<class MeshT >
Mesh* pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::mesh_

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