Skip to content

Commit

Permalink
Rework cyclops palette package, add Gradient class for managing map c…
Browse files Browse the repository at this point in the history
…olour schemes
  • Loading branch information
nathanielsherry committed Jun 10, 2024
1 parent 266cd5d commit 4ee53a4
Show file tree
Hide file tree
Showing 27 changed files with 379 additions and 978 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.peakaboo.framework.cyclops.visualization.drawing.map.painters.MapPainter;
import org.peakaboo.framework.cyclops.visualization.drawing.painters.PainterData;
import org.peakaboo.framework.cyclops.visualization.drawing.painters.axis.AxisPainter;
import org.peakaboo.framework.cyclops.visualization.palette.palettes.AbstractPalette;
import org.peakaboo.framework.cyclops.visualization.palette.Palette;

/**
*
Expand Down Expand Up @@ -44,7 +44,7 @@ public class MapDrawing extends Drawing
* the {@link Color} palettes for drawing maps
* @see DrawingRequest
* @see Color
* @see AbstractPalette
* @see Palette
*/
public MapDrawing(Surface context, DrawingRequest dr, List<AxisPainter> axisPainters)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import org.peakaboo.framework.cyclops.visualization.drawing.painters.PainterData;
import org.peakaboo.framework.cyclops.visualization.palette.PaletteColour;
import org.peakaboo.framework.cyclops.visualization.palette.palettes.SingleColourPalette;
import org.peakaboo.framework.cyclops.visualization.palette.SingleColourPalette;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
import org.peakaboo.framework.cyclops.visualization.drawing.map.MapDrawing;
import org.peakaboo.framework.cyclops.visualization.drawing.painters.Painter;
import org.peakaboo.framework.cyclops.visualization.drawing.painters.PainterData;
import org.peakaboo.framework.cyclops.visualization.palette.Palette;
import org.peakaboo.framework.cyclops.visualization.palette.PaletteColour;
import org.peakaboo.framework.cyclops.visualization.palette.palettes.AbstractPalette;

/**
*
Expand All @@ -29,17 +29,17 @@ public abstract class MapPainter extends Painter
{


protected List<AbstractPalette> colourRules;
protected List<Palette> colourRules;


protected MapPainter(List<AbstractPalette> colourRules)
protected MapPainter(List<Palette> colourRules)
{
this.colourRules = colourRules;
}

protected MapPainter(AbstractPalette colourRule)
protected MapPainter(Palette colourRule)
{
List<AbstractPalette> rules = new ArrayList<>();
List<Palette> rules = new ArrayList<>();
rules.add(colourRule);
this.colourRules = rules;
}
Expand All @@ -57,7 +57,7 @@ public PaletteColour getColourFromRules(double intensity, double maximum)

PaletteColour c;

for (AbstractPalette r : colourRules) {
for (Palette r : colourRules) {
c = r.getFillColour(intensity, maximum);
if (c != null) return c;
}
Expand All @@ -66,12 +66,12 @@ public PaletteColour getColourFromRules(double intensity, double maximum)

}

public void setPalette(AbstractPalette palette)
public void setPalette(Palette palette)
{
colourRules.clear();
colourRules.add(palette);
}
public void setPalettes(List<AbstractPalette> palettes)
public void setPalettes(List<Palette> palettes)
{
colourRules.clear();
colourRules.addAll(palettes);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,25 @@
import java.util.List;

import org.peakaboo.framework.cyclops.spectrum.Spectrum;
import org.peakaboo.framework.cyclops.visualization.palette.palettes.AbstractPalette;
import org.peakaboo.framework.cyclops.visualization.palette.palettes.ThermalScalePalette;
import org.peakaboo.framework.cyclops.visualization.palette.Palette;


public class MapTechniqueFactory
{

private MapTechniqueFactory() {}

public static SpectrumMapPainter getTechnique(List<AbstractPalette> colourRules, Spectrum data)
public static SpectrumMapPainter getTechnique(List<Palette> colourRules, Spectrum data)
{
return new RasterSpectrumMapPainter(colourRules, data);
}

public static SpectrumMapPainter getTechnique(AbstractPalette colourRule, Spectrum data)
public static SpectrumMapPainter getTechnique(Palette colourRule, Spectrum data)
{
List<AbstractPalette> colourRules = new ArrayList<>();
List<Palette> colourRules = new ArrayList<>();
colourRules.add(colourRule);

return getTechnique(colourRules, data);
}

public static SpectrumMapPainter getDefaultTechnique(Spectrum data)
{
AbstractPalette palette = new ThermalScalePalette();
List<AbstractPalette> paletteList = new ArrayList<>();
paletteList.add(palette);
return new RasterSpectrumMapPainter(paletteList, data);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import org.peakaboo.framework.cyclops.visualization.drawing.DrawingRequest;
import org.peakaboo.framework.cyclops.visualization.drawing.painters.PainterData;
import org.peakaboo.framework.cyclops.visualization.palette.PaletteColour;
import org.peakaboo.framework.cyclops.visualization.palette.palettes.SingleColourPalette;
import org.peakaboo.framework.cyclops.visualization.palette.SingleColourPalette;

import it.unimi.dsi.fastutil.ints.IntArrayList;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import org.peakaboo.framework.cyclops.visualization.Buffer;
import org.peakaboo.framework.cyclops.visualization.drawing.ViewTransform;
import org.peakaboo.framework.cyclops.visualization.drawing.painters.PainterData;
import org.peakaboo.framework.cyclops.visualization.palette.Palette;
import org.peakaboo.framework.cyclops.visualization.palette.PaletteColour;
import org.peakaboo.framework.cyclops.visualization.palette.palettes.AbstractPalette;

/**
*
Expand All @@ -24,13 +24,13 @@ public class RasterSpectrumMapPainter extends SpectrumMapPainter
protected Buffer buffer;


public RasterSpectrumMapPainter(List<AbstractPalette> colourRules, Spectrum data)
public RasterSpectrumMapPainter(List<Palette> colourRules, Spectrum data)
{
super(colourRules, data);
}


public RasterSpectrumMapPainter(AbstractPalette colourRule, Spectrum data)
public RasterSpectrumMapPainter(Palette colourRule, Spectrum data)
{
super(colourRule, data);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
import java.util.List;

import org.peakaboo.framework.cyclops.spectrum.Spectrum;
import org.peakaboo.framework.cyclops.visualization.palette.palettes.AbstractPalette;
import org.peakaboo.framework.cyclops.visualization.palette.Palette;

public abstract class SpectrumMapPainter extends MapPainter
{

protected Spectrum data;

protected SpectrumMapPainter(AbstractPalette colourRule, Spectrum data)
protected SpectrumMapPainter(Palette colourRule, Spectrum data)
{
super(colourRule);
this.data = data;
}

protected SpectrumMapPainter(List<AbstractPalette> colourRules, Spectrum data)
protected SpectrumMapPainter(List<Palette> colourRules, Spectrum data)
{
super(colourRules);
this.data = data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,23 @@
import org.peakaboo.framework.cyclops.SigDigits;
import org.peakaboo.framework.cyclops.visualization.drawing.ViewTransform;
import org.peakaboo.framework.cyclops.visualization.drawing.painters.PainterData;
import org.peakaboo.framework.cyclops.visualization.palette.Palette;
import org.peakaboo.framework.cyclops.visualization.palette.PaletteColour;
import org.peakaboo.framework.cyclops.visualization.palette.palettes.AbstractPalette;



public class SpectrumCoordsAxisPainter extends AbstractKeyCoordAxisPainter
{
private int spectrumSteps;
private List<AbstractPalette> colourRules;
private List<Palette> colourRules;
private boolean negativeValues;
private List<Pair<Float, String>> markings;
private int decimalPoints;


public SpectrumCoordsAxisPainter(boolean drawCoords, PaletteColour colour, Coord<Number> coordLoXLoY, Coord<Number> coordHiXLoY,
Coord<Number> coordLoXHiY, Coord<Number> coordHiXHiY, SISize coordinateUnits,
boolean drawSpectrum, int spectrumHeight, int spectrumSteps, List<AbstractPalette> palettes,
boolean drawSpectrum, int spectrumHeight, int spectrumSteps, List<Palette> palettes,
boolean realDimensionsProvided, boolean drawScaleBar)
{
super(
Expand Down Expand Up @@ -56,7 +56,7 @@ public SpectrumCoordsAxisPainter(boolean drawCoords, PaletteColour colour, Coord

public SpectrumCoordsAxisPainter(boolean drawCoords, PaletteColour colour, Coord<Number> coordLoXLoY, Coord<Number> coordHiXLoY,
Coord<Number> coordLoXHiY, Coord<Number> coordHiXHiY, SISize coordinateUnits,
boolean drawSpectrum, int spectrumHeight, int spectrumSteps, List<AbstractPalette> palettes,
boolean drawSpectrum, int spectrumHeight, int spectrumSteps, List<Palette> palettes,
boolean realDimensionsProvided, boolean drawScaleBar, int decimalPoints, boolean negativeValues, List<Pair<Float, String>> markings)
{
super(
Expand Down Expand Up @@ -183,7 +183,7 @@ public PaletteColour getColourFromRules(float intensity, float maximum, ViewTran
maximum = (float)Math.log1p(maximum);
}

for (AbstractPalette r : colourRules)
for (Palette r : colourRules)
{
c = r.getFillColour(intensity, maximum);
if (c != null) return c;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package org.peakaboo.framework.cyclops.visualization.palette.palettes;
package org.peakaboo.framework.cyclops.visualization.palette;

import java.util.List;

import org.peakaboo.framework.cyclops.visualization.palette.PaletteColour;

public class ColourListPalette extends AbstractPalette {
/**
* Accepts a list of evenly spaced {@link PaletteColour}s and provides a
*/
public class ColourListPalette implements Palette {

private List<PaletteColour> spectrum;
private boolean hasNegatives;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package org.peakaboo.framework.cyclops.visualization.palette;

import java.util.List;

public class ColourStopPalette extends ColourListPalette {


public ColourStopPalette(PaletteColour colour) {
this(Gradient.DEFAULT_STEPS, colour);
}

public ColourStopPalette(int steps, PaletteColour colour) {
super(Gradient.extrapolateStops(steps, getMonochromeStops(colour)), false);
}

public ColourStopPalette(Gradient gradient) {
this(Gradient.DEFAULT_STEPS, gradient, false);
}

public ColourStopPalette(Gradient gradient, boolean hasNegatives) {
this(Gradient.DEFAULT_STEPS, gradient, hasNegatives);
}

public ColourStopPalette(int steps, Gradient gradient, boolean hasNegatives) {
super(Gradient.extrapolateStops(steps, gradient), hasNegatives);
}

private static List<Gradient.Stop> getMonochromeStops(PaletteColour c) {
return List.of(
new Gradient.Stop(new PaletteColour(0xff000000), 0),
new Gradient.Stop(c, 1)
);
}

}
Loading

0 comments on commit 4ee53a4

Please sign in to comment.