21 #ifndef GEOS_LINEARREF_LENGTHINDEXEDLINE_H
22 #define GEOS_LINEARREF_LENGTHINDEXEDLINE_H
24 #include <geos/export.h>
25 #include <geos/geom/Coordinate.h>
26 #include <geos/geom/Geometry.h>
27 #include <geos/linearref/LinearLocation.h>
44 class GEOS_DLL LengthIndexedLine {
46 const geom::Geometry* linearGeom;
47 LinearLocation locationOf(
double index)
const;
48 LinearLocation locationOf(
double index,
bool resolveLower)
const;
49 double positiveIndex(
double index)
const;
60 LengthIndexedLine(
const geom::Geometry* linearGeom);
74 geom::Coordinate extractPoint(
double index)
const;
95 geom::Coordinate extractPoint(
double index,
double offsetDistance)
const;
108 std::unique_ptr<geom::Geometry> extractLine(
double startIndex,
double endIndex)
const;
129 double indexOf(
const geom::Coordinate& pt)
const;
154 double indexOfAfter(
const geom::Coordinate& pt,
double minIndex)
const;
166 double* indicesOf(
const geom::Geometry* subLine)
const;
179 double project(
const geom::Coordinate& pt)
const;
185 double getStartIndex()
const;
191 double getEndIndex()
const;
199 bool isValidIndex(
double index)
const;
208 double clampIndex(
double index)
const;