package org.geogebra.common.geogebra3D.kernel3D.commands;
import org.geogebra.common.kernel.Kernel;
import org.geogebra.common.kernel.commands.CmdPolyLine;
import org.geogebra.common.kernel.geos.GeoElement;
import org.geogebra.common.kernel.geos.GeoList;
import org.geogebra.common.kernel.kernelND.GeoPointND;
/**
* Polygon[ <GeoPoint3D>, <GeoPoint3D>, ... ] or CmdPolygon
*/
public class CmdPolyLine3D extends CmdPolyLine {
/**
* @param kernel
* Kernel
*/
public CmdPolyLine3D(Kernel kernel) {
super(kernel);
}
@Override
protected GeoElement[] polyLine(String label, GeoList pointList) {
for (int i = 0; i < pointList.size(); i++) {
if (pointList.get(i).isGeoElement3D()) {
return kernelA.getManager3D().PolyLine3D(label, pointList);
}
}
return super.polyLine(label, pointList);
}
@Override
protected boolean checkIs3D(boolean is3D, GeoElement geo) {
if (is3D) {
return true;
}
return geo.isGeoElement3D();
}
@Override
protected GeoElement[] polyLine(String label, GeoPointND[] points,
boolean penStroke, boolean is3D) {
if (is3D) {
return kernelA.getManager3D().PolyLine3D(label, points);
}
return kernelA.polyLine(label, points, penStroke);
}
}