package org.geogebra.common.kernel.kernelND;
import org.geogebra.common.kernel.Region;
import org.geogebra.common.kernel.Matrix.Coords;
/**
* @author ggb3D
*
* extends region interface for getPoint() ability
*/
public interface Region3D extends Region {
/**
* return the 3D point from (x2d,y2d) 2D coords
*
* @param x2d
* x-coord
* @param y2d
* y-coord
* @param coords
* output coords
* @return the 3D point
*/
public Coords getPoint(double x2d, double y2d, Coords coords);
/**
* return the normal projection of the (coords) point on the region
*
* @param coords
* coords of the point
* @return normal projection
*/
public Coords[] getNormalProjection(Coords coords);
/**
* return the willingDirection projection of the (willing coords) point on
* the region
*
* @param oldCoords
* pld coords of the points
* @param willingCoords
* willing coords of the point
* @param willingDirection
* direction of the projection
* @return projection
*/
public Coords[] getProjection(Coords oldCoords, Coords willingCoords,
Coords willingDirection);
}