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>
32 class CoordinateSequence;
36 class MonotoneChainSelectAction;
37 class MonotoneChainOverlapAction;
100 std::size_t start, std::size_t end,
void* context);
107 size_t getStartIndex()
const {
return start; }
109 size_t getEndIndex()
const {
return end; }
134 void setId(
int nId) {
id=nId; }
136 inline int getId()
const {
return id; }
138 void* getContext() {
return context; }
145 MonotoneChainSelectAction& mcs);
147 void computeOverlaps(std::size_t start0, std::size_t end0, MonotoneChain& mc,
148 std::size_t start1, std::size_t end1,
149 MonotoneChainOverlapAction& mco);
170 MonotoneChain(
const MonotoneChain& other) =
delete;
171 MonotoneChain& operator=(
const MonotoneChain& rhs) =
delete;
178 #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
Definition: MonotoneChainOverlapAction.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:86
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:59
Definition: LineSegment.h:57
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
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.