package org.geogebra.common.geogebra3D.kernel3D.algos; import org.geogebra.common.kernel.geos.GeoElement; /** * Interface for algos used for extrusion * * @author matthieu * */ public interface AlgoForExtrusion { /** * AlgoElement.compute() */ public void compute(); /** * AlgoElement.remove() */ public void remove(); /** * AlgoElement.getOutput(int i) * * @param i * index * @return output */ public GeoElement getOutput(int i); /** * sets the extrusion computer * * @param extrusionComputer * extrusion computer */ public void setExtrusionComputer(ExtrusionComputer extrusionComputer); /** * AlgoElement.removeOutputFromAlgebraView() */ public void removeOutputFromAlgebraView(); /** * AlgoElement.removeOutputFromPicking() */ public void removeOutputFromPicking(); /** * set output points invisible (use for previewable) * * @param b * flag */ public void setOutputPointsEuclidianVisible(boolean b); /** * notify kernel update of output points */ public void notifyUpdateOutputPoints(); /** * * @return top face */ public GeoElement getGeoToHandle(); /** * set visibility of output other than points * * @param b * flag */ public void setOutputOtherEuclidianVisible(boolean b); /** * notify kernel update of output other than points */ public void notifyUpdateOutputOther(); }