protected void transformLimitedConic(GeoElement a, GeoElement b) { GeoConicPart arc = (GeoConicPart) b; if (a instanceof GeoConicPart) { GeoConicPart source = (GeoConicPart) a; arc.setParameters(0, Kernel.PI_2, true); if (pt == null) { transformedPoint = new GeoPoint(cons); pt = new AlgoClosestPoint(cons, arc, transformedPoint); cons.removeFromConstructionList(pt); } transformedPoint.removePath(); setTransformedObject(source.getPointParam(0), transformedPoint); compute(); transformedPoint.updateCascade(); // Application.debug("start"+transformedPoint); double d = pt.getP().getPathParameter().getT(); transformedPoint.removePath(); setTransformedObject(source.getPointParam(1), transformedPoint); compute(); transformedPoint.updateCascade(); // Application.debug("end"+transformedPoint); double e = pt.getP().getPathParameter().getT(); // Application.debug(d+","+e); arc.setParameters(d * Kernel.PI_2, e * Kernel.PI_2, swapOrientation(source)); setTransformedObject(a, b); } }