1 // File: LineConn2d_SegmentIterator.h
2 // Created: 04.08.05 22:47:27
3 // Author: Alexander GRIGORIEV
4 // Copyright: Open Cascade 2005
7 #ifndef LineConn2d_SegmentIterator_HeaderFile
8 #define LineConn2d_SegmentIterator_HeaderFile
10 #include <LineConn2d_Segment.h>
11 #include <LineConn2d_Object.h>
14 * Iterator that is invoked on LineConn2d_Object and returns contour
15 * segments starting from the one between the last point and the first point
19 class LineConn2d_SegmentIterator
22 // ---------- PUBLIC METHODS ----------
25 inline LineConn2d_SegmentIterator ()
26 : myIsSeg (Standard_False) {}
29 inline LineConn2d_SegmentIterator (const LineConn2d_Object& theObject)
30 : myListIter (theObject.PointsIterator()),
31 myIsSeg (Standard_False)
33 if (theObject.NbPoints() > 1) {
34 mySeg.SetOrigin (theObject.LastPoint());
35 mySeg.SetExtremity (myListIter.Value());
36 myIsSeg = Standard_True;
41 inline Standard_Boolean More() const
44 /// Iterator increment
49 if (myListIter.More()) {
50 mySeg.SetOrigin (mySeg.Extremity());
51 mySeg.SetExtremity (myListIter.Value());
53 myIsSeg = Standard_False;
57 /// Query the currently iterated segment
58 inline const LineConn2d_Segment& Value () const
62 // ---------- PRIVATE FIELDS ----------
64 NCollection_List <gp_XY>::Iterator myListIter;
65 LineConn2d_Segment mySeg;
66 Standard_Boolean myIsSeg;