Class AbstractSpaceTimePlot<S extends org.opentrafficsim.animation.graphs.AbstractPlot.PaintState>

Type Parameters:
S - paint state type
All Implemented Interfaces:
Identifiable, org.jfree.data.general.Dataset
Direct Known Subclasses:
AbstractContourPlot, TrajectoryPlot

public abstract class AbstractSpaceTimePlot<S extends org.opentrafficsim.animation.graphs.AbstractPlot.PaintState> extends AbstractBoundedPlot<S>
Plots with space-time. This class adds some zoom control, where a user can manually select a zoom range, or the plot automatically zooms over the entire space range, and either the entire or some most recent fixed period in time.

Copyright (c) 2013-2026 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Author:
Alexander Verbraeck, Peter Knoppers, Wouter Schakel
  • Constructor Details

    • AbstractSpaceTimePlot

      public AbstractSpaceTimePlot(String caption, org.djunits.value.vdouble.scalar.Duration updateInterval, PlotScheduler scheduler, org.djunits.value.vdouble.scalar.Duration delay, org.djunits.value.vdouble.scalar.Duration initialEnd)
      Constructor.
      Parameters:
      caption - caption
      updateInterval - regular update interval (simulation time)
      scheduler - scheduler
      delay - amount of time that chart runs behind simulation to prevent gaps in the charted data
      initialEnd - initial end time of plots, will be expanded if simulation time exceeds it
  • Method Details

    • setChart

      protected void setChart(org.jfree.chart.JFreeChart chart)
      Description copied from class: AbstractPlot
      Sets the chart and adds menus and listeners.
      Overrides:
      setChart in class AbstractBoundedPlot<S extends org.opentrafficsim.animation.graphs.AbstractPlot.PaintState>
      Parameters:
      chart - chart
    • setPaintState

      protected void setPaintState()
      Description copied from class: AbstractPlot
      Sets the paint state in a thread safe manner and notifies the listeners. This method is always invoked on the Swing EDT. This method may be overridden to use a newly set paint state (after calling super.setPaintState()) to set internal properties. For example, setting the block size of an internal block renderer based on the granularity of the data.
      Overrides:
      setPaintState in class AbstractPlot<S extends org.opentrafficsim.animation.graphs.AbstractPlot.PaintState>
    • updateFixedDomainRange

      public void updateFixedDomainRange(boolean fixed)
      Update the fixed-ness of the domain range.
      Parameters:
      fixed - if true; the domain range will not update when new data becomes available; if false; the domain range will update to show newly available data
    • setAutoBoundDomain

      public final void setAutoBoundDomain(org.jfree.chart.plot.XYPlot plot)
      Overridable; activates auto bounds on domain axis from user input. This class does not force the use of XYPlots, but the auto bounds command comes from the ChartPanel that shows this plot. In case the used plot is a XYPlot, this method is then invoked. Sub classes with auto domain bounds that work with an XYPlot should implement this. The method is not abstract as the use of XYPlot is not obligated. This implementation overrides to reset user-disabled auto-bounds.
      Overrides:
      setAutoBoundDomain in class AbstractBoundedPlot<S extends org.opentrafficsim.animation.graphs.AbstractPlot.PaintState>
      Parameters:
      plot - plot
    • setAutoBoundRange

      public final void setAutoBoundRange(org.jfree.chart.plot.XYPlot plot)
      Overridable; activates auto bounds on range axis from user input. This class does not force the use of XYPlots, but the auto bounds command comes from the ChartPanel that shows this plot. In case the used plot is a XYPlot, this method is then invoked. Sub classes with auto range bounds that work with an XYPlot should implement this. The method is not abstract as the use of XYPlot is not obligated. This implementation overrides to reset user-disabled auto-bounds.
      Overrides:
      setAutoBoundRange in class AbstractBoundedPlot<S extends org.opentrafficsim.animation.graphs.AbstractPlot.PaintState>
      Parameters:
      plot - plot
    • getEndLocation

      protected abstract org.djunits.value.vdouble.scalar.Length getEndLocation()
      Returns the total space.
      Returns:
      total space