@Override public void handleRasterPropertyChange(ProductNodeEvent event, RasterDataNode raster) { final ImageInfoEditorModel model = imageInfoEditor.getModel(); if (model != null) { if (event.getPropertyName().equals(RasterDataNode.PROPERTY_NAME_STX)) { updateFormModel(parentForm.getProductSceneView()); } else { setLogarithmicDisplay(raster, model.getImageInfo().isLogScaled()); } } }
private double normalizeSample(double sample) { double minDisplaySample = getImageInfo().getColorPaletteDef().getMinDisplaySample(); double maxDisplaySample = getImageInfo().getColorPaletteDef().getMaxDisplaySample(); if (imageInfo.isLogScaled()) { minDisplaySample = Math.log10(imageInfo.getColorPaletteDef().getMinDisplaySample()); maxDisplaySample = Math.log10(imageInfo.getColorPaletteDef().getMaxDisplaySample()); sample = Math.log10(sample); } double delta = maxDisplaySample - minDisplaySample; if (delta == 0 || Double.isNaN(delta)) { delta = 1; } return (sample - minDisplaySample) / delta; }
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; }
final boolean logarithmicDisplay = raster.getImageInfo().isLogScaled(); final boolean rasterIsLog10Scaled = raster.isLog10Scaled(); if (logarithmicDisplay) {
@Override public void updateFormModel(ProductSceneView productSceneView) { final ImageInfoEditorModel oldModel = imageInfoEditor.getModel(); final ImageInfo imageInfo = parentForm.getImageInfo(); final ImageInfoEditorModel newModel = new ImageInfoEditorModel1B(imageInfo); imageInfoEditor.setModel(newModel); final RasterDataNode raster = productSceneView.getRaster(); setLogarithmicDisplay(raster, newModel.getImageInfo().isLogScaled()); if (oldModel != null) { newModel.setHistogramViewGain(oldModel.getHistogramViewGain()); newModel.setMinHistogramViewSample(oldModel.getMinHistogramViewSample()); newModel.setMaxHistogramViewSample(oldModel.getMaxHistogramViewSample()); } if (newModel.getSliderSample(0) < newModel.getMinHistogramViewSample() || newModel.getSliderSample(newModel.getSliderCount() - 1) > newModel.getMaxHistogramViewSample()) { imageInfoEditor.computeZoomInToSliderLimits(); } discreteCheckBox.setDiscreteColorsMode(imageInfo.getColorPaletteDef().isDiscrete()); logDisplayButton.setSelected(newModel.getImageInfo().isLogScaled()); parentForm.revalidateToolViewPaneControl(); }
public static Color computeColor(ImageInfo imageInfo, Double rasterValue) { final ColorPaletteDef cpd = imageInfo.getColorPaletteDef(); if (rasterValue <= cpd.getMinDisplaySample()) { return cpd.getFirstPoint().getColor(); } else if (rasterValue >= cpd.getMaxDisplaySample()) { return cpd.getLastPoint().getColor(); } else { BorderSamplesAndColors boSaCo = new BorderSamplesAndColors(); final boolean logScaled = imageInfo.isLogScaled(); if (logScaled) { rasterValue = Stx.LOG10_SCALING.scale(rasterValue); } for (int i = 0; i < cpd.getNumPoints() - 1; i++) { boSaCo = getBorderSamplesAndColors(imageInfo, i, boSaCo); if (rasterValue >= boSaCo.sample1 && rasterValue <= boSaCo.sample2) { return computeColor(rasterValue, boSaCo); } } } return Color.black; }
public static Color[] createColorPalette(ImageInfo imageInfo) { Debug.assertNotNull(imageInfo); final boolean logScaled = imageInfo.isLogScaled(); final ColorPaletteDef cpd = imageInfo.getColorPaletteDef(); Debug.assertNotNull(cpd);
@Override public void updateFormModel(ProductSceneView productSceneView) { if (!hidden) { ColorPalettesManager.loadAvailableColorPalettes(parentForm.getIODir()); colorPaletteChooser.reloadPalettes(); } final ImageInfo imageInfo = productSceneView.getImageInfo(); final ColorPaletteDef cpd = imageInfo.getColorPaletteDef(); final boolean logScaled = imageInfo.isLogScaled(); final boolean discrete = cpd.isDiscrete(); colorPaletteChooser.setLog10Display(logScaled); colorPaletteChooser.setDiscreteDisplay(discrete); shouldFireChooserEvent = false; colorPaletteChooser.setSelectedColorPaletteDefinition(cpd); shouldFireChooserEvent = true; discreteCheckBox.setDiscreteColorsMode(discrete); logDisplayButton.setSelected(logScaled); parentForm.revalidateToolViewPaneControl(); minField.setValue(cpd.getMinDisplaySample()); maxField.setValue(cpd.getMaxDisplaySample()); }