Class MouseBehavior
- java.lang.Object
-
- javax.media.j3d.SceneGraphObject
-
- javax.media.j3d.Node
-
- javax.media.j3d.Leaf
-
- javax.media.j3d.Behavior
-
- com.sun.j3d.utils.behaviors.mouse.MouseBehavior
-
- All Implemented Interfaces:
java.awt.event.MouseListener,java.awt.event.MouseMotionListener,java.awt.event.MouseWheelListener,java.util.EventListener
- Direct Known Subclasses:
MouseRotate,MouseTranslate,MouseWheelZoom,MouseZoom
public abstract class MouseBehavior extends Behavior implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.MouseWheelListener
Base class for all mouse manipulators (see MouseRotate, MouseZoom and MouseTranslate for examples of how to extend this base class).
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanbuttonPressprotected Transform3DcurrXformprotected booleanenableprotected intflagsprotected booleaninvertstatic intINVERT_INPUTSet this flag if you want to invert the inputs.static intMANUAL_WAKEUPSet this flag if you want to manually wakeup the behavior.protected WakeupOrmouseCriterionprotected WakeupCriterion[]mouseEventsprotected java.util.LinkedListmouseqprotected booleanresetprotected TransformGrouptransformGroupprotected Transform3DtransformXprotected Transform3DtransformYprotected booleanwakeUpprotected intxprotected intx_lastprotected intyprotected inty_last-
Fields inherited from class javax.media.j3d.Node
ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
-
-
Constructor Summary
Constructors Constructor Description MouseBehavior(int format)Initializes standard fields.MouseBehavior(java.awt.Component c, int format)Creates a mouse behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent.MouseBehavior(java.awt.Component c, TransformGroup transformGroup)Creates a mouse behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent.MouseBehavior(TransformGroup transformGroup)Creates a mouse behavior object with a given transform group.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddListener(java.awt.Component c)Adds this behavior as a MouseListener, mouseWheelListener and MouseMotionListener to the specified component.TransformGroupgetTransformGroup()Return the transformGroup on which this node is operatingvoidinitialize()Initializes the behavior.voidmouseClicked(java.awt.event.MouseEvent e)voidmouseDragged(java.awt.event.MouseEvent e)voidmouseEntered(java.awt.event.MouseEvent e)voidmouseExited(java.awt.event.MouseEvent e)voidmouseMoved(java.awt.event.MouseEvent e)voidmousePressed(java.awt.event.MouseEvent e)voidmouseReleased(java.awt.event.MouseEvent e)voidmouseWheelMoved(java.awt.event.MouseWheelEvent e)voidprocessMouseEvent(java.awt.event.MouseEvent evt)Handles mouse eventsabstract voidprocessStimulus(java.util.Enumeration criteria)All mouse manipulators must implement this.voidsetEnable(boolean state)Enables or disables this Behavior.voidsetTransformGroup(TransformGroup transformGroup)Swap a new transformGroup replacing the old one.voidwakeup()Manually wake up the behavior.-
Methods inherited from class javax.media.j3d.Behavior
getEnable, getNumSchedulingIntervals, getSchedulingBoundingLeaf, getSchedulingBounds, getSchedulingInterval, getView, getWakeupCondition, postId, setSchedulingBoundingLeaf, setSchedulingBounds, setSchedulingInterval, updateNodeReferences, wakeupOn
-
Methods inherited from class javax.media.j3d.Node
cloneNode, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
-
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString
-
-
-
-
Field Detail
-
mouseEvents
protected WakeupCriterion[] mouseEvents
-
mouseCriterion
protected WakeupOr mouseCriterion
-
x
protected int x
-
y
protected int y
-
x_last
protected int x_last
-
y_last
protected int y_last
-
transformGroup
protected TransformGroup transformGroup
-
transformX
protected Transform3D transformX
-
transformY
protected Transform3D transformY
-
currXform
protected Transform3D currXform
-
buttonPress
protected boolean buttonPress
-
reset
protected boolean reset
-
invert
protected boolean invert
-
wakeUp
protected boolean wakeUp
-
flags
protected int flags
-
mouseq
protected java.util.LinkedList mouseq
-
enable
protected boolean enable
-
MANUAL_WAKEUP
public static final int MANUAL_WAKEUP
Set this flag if you want to manually wakeup the behavior.- See Also:
- Constant Field Values
-
INVERT_INPUT
public static final int INVERT_INPUT
Set this flag if you want to invert the inputs. This is useful when the transform for the view platform is being changed instead of the transform for the object.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MouseBehavior
public MouseBehavior(TransformGroup transformGroup)
Creates a mouse behavior object with a given transform group.- Parameters:
transformGroup- The transform group to be manipulated.
-
MouseBehavior
public MouseBehavior(int format)
Initializes standard fields. Note that this behavior still needs a transform group to work on (use setTransformGroup(tg)) and the transform group must add this behavior.- Parameters:
format- flags
-
MouseBehavior
public MouseBehavior(java.awt.Component c, TransformGroup transformGroup)Creates a mouse behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent. The behaviors is added to the specified Component and works on the given TransformGroup. A null component can be passed to specify the behaviors should use listeners. Components can then be added to the behavior with the addListener(Component c) method.- Parameters:
c- The Component to add the MouseListener and MouseMotionListener to.transformGroup- The TransformGroup to operate on.- Since:
- Java 3D 1.2.1
-
MouseBehavior
public MouseBehavior(java.awt.Component c, int format)Creates a mouse behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent. The behavior is added to the specified Component. A null component can be passed to specify the behavior should use listeners. Components can then be added to the behavior with the addListener(Component c) method. Note that this behavior still needs a transform group to work on (use setTransformGroup(tg)) and the transform group must add this behavior.- Parameters:
format- interesting flags (wakeup conditions).- Since:
- Java 3D 1.2.1
-
-
Method Detail
-
setTransformGroup
public void setTransformGroup(TransformGroup transformGroup)
Swap a new transformGroup replacing the old one. This allows manipulators to operate on different nodes.- Parameters:
transformGroup- The *new* transform group to be manipulated.
-
getTransformGroup
public TransformGroup getTransformGroup()
Return the transformGroup on which this node is operating
-
initialize
public void initialize()
Initializes the behavior.- Specified by:
initializein classBehavior
-
wakeup
public void wakeup()
Manually wake up the behavior. If MANUAL_WAKEUP flag was set upon creation, you must wake up this behavior each time it is handled.
-
processMouseEvent
public void processMouseEvent(java.awt.event.MouseEvent evt)
Handles mouse events
-
processStimulus
public abstract void processStimulus(java.util.Enumeration criteria)
All mouse manipulators must implement this.- Specified by:
processStimulusin classBehavior- Parameters:
criteria- an enumeration of triggered wakeup criteria for this behavior
-
addListener
public void addListener(java.awt.Component c)
Adds this behavior as a MouseListener, mouseWheelListener and MouseMotionListener to the specified component. This method can only be called if the behavior was created with one of the constructors that takes a Component as a parameter.- Parameters:
c- The component to add the MouseListener, MouseWheelListener and MouseMotionListener to.- Throws:
java.lang.IllegalStateException- if the behavior was not created as a listener- Since:
- Java 3D 1.2.1
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent e)
- Specified by:
mouseClickedin interfacejava.awt.event.MouseListener
-
mouseEntered
public void mouseEntered(java.awt.event.MouseEvent e)
- Specified by:
mouseEnteredin interfacejava.awt.event.MouseListener
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent e)
- Specified by:
mouseExitedin interfacejava.awt.event.MouseListener
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent e)
- Specified by:
mousePressedin interfacejava.awt.event.MouseListener
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent e)
- Specified by:
mouseReleasedin interfacejava.awt.event.MouseListener
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent e)
- Specified by:
mouseDraggedin interfacejava.awt.event.MouseMotionListener
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent e)
- Specified by:
mouseMovedin interfacejava.awt.event.MouseMotionListener
-
setEnable
public void setEnable(boolean state)
Description copied from class:BehaviorEnables or disables this Behavior. The default state is enabled.
-
mouseWheelMoved
public void mouseWheelMoved(java.awt.event.MouseWheelEvent e)
- Specified by:
mouseWheelMovedin interfacejava.awt.event.MouseWheelListener
-
-