private void bufferFixedPrecision(PrecisionModel fixedPM) { Noder noder = new ScaledNoder(new MCIndexSnapRounder(new PrecisionModel(1.0)), fixedPM.getScale()); BufferBuilder bufBuilder = new BufferBuilder(bufParams); bufBuilder.setWorkingPrecisionModel(fixedPM); bufBuilder.setNoder(noder); // this may throw an exception, if robustness errors are encountered resultGeometry = bufBuilder.buffer(argGeom, distance); } }
private void bufferOriginalPrecision() { try { // use fast noding by default BufferBuilder bufBuilder = new BufferBuilder(bufParams); resultGeometry = bufBuilder.buffer(argGeom, distance); } catch (RuntimeException ex) { saveException = ex; // don't propagate the exception - it will be detected by fact that resultGeometry is null // testing ONLY - propagate exception //throw ex; } }
return createEmptyResultGeometry(); computeNodedEdges(bufferSegStrList, precisionModel); graph = new PlanarGraph(new OverlayNodeFactory()); graph.addEdges(edgeList.getEdges()); List subgraphList = createSubgraphs(graph); PolygonBuilder polyBuilder = new PolygonBuilder(geomFact); buildSubgraphs(subgraphList, polyBuilder); List resultPolyList = polyBuilder.getPolygons(); return createEmptyResultGeometry();
private void computeNodedEdges(List bufferSegStrList, PrecisionModel precisionModel) { Noder noder = getNoder(precisionModel); noder.computeNodes(bufferSegStrList); Collection nodedSegStrings = noder.getNodedSubstrings(); // DEBUGGING ONLY //BufferDebug.saveEdges(nodedEdges, "run" + BufferDebug.runCount + "_nodedEdges"); for (Iterator i = nodedSegStrings.iterator(); i.hasNext(); ) { SegmentString segStr = (SegmentString) i.next(); /** * Discard edges which have zero length, * since they carry no information and cause problems with topology building */ Coordinate[] pts = segStr.getCoordinates(); if (pts.length == 2 && pts[0].equals2D(pts[1])) continue; Label oldLabel = (Label) segStr.getData(); Edge edge = new Edge(segStr.getCoordinates(), new Label(oldLabel)); insertUniqueEdge(edge); } //saveEdges(edgeList.getEdges(), "run" + runCount + "_collapsedEdges"); }
int mergeDelta = depthDelta(labelToMerge); int existingDelta = existingEdge.getDepthDelta(); int newDelta = existingDelta + mergeDelta; e.setDepthDelta(depthDelta(e.getLabel()));
return createEmptyResultGeometry(); computeNodedEdges(bufferSegStrList, precisionModel); graph = new PlanarGraph(new OverlayNodeFactory()); graph.addEdges(edgeList.getEdges()); List subgraphList = createSubgraphs(graph); PolygonBuilder polyBuilder = new PolygonBuilder(geomFact); buildSubgraphs(subgraphList, polyBuilder); List resultPolyList = polyBuilder.getPolygons(); return createEmptyResultGeometry();
private void bufferOriginalPrecision() { try { // use fast noding by default BufferBuilder bufBuilder = new BufferBuilder(bufParams); resultGeometry = bufBuilder.buffer(argGeom, distance); } catch (RuntimeException ex) { saveException = ex; // don't propagate the exception - it will be detected by fact that resultGeometry is null // testing ONLY - propagate exception //throw ex; } }
private void computeNodedEdges(List bufferSegStrList, PrecisionModel precisionModel) { Noder noder = getNoder(precisionModel); noder.computeNodes(bufferSegStrList); Collection nodedSegStrings = noder.getNodedSubstrings(); // DEBUGGING ONLY //BufferDebug.saveEdges(nodedEdges, "run" + BufferDebug.runCount + "_nodedEdges"); for (Iterator i = nodedSegStrings.iterator(); i.hasNext(); ) { SegmentString segStr = (SegmentString) i.next(); /** * Discard edges which have zero length, * since they carry no information and cause problems with topology building */ Coordinate[] pts = segStr.getCoordinates(); if (pts.length == 2 && pts[0].equals2D(pts[1])) continue; Label oldLabel = (Label) segStr.getData(); Edge edge = new Edge(segStr.getCoordinates(), new Label(oldLabel)); insertUniqueEdge(edge); } //saveEdges(edgeList.getEdges(), "run" + runCount + "_collapsedEdges"); }
int mergeDelta = depthDelta(labelToMerge); int existingDelta = existingEdge.getDepthDelta(); int newDelta = existingDelta + mergeDelta; e.setDepthDelta(depthDelta(e.getLabel()));
private void bufferFixedPrecision(PrecisionModel fixedPM) { Noder noder = new ScaledNoder(new MCIndexSnapRounder(new PrecisionModel(1.0)), fixedPM.getScale()); BufferBuilder bufBuilder = new BufferBuilder(bufParams); bufBuilder.setWorkingPrecisionModel(fixedPM); bufBuilder.setNoder(noder); // this may throw an exception, if robustness errors are encountered resultGeometry = bufBuilder.buffer(argGeom, distance); } }