Class WrapperPlotLayer

  • All Implemented Interfaces:
    PlotLayer

    public class WrapperPlotLayer
    extends java.lang.Object
    implements PlotLayer
    PlotLayer implementation that delegates all its behaviour to a base instance.
    Since:
    22 Jan 2021
    Author:
    Mark Taylor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Drawing createDrawing​(Surface surface, java.util.Map<AuxScale,​Span> auxSpans, 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • WrapperPlotLayer

        public WrapperPlotLayer​(PlotLayer base)
        Constructor.
        Parameters:
        base - base instance
    • Method Detail

      • getPlotter

        public Plotter<?> getPlotter()
        Description copied from interface: PlotLayer
        Returns the plotter that generated this layer. Used to help determine whether this layer is the same as another one.
        Specified by:
        getPlotter in interface PlotLayer
        Returns:
        parent plotter
      • getStyle

        public Style getStyle()
        Description copied from interface: PlotLayer
        Returns the plot style used by this layer.
        Specified by:
        getStyle in interface PlotLayer
        Returns:
        plot style
      • getDataGeom

        public DataGeom getDataGeom()
        Description copied from interface: PlotLayer
        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.
        Specified by:
        getDataGeom in interface PlotLayer
        Returns:
        data geom, or null
      • getDataSpec

        public DataSpec getDataSpec()
        Description copied from interface: PlotLayer
        Returns the data spec that defines the data used by this layer. May be null if no tabular data is required.
        Specified by:
        getDataSpec in interface PlotLayer
        Returns:
        data spec, or null
      • extendCoordinateRanges

        public void extendCoordinateRanges​(Range[] ranges,
                                           boolean[] logFlags,
                                           DataStore dataStore)
        Description copied from interface: PlotLayer
        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 has surface.getDataDimCount elements). If this layer needs to adjust these ranges beyond what is implied by the result of getDataGeom, it may be done here. The implementation may or may not need to acquire a tuple sequence from the supplied dataStore.

        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.

        Specified by:
        extendCoordinateRanges in interface PlotLayer
        Parameters:
        ranges - array of data space dimension ranges, may be adjusted
        logFlags - array of scaling flags (false=linear, true=log) corresponding to ranges array
        dataStore - data storage object
      • getAuxRangers

        public java.util.Map<AuxScale,​AuxReader> getAuxRangers()
        Description copied from interface: PlotLayer
        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.

        Specified by:
        getAuxRangers in interface PlotLayer
        Returns:
        range scales required for plot
      • getOpt

        public LayerOpt getOpt()
        Description copied from interface: PlotLayer
        Returns an object that describes some facts about how this layer draws itself used for rendering.
        Specified by:
        getOpt in interface PlotLayer
        Returns:
        layer option flags
      • createDrawing

        public Drawing createDrawing​(Surface surface,
                                     java.util.Map<AuxScale,​Span> auxSpans,
                                     PaperType paperType)
        Description copied from interface: PlotLayer
        Creates a drawing from this layer that can contribute to a user-visible plot. The auxSpans parameter is a map that must contain a Span object for (at least) every scale returned as a key of the map returned by PlotLayer.getAuxRangers().

        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.

        Specified by:
        createDrawing in interface PlotLayer
        Parameters:
        surface - plot surface
        auxSpans - range information
        paperType - rendering object