package org.geogebra.common.geogebra3D.kernel3D.transform; import org.geogebra.common.geogebra3D.kernel3D.algos.AlgoMirror3D; import org.geogebra.common.kernel.Construction; import org.geogebra.common.kernel.TransformMirror; import org.geogebra.common.kernel.algos.AlgoTransformation; import org.geogebra.common.kernel.geos.GeoElement; import org.geogebra.common.kernel.kernelND.GeoCoordSys2D; import org.geogebra.common.kernel.kernelND.GeoLineND; import org.geogebra.common.kernel.kernelND.GeoPointND; /** * 3D rotations * * @author mathieu * */ public class TransformMirror3D extends TransformMirror { /** * constructor * * @param cons * construction * @param point * mirror point * */ public TransformMirror3D(Construction cons, GeoPointND point) { super(cons, (GeoElement) point); } /** * constructor * * @param cons * construction * @param line * mirror line * */ public TransformMirror3D(Construction cons, GeoLineND line) { super(cons, (GeoElement) line); } /** * constructor * * @param cons * construction * @param plane * mirror plane * */ public TransformMirror3D(Construction cons, GeoCoordSys2D plane) { super(cons, (GeoElement) plane); } @Override protected AlgoTransformation getTransformAlgo(GeoElement geo) { AlgoTransformation algo = null; if (mirror.isGeoPoint()) { algo = new AlgoMirror3D(cons, geo, (GeoPointND) mirror); } else if (mirror.isGeoLine()) { algo = new AlgoMirror3D(cons, geo, (GeoLineND) mirror); } else if (mirror instanceof GeoCoordSys2D) { algo = new AlgoMirror3D(cons, geo, (GeoCoordSys2D) mirror); } return algo; } }