34 : m_entry{ Side::NONE }
35 , m_exit{ Side::NONE }
36 , m_parentage{
nullptr }
40 bool isClosedRing()
const;
42 bool isClosedRingWithArea()
const;
46 bool isEntered()
const;
48 bool isExited()
const;
50 bool isTraversed()
const;
52 bool hasMultipleUniqueCoordinates()
const;
55 void enter(
const geom::CoordinateXY& c, Side s,
const void* parentage);
58 void exit(
const geom::CoordinateXY& c, Side s);
60 Side getEntrySide()
const {
return m_entry; }
62 Side getExitSide()
const {
return m_exit; }
64 const geom::CoordinateXY& getFirstCoordinate()
const;
66 const geom::CoordinateXY& getLastCoordinate()
const;
68 const geom::CoordinateXY& getExitCoordinate()
const;
70 void add(
const geom::CoordinateXY& c);
72 void forceExit(Side s) { m_exit = s; }
74 const std::vector<geom::CoordinateXY>& getCoordinates()
const {
return m_coords; }
76 const void* getParentage()
const {
return m_parentage; }
79 std::vector<geom::CoordinateXY> m_coords;
82 const void* m_parentage;