20 #ifndef GEOS_ALGORITHM_LINEINTERSECTOR_H 21 #define GEOS_ALGORITHM_LINEINTERSECTOR_H 23 #include <geos/export.h> 26 #include <geos/geom/Coordinate.h> 83 precisionModel(initialPrecisionModel),
97 bool isInteriorIntersection();
106 bool isInteriorIntersection(
size_t inputLineIndex);
117 precisionModel = newPM;
136 POINT_INTERSECTION = 1,
139 COLLINEAR_INTERSECTION = 2
146 std::string toString()
const;
156 return result != NO_INTERSECTION;
179 return intPt[intIndex];
186 static bool isSameSignAndNonZero(
double a,
double b);
217 return hasIntersection() && isProperVar;
230 const geom::Coordinate& getIntersectionAlongSegment(
size_t segmentIndex,
size_t intIndex);
241 size_t getIndexAlongSegment(
size_t segmentIndex,
size_t intIndex);
252 double getEdgeDistance(
size_t geomIndex,
size_t intIndex)
const;
276 size_t intLineIndex[2][2];
285 return result == COLLINEAR_INTERSECTION;
294 return hasIntersection() && !isProperVar;
297 void computeIntLineIndex();
299 void computeIntLineIndex(
size_t segmentIndex);
400 #endif // GEOS_ALGORITHM_LINEINTERSECTOR_H size_t getIntersectionNum() const
Definition: LineIntersector.h:164
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
Specifies the precision model of the Coordinate in a Geometry.
Definition: PrecisionModel.h:87
intersection_type
Definition: LineIntersector.h:131
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:49
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26
bool isProper() const
Tests whether an intersection is proper.
Definition: LineIntersector.h:215
bool hasIntersection() const
Definition: LineIntersector.h:154
void setPrecisionModel(const geom::PrecisionModel *newPM)
Definition: LineIntersector.h:115
const geom::Coordinate & getIntersection(size_t intIndex) const
Definition: LineIntersector.h:177