17#include <geos/export.h>
18#include <geos/geom/Coordinate.h>
19#include <geos/operation/grid/Side.h>
23namespace geos::operation::grid {
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;
The Traversal class records the coordinates of a line that are within a grid cell,...
Definition: Traversal.h:31
void exit(const geom::CoordinateXY &c, Side s)
Complete a Traversal on the specified Side
void enter(const geom::CoordinateXY &c, Side s, const void *parentage)
Begin a Traversal on the specified Side