100 std::unique_ptr<MCIndexSegmentSetMutualIntersector> edgeMutualInt =
nullptr;
105 : boundaryNodeRule(bnRule)
106 , geomA(inputA, isPrepared, bnRule)
110 :
RelateNG(inputA, isPrepared, BoundaryNodeRule::getBoundaryRuleMod2())
113 bool hasRequiredEnvelopeInteraction(
const Geometry* b, TopologyPredicate& predicate);
115 bool finishValue(TopologyPredicate& predicate);
117 void computePP(RelateGeometry& geomB, TopologyComputer& topoComputer);
119 void computeAtPoints(RelateGeometry& geom,
bool isA, RelateGeometry& geomTarget, TopologyComputer& topoComputer);
121 bool computePoints(RelateGeometry& geom,
bool isA, RelateGeometry& geomTarget, TopologyComputer& topoComputer);
123 void computePoint(
bool isA,
const CoordinateXY* pt, RelateGeometry& geomTarget, TopologyComputer& topoComputer);
125 bool computeLineEnds(RelateGeometry& geom,
bool isA, RelateGeometry& geomTarget, TopologyComputer& topoComputer);
140 bool computeLineEnd(RelateGeometry& geom,
bool isA,
const CoordinateXY* pt, RelateGeometry& geomTarget, TopologyComputer& topoComputer);
142 bool computeAreaVertex(RelateGeometry& geom,
bool isA, RelateGeometry& geomTarget, TopologyComputer& topoComputer);
144 bool computeAreaVertex(RelateGeometry& geom,
bool isA,
const LinearRing* ring, RelateGeometry& geomTarget, TopologyComputer& topoComputer);
146 void computeAtEdges(RelateGeometry& geomB, TopologyComputer& topoComputer);
148 void computeEdgesAll(std::vector<const SegmentString*>& edgesB,
const Envelope* envInt, EdgeSegmentIntersector& intersector);
150 void computeEdgesMutual(std::vector<const SegmentString*>& edgesB,
const Envelope* envInt, EdgeSegmentIntersector& intersector);
287 bool relate(
const Geometry* a,
const std::string& pat);
288 std::unique_ptr<IntersectionMatrix> relate(
const Geometry* a);