package org.geogebra.common.kernel.advanced; import org.geogebra.common.kernel.CircularDefinitionException; import org.geogebra.common.kernel.Kernel; import org.geogebra.common.kernel.arithmetic.Command; import org.geogebra.common.kernel.commands.CommandProcessor; import org.geogebra.common.kernel.geos.GeoElement; import org.geogebra.common.kernel.geos.GeoList; import org.geogebra.common.kernel.geos.GeoNumberValue; import org.geogebra.common.kernel.geos.GeoPoint; import org.geogebra.common.kernel.geos.GeoVector; import org.geogebra.common.main.MyError; /** * ToComplex[Vector] ToComplex[List] * */ public class CmdToComplexPolar extends CommandProcessor { private int coordStyle; /** * @param kernel * kernel * @param coordStyle * Kernel.COORD_* */ public CmdToComplexPolar(Kernel kernel, int coordStyle) { super(kernel); this.coordStyle = coordStyle; } @Override public GeoElement[] process(Command c) throws MyError, CircularDefinitionException { if (c.getArgumentNumber() != 1) { throw argNumErr(app, c, c.getArgumentNumber()); } GeoElement[] arg = resArgs(c); AlgoToComplexPolar algo = null; if (arg[0] instanceof GeoPoint) { algo = new AlgoToComplexPolar(cons, c.getLabel(), (GeoPoint) arg[0], coordStyle); } if (arg[0] instanceof GeoVector) { algo = new AlgoToComplexPolar(cons, c.getLabel(), (GeoVector) arg[0], coordStyle); } if (arg[0] instanceof GeoList) { algo = new AlgoToComplexPolar(cons, c.getLabel(), (GeoList) arg[0], coordStyle); } if (arg[0] instanceof GeoNumberValue) { algo = new AlgoToComplexPolar(cons, c.getLabel(), (GeoNumberValue) arg[0], coordStyle); } if (algo == null) { throw argErr(arg[0], c); } return new GeoElement[] { algo.getResult() }; } }