package org.geogebra.common.geogebra3D.kernel3D.algos;
import org.geogebra.common.geogebra3D.kernel3D.geos.GeoQuadric3D;
import org.geogebra.common.geogebra3D.kernel3D.geos.GeoQuadric3DPart;
import org.geogebra.common.kernel.Construction;
import org.geogebra.common.kernel.Matrix.Coords;
/**
* for open cylinders
*
* @author mathieu
*
*/
public class AlgoQuadricComputerCylinderOpen
extends AlgoQuadricComputerCylinder {
@Override
public GeoQuadric3D newQuadric(Construction c) {
return new GeoQuadric3DPart(c);
}
@Override
public void setQuadric(GeoQuadric3D quadric, Coords origin,
Coords direction, Coords eigen, double r, double r2) {
direction.calcNorm();
double altitude = direction.getNorm();
quadric.setCylinder(origin, direction.mul(1 / altitude), eigen, r, r2);
quadric.setLimits(0, altitude);
}
}