21#include <geos/export.h>
22#include <geos/geom/CoordinateSequence.h>
23#include <geos/geom/Envelope.h>
24#include <geos/geom/LineSegment.h>
32class CoordinateSequence;
99 std::size_t start, std::size_t end,
void* context);
105 const geom::Envelope& getEnvelope(
double expansionDistance)
const;
108 getStartIndex()
const
124 pts->getAt(index, ls.p0);
125 pts->getAt(index + 1, ls.
p1);
145 void computeOverlaps(
const MonotoneChain* mc,
double overlapTolerance,
161 void computeOverlaps(std::size_t start0, std::size_t end0,
const MonotoneChain& mc,
162 std::size_t start1, std::size_t end1,
163 double overlapTolerance,
166 bool overlaps(std::size_t start0, std::size_t end0,
167 const MonotoneChain& mc, std::size_t start1, std::size_t end1,
168 double overlapTolerance)
const {
169 if (overlapTolerance > 0.0) {
170 return overlaps(pts->getAt(start0), pts->getAt(end0),
171 mc.pts->
getAt(start1), mc.pts->
getAt(end1), overlapTolerance);
179 double overlapTolerance);
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:44
virtual const Coordinate & getAt(std::size_t i) const =0
Returns a read-only reference to Coordinate at position i.
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:58
static bool intersects(const Coordinate &p1, const Coordinate &p2, const Coordinate &q)
Test the point q to see whether it intersects the Envelope defined by p1-p2.
Definition: LineSegment.h:60
Coordinate p1
Segment start.
Definition: LineSegment.h:64
The action for the internal iterator for performing overlap queries on a MonotoneChain.
Definition: MonotoneChainOverlapAction.h:42
Definition: MonotoneChainSelectAction.h:44
Monotone Chains are a way of partitioning the segments of a linestring to allow for fast searching of...
Definition: index/chain/MonotoneChain.h:85
MonotoneChain(const geom::CoordinateSequence &pts, std::size_t start, std::size_t end, void *context)
const geom::Envelope & getEnvelope() const
Returned envelope is owned by this class.
void getLineSegment(std::size_t index, geom::LineSegment &ls) const
Set given LineSegment with points of the segment starting at the given index.
Definition: index/chain/MonotoneChain.h:123
void select(const geom::Envelope &searchEnv, MonotoneChainSelectAction &mcs) const
std::unique_ptr< geom::CoordinateSequence > getCoordinates() const
Basic namespace for all GEOS functionalities.
Definition: geos.h:39