public double[] isSelected(int[] screenCoordTest, AbstractDrawer draw) { for (int i = 0; i < XY.length; i++) { int[] screenCoord = draw.project(XY[i]); if ((screenCoord[0] + note_precision > screenCoordTest[0]) && (screenCoord[0] - note_precision < screenCoordTest[0]) && (screenCoord[1] + note_precision > screenCoordTest[1]) && (screenCoord[1] - note_precision < screenCoordTest[1])) return XY[i]; } return null; }
public void plot(AbstractDrawer draw, Color c) { if (!visible) return; draw.canvas.includeInBounds(bottomLeft[0]); draw.canvas.includeInBounds(topRight[XY.length - 1]); draw.setColor(c); draw.setLineType(AbstractDrawer.CONTINOUS_LINE); int xyl = XY.length; if (xyl < PlotGlobals.limitPlotPoints || PlotGlobals.skipPointsOnPlot == false) { for (int i = 0; i < XY.length; i++) { draw.drawLine(bottomLeft[i], topLeft[i]); draw.drawLine(topLeft[i], topRight[i]); draw.drawLine(topRight[i], bottomRight[i]); draw.drawLine(bottomRight[i], bottomLeft[i]); if (fill_shape) draw.fillPolygon(0.2f, bottomLeft[i], topLeft[i], topRight[i], bottomRight[i]); } } else { int skipPoints = ((int) (xyl / PlotGlobals.limitPlotPoints)) + 1; for (int i = 0; i < XY.length - skipPoints - 1; i += skipPoints) { draw.drawLine(bottomLeft[i], topLeft[i]); draw.drawLine(topLeft[i], topRight[i]); draw.drawLine(topRight[i], bottomRight[i]); draw.drawLine(bottomRight[i], bottomLeft[i]); if (fill_shape) draw.fillPolygon(0.2f, bottomLeft[i], topLeft[i], topRight[i], bottomRight[i]); } } }