17 #ifndef GEOS_GEOMGRAPH_INDEX_MONOTONECHAINEDGE_H
18 #define GEOS_GEOMGRAPH_INDEX_MONOTONECHAINEDGE_H
20 #include <geos/export.h>
21 #include <geos/geom/Envelope.h>
25 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
31 class CoordinateSequence;
36 class SegmentIntersector;
45 class GEOS_DLL MonotoneChainEdge {
49 MonotoneChainEdge(Edge *newE);
50 const geom::CoordinateSequence* getCoordinates();
51 std::vector<int>& getStartIndexes();
52 double getMinX(
int chainIndex);
53 double getMaxX(
int chainIndex);
55 void computeIntersects(
const MonotoneChainEdge &mce,
56 SegmentIntersector &si);
58 void computeIntersectsForChain(
int chainIndex0,
59 const MonotoneChainEdge &mce,
int chainIndex1,
60 SegmentIntersector &si);
64 const geom::CoordinateSequence* pts;
67 std::vector<int> startIndex;
72 void computeIntersectsForChain(
int start0,
int end0,
73 const MonotoneChainEdge &mce,
75 SegmentIntersector &ei);