package org.geogebra.common.euclidian3D;
import org.geogebra.common.euclidian.EuclidianViewInterfaceCommon;
import org.geogebra.common.kernel.Matrix.Coords;
/**
*
* @author mathieu
*
* Interface for 3D view
*/
public interface EuclidianView3DInterface extends EuclidianViewInterfaceCommon {
/**
* rotate to default
*/
public void setDefaultRotAnimation();
/**
* start a rotation animation to be in the vector direction
*
* @param vn
* vector direction
* @param checkSameValues
* say if we check already in vector direction, to swap the view
* @param animated
* say if rotation will be animated
*/
public void setRotAnimation(Coords vn, boolean checkSameValues,
boolean animated);
/**
* start a rotation animation to set angle around Oz axis
*
* @param rotOz
* angle around Oz
* @param checkSameValues
* say if we check already in vector direction, to swap the view
* @param animated
* say if rotation will be animated
*/
public void setRotAnimation(double rotOz, boolean checkSameValues,
boolean animated);
/**
* start a rotation animation to be in the vector direction, shortest way
*
* @param v
* vector direction
* @param animated
* say if rotation will be animated
*/
public void setClosestRotAnimation(Coords v, boolean animated);
/**
* @return Returns the zmin.
*/
public double getZmin();
/**
* @return Returns the zmax.
*/
public double getZmax();
/**
* sets the use of the clipping cube
*
* @param flag
* flag
*/
public void setUseClippingCube(boolean flag);
/**
* sets if the clipping cube is shown
*
* @param flag
* flag
*/
public void setShowClippingCube(boolean flag);
/**
* sets the reduction of the clipping box
*
* @param value
* reduction
*/
public void setClippingReduction(int value);
/**
*
* @param projection
* projection type
*/
public void setProjection(int projection);
/**
* sets the visibility of xOy plane grid
*
* @param flag
* flag
* @return whether it changed
*/
public boolean setShowGrid(boolean flag);
/**
* sets the visibility of xOy plane
*
* @param flag
* flag
*/
public void setShowPlane(boolean flag);
/**
* sets the visibility of xOy plane plate
*
* @param flag
* flag
*/
public void setShowPlate(boolean flag);
/**
* sets the rotation matrix
*
* @param theta
* argument
* @param phi
* alt angle
*/
public void setRotXYinDegrees(double theta, double phi);
/**
* sets the origin
*
* @param x
* x coord
* @param y
* y coord
* @param z
* z coord
*/
public void setZeroFromXML(double x, double y, double z);
/**
* set Matrix for view3D
*/
public void updateMatrix();
/**
* tells the view it has changed
*/
public void setViewChanged();
/**
* tell the view that it has to be updated
*
*/
public void setWaitForUpdate();
/**
* set if y axis is up (and not z axis)
*
* @param flag
* flag
*/
public void setYAxisVertical(boolean flag);
/**
* @return screen z-coord of origin
*/
public double getZZero();
/**
* update all drawables
*/
public void updateAllDrawables();
/**
*
* @return eye position
*/
public Coords getEyePosition();
/**
* @param boundsMin2
* real world view min
* @param boundsMax2
* real world view max
*/
public void zoomRW(Coords boundsMin2, Coords boundsMax2);
/**
* @return whether stylebar exists
*/
public boolean hasStyleBar();
}