33 : m_entry{ Side::NONE }
34 , m_exit{ Side::NONE }
38 bool isClosedRing()
const;
42 bool isEntered()
const;
44 bool isExited()
const;
46 bool isTraversed()
const;
48 bool hasMultipleUniqueCoordinates()
const;
51 void enter(
const geom::CoordinateXY& c, Side s);
54 void exit(
const geom::CoordinateXY& c, Side s);
56 Side getEntrySide()
const {
return m_entry; }
58 Side getExitSide()
const {
return m_exit; }
60 const geom::CoordinateXY& getLastCoordinate()
const;
62 const geom::CoordinateXY& getExitCoordinate()
const;
64 void add(
const geom::CoordinateXY& c);
66 void forceExit(Side s) { m_exit = s; }
68 const std::vector<geom::CoordinateXY>& getCoordinates()
const {
return m_coords; }
71 std::vector<geom::CoordinateXY> m_coords;