com.threerings.tudey.tools
Class Placer

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<PlaceableConfig>
                          extended by com.threerings.tudey.tools.Placer
All Implemented Interfaces:
Compositable, Tickable, TudeySceneModel.Observer, MouseListener, MouseMotionListener, MouseWheelListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ChangeListener, TreeSelectionListener

public class Placer
extends ConfigTool<PlaceableConfig>

The placeable placer tool.

See Also:
Serialized Form

Nested Class Summary
protected static class Placer.PlaceableReference
          Allows us to edit the placeable 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  float _angle
          The angle about the z axis.
protected  PlaceableCursor _cursor
          The cursor.
protected  boolean _cursorVisible
          Whether or not the cursor is in the window.
protected  ArrayList<TudeySceneModel.Entry> _entries
          Holds the entries intersecting the cursor.
protected  TudeySceneModel.PlaceableEntry _entry
          The prototype entry.
protected  Vector3f _isect
          Holds the result on an intersection test.
protected  Vector3f _lastPlacement
          The location at which we last placed.
protected static float MIN_SPACING
          The minimum spacing between placements when dragging.
 
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
Placer(SceneEditor editor)
          Creates the placer tool.
 
Method Summary
 void composite()
          Adds this object's Dependencys and Enqueueables to the compositor in preparation for rendering.
 void init()
          Initializes the tool after the renderer has been initialized.
 void mousePressed(MouseEvent event)
           
 void mouseWheelMoved(MouseWheelEvent event)
           
protected  void placeEntry()
          Places the current entry.
protected  void referenceChanged(ConfigReference<PlaceableConfig> ref)
          Called when the reference changes.
 void setAngle(float angle)
          Sets the placement angle.
 void tick(float elapsed)
          Updates the state of this object based on the elapsed time in seconds.
protected  void updateCursor()
          Updates the entry transform and cursor visibility based on the location of the mouse cursor.
 
Methods inherited from class com.threerings.tudey.tools.ConfigTool
sceneChanged, setReference, stateChanged, valueChanged
 
Methods inherited from class com.threerings.tudey.tools.EditorTool
activate, allowsMouseCamera, deactivate, entryAdded, entryRemoved, entryUpdated, getMousePlaneIntersection, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mouseReleased, 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.PlaceableEntry _entry
The prototype entry.


_cursor

protected PlaceableCursor _cursor
The cursor.


_cursorVisible

protected boolean _cursorVisible
Whether or not the cursor is in the window.


_angle

protected float _angle
The angle about the z axis.


_lastPlacement

protected Vector3f _lastPlacement
The location at which we last placed.


_isect

protected Vector3f _isect
Holds the result on an intersection test.


_entries

protected ArrayList<TudeySceneModel.Entry> _entries
Holds the entries intersecting the cursor.


MIN_SPACING

protected static final float MIN_SPACING
The minimum spacing between placements when dragging.

See Also:
Constant Field Values
Constructor Detail

Placer

public Placer(SceneEditor editor)
Creates the placer tool.

Method Detail

setAngle

public void setAngle(float angle)
Sets the placement angle.


init

public void init()
Description copied from class: EditorTool
Initializes the tool after the renderer has been initialized.

Overrides:
init 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

composite

public void composite()
Description copied from interface: Compositable
Adds this object's Dependencys and Enqueueables to the compositor in preparation for rendering.

Specified by:
composite in interface Compositable
Overrides:
composite in class EditorTool

mousePressed

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

mouseWheelMoved

public void mouseWheelMoved(MouseWheelEvent event)
Specified by:
mouseWheelMoved in interface MouseWheelListener
Overrides:
mouseWheelMoved in class EditorTool

updateCursor

protected void updateCursor()
Updates the entry transform and cursor visibility based on the location of the mouse cursor.


placeEntry

protected void placeEntry()
Places the current entry.


referenceChanged

protected void referenceChanged(ConfigReference<PlaceableConfig> ref)
Description copied from class: ConfigTool
Called when the reference changes.

Overrides:
referenceChanged in class ConfigTool<PlaceableConfig>