Merge branch 'halfedge_loop_range' into 'master'
Halfedge loop range See merge request OpenMesh/OpenMesh!277
This commit is contained in:
@@ -1230,6 +1230,13 @@ public:
|
||||
FaceHandle,
|
||||
&PolyConnectivity::cff_begin,
|
||||
&PolyConnectivity::cff_end>> ConstFaceFaceRange;
|
||||
typedef CirculatorRange<CirculatorRangeTraitT<
|
||||
PolyConnectivity,
|
||||
ConstHalfedgeLoopIter,
|
||||
HalfedgeHandle,
|
||||
HalfedgeHandle,
|
||||
&PolyConnectivity::chl_begin,
|
||||
&PolyConnectivity::chl_end>> ConstHalfedgeLoopRange;
|
||||
|
||||
/**
|
||||
* @return The vertices adjacent to the specified vertex
|
||||
@@ -1285,6 +1292,12 @@ public:
|
||||
*/
|
||||
ConstFaceFaceRange ff_range(FaceHandle _fh) const;
|
||||
|
||||
/**
|
||||
* @return The halfedges in the face
|
||||
* as a range object suitable for C++11 range based for loops.
|
||||
*/
|
||||
ConstHalfedgeLoopRange hl_range(HalfedgeHandle _heh) const;
|
||||
|
||||
//@}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
@@ -164,6 +164,11 @@ inline PolyConnectivity::ConstFaceFaceRange PolyConnectivity::ff_range(FaceHandl
|
||||
return ConstFaceFaceRange(*this, _fh);
|
||||
}
|
||||
|
||||
inline PolyConnectivity::ConstHalfedgeLoopRange PolyConnectivity::hl_range(HalfedgeHandle _heh) const {
|
||||
return ConstHalfedgeLoopRange(*this, _heh);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
inline PolyConnectivity::VertexIter PolyConnectivity::vertices_begin()
|
||||
@@ -804,6 +809,14 @@ SmartVertexHandle::outgoing_halfedges() const
|
||||
return mesh()->voh_range(*this);
|
||||
}
|
||||
|
||||
inline PolyConnectivity::ConstHalfedgeLoopRange
|
||||
SmartHalfedgeHandle::loop() const
|
||||
{
|
||||
assert(mesh() != nullptr);
|
||||
return mesh()->hl_range(*this);
|
||||
}
|
||||
|
||||
|
||||
inline PolyConnectivity::ConstFaceVertexRange SmartFaceHandle::vertices() const
|
||||
{
|
||||
assert(mesh() != nullptr);
|
||||
|
||||
@@ -123,6 +123,9 @@ struct OPENMESHDLLEXPORT SmartHalfedgeHandle : public SmartBaseHandle, HalfedgeH
|
||||
/// Returns incident face of halfedge
|
||||
SmartFaceHandle face() const;
|
||||
|
||||
/// Returns a range of halfedges in the face of the halfedge (or along the boundary) (PolyConnectivity::hl_range())
|
||||
PolyConnectivity::ConstHalfedgeLoopRange loop() const;
|
||||
|
||||
/// Returns true iff the halfedge is on the boundary (i.e. it has no corresponding face)
|
||||
bool is_boundary() const;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user