20 #ifndef GEOS_ALGORITHM_LINEINTERSECTOR_H 21 #define GEOS_ALGORITHM_LINEINTERSECTOR_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
Coordinate is the lightweight class used to store coordinates.
Specifies the precision model of the Coordinate in a Geometry.
bool isProper() const
Tests whether an intersection is proper.
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
const geom::PrecisionModel * precisionModel
Basic namespace for all GEOS functionalities.
const geom::Coordinate & getIntersection(size_t intIndex) const
void setPrecisionModel(const geom::PrecisionModel *newPM)
LineIntersector(const geom::PrecisionModel *initialPrecisionModel=nullptr)
bool hasIntersection() const
size_t getIntersectionNum() const