package org.geogebra.common.geogebra3D.kernel3D.commands; import org.geogebra.common.geogebra3D.kernel3D.algos.AlgoDrawingPadCorner3D; import org.geogebra.common.geogebra3D.kernel3D.algos.AlgoVertexConic3D; import org.geogebra.common.geogebra3D.kernel3D.algos.AlgoVertexPolygon3D; import org.geogebra.common.kernel.Construction; import org.geogebra.common.kernel.Kernel; import org.geogebra.common.kernel.algos.AlgoVertexConic; import org.geogebra.common.kernel.algos.AlgoVertexPolygon; import org.geogebra.common.kernel.commands.CmdVertex; import org.geogebra.common.kernel.geos.GeoNumberValue; import org.geogebra.common.kernel.geos.GeoPoly; import org.geogebra.common.kernel.kernelND.GeoConicND; import org.geogebra.common.kernel.kernelND.GeoPointND; /** * Vertex, Corner commands */ public class CmdVertex3D extends CmdVertex { /** * @param kernel * Kernel */ public CmdVertex3D(Kernel kernel) { super(kernel); } @Override protected GeoPointND cornerOfDrawingPad(String label, GeoNumberValue number, GeoNumberValue ev) { // Corner[ev, n] : if ev==3, check if loading - then do as <5.0 version // (with 2D points) if (!kernelA.getLoadingMode() && ev != null && AlgoDrawingPadCorner3D.is3D(ev)) { return cornerOfDrawingPad3D(label, number, ev); } return super.cornerOfDrawingPad(label, number, ev); } /** * @param label * label * @param number * index * @param ev * view * @return corner */ protected GeoPointND cornerOfDrawingPad3D(String label, GeoNumberValue number, GeoNumberValue ev) { AlgoDrawingPadCorner3D algo = new AlgoDrawingPadCorner3D(cons, label, number, ev); return algo.getCorner(); } @Override protected AlgoVertexPolygon newAlgoVertexPolygon(Construction cons1, String label, GeoPoly p, GeoNumberValue v) { if (p.isGeoElement3D()) { return new AlgoVertexPolygon3D(cons1, label, p, v); } return super.newAlgoVertexPolygon(cons1, label, p, v); } @Override protected AlgoVertexConic newAlgoVertexConic(Construction cons1, String[] labels, GeoConicND conic) { if (conic.isGeoElement3D()) { return new AlgoVertexConic3D(cons1, labels, conic); } return super.newAlgoVertexConic(cons1, labels, conic); } }