package org.geogebra.common.geogebra3D.kernel3D.algos; import org.geogebra.common.geogebra3D.kernel3D.geos.GeoPoint3D; import org.geogebra.common.geogebra3D.kernel3D.geos.GeoQuadric3D; import org.geogebra.common.kernel.Construction; import org.geogebra.common.kernel.algos.AlgoCenterQuadricND; import org.geogebra.common.kernel.kernelND.GeoPointND; import org.geogebra.common.kernel.kernelND.GeoQuadricNDConstants; /** * center of quadric * * @author mathieu * */ public class AlgoCenterQuadric extends AlgoCenterQuadricND { /** * constructor * * @param cons * @param label * @param c */ public AlgoCenterQuadric(Construction cons, String label, GeoQuadric3D c) { super(cons, label, c); } @Override public GeoPointND newGeoPoint(Construction cons1) { return new GeoPoint3D(cons1); } @Override protected void setCoords() { switch (c.type) { case GeoQuadricNDConstants.QUADRIC_SINGLE_POINT: case GeoQuadricNDConstants.QUADRIC_INTERSECTING_LINES: case GeoQuadricNDConstants.QUADRIC_ELLIPSOID: case GeoQuadricNDConstants.QUADRIC_SPHERE: case GeoQuadricNDConstants.QUADRIC_HYPERBOLOID: case GeoQuadricNDConstants.QUADRIC_CONE: case GeoQuadricNDConstants.QUADRIC_HYPERBOLOID_ONE_SHEET: case GeoQuadricNDConstants.QUADRIC_HYPERBOLOID_TWO_SHEETS: ((GeoPoint3D) midpoint).setCoords(c.getMidpoint3D()); break; default: // midpoint undefined midpoint.setUndefined(); } } }