package org.geogebra.common.geogebra3D.kernel3D.algos; import org.geogebra.common.geogebra3D.kernel3D.geos.GeoQuadric3D; import org.geogebra.common.kernel.Construction; import org.geogebra.common.kernel.Matrix.Coords; /** * Computer for quadric algos, saying if it's a cone, cylinder, etc. * * @author mathieu * */ public abstract class AlgoQuadricComputer { /** * * @param c * @return a new quadric */ public GeoQuadric3D newQuadric(Construction c) { return new GeoQuadric3D(c); } /** * sets the quadric * * @param quadric * @param origin * @param direction * @param number */ abstract public void setQuadric(GeoQuadric3D quadric, Coords origin, Coords direction, Coords eigen, double r, double r2); /** * return Double.NaN if no usable number * * @param v * @return usable number for the quadric */ abstract public double getNumber(double v); }