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 {
46 using Envelope = geos::geom::Envelope;
47 using Geometry = geos::geom::Geometry;
48 template <
typename ItemType>
49 using TemplateSTRtree = geos::index::strtree::TemplateSTRtree<ItemType>;
50 using MonotoneChain = geos::index::chain::MonotoneChain;
51 using SegmentString = geos::noding::SegmentString;
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:196
An interface for classes which represent a sequence of contiguous line segments.
Definition SegmentString.h:47
Classes to compute nodings for arrangements of line segments and line segment sequences.
Definition CoverageCleaner.h:42
Provides classes for implementing operations on geometries.
Definition CleanCoverage.h:34
Basic namespace for all GEOS functionalities.
Definition geos.h:38