@Override public GeoAngle createAngle(GeoPointND p1, GeoPointND p2, GeoNumberValue a, boolean clockWise) { GeoDirectionND direction = ec.getView().getDirection(); if (direction == ec.getKernel().getXOYPlane() || direction == ec.getKernel().getSpace()) { // use xOy plane if (p1.isGeoElement3D() || p2.isGeoElement3D()) { return (GeoAngle) getManager3D().angle(null, p1, p2, a, ec.getKernel().getXOYPlane(), !clockWise)[0]; } return super.createAngle(p1, p2, a, clockWise); } return (GeoAngle) getManager3D().angle(null, p1, p2, a, direction, !clockWise)[0]; }
@Override protected GeoElement[] angle(String[] labels, GeoPointND p1, GeoPointND p2, GeoNumberValue a) { GeoDirectionND direction = kernel.getApplication() .getActiveEuclidianView().getDirection(); if (direction == kernel.getSpace()) { // TODO: should create point on // circle return new GeoElement[] {}; } if (direction == kernel .getXOYPlane() /* * || direction == kernelA.getSpace() */) { // use xOy plane if (p1.isGeoElement3D() || p2.isGeoElement3D()) { return kernel.getManager3D().angle(labels, p1, p2, a, kernel.getXOYPlane(), true); } return super.angle(labels, p1, p2, a); } return kernel.getManager3D().angle(labels, p1, p2, a, direction, true); } }