21#include <geos/export.h>
22#include <geos/geom/Coordinate.h>
23#include <geos/noding/SegmentNode.h>
24#include <geos/noding/SegmentPointComparator.h>
32class NodedSegmentString;
54 friend std::ostream& operator<< (std::ostream& os,
const SegmentNode& n);
76 std::size_t nSegmentIndex,
int nSegmentOctant);
91 bool isEndPoint(
unsigned int maxSegmentIndex)
const
93 if(segmentIndex == 0 && ! isInteriorVar) {
96 if(segmentIndex == maxSegmentIndex) {
118 if (coord.equals2D(other.
coord)) {
127 if (!isInteriorVar)
return -1;
128 if (!other.isInteriorVar)
return 1;
131 segmentOctant, coord,
139struct GEOS_DLL SegmentNodeLT {
141 operator()(SegmentNode* s1, SegmentNode* s2)
const
143 return s1->compareTo(*s2) < 0;
147 operator()(
const SegmentNode& s1,
const SegmentNode& s2)
const
149 return s1.compareTo(s2) < 0;
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
Represents a list of contiguous line segments, and supports noding the segments.
Definition: NodedSegmentString.h:59
Represents an intersection point between two NodedSegmentString.
Definition: SegmentNode.h:45
int compareTo(const SegmentNode &other) const
Definition: SegmentNode.h:109
std::size_t segmentIndex
the index of the containing line segment in the parent edge
Definition: SegmentNode.h:60
geom::Coordinate coord
the point of intersection (own copy)
Definition: SegmentNode.h:57
bool isInterior() const
Return true if this Node is internal (not on the boundary) of the corresponding segment....
Definition: SegmentNode.h:86
SegmentNode(const NodedSegmentString &ss, const geom::Coordinate &nCoord, std::size_t nSegmentIndex, int nSegmentOctant)
static int compare(int octant, const geom::Coordinate &p0, const geom::Coordinate &p1)
Compares two Coordinates for their relative position along a segment lying in the specified Octant.
Definition: SegmentPointComparator.h:52
Basic namespace for all GEOS functionalities.
Definition: geos.h:39