19 #ifndef GEOS_IDX_CHAIN_MONOTONECHAIN_H
20 #define GEOS_IDX_CHAIN_MONOTONECHAIN_H
22 #include <geos/export.h>
23 #include <geos/geom/Envelope.h>
31 class CoordinateSequence;
35 class MonotoneChainSelectAction;
36 class MonotoneChainOverlapAction;
98 std::size_t start, std::size_t end,
void* context);
106 getStartIndex()
const
163 MonotoneChainSelectAction& mcs);
165 void computeOverlaps(std::size_t start0, std::size_t end0, MonotoneChain& mc,
166 std::size_t start1, std::size_t end1,
167 MonotoneChainOverlapAction& mco);
169 bool overlaps(
size_t start0,
size_t end0,
const MonotoneChain& mc,
size_t start1,
size_t end1);
190 MonotoneChain(
const MonotoneChain& other) =
delete;
191 MonotoneChain& operator=(
const MonotoneChain& rhs) =
delete;
198 #endif // GEOS_IDX_CHAIN_MONOTONECHAIN_H
std::unique_ptr< geom::CoordinateSequence > getCoordinates() const
MonotoneChain(const geom::CoordinateSequence &pts, std::size_t start, std::size_t end, void *context)
Definition: MonotoneChainSelectAction.h:45
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
The action for the internal iterator for performing overlap queries on a MonotoneChain.
Definition: MonotoneChainOverlapAction.h:43
Monotone Chains are a way of partitioning the segments of a linestring to allow for fast searching of...
Definition: index/chain/MonotoneChain.h:84
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:58
Definition: LineSegment.h:59
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:90
void getLineSegment(std::size_t index, geom::LineSegment &ls) const
Set given LineSegment with points of the segment starting at the given index.
void select(const geom::Envelope &searchEnv, MonotoneChainSelectAction &mcs)
const geom::Envelope & getEnvelope() const
Returned envelope is owned by this class.