public class TrajectoryPlot extends AbstractOTSPlot implements org.jfree.data.xy.XYDataset, LaneBasedGTUSampler, nl.tudelft.simulation.event.EventListenerInterface
Copyright (c) 2013-2016 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
$LastChangedDate: 2015-09-14 01:33:02 +0200 (Mon, 14 Sep 2015) $, @version $Revision: 1401 $, by $Author: averbraeck $,
initial version Jul 24, 2014
Modifier and Type | Class and Description |
---|---|
(package private) class |
TrajectoryPlot.FixedSampleRateTrajectory
Store trajectory data for use with a fixed sample rate.
|
(package private) static interface |
TrajectoryPlot.Trajectory
Common interface for both (all?) types of trajectories.
|
(package private) class |
TrajectoryPlot.VariableSampleRateTrajectory
Store trajectory data for use with a variable sample rate.
|
JFrame.AccessibleJFrame
Frame.AccessibleAWTFrame
Window.AccessibleAWTWindow, Window.Type
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
GRAPH_ADD_EVENT, GRAPH_REMOVE_EVENT
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
TrajectoryPlot(String caption,
org.djunits.value.vdouble.scalar.Duration sampleInterval,
List<Lane> path,
org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface simulator)
Create a new TrajectoryPlot.
|
Modifier and Type | Method and Description |
---|---|
void |
actionPerformed(ActionEvent e) |
protected void |
addData(LaneBasedGTU gtu,
Lane lane,
double posOnLane)
Add data for a GTU on a lane to this graph.
|
protected org.jfree.chart.JFreeChart |
createChart(JFrame container)
Create the visualization.
|
double |
getCumulativeLength(int index)
Retrieve the cumulative length of the sampled path at the end of a path element.
|
org.jfree.data.DomainOrder |
getDomainOrder() |
GraphType |
getGraphType()
Return the graph type.
|
org.jfree.data.general.DatasetGroup |
getGroup() |
int |
getItemCount(int series) |
org.djunits.value.vdouble.scalar.Time |
getMaximumTime() |
org.djunits.value.vdouble.scalar.Duration |
getSampleInterval() |
int |
getSeriesCount() |
Comparable<Integer> |
getSeriesKey(int series) |
Number |
getX(int series,
int item) |
double |
getXValue(int series,
int item) |
Number |
getY(int series,
int item) |
double |
getYValue(int series,
int item) |
int |
indexOf(Comparable seriesKey) |
void |
notify(nl.tudelft.simulation.event.EventInterface event) |
void |
reGraph()
Force redrawing of the graph.
|
void |
sample()
Sample all the GTUs on the observed lanes.
|
void |
setGroup(org.jfree.data.general.DatasetGroup group) |
void |
setMaximumTime(org.djunits.value.vdouble.scalar.Time maximumTime) |
String |
toString() |
addChangeListener, addViewer, generatePNG, getCaption, getId, getListenerList, getPath, notifyListeners, removeChangeListener, setChart
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addChangeListener, removeChangeListener
getFont, postEvent
public TrajectoryPlot(String caption, org.djunits.value.vdouble.scalar.Duration sampleInterval, List<Lane> path, org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface simulator)
caption
- String; the text to show above the TrajectoryPlotsampleInterval
- DoubleScalarRel<TimeUnit>; the time between samples of this TrajectoryPlot, or null in which
case the GTUs are sampled whenever they fire a MOVE_EVENTpath
- ArrayList<Lane>; the series of Lanes that will provide the data for this TrajectoryPlotsimulator
- OTSDEVSSimulatorInterface; the simulatorpublic final org.djunits.value.vdouble.scalar.Duration getSampleInterval()
public final double getCumulativeLength(int index)
index
- int; the index of the path element; if -1, the total length of the path is returnedpublic final org.djunits.value.vdouble.scalar.Time getMaximumTime()
public final void setMaximumTime(org.djunits.value.vdouble.scalar.Time maximumTime)
maximumTime
- set maximumTimepublic final GraphType getGraphType()
getGraphType
in class AbstractOTSPlot
public void sample()
public void notify(nl.tudelft.simulation.event.EventInterface event) throws RemoteException
notify
in interface nl.tudelft.simulation.event.EventListenerInterface
RemoteException
protected org.jfree.chart.JFreeChart createChart(JFrame container)
createChart
in class AbstractOTSPlot
container
- JFrame; the JFrame that will be filled with chart and the status labelpublic final void reGraph()
reGraph
in interface LaneBasedGTUSampler
reGraph
in class AbstractOTSPlot
public void actionPerformed(ActionEvent e)
actionPerformed
in interface ActionListener
protected final void addData(LaneBasedGTU gtu, Lane lane, double posOnLane)
gtu
- the gtu to add the data forlane
- the lane on which the GTU is registeredposOnLane
- the position on the lane as a double si Lengthpublic final int getSeriesCount()
getSeriesCount
in interface org.jfree.data.general.SeriesDataset
public final Comparable<Integer> getSeriesKey(int series)
getSeriesKey
in interface org.jfree.data.general.SeriesDataset
public final int indexOf(Comparable seriesKey)
indexOf
in interface org.jfree.data.general.SeriesDataset
public final org.jfree.data.general.DatasetGroup getGroup()
getGroup
in interface org.jfree.data.general.Dataset
public final void setGroup(org.jfree.data.general.DatasetGroup group)
setGroup
in interface org.jfree.data.general.Dataset
public final org.jfree.data.DomainOrder getDomainOrder()
getDomainOrder
in interface org.jfree.data.xy.XYDataset
public final int getItemCount(int series)
getItemCount
in interface org.jfree.data.xy.XYDataset
public final Number getX(int series, int item)
getX
in interface org.jfree.data.xy.XYDataset
public final double getXValue(int series, int item)
getXValue
in interface org.jfree.data.xy.XYDataset
public final Number getY(int series, int item)
getY
in interface org.jfree.data.xy.XYDataset
public final double getYValue(int series, int item)
getYValue
in interface org.jfree.data.xy.XYDataset
Copyright © 2014–2016 Delft University of Technology. All rights reserved.