protected void setComputationPrecision(PrecisionModel pm) { resultPrecisionModel = pm; li.setPrecisionModel(resultPrecisionModel); } }
public IteratedNoder(PrecisionModel pm) { li = new RobustLineIntersector(); this.pm = pm; li.setPrecisionModel(pm); }
public SimpleSnapRounder(PrecisionModel pm) { this.pm = pm; li = new RobustLineIntersector(); li.setPrecisionModel(pm); scaleFactor = pm.getScale(); }
public MCIndexSnapRounder(PrecisionModel pm) { this.pm = pm; li = new RobustLineIntersector(); li.setPrecisionModel(pm); scaleFactor = pm.getScale(); }
private Noder getNoder(PrecisionModel precisionModel) { if (workingNoder != null) return workingNoder; // otherwise use a fast (but non-robust) noder MCIndexNoder noder = new MCIndexNoder(); LineIntersector li = new RobustLineIntersector(); li.setPrecisionModel(precisionModel); noder.setSegmentIntersector(new IntersectionAdder(li)); // Noder noder = new IteratedNoder(precisionModel); return noder; // Noder noder = new SimpleSnapRounder(precisionModel); // Noder noder = new MCIndexSnapRounder(precisionModel); // Noder noder = new ScaledNoder(new MCIndexSnapRounder(new PrecisionModel(1.0)), // precisionModel.getScale()); }
public static Geometry MCIndexNodingWithPrecision(Geometry geom, double scaleFactor) { PrecisionModel fixedPM = new PrecisionModel(scaleFactor); LineIntersector li = new RobustLineIntersector(); li.setPrecisionModel(fixedPM); Noder noder = new MCIndexNoder(new IntersectionAdder(li)); noder.computeNodes( SegmentStringUtil.extractNodedSegmentStrings(geom) ); return SegmentStringUtil.toGeometry( noder.getNodedSubstrings(), FunctionsUtil.getFactoryOrDefault(geom) ); }
public void checkInputNotAltered(Coordinate[] pt, int scaleFactor) { // save input points Coordinate[] savePt = new Coordinate[4]; for (int i = 0; i < 4; i++) { savePt[i] = new Coordinate(pt[i]); } LineIntersector li = new RobustLineIntersector(); li.setPrecisionModel(new PrecisionModel(scaleFactor)); li.computeIntersection(pt[0], pt[1], pt[2], pt[3]); // check that input points are unchanged for (int i = 0; i < 4; i++) { assertEquals("Input point " + i + " was altered - ", savePt[i], pt[i]); } }