16 #ifndef GEOS_GEOMGRAPH_INDEX_MONOTONECHAINEDGE_H 17 #define GEOS_GEOMGRAPH_INDEX_MONOTONECHAINEDGE_H 19 #include <geos/export.h> 20 #include <geos/geom/Envelope.h> 24 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 30 class CoordinateSequence;
35 class SegmentIntersector;
44 class GEOS_DLL MonotoneChainEdge {
47 ~MonotoneChainEdge() =
default;
48 MonotoneChainEdge(Edge* newE);
49 const geom::CoordinateSequence* getCoordinates();
50 std::vector<size_t>& getStartIndexes();
51 double getMinX(
size_t chainIndex);
52 double getMaxX(
size_t chainIndex);
54 void computeIntersects(
const MonotoneChainEdge& mce,
55 SegmentIntersector& si);
57 void computeIntersectsForChain(
size_t chainIndex0,
58 const MonotoneChainEdge& mce,
size_t chainIndex1,
59 SegmentIntersector& si);
63 const geom::CoordinateSequence* pts;
66 std::vector<size_t> startIndex;
69 void computeIntersectsForChain(
size_t start0,
size_t end0,
70 const MonotoneChainEdge& mce,
71 size_t start1,
size_t end1,
72 SegmentIntersector& ei);
74 bool overlaps(
size_t start0,
size_t end0,
const MonotoneChainEdge& mce,
size_t start1,
size_t end1);
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25