From 98cb02ee30f8f58bc3a73f2793d4266becfe1967 Mon Sep 17 00:00:00 2001 From: Mark Taylor Date: Thu, 30 Jan 2014 10:56:41 +0000 Subject: [PATCH] ttools: add transparency config item for histogram layer --- .../main/uk/ac/starlink/ttools/plot2/config/StyleKeys.java | 6 ++++++ .../ac/starlink/ttools/plot2/layer/HistogramPlotter.java | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/config/StyleKeys.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/StyleKeys.java index 67cfec9fc8..b0104eff0e 100644 --- a/ttools/src/main/uk/ac/starlink/ttools/plot2/config/StyleKeys.java +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/StyleKeys.java @@ -90,6 +90,12 @@ public Specifier createSpecifier() { .createSliderKey( new ConfigMeta( "translevel", "Transparency Level" ), 0.1, 0.001, 2, true ); + /** Config key for "normal" transparency - it's just 1-alpha. */ + public static final ConfigKey TRANSPARENCY = + DoubleConfigKey.createSliderKey( new ConfigMeta( "transparency", + "Transparency" ), + 0, 0, 1, false ); + /** Config key for line thickness. */ private static final ConfigKey THICKNESS = createThicknessKey( 1 ); diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/layer/HistogramPlotter.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/layer/HistogramPlotter.java index 23ae664401..6da41bb0cd 100644 --- a/ttools/src/main/uk/ac/starlink/ttools/plot2/layer/HistogramPlotter.java +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/layer/HistogramPlotter.java @@ -117,6 +117,7 @@ public CoordGroup getCoordGroup() { public ConfigKey[] getStyleKeys() { return new ConfigKey[] { StyleKeys.COLOR, + StyleKeys.TRANSPARENCY, BinSizer.BINSIZER_KEY, CUMULATIVE_KEY, NORM_KEY, @@ -128,7 +129,11 @@ public ConfigKey[] getStyleKeys() { } public HistoStyle createStyle( ConfigMap config ) { - Color color = config.get( StyleKeys.COLOR ); + Color baseColor = config.get( StyleKeys.COLOR ); + double alpha = 1 - config.get( StyleKeys.TRANSPARENCY ); + float[] rgba = baseColor.getRGBComponents( new float[ 4 ] ); + rgba[ 3 ] *= alpha; + Color color = new Color( rgba[ 0 ], rgba[ 1 ], rgba[ 2 ], rgba[ 3 ] ); BarStyle.Form barForm = config.get( StyleKeys.BAR_FORM ); BarStyle.Placement placement = BarStyle.PLACE_OVER; boolean cumulative = config.get( CUMULATIVE_KEY );