public class VisualActionObserver extends javax.swing.JFrame implements ActionObserver, EnvironmentObserver
ActionObserver
and EnvironmentObserver
interfaces.
It updates the visualizer to show the resulting state of an action call. After rendering, the client thread is blocked
for a specified interval of time to allow the state to be observed (by default the value is set to 17ms, which is about 60FPS).
This class will also render the new state of an Environment
after
a Environment.resetEnvironment()
message is observed and block for the
same interval of time.
This class is especially useful for watching learning algorithms or Monte Carlo-like planning algorithms in action.
Environment
(so that the action is also rendered) so long as
the input Visualizer
has a set StateActionRenderLayer
.
To enable this support, pass the setRepaintOnActionInitiation(boolean)
true. If you would then
like to disable rendering the post-state from the observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
method, pass the setRepaintStateOnEnvironmentInteraction(boolean)
false.javax.swing.JFrame.AccessibleJFrame
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
Modifier and Type | Field and Description |
---|---|
protected long |
actionRenderDelay
How long to wait in ms for a state to be rendered before returning control to the agent.
|
protected int |
cHeight
The height of the painter
|
protected int |
cWidth
The width of the painter
|
protected Domain |
domain
The domain this visualizer is rendering
|
protected Visualizer |
painter
The visualizer that will render states
|
protected boolean |
repaintOnActionInitiation
If true, then a a state-action pair is rendered on calls to
observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction)
so long as the input Visualizer has a set StateActionRenderLayer . |
protected boolean |
repaintStateOnEnvironmentInteraction
If true (which is default), then the post-state in an
observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
is rendered. |
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
Constructor and Description |
---|
VisualActionObserver(Domain domain,
Visualizer painter)
Initializes with a visualizer size of 800x800
|
VisualActionObserver(Domain domain,
Visualizer painter,
int cWidth,
int cHeight)
Initializes with a visualizer
|
Modifier and Type | Method and Description |
---|---|
void |
actionEvent(State s,
GroundedAction ga,
State sp) |
Visualizer |
getPainter() |
void |
initGUI()
Initializes the visual explorer GUI and presents it to the user.
|
void |
observeEnvironmentActionInitiation(State o,
GroundedAction action)
This method is called when an
Environment receives an action to execute, but before the
Environment has completed execution. |
void |
observeEnvironmentInteraction(EnvironmentOutcome eo)
This method is called every time an
Environment is interacted with. |
void |
observeEnvironmentReset(Environment resetEnvironment)
This method is called every time an
Environment is reset (has the Environment.resetEnvironment() method called). |
void |
replayEpisode(EpisodeAnalysis ea)
Causes the visualizer to replay through the provided
EpisodeAnalysis object. |
void |
setFrameDelay(long delay)
Sets how long to wait in ms for a state to be rendered before returning control the agent.
|
void |
setPainter(Visualizer painter) |
void |
setRepaintOnActionInitiation(boolean repaintOnActionInitiation)
Sets whether the state-action should be updated when an action is initiated in an
Environment via the
observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction) method. |
void |
setRepaintStateOnEnvironmentInteraction(boolean repaintStateOnEnvironmentInteraction)
Sets whether the state should be updated on environment interactions events (the
observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
or only with state-actions in the observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction) . |
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, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
protected Domain domain
protected Visualizer painter
protected int cWidth
protected int cHeight
protected long actionRenderDelay
protected boolean repaintStateOnEnvironmentInteraction
observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
is rendered.protected boolean repaintOnActionInitiation
observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction)
so long as the input Visualizer
has a set StateActionRenderLayer
. Default value is false.public VisualActionObserver(Domain domain, Visualizer painter)
domain
- the domain that is being visualizedpainter
- the painter for rendering statespublic VisualActionObserver(Domain domain, Visualizer painter, int cWidth, int cHeight)
domain
- the domain that is being visualizedpainter
- the painter for rendering statescWidth
- the width of the state visualization areacHeight
- the height of the state visualization areapublic void setFrameDelay(long delay)
delay
- how long to wait in ms for a state to be rendered before returning control the agent.public Visualizer getPainter()
public void setPainter(Visualizer painter)
public void setRepaintStateOnEnvironmentInteraction(boolean repaintStateOnEnvironmentInteraction)
observeEnvironmentInteraction(burlap.oomdp.singleagent.environment.EnvironmentOutcome)
or only with state-actions in the observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction)
.repaintStateOnEnvironmentInteraction
- if true, then update states with environment interactions; if false then only with environment action initiation.public void setRepaintOnActionInitiation(boolean repaintOnActionInitiation)
Environment
via the
observeEnvironmentActionInitiation(burlap.oomdp.core.states.State, burlap.oomdp.singleagent.GroundedAction)
method.repaintOnActionInitiation
- if true, then state-action's are painted on action initiation; if false, they are not.public void initGUI()
public void actionEvent(State s, GroundedAction ga, State sp)
actionEvent
in interface ActionObserver
public void observeEnvironmentActionInitiation(State o, GroundedAction action)
EnvironmentObserver
Environment
receives an action to execute, but before the
Environment
has completed execution.observeEnvironmentActionInitiation
in interface EnvironmentObserver
o
- the current Environment
observation in which the the action begins execution.action
- the GroundedAction
which will be executed in the Environment
.public void observeEnvironmentInteraction(EnvironmentOutcome eo)
EnvironmentObserver
Environment
is interacted with.observeEnvironmentInteraction
in interface EnvironmentObserver
eo
- the resulting EnvironmentOutcome
public void observeEnvironmentReset(Environment resetEnvironment)
EnvironmentObserver
Environment
is reset (has the Environment.resetEnvironment()
method called).observeEnvironmentReset
in interface EnvironmentObserver
resetEnvironment
- the Environment
that was reset.public void replayEpisode(EpisodeAnalysis ea)
EpisodeAnalysis
object. The initial state
of the provided episode is first rendered for the given refresh delay of this object, and then each
action and resulting state in the episode is feed through the actionEvent(State, GroundedAction, State)
method of this object.ea
- the episode to be replayed.