99 bool isClosedEndpointsInInterior =
true;
100 bool isFindAllLocations =
false;
101 bool isSimpleResult =
false;
102 std::vector<geom::CoordinateXY> nonSimplePts;
103 bool computed =
false;
132 static std::vector<std::unique_ptr<geos::geom::CoordinateSequence>>
135 static std::vector<std::unique_ptr<noding::SegmentString>>
136 createSegmentStrings(std::vector<std::unique_ptr<geos::geom::CoordinateSequence>>& seqs);
143 bool isClosedEndpointsInInterior;
144 bool isFindAll =
false;
146 std::vector<geom::CoordinateXY>& intersectionPts;
154 bool findIntersection(
157 const geom::CoordinateXY& p00,
const geom::CoordinateXY& p01,
158 const geom::CoordinateXY& p10,
const geom::CoordinateXY& p11);
169 bool isIntersectionEndpoint(
181 std::size_t intersectionVertexIndex(
186 NonSimpleIntersectionFinder(
187 bool p_isClosedEndpointsInInterior,
189 std::vector<geom::CoordinateXY>& p_intersectionPts)
190 : isClosedEndpointsInInterior(p_isClosedEndpointsInInterior)
191 , isFindAll(p_isFindAll)
192 , intersectionPts(p_intersectionPts)
200 bool hasIntersection()
const;
202 void processIntersections(
206 bool isDone()
const override;
223 :
IsSimpleOp(geom, algorithm::BoundaryNodeRule::getBoundaryRuleMod2())
234 , isClosedEndpointsInInterior(! p_boundaryNodeRule.isInBoundary(2))
235 , isFindAllLocations(false)
248 if (!geom)
return false;
249 return isSimple(*geom);