12class PolylineUndirectedEdgeIterator
15 using iterator_category = std::forward_iterator_tag;
16 using value_type = UndirectedEdgeId;
21 if ( topology_->undirectedEdgeSize() == 0 )
23 edge_ = UndirectedEdgeId{0};
24 if ( topology_->isLoneEdge( edge_ ) )
32 assert( edge_.
valid() );
36 if ( edge_ >= topology_->undirectedEdgeSize() )
38 edge_ = UndirectedEdgeId{};
41 if ( !topology_->isLoneEdge( edge_ ) )
46 UndirectedEdgeId operator *( )
const {
return edge_; }
49 const PolylineTopology * topology_ =
nullptr;
50 UndirectedEdgeId edge_;
56inline bool operator ==(
const PolylineUndirectedEdgeIterator & a,
const PolylineUndirectedEdgeIterator & b )
59inline bool operator !=(
const PolylineUndirectedEdgeIterator & a,
const PolylineUndirectedEdgeIterator & b )
62inline IteratorRange<PolylineUndirectedEdgeIterator>
undirectedEdges(
const PolylineTopology & topology )
63 {
return { PolylineUndirectedEdgeIterator( topology ), PolylineUndirectedEdgeIterator() }; }
unsafe PolylineUndirectedEdgeIterator()
MRMESH_API bool operator==(const BitSet &a, const BitSet &b)
compare that two bit sets have the same set bits (they can be equal even if sizes are distinct but la...
Definition MRCameraOrientationPlugin.h:8
bool operator!=(const Color &a, const Color &b)
Definition MRMesh/MRColor.h:101
IteratorRange< UndirectedEdgeIterator > undirectedEdges(const MeshTopology &topology)
Definition MREdgeIterator.h:58
readonly unsafe bool valid()