19#include <geos/index/strtree/TemplateSTRtree.h>
20#include <geos/index/chain/MonotoneChain.h>
21#include <geos/export.h>
35 class RelateSegmentString;
36 class EdgeSegmentIntersector;
45class GEOS_DLL EdgeSetIntersector {
48 template <
typename ItemType>
49 using TemplateSTRtree = geos::index::strtree::TemplateSTRtree<ItemType>;
52 using EdgeSegmentIntersector = geos::operation::relateng::EdgeSegmentIntersector;
57 TemplateSTRtree<const MonotoneChain*> index;
59 const Envelope* envelope =
nullptr;
60 std::deque<MonotoneChain> monoChains;
61 std::size_t overlapCounter = 0;
66 void addToIndex(
const SegmentString* segStr);
68 void addEdges(std::vector<const SegmentString*>& segStrings);
74 std::vector<const SegmentString*>& edgesA,
75 std::vector<const SegmentString*>& edgesB,
85 void process(EdgeSegmentIntersector& intersector);
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition Envelope.h:59
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:197
Monotone Chains are a way of partitioning the segments of a linestring to allow for fast searching of...
Definition index/chain/MonotoneChain.h:85
An interface for classes which represent a sequence of contiguous line segments.
Definition SegmentString.h:47
Basic namespace for all GEOS functionalities.
Definition geos.h:39