public class ShapePlotter extends AbstractPlotter<ShapeStyle> implements ShapeModePlotter
The shape plotted at each point is determined by the ShapeForm
and may be fixed (by Style) or parameterised by some other data coordinates.
The colouring for each shape may be fixed (by Style), or influenced by
additional data coordinates and/or by the number of points plotted in
the same place (though the latter may also be implemented by the
PaperType).
The clever stuff is all in the ShapeForm and ShapeMode implementations. This class just combines the characteristics of the two.
ModePlotter.Form, ModePlotter.Mode
Modifier | Constructor and Description |
---|---|
|
ShapePlotter(String name,
ShapeForm form,
ShapeMode mode)
Constructs a ShapePlotter with a coord group determined from
its supplied form and mode.
|
protected |
ShapePlotter(String name,
ShapeForm form,
ShapeMode mode,
CoordGroup cgrp)
Constructs a ShapePlotter with a given coord group.
|
Modifier and Type | Method and Description |
---|---|
static ShapePlotter |
createFlat2dPlotter(ShapeForm form)
Creates a single ShapePlotter using mode flat.
|
PlotLayer |
createLayer(DataGeom geom,
DataSpec dataSpec,
ShapeStyle style)
Creates a PlotLayer based on the given geometry, data and style.
|
static ShapePlotter[] |
createShapePlotters(ShapeForm[] forms,
ShapeMode[] modes)
Creates an array of ShapeModePlotters, using all combinations of the
specified list of ShapeForms and ShapeModes.
|
ShapeStyle |
createStyle(ConfigMap config)
Creates a style that can be used when creating a plot layer.
|
ShapeForm |
getForm()
Returns the form of this plotter.
|
ShapeMode |
getMode()
Returns the mode of this plotter.
|
int |
getModeCoordsIndex(DataGeom geom)
Returns the index into a dataspec used by this plotter at which the
first of its ShapeMode's "extra" coordinates is found.
|
String |
getPlotterDescription()
Returns an XML description of this plotter.
|
ConfigKey<?>[] |
getStyleKeys()
Returns the configuration keys used to configure style for this plotter.
|
getCoordGroup, getPlotterIcon, getPlotterName, getRangeStyleKey, hasReports
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getCoordGroup, getPlotterIcon, getPlotterName, getRangeStyleKey, hasReports
public ShapePlotter(String name, ShapeForm form, ShapeMode mode)
name
- plotter nameform
- shape determinermode
- colour determinerprotected ShapePlotter(String name, ShapeForm form, ShapeMode mode, CoordGroup cgrp)
name
- plotter nameform
- shape determinermode
- colour determinercgrp
- coordinate grouppublic ShapeForm getForm()
ModePlotter
getForm
in interface ModePlotter<ShapeStyle>
getForm
in interface ShapeModePlotter
public ShapeMode getMode()
ModePlotter
getMode
in interface ModePlotter<ShapeStyle>
getMode
in interface ShapeModePlotter
public String getPlotterDescription()
Plotter
Note: really this should appear at the LayerType level.
getPlotterDescription
in interface Plotter<ShapeStyle>
public ConfigKey<?>[] getStyleKeys()
Plotter
Plotter.createStyle(uk.ac.starlink.ttools.plot2.config.ConfigMap)
method.getStyleKeys
in interface Plotter<ShapeStyle>
public ShapeStyle createStyle(ConfigMap config)
Plotter
Plotter.getStyleKeys()
.
The return value can be used as input to Plotter.createLayer(uk.ac.starlink.ttools.plot2.DataGeom, uk.ac.starlink.ttools.plot2.data.DataSpec, S)
.createStyle
in interface Plotter<ShapeStyle>
config
- map of style configuration itemspublic PlotLayer createLayer(DataGeom geom, DataSpec dataSpec, ShapeStyle style)
Plotter
The style
parameter is the result of a call to
Plotter.createStyle(uk.ac.starlink.ttools.plot2.config.ConfigMap)
.
The dataSpec
parameter must contain the coordinates
defined by this plotter's CoordGroup.
The pointDataGeom
parameter is only used if the
CoordGroup.getBasicPositionCount()
or
CoordGroup.getExtraPositionCount()
method from this plotter's CoordGroup return a non-zero value,
otherwise the plot does not have point positions.
It is legal to supply null for any of the parameters; if insufficient data is supplied to generate a plot, then the method should return null.
Creating a layer should be cheap; layers may be created and not used.
createLayer
in interface Plotter<ShapeStyle>
geom
- indicates base position coordinates and their
mapping to points in the data spacedataSpec
- specifies the data required for the plotstyle
- data style as obtained from createStyle
public int getModeCoordsIndex(DataGeom geom)
geom
- data position coordinate descriptionpublic static ShapePlotter[] createShapePlotters(ShapeForm[] forms, ShapeMode[] modes)
ModePlotter
interface,
other parts of the UI may be able to group them.forms
- array of shape formsmodes
- array of shape modesforms.length*modes.length
-element array of plotterspublic static ShapePlotter createFlat2dPlotter(ShapeForm form)
ModePlotter
, so will not be
ganged together with other ShapePlotters.form
- shape formCopyright © 2024 Central Laboratory of the Research Councils. All Rights Reserved.