Package uk.ac.starlink.ttools.plot2
Interface PlotLayer
-
- All Known Implementing Classes:
AbstractPlotLayer
public interface PlotLayer
Represents a layered element of the plot. When combined with certain other information it can draw data or other graphical elements onto a Surface, and report on the surface region covered by such graphics.- Since:
- 11 Feb 2013
- Author:
- Mark Taylor
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Drawing
createDrawing(Surface surface, java.util.Map<AuxScale,Range> auxRanges, PaperType paperType)
Creates a drawing from this layer that can contribute to a user-visible plot.void
extendCoordinateRanges(Range[] ranges, boolean[] logFlags, DataStore dataStore)
Gives this layer a chance to adjust the coordinate ranges assembled during data ranging.java.util.Map<AuxScale,AuxReader>
getAuxRangers()
Returns a map indicating what additional ranging needs to be done on the input data before this layer can be drawn.DataGeom
getDataGeom()
Returns the data geometry used by this layer.DataSpec
getDataSpec()
Returns the data spec that defines the data used by this layer.LayerOpt
getOpt()
Returns an object that describes some facts about how this layer draws itself used for rendering.Plotter
getPlotter()
Returns the plotter that generated this layer.Style
getStyle()
Returns the plot style used by this layer.
-
-
-
Method Detail
-
getPlotter
Plotter getPlotter()
Returns the plotter that generated this layer. Used to help determine whether this layer is the same as another one.- Returns:
- parent plotter
-
getStyle
Style getStyle()
Returns the plot style used by this layer.- Returns:
- plot style
-
getDataGeom
DataGeom getDataGeom()
Returns the data geometry used by this layer. This can be used in conjunction with the DataSpec to determine the base positions in data space of what has been plotted. Depending on the nature of the returned object, these positions may be actual points in the data space, or some higher-dimensional object. If null is returned, no such information is available.- Returns:
- data geom, or null
-
extendCoordinateRanges
void extendCoordinateRanges(Range[] ranges, boolean[] logFlags, DataStore dataStore)
Gives this layer a chance to adjust the coordinate ranges assembled during data ranging. Supplied is an array of range objects, each corresponding to one of the data position dimensions (it hassurface.getDataDimCount
elements). If this layer needs to adjust these ranges beyond what is implied by the result ofgetDataGeom
, it may be done here. The implementation may or may not need to acquire a tuple sequence from the supplieddataStore
.An array of flags indicating whether each range corresponds to a logarithmic axis is also supplied (same number of eements as
ranges
). This may or may not make physical sense for a given case - if in doubt, false elements are given.In many cases (especially for point-plotting type layers) the implementation of this method will be a no-operation.
- Parameters:
ranges
- array of data space dimension ranges, may be adjustedlogFlags
- array of scaling flags (false=linear, true=log) corresponding toranges
arraydataStore
- data storage object
-
getDataSpec
DataSpec getDataSpec()
Returns the data spec that defines the data used by this layer. May be null if no tabular data is required.- Returns:
- data spec, or null
-
getAuxRangers
java.util.Map<AuxScale,AuxReader> getAuxRangers()
Returns a map indicating what additional ranging needs to be done on the input data before this layer can be drawn. Each key of the returned map represents a range that needs to be determined; such keys may be shared between layers in the same plot. The corresponding value is an object that can be used to (help) determine the range from the data.Note that ranging of the plot surface axes themselves is handled elsewhere.
- Returns:
- range scales required for plot
-
getOpt
LayerOpt getOpt()
Returns an object that describes some facts about how this layer draws itself used for rendering.- Returns:
- layer option flags
-
createDrawing
Drawing createDrawing(Surface surface, java.util.Map<AuxScale,Range> auxRanges, PaperType paperType)
Creates a drawing from this layer that can contribute to a user-visible plot. TheauxRanges
parameter is a map that must contain a populated Range object for (at least) every scale returned as a key of the map returned bygetAuxRangers()
.If this layer is unable to draw to the given paper type, an unchecked exception may be thrown. In general it's up to the plotting system to ensure that layers are only painted on suitable paper types. This logic is in
PlotType
.- Parameters:
surface
- plot surfaceauxRanges
- range informationpaperType
- rendering object
-
-