Class ShapePlotter
- All Implemented Interfaces:
ModePlotter<ShapeStyle>,ShapeModePlotter,Plotter<ShapeStyle>
- Direct Known Subclasses:
ArrayShapePlotter
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.
- Since:
- 18 Feb 2013
- Author:
- Mark Taylor
-
Nested Class Summary
Nested classes/interfaces inherited from interface uk.ac.starlink.ttools.plot2.layer.ModePlotter
ModePlotter.Form, ModePlotter.Mode -
Constructor Summary
ConstructorsModifierConstructorDescriptionShapePlotter(String name, ShapeForm form, ShapeMode mode) Constructs a ShapePlotter with a coord group determined from its supplied form and mode.protectedShapePlotter(String name, ShapeForm form, ShapeMode mode, CoordGroup cgrp) Constructs a ShapePlotter with a given coord group. -
Method Summary
Modifier and TypeMethodDescriptionstatic ShapePlottercreateFlat2dPlotter(ShapeForm form) Creates a single ShapePlotter using mode flat.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.createStyle(ConfigMap config) Creates a style that can be used when creating a plot layer.getForm()Returns the form of this plotter.getMode()Returns the mode of this plotter.intgetModeCoordsIndex(DataGeom geom) Returns the index into a dataspec used by this plotter at which the first of its ShapeMode's "extra" coordinates is found.Returns an XML description of this plotter.ConfigKey<?>[]Returns the configuration keys used to configure style for this plotter.Methods inherited from class uk.ac.starlink.ttools.plot2.layer.AbstractPlotter
getCoordGroup, getPlotterIcon, getPlotterName, getRangeStyleKey, hasReportsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface uk.ac.starlink.ttools.plot2.Plotter
getCoordGroup, getPlotterIcon, getPlotterName, getRangeStyleKey, hasReports
-
Constructor Details
-
ShapePlotter
Constructs a ShapePlotter with a coord group determined from its supplied form and mode.- Parameters:
name- plotter nameform- shape determinermode- colour determiner
-
ShapePlotter
Constructs a ShapePlotter with a given coord group.- Parameters:
name- plotter nameform- shape determinermode- colour determinercgrp- coordinate group
-
-
Method Details
-
getForm
Description copied from interface:ModePlotterReturns the form of this plotter.- Specified by:
getFormin interfaceModePlotter<ShapeStyle>- Specified by:
getFormin interfaceShapeModePlotter- Returns:
- plotter form
-
getMode
Description copied from interface:ModePlotterReturns the mode of this plotter.- Specified by:
getModein interfaceModePlotter<ShapeStyle>- Specified by:
getModein interfaceShapeModePlotter- Returns:
- plotter mode
-
getPlotterDescription
Description copied from interface:PlotterReturns an XML description of this plotter.Note: really this should appear at the LayerType level.
- Specified by:
getPlotterDescriptionin interfacePlotter<ShapeStyle>- Returns:
- one or more <p> elements
-
getStyleKeys
Description copied from interface:PlotterReturns the configuration keys used to configure style for this plotter. The keys in the return value are used in the map supplied to thePlotter.createStyle(uk.ac.starlink.ttools.plot2.config.ConfigMap)method.- Specified by:
getStyleKeysin interfacePlotter<ShapeStyle>- Returns:
- keys used when creating a style for this plotter.
-
createStyle
Description copied from interface:PlotterCreates a style that can be used when creating a plot layer. The keys that are significant in the supplied config map are those returned byPlotter.getStyleKeys(). The return value can be used as input toPlotter.createLayer(uk.ac.starlink.ttools.plot2.DataGeom, uk.ac.starlink.ttools.plot2.data.DataSpec, S).- Specified by:
createStylein interfacePlotter<ShapeStyle>- Parameters:
config- map of style configuration items- Returns:
- plotter-specific plot style
-
createLayer
Description copied from interface:PlotterCreates a PlotLayer based on the given geometry, data and style.The
styleparameter is the result of a call toPlotter.createStyle(uk.ac.starlink.ttools.plot2.config.ConfigMap).The
dataSpecparameter must contain the coordinates defined by this plotter's CoordGroup.The
pointDataGeomparameter is only used if theCoordGroup.getBasicPositionCount()orCoordGroup.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.
- Specified by:
createLayerin interfacePlotter<ShapeStyle>- Parameters:
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 fromcreateStyle- Returns:
- new plot layer, or null if no drawing will take place
-
getModeCoordsIndex
Returns the index into a dataspec used by this plotter at which the first of its ShapeMode's "extra" coordinates is found.- Parameters:
geom- data position coordinate description- Returns:
- index of first mode-specific coordinate
-
createShapePlotters
Creates an array of ShapeModePlotters, using all combinations of the specified list of ShapeForms and ShapeModes. Since these implement theModePlotterinterface, other parts of the UI may be able to group them.- Parameters:
forms- array of shape formsmodes- array of shape modes- Returns:
forms.length*modes.length-element array of plotters
-
createFlat2dPlotter
Creates a single ShapePlotter using mode flat. Suitable for 2d plot types only. The returned object is not aModePlotter, so will not be ganged together with other ShapePlotters.- Parameters:
form- shape form- Returns:
- new 2d plotter
-