public Point[] getPoints() { Point[] points = new Point[getNumPoints()]; for (int i = 0; i < getNumPoints(); i++) { points[i] = getPointAt(i); } return points; }
private ColorPaletteDef.Point getGradationCurvePointAt(int index) { return getImageInfo().getColorPaletteDef().getPointAt(index); }
@Override public Object getValueAt(int rowIndex, int columnIndex) { final ColorPaletteDef.Point point = getImageInfo().getColorPaletteDef().getPointAt(rowIndex); if (columnIndex == 0) { final Color color = point.getColor(); return color.equals(ImageInfo.NO_COLOR) ? null : color; } else if (columnIndex == 1) { return point.getSample(); } return null; }
@Override public double getSliderSample(int index) { return getImageInfo().getColorPaletteDef().getPointAt(index).getSample(); }
/** * Sets the colours of the colour palette of this image info. * * @param colors the new colours */ public void setColors(Color[] colors) { ColorPaletteDef cpd = getColorPaletteDef(); int numPoints = cpd.getNumPoints(); for (int i = 0; i < numPoints; i++) { ColorPaletteDef.Point point = cpd.getPointAt(i); point.setColor(colors[i % colors.length]); } }
@Override public Color getSliderColor(int index) { return getImageInfo().getColorPaletteDef().getPointAt(index).getColor(); }
private static void transferPoints(ColorPaletteDef sourceCPD, double minSample, double maxSample, boolean autoDistribute, ColorPaletteDef targetCPD) { if (autoDistribute || sourceCPD.isAutoDistribute()) { alignNumPoints(sourceCPD, targetCPD); double minDisplaySample = sourceCPD.getMinDisplaySample(); double maxDisplaySample = sourceCPD.getMaxDisplaySample(); double delta1 = (maxSample > minSample) ? maxSample - minSample : 1.0; double delta2 = (maxDisplaySample > minDisplaySample) ? maxDisplaySample - minDisplaySample : 1.0; double b = delta1 / delta2; double a = minSample - minDisplaySample * b; for (int i = 0; i < sourceCPD.getNumPoints(); i++) { targetCPD.getPointAt(i).setSample(a + b * sourceCPD.getPointAt(i).getSample()); targetCPD.getPointAt(i).setColor(sourceCPD.getPointAt(i).getColor()); targetCPD.getPointAt(i).setLabel(sourceCPD.getPointAt(i).getLabel()); } } else { targetCPD.setPoints(sourceCPD.getPoints().clone()); } }
private Color computeColor(final double sample) { for (int i = 0; i < getNumPoints() - 1; i++) { final Point p1 = getPointAt(i); final Point p2 = getPointAt(i + 1); final double sample1 = p1.getSample(); final double sample2 = p2.getSample(); final Color color1 = p1.getColor(); final Color color2 = p2.getColor(); if (sample >= sample1 && sample <= sample2) { if (discrete) { return color1; } else { return computeColor(sample, sample1, sample2, color1, color2); } } } return Color.BLACK; }
@Override public void setSliderSample(int index, double sample) { getImageInfo().getColorPaletteDef().getPointAt(index).setSample(sample); fireStateChanged(); }
@Override public void setSliderColor(int index, Color color) { getImageInfo().getColorPaletteDef().getPointAt(index).setColor(color); fireStateChanged(); }
/** * creates a new point between the point at the given index * * @param index the index * @param scaling the scaling * * @return true, if a point has been inserted */ public boolean createPointAfter(int index, Scaling scaling) { Point point1 = getPointAt(index); Point point2 = null; if (index < points.indexOf(points.lastElement())) { point2 = getPointAt(index + 1); } final Point newPoint; if (point2 != null) { final double max = Math.max(point1.getSample(), point2.getSample()); final double min = Math.min(point1.getSample(), point2.getSample()); final double middle; middle = scaling.scale(0.5 * (scaling.scaleInverse(min) + scaling.scaleInverse(max))); newPoint = new Point(middle, getCenterColor(point1.getColor(), point2.getColor())); insertPointAfter(index, newPoint); return true; } return false; }
private static BorderSamplesAndColors getBorderSamplesAndColors(ImageInfo imageInfo, int pointIdx, BorderSamplesAndColors boSaCo) { if (boSaCo == null) { boSaCo = new BorderSamplesAndColors(); } final boolean logScaled = imageInfo.isLogScaled(); final ColorPaletteDef cpd = imageInfo.getColorPaletteDef(); final ColorPaletteDef.Point p1 = cpd.getPointAt(pointIdx); final ColorPaletteDef.Point p2 = cpd.getPointAt(pointIdx + 1); if (logScaled) { boSaCo.sample1 = getSampleLog(p1); boSaCo.sample2 = getSampleLog(p2); } else { boSaCo.sample1 = getSample(p1); boSaCo.sample2 = getSample(p2); } boSaCo.color1 = p1.getColor(); boSaCo.color2 = p2.getColor(); return boSaCo; }
@Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { final ColorPaletteDef.Point point = getImageInfo().getColorPaletteDef().getPointAt(rowIndex); if (columnIndex == 0) { final Color color = (Color) aValue; point.setColor(color == null ? ImageInfo.NO_COLOR : color); fireTableCellUpdated(rowIndex, columnIndex); } else if (columnIndex == 1) { point.setSample((Double) aValue); fireTableCellUpdated(rowIndex, columnIndex); } }
private void testPalette(ColorPaletteDef palette, Color[] colors) { assertEquals(colors.length, palette.getPoints().length); for (int i = 0; i < colors.length; i++) { assertEquals(colors[i], palette.getPointAt(i).getColor()); } }
@Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { if (getImageInfo() == null) { return; } final ColorPaletteDef.Point point = getImageInfo().getColorPaletteDef().getPointAt(rowIndex); if (columnIndex == 0) { point.setLabel((String) aValue); fireTableCellUpdated(rowIndex, columnIndex); parentForm.applyChanges(); } else if (columnIndex == 1) { final Color color = (Color) aValue; point.setColor(color == null ? ImageInfo.NO_COLOR : color); fireTableCellUpdated(rowIndex, columnIndex); parentForm.applyChanges(); } }
assertEquals(256, cpd.getNumColors()); assertEquals(3, cpd.getNumPoints()); assertEquals(-1.0, cpd.getPointAt(0).getSample(), 1e-10); assertEquals(+0.0, cpd.getPointAt(1).getSample(), 1e-10); assertEquals(+1.0, cpd.getPointAt(2).getSample(), 1e-10); assertEquals(Color.BLACK, cpd.getPointAt(0).getColor()); assertEquals(Color.GRAY, cpd.getPointAt(1).getColor()); assertEquals(Color.WHITE, cpd.getPointAt(2).getColor()); assertEquals(-1.0, cpd.getPointAt(0).getSample(), 1e-10); assertEquals(+0.5, cpd.getPointAt(1).getSample(), 1e-10); assertEquals(+1.0, cpd.getPointAt(2).getSample(), 1e-10); assertEquals(Color.BLACK, cpd.getPointAt(0).getColor()); assertEquals(Color.GRAY, cpd.getPointAt(1).getColor()); assertEquals(Color.WHITE, cpd.getPointAt(2).getColor());
return null; final ColorPaletteDef.Point point = getImageInfo().getColorPaletteDef().getPointAt(rowIndex); if (columnIndex == 0) { return point.getLabel();