Point Cloud Library (PCL)
1.9.1
|
43 #ifndef PCL_GEOMETRY_MESH_CIRCULATORS_H
44 #define PCL_GEOMETRY_MESH_CIRCULATORS_H
46 #include <pcl/geometry/boost.h>
47 #include <pcl/geometry/mesh_indices.h>
63 template <
class MeshT>
65 : boost::equality_comparable <pcl::geometry::VertexAroundVertexCirculator <MeshT>
66 , boost::unit_steppable <pcl::geometry::VertexAroundVertexCirculator <MeshT>
71 typedef boost::equality_comparable <pcl::geometry::VertexAroundVertexCirculator <MeshT>
72 , boost::unit_steppable <pcl::geometry::VertexAroundVertexCirculator <MeshT> > >
Base;
171 template <
class MeshT>
173 : boost::equality_comparable <pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator <MeshT>
174 , boost::unit_steppable <pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator <MeshT>
179 typedef boost::equality_comparable <pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator <MeshT>
180 , boost::unit_steppable <pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator <MeshT> > >
Base;
279 template <
class MeshT>
281 : boost::equality_comparable <pcl::geometry::IncomingHalfEdgeAroundVertexCirculator <MeshT>
282 , boost::unit_steppable <pcl::geometry::IncomingHalfEdgeAroundVertexCirculator <MeshT>
287 typedef boost::equality_comparable <pcl::geometry::IncomingHalfEdgeAroundVertexCirculator <MeshT>
288 , boost::unit_steppable <pcl::geometry::IncomingHalfEdgeAroundVertexCirculator <MeshT> > >
Base;
387 template <
class MeshT>
389 : boost::equality_comparable <pcl::geometry::FaceAroundVertexCirculator <MeshT>
390 , boost::unit_steppable <pcl::geometry::FaceAroundVertexCirculator <MeshT>
395 typedef boost::equality_comparable <pcl::geometry::FaceAroundVertexCirculator <MeshT>
396 , boost::unit_steppable <pcl::geometry::FaceAroundVertexCirculator <MeshT> > >
Base;
496 template <
class MeshT>
498 : boost::equality_comparable <pcl::geometry::VertexAroundFaceCirculator <MeshT>
499 , boost::unit_steppable <pcl::geometry::VertexAroundFaceCirculator <MeshT>
504 typedef boost::equality_comparable <pcl::geometry::VertexAroundFaceCirculator <MeshT>
505 , boost::unit_steppable <pcl::geometry::VertexAroundFaceCirculator <MeshT> > >
Base;
605 template <
class MeshT>
607 : boost::equality_comparable <pcl::geometry::InnerHalfEdgeAroundFaceCirculator <MeshT>
608 , boost::unit_steppable <pcl::geometry::InnerHalfEdgeAroundFaceCirculator <MeshT>
613 typedef boost::equality_comparable <pcl::geometry::InnerHalfEdgeAroundFaceCirculator <MeshT>
614 , boost::unit_steppable <pcl::geometry::InnerHalfEdgeAroundFaceCirculator <MeshT> > >
Base;
713 template <
class MeshT>
715 : boost::equality_comparable <pcl::geometry::OuterHalfEdgeAroundFaceCirculator <MeshT>
716 , boost::unit_steppable <pcl::geometry::OuterHalfEdgeAroundFaceCirculator <MeshT>
721 typedef boost::equality_comparable <pcl::geometry::OuterHalfEdgeAroundFaceCirculator <MeshT>
722 , boost::unit_steppable <pcl::geometry::OuterHalfEdgeAroundFaceCirculator <MeshT> > >
Base;
821 template <
class MeshT>
823 : boost::equality_comparable <pcl::geometry::FaceAroundFaceCirculator <MeshT>
824 , boost::unit_steppable <pcl::geometry::FaceAroundFaceCirculator <MeshT>
829 typedef boost::equality_comparable <pcl::geometry::FaceAroundFaceCirculator <MeshT>
830 , boost::unit_steppable <pcl::geometry::FaceAroundFaceCirculator <MeshT> > >
Base;
915 #endif // PCL_GEOMETRY_MESH_CIRCULATORS_H
Self & operator--()
Decrement operators (with boost::operators): – (pre and post)
pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT > Self
Mesh::VertexIndex VertexIndex
This file defines compatibility wrappers for low level I/O functions.
bool operator==(const Self &other) const
Comparison operators (with boost::operators): == !=.
HalfEdgeIndex getCurrentHalfEdgeIndex() const
Get the half-edge that is currently stored in the circulator.
InnerHalfEdgeAroundFaceCirculator(const FaceIndex &idx_face, Mesh *const mesh)
Construct from the face around which we want to circulate.
pcl::geometry::FaceAroundFaceCirculator< MeshT > Self
InnerHalfEdgeAroundFaceCirculator()
Constructor resulting in an invalid circulator.
Self & operator++()
Increment operators (with boost::operators): ++ (pre and post)
HalfEdgeIndex getCurrentHalfEdgeIndex() const
Get the half-edge that is currently stored in the circulator.
Self & operator++()
Increment operators (with boost::operators): ++ (pre and post)
IncomingHalfEdgeAroundVertexCirculator(const VertexIndex &idx_vertex, Mesh *const mesh)
Construct from the vertex around which we want to circulate.
HalfEdgeIndex idx_outgoing_half_edge_
The outgoing half-edge of the vertex around which we want to circulate.
Mesh::HalfEdgeIndex HalfEdgeIndex
VertexAroundVertexCirculator(const HalfEdgeIndex &idx_outgoing_half_edge, Mesh *const mesh)
Construct directly from the outgoing half-edge.
bool isValid() const
Check if the circulator is valid.
FaceIndex getTargetIndex() const
Get the index to the target face.
FaceAroundFaceCirculator(const HalfEdgeIndex &idx_inner_half_edge, Mesh *const mesh)
Construct directly from the inner half-edge.
boost::equality_comparable< pcl::geometry::FaceAroundFaceCirculator< MeshT >, boost::unit_steppable< pcl::geometry::FaceAroundFaceCirculator< MeshT > > > Base
HalfEdgeIndex getTargetIndex() const
Get the index to the outgoing half-edge.
boost::equality_comparable< pcl::geometry::VertexAroundVertexCirculator< MeshT >, boost::unit_steppable< pcl::geometry::VertexAroundVertexCirculator< MeshT > > > Base
Mesh::HalfEdgeIndex HalfEdgeIndex
Mesh * mesh_
The mesh to which this circulator belongs to.
Self & operator--()
Decrement operators (with boost::operators): – (pre and post)
bool operator==(const Self &other) const
Comparison operators (with boost::operators): == !=.
FaceAroundVertexCirculator()
Constructor resulting in an invalid circulator.
VertexAroundFaceCirculator(const FaceIndex &idx_face, Mesh *const mesh)
Construct from the face around which we want to circulate.
boost::equality_comparable< pcl::geometry::VertexAroundFaceCirculator< MeshT >, boost::unit_steppable< pcl::geometry::VertexAroundFaceCirculator< MeshT > > > Base
Circulates clockwise around a face and returns an index to the inner half-edge (the target).
Mesh::VertexIndex VertexIndex
boost::equality_comparable< pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >, boost::unit_steppable< pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT > > > Base
Mesh::FaceIndex FaceIndex
bool operator==(const Self &other) const
Comparison operators (with boost::operators): == !=.
Circulates clockwise around a face and returns an index to the outer half-edge (the target).
Self & operator--()
Decrement operators (with boost::operators): – (pre and post)
Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the targ...
bool isValid() const
Check if the circulator is valid.
bool isValid() const
Check if the circulator is valid.
bool isValid() const
Check if the circulator is valid.
HalfEdgeIndex getCurrentHalfEdgeIndex() const
Get the half-edge that is currently stored in the circulator.
Self & operator++()
Increment operators (with boost::operators): ++ (pre and post)
bool operator==(const Self &other) const
Comparison operators (with boost::operators): == !=.
bool operator==(const Self &other) const
Comparison operators (with boost::operators): == !=.
boost::equality_comparable< pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >, boost::unit_steppable< pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT > > > Base
OuterHalfEdgeAroundFaceCirculator()
Constructor resulting in an invalid circulator.
Mesh::HalfEdgeIndex HalfEdgeIndex
pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT > Self
Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-e...
Mesh::FaceIndex FaceIndex
FaceAroundVertexCirculator(const VertexIndex &idx_vertex, Mesh *const mesh)
Construct from the vertex around which we want to circulate.
Self & operator--()
Decrement operators (with boost::operators): – (pre and post)
InnerHalfEdgeAroundFaceCirculator(const HalfEdgeIndex &idx_inner_half_edge, Mesh *const mesh)
Construct directly from the inner half-edge.
VertexAroundFaceCirculator()
Constructor resulting in an invalid circulator.
Index used to access elements in the half-edge mesh.
Circulates clockwise around a face and returns an index to the face of the outer half-edge (the targe...
OutgoingHalfEdgeAroundVertexCirculator(const VertexIndex &idx_vertex, Mesh *const mesh)
Construct from the vertex around which we want to circulate.
Index used to access elements in the half-edge mesh.
HalfEdgeIndex idx_outgoing_half_edge_
The outgoing half-edge of the vertex around which we want to circulate.
Mesh::VertexIndex VertexIndex
Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the targ...
Self & operator--()
Decrement operators (with boost::operators): – (pre and post)
HalfEdgeIndex idx_outgoing_half_edge_
The outgoing half-edge of the vertex around which we want to circulate.
bool isValid() const
Check if the circulator is valid.
Self & operator--()
Decrement operators (with boost::operators): – (pre and post)
Mesh::FaceIndex FaceIndex
Mesh::HalfEdgeIndex HalfEdgeIndex
HalfEdgeIndex getTargetIndex() const
Get the index to the outer half-edge.
Mesh::HalfEdgeIndex HalfEdgeIndex
pcl::geometry::VertexAroundFaceCirculator< MeshT > Self
bool isValid() const
Check if the circulator is valid.
VertexIndex getTargetIndex() const
Get the index to the target vertex.
Mesh * mesh_
The mesh to which this circulator belongs to.
FaceAroundVertexCirculator(const HalfEdgeIndex &idx_outgoing_half_edge, Mesh *const mesh)
Construct directly from the outgoing half-edge.
bool operator==(const Self &other) const
Comparison operators (with boost::operators): == !=.
HalfEdgeIndex idx_inner_half_edge_
The inner half-edge of the face around which we want to circulate.
Self & operator++()
Increment operators (with boost::operators): ++ (pre and post)
bool isValid() const
Check if the circulator is valid.
FaceAroundFaceCirculator()
Constructor resulting in an invalid circulator.
VertexAroundVertexCirculator()
Constructor resulting in an invalid circulator.
HalfEdgeIndex idx_inner_half_edge_
The inner half-edge of the face around which we want to circulate.
OuterHalfEdgeAroundFaceCirculator(const HalfEdgeIndex &idx_inner_half_edge, Mesh *const mesh)
Construct directly from the inner half-edge.
Mesh::VertexIndex VertexIndex
FaceAroundFaceCirculator(const FaceIndex &idx_face, Mesh *const mesh)
Construct from the face around which we want to circulate.
Mesh::FaceIndex FaceIndex
HalfEdgeIndex getCurrentHalfEdgeIndex() const
Get the half-edge that is currently stored in the circulator.
HalfEdgeIndex getCurrentHalfEdgeIndex() const
Get the half-edge that is currently stored in the circulator.
pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT > Self
Mesh::HalfEdgeIndex HalfEdgeIndex
Self & operator--()
Decrement operators (with boost::operators): – (pre and post)
HalfEdgeIndex getCurrentHalfEdgeIndex() const
Get the half-edge that is currently stored in the circulator.
bool operator==(const Self &other) const
Comparison operators (with boost::operators): == !=.
Mesh * mesh_
The mesh to which this circulator belongs to.
Mesh * mesh_
The mesh to which this circulator belongs to.
VertexIndex getTargetIndex() const
Get the index to the target vertex.
OuterHalfEdgeAroundFaceCirculator(const FaceIndex &idx_face, Mesh *const mesh)
Construct from the face around which we want to circulate.
pcl::geometry::FaceAroundVertexCirculator< MeshT > Self
HalfEdgeIndex getTargetIndex() const
Get the index to the incoming half-edge.
Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-ed...
bool operator==(const Self &other) const
Comparison operators (with boost::operators): == !=.
HalfEdgeIndex getTargetIndex() const
Get the index to the inner half-edge.
HalfEdgeIndex idx_incoming_half_edge_
The incoming half-edge of the vertex around which we want to circulate.
VertexAroundVertexCirculator(const VertexIndex &idx_vertex, Mesh *const mesh)
Construct from the vertex around which we want to circulate.
Index used to access elements in the half-edge mesh.
boost::equality_comparable< pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >, boost::unit_steppable< pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT > > > Base
pcl::geometry::VertexAroundVertexCirculator< MeshT > Self
pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT > Self
boost::equality_comparable< pcl::geometry::FaceAroundVertexCirculator< MeshT >, boost::unit_steppable< pcl::geometry::FaceAroundVertexCirculator< MeshT > > > Base
Mesh::FaceIndex FaceIndex
Mesh * mesh_
The mesh to which this circulator belongs to.
Self & operator--()
Decrement operators (with boost::operators): – (pre and post)
IncomingHalfEdgeAroundVertexCirculator(const HalfEdgeIndex &idx_incoming_half_edge, Mesh *const mesh)
Construct directly from the incoming half-edge.
Mesh * mesh_
The mesh to which this circulator belongs to.
Mesh::HalfEdgeIndex HalfEdgeIndex
bool isValid() const
Check if the circulator is valid.
OutgoingHalfEdgeAroundVertexCirculator(const HalfEdgeIndex &idx_outgoing_half_edge, Mesh *const mesh)
Construct directly from the outgoing half-edge.
HalfEdgeIndex getCurrentHalfEdgeIndex() const
Get the half-edge that is currently stored in the circulator.
boost::equality_comparable< pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >, boost::unit_steppable< pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT > > > Base
Self & operator++()
Increment operators (with boost::operators): ++ (pre and post)
Self & operator++()
Increment operators (with boost::operators): ++ (pre and post)
Mesh::HalfEdgeIndex HalfEdgeIndex
Mesh::VertexIndex VertexIndex
Mesh * mesh_
The mesh to which this circulator belongs to.
OutgoingHalfEdgeAroundVertexCirculator()
Constructor resulting in an invalid circulator.
Self & operator++()
Increment operators (with boost::operators): ++ (pre and post)
IncomingHalfEdgeAroundVertexCirculator()
Constructor resulting in an invalid circulator.
HalfEdgeIndex idx_inner_half_edge_
The inner half-edge of the face around which we want to circulate.
Mesh * mesh_
The mesh to which this circulator belongs to.
FaceIndex getTargetIndex() const
Get the index to the target face.
HalfEdgeIndex idx_inner_half_edge_
The inner half-edge of the face around which we want to circulate.
HalfEdgeIndex getCurrentHalfEdgeIndex() const
Get the half-edge that is currently stored in the circulator.
Self & operator++()
Increment operators (with boost::operators): ++ (pre and post)
VertexAroundFaceCirculator(const HalfEdgeIndex &idx_inner_half_edge, Mesh *const mesh)
Construct directly from the inner half-edge.
Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the ou...