com.threerings.tudey.tools
Class PathDefiner

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.threerings.tudey.tools.EditorTool
                      extended by com.threerings.tudey.tools.ConfigTool<PathConfig>
                          extended by com.threerings.tudey.tools.PathDefiner
All Implemented Interfaces:
Compositable, Tickable, TudeySceneModel.Observer, MouseListener, MouseMotionListener, MouseWheelListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ChangeListener, TreeSelectionListener

public class PathDefiner
extends ConfigTool<PathConfig>

The path definer tool.

See Also:
Serialized Form

Nested Class Summary
protected static class PathDefiner.PathReference
          Allows us to edit the path reference.
 
Nested classes/interfaces inherited from class com.threerings.tudey.tools.ConfigTool
ConfigTool.EditableReference<T extends ManagedConfig>
 
Nested classes/interfaces inherited from class com.threerings.tudey.tools.EditorTool
EditorTool.DirectionalConstraint, EditorTool.Filter
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  TudeySceneModel.PathEntry _entry
          The entry containing the vertex we're moving, if any.
protected  int _idx
          The index of the vertex we're moving.
protected  Vector3f _isect
          Holds the result of an intersection test.
protected  com.google.common.base.Predicate<SceneElement> PATH_FILTER
          A filter that only passes path vertex or edge models.
 
Fields inherited from class com.threerings.tudey.tools.ConfigTool
_clazz, _epanel, _eref, _pane, _tree
 
Fields inherited from class com.threerings.tudey.tools.EditorTool
_button, _editor, _msgs, _pick, _scene, FINE_ROTATION_INCREMENT
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PathDefiner(SceneEditor editor)
          Creates the path definer tool.
 
Method Summary
 void deactivate()
          Notes that the tool has been deactivated.
 void entryRemoved(TudeySceneModel.Entry oentry)
          Notes that an entry has been removed from the scene.
 void entryUpdated(TudeySceneModel.Entry oentry, TudeySceneModel.Entry nentry)
          Notes that an entry has been updated within the scene.
protected  void insertVertex(TudeySceneModel.PathEntry entry, int idx)
          Inserts a new vertex at the specified location and starts moving it.
 void mousePressed(MouseEvent event)
           
protected  void release()
          Releases the vertex being moved.
protected  void removeVertices(TudeySceneModel.PathEntry entry, int idx, int count)
          Removes the indexed vertices from the supplied entry (removing the entry itself if it has no more vertices).
 void sceneChanged(TudeySceneModel scene)
          Notes that the scene object has changed.
protected  void setMouseLocation(TudeySceneModel.Vertex vertex)
          Sets the location of the specified vertex to the one indicated by the mouse cursor.
 void tick(float elapsed)
          Updates the state of this object based on the elapsed time in seconds.
 
Methods inherited from class com.threerings.tudey.tools.ConfigTool
referenceChanged, setReference, stateChanged, valueChanged
 
Methods inherited from class com.threerings.tudey.tools.EditorTool
activate, allowsMouseCamera, composite, entryAdded, getMousePlaneIntersection, init, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mouseReleased, mouseWheelMoved, setButton
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_entry

protected TudeySceneModel.PathEntry _entry
The entry containing the vertex we're moving, if any.


_idx

protected int _idx
The index of the vertex we're moving.


_isect

protected Vector3f _isect
Holds the result of an intersection test.


PATH_FILTER

protected final com.google.common.base.Predicate<SceneElement> PATH_FILTER
A filter that only passes path vertex or edge models.

Constructor Detail

PathDefiner

public PathDefiner(SceneEditor editor)
Creates the path definer tool.

Method Detail

deactivate

public void deactivate()
Description copied from class: EditorTool
Notes that the tool has been deactivated.

Overrides:
deactivate in class EditorTool

sceneChanged

public void sceneChanged(TudeySceneModel scene)
Description copied from class: EditorTool
Notes that the scene object has changed.

Overrides:
sceneChanged in class ConfigTool<PathConfig>

mousePressed

public void mousePressed(MouseEvent event)
Specified by:
mousePressed in interface MouseListener
Overrides:
mousePressed in class EditorTool

tick

public void tick(float elapsed)
Description copied from interface: Tickable
Updates the state of this object based on the elapsed time in seconds.

Specified by:
tick in interface Tickable
Overrides:
tick in class EditorTool

entryUpdated

public void entryUpdated(TudeySceneModel.Entry oentry,
                         TudeySceneModel.Entry nentry)
Description copied from interface: TudeySceneModel.Observer
Notes that an entry has been updated within the scene.

Specified by:
entryUpdated in interface TudeySceneModel.Observer
Overrides:
entryUpdated in class EditorTool

entryRemoved

public void entryRemoved(TudeySceneModel.Entry oentry)
Description copied from interface: TudeySceneModel.Observer
Notes that an entry has been removed from the scene.

Specified by:
entryRemoved in interface TudeySceneModel.Observer
Overrides:
entryRemoved in class EditorTool

setMouseLocation

protected void setMouseLocation(TudeySceneModel.Vertex vertex)
Sets the location of the specified vertex to the one indicated by the mouse cursor.


release

protected void release()
Releases the vertex being moved.


insertVertex

protected void insertVertex(TudeySceneModel.PathEntry entry,
                            int idx)
Inserts a new vertex at the specified location and starts moving it.


removeVertices

protected void removeVertices(TudeySceneModel.PathEntry entry,
                              int idx,
                              int count)
Removes the indexed vertices from the supplied entry (removing the entry itself if it has no more vertices).