package org.geogebra.common.geogebra3D.kernel3D.algos;
import org.geogebra.common.geogebra3D.kernel3D.geos.GeoPoint3D;
import org.geogebra.common.geogebra3D.kernel3D.geos.GeoVector3D;
import org.geogebra.common.kernel.Construction;
import org.geogebra.common.kernel.algos.AlgoVector;
import org.geogebra.common.kernel.kernelND.GeoPointND;
import org.geogebra.common.kernel.kernelND.GeoVectorND;
/**
* Vector between two points P and Q. Extends AlgoVector
*
* @author ggb3D
*/
public class AlgoVector3D extends AlgoVector {
/**
* constructor
*
* @param cons
* @param label
* @param P
* @param Q
*/
public AlgoVector3D(Construction cons, String label, GeoPointND P,
GeoPointND Q) {
super(cons, label, P, Q);
}
@Override
protected GeoVectorND createNewVector() {
return new GeoVector3D(cons);
}
@Override
protected GeoPointND newStartPoint() {
return new GeoPoint3D(getP());
}
@Override
protected void setCoords() {
getVector().setCoords(getQ().getInhomCoordsInD3()
.sub(getP().getInhomCoordsInD3()).get());
}
}