23#include <geos/export.h>
25#include <geos/algorithm/PointLocator.h>
26#include <geos/algorithm/LineIntersector.h>
27#include <geos/geomgraph/NodeMap.h>
28#include <geos/geom/Coordinate.h>
29#include <geos/geom/IntersectionMatrix.h>
36#pragma warning(disable: 4251)
77class GEOS_DLL RelateComputer {
79 RelateComputer(std::vector<std::unique_ptr<geomgraph::GeometryGraph>>& newArg);
80 ~RelateComputer() =
default;
82 std::unique_ptr<geom::IntersectionMatrix> computeIM();
90 const std::vector<std::unique_ptr<geomgraph::GeometryGraph>>& arg;
92 geomgraph::NodeMap nodes;
95 std::unique_ptr<geom::IntersectionMatrix> im;
97 std::vector<geomgraph::Edge*> isolatedEdges;
102 void insertEdgeEnds(std::vector<std::unique_ptr<geomgraph::EdgeEnd>>& ee);
104 void computeProperIntersectionIM(
108 void copyNodesAndLabels(uint8_t argIndex);
109 void computeIntersectionNodes(uint8_t argIndex);
110 void labelIntersectionNodes(uint8_t argIndex);
119 void labelNodeEdges();
149 void labelIsolatedEdges(uint8_t thisIndex, uint8_t targetIndex);
170 void labelIsolatedNodes();
An interface for rules which determine whether node points which are in boundaries of lineal geometry...
Definition BoundaryNodeRule.h:52
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition LineIntersector.h:53
Computes the topological relationship (Location) of a single point to a Geometry.
Definition PointLocator.h:56
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:217
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:197
Implementation of Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix.
Definition IntersectionMatrix.h:51
Models the end of an edge incident on a node.
Definition EdgeEnd.h:54
Definition geomgraph/Edge.h:63
A GeometryGraph is a graph that models a given Geometry.
Definition GeometryGraph.h:71
The node component of a geometry graph.
Definition geomgraph/Node.h:59
Computes the intersection of line segments, and adds the intersection to the edges containing the seg...
Definition geomgraph/index/SegmentIntersector.h:46
Contains classes and interfaces implementing fundamental computational geometry algorithms.
Definition Angle.h:32
Contains classes that implement indexes for performing noding on geometry graph edges.
Definition geomgraph/Edge.h:53
Contains classes that implement topology graphs.
Definition Depth.h:31
Contains classes to implement the computation of the spatial relationships of Geometrys.
Definition namespaces.h:280
Provides classes for implementing operations on geometries.
Definition namespaces.h:179
Basic namespace for all GEOS functionalities.
Definition geos.h:39