public LineString linearize(double tolerance) { // use the cached one if we are asked for the default geometry tolerance boolean isDefaultTolerance = CircularArc.equals(tolerance, this.tolerance); if (linearized != null && isDefaultTolerance) { return linearized; } CoordinateSequence cs = getLinearizedCoordinateSequence(tolerance); LineString result = new LineString(cs, factory); if (isDefaultTolerance) { linearized = result; } return result; }
public LineString linearize(double tolerance) { // use the cached one if we are asked for the default geometry tolerance boolean isDefaultTolerance = CircularArc.equals(tolerance, this.tolerance); if (linearized != null && isDefaultTolerance) { return linearized; } CoordinateSequence cs = getLinearizedCoordinateSequence(tolerance); LineString result = new LineString(cs, factory); if (isDefaultTolerance) { linearized = result; } return result; }
public CoordinateSequence getLinearizedCoordinateSequence(final double tolerance) { boolean isDefaultTolerance = CircularArc.equals(tolerance, this.tolerance); if (linearized != null && isDefaultTolerance) { return linearized.getCoordinateSequence(); } final GrowableOrdinateArray gar = new GrowableOrdinateArray(); new ArcScan() { protected void visitArc(CircularArc arc) { // if it's not the first arc, we need to eliminate the last point, // as the end point of the last arc is the start point of the new one if (gar.size() > 0) { gar.setSize(gar.size() - 2); } arc.linearize(tolerance, gar); } }; CoordinateSequence cs = gar.toCoordinateSequence(getFactory()); return cs; }
for (int i = 1; i < numArcs; i++) { CircularArc curr = curved.getArcN(i); if (!CircularArc.equals(curr.getRadius(), radius)) { return false; if (!CircularArc.equals(cc.x, center.x) || !CircularArc.equals(cc.y, center.y)) { return false; if (!CircularArc.equals(curr.getRadius(), radius)) { return false; if (!CircularArc.equals(cc.x, center.x) || !CircularArc.equals(cc.y, center.y)) { return false;