package org.geogebra.desktop.euclidianND;
import java.awt.Cursor;
import java.io.File;
import javax.swing.JPanel;
import javax.swing.border.Border;
import org.geogebra.common.awt.GBufferedImage;
import org.geogebra.common.euclidian.EuclidianController;
import org.geogebra.common.euclidian.EuclidianViewInterfaceCommon;
import org.geogebra.common.main.App.ExportType;
/**
* interface for 2D/3D view in desktop
*
* @author Mathieu
*
*/
public interface EuclidianViewInterfaceD extends EuclidianViewInterfaceCommon {
/**
* @return mouse position
*/
public java.awt.Point getMousePosition();
/**
* @return underlying component
*/
public JPanel getJPanel();
/**
* @see JPanel#setBorder(Border)
* @param border
* new border
*/
public void setBorder(Border border);
/**
* @param cursor
* new cursor
*/
public void setCursor(Cursor cursor);
/**
*
* @return euclidian controller
*/
@Override
public EuclidianController getEuclidianController();
/**
* @param scale
* image scale
* @return image
*/
public GBufferedImage getExportImage(double scale);
/**
* @param scale
* ratio of desired size and current size of the graphics
* @param transparency
* true for transparent image
* @return image
* @throws OutOfMemoryError
* if the requested image is too big
*/
public GBufferedImage getExportImage(double scale, boolean transparency,
ExportType exportType)
throws OutOfMemoryError;
/**
* export the current image
*
* @param scale
* scale factor
* @param transparency
* transparent or not
* @param dpi
* resolution
* @param file
* file
* @param exportToClipboard
* if we want to export to clipboard
*/
public void exportImagePNG(double scale, boolean transparency, int dpi,
File file, boolean exportToClipboard, ExportType exportType);
/**
* @return printing scale
*/
public double getPrintingScale();
/**
* Update fonts
*/
public void updateFonts();
/**
* @return export width in pixels
*/
public int getExportWidth();
/**
* @return export height in pixels
*/
public int getExportHeight();
}