package edu.byu.cs.roots.opg.chart; import java.awt.Point; import edu.byu.cs.roots.opg.chart.cmds.DrawState; public class ChartConversion { public static Point convertToScreenCoord(Point chartCoord, double zoom, DrawState state) { return new Point((int)convertDoubleToScreenDouble(chartCoord.x, zoom, state.chartLeftToDisplay), (int)convertDoubleToScreenDouble(chartCoord.y, zoom, state.chartTopToDisplay)); } public static Point convertToChartCoord(Point screenCoord, double zoom, DrawState state) { return new Point((int)convertDoubleToChartDouble(screenCoord.x, zoom, state.chartLeftToDisplay), (int)convertDoubleToChartDouble(screenCoord.y, zoom, state.chartTopToDisplay)); } public static double convertToScreenSize(double input, double zoom) { return input * zoom; } public static double convertToChartSize(double input, double zoom) { return input / zoom; } public static double convertDoubleToChartDouble(double input, double zoom, double offset) { return ((input - offset) / zoom); } public static double convertDoubleToScreenDouble(double input, double zoom, double offset) { return ((input * zoom) + offset); } public static Point convertMousePixelToChartPoint(Point mouse, double zoom, double yOffset, double xOffset) { int mX = mouse.x; int mY = mouse.y; return new Point((int)((mX - xOffset) / zoom), (int)((mY - yOffset) / zoom)); } }