Package com.sun.j3d.utils.behaviors.vp
Class ViewPlatformAWTBehavior
- java.lang.Object
-
- javax.media.j3d.SceneGraphObject
-
- javax.media.j3d.Node
-
- javax.media.j3d.Leaf
-
- javax.media.j3d.Behavior
-
- com.sun.j3d.utils.behaviors.vp.ViewPlatformBehavior
-
- com.sun.j3d.utils.behaviors.vp.ViewPlatformAWTBehavior
-
- All Implemented Interfaces:
java.awt.event.KeyListener
,java.awt.event.MouseListener
,java.awt.event.MouseMotionListener
,java.awt.event.MouseWheelListener
,java.util.EventListener
- Direct Known Subclasses:
OrbitBehavior
public abstract class ViewPlatformAWTBehavior extends ViewPlatformBehavior implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.KeyListener, java.awt.event.MouseWheelListener
Abstract class which implements much of the event tracking and state updating in a thread safe manner. AWT Events are captured and placed in a queue. While there are pending events or motion the behavior will wake up every frame, call processAWTEvents and integrateTransforms.- Since:
- Java 3D 1.2.1
-
-
Field Summary
Fields Modifier and Type Field Description protected Canvas3D[]
canvases
The Canvas3Ds from which this Behavior gets AWT eventsprotected WakeupOnElapsedFrames
frameWakeup
The different criterion for the behavior to wakeupstatic int
KEY_LISTENER
Flag indicating Behavior should listen for Key Eventsprotected boolean
motion
Boolean for whether the mouse is in motionstatic int
MOUSE_LISTENER
Flag indicating Behavior should listen for Mouse Eventsstatic int
MOUSE_MOTION_LISTENER
Flag indicating Behavior should listen for Mouse Motion Eventsstatic int
MOUSE_WHEEL_LISTENER
Flag indicating Behavior should listen for MouseWheel Eventsprotected static int
POST_ID
Behavior PostId used in this behaviorprotected WakeupOnBehaviorPost
postWakeup
The Or of the different criterion for the behavior to wakeupprotected Transform3D
targetTransform
The target Transform3D for this behavior-
Fields inherited from class com.sun.j3d.utils.behaviors.vp.ViewPlatformBehavior
homeTransform, targetTG, vp
-
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 Modifier Constructor Description protected
ViewPlatformAWTBehavior()
Parameterless constructor for this behavior, intended for use by subclasses instantiated through ConfiguredUniverse.protected
ViewPlatformAWTBehavior(int listenerFlags)
Construct a behavior which listens for events specified by the given flags, intended for use by subclasses instantiated through ConfiguredUniverse.ViewPlatformAWTBehavior(Canvas3D c, int listenerFlags)
Constructs a new ViewPlatformAWTBehavior.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
initialize()
Initializes the behavior.protected abstract void
integrateTransforms()
Called once per frame (if the view is moving) to calculate the new view platform transformvoid
keyPressed(java.awt.event.KeyEvent e)
void
keyReleased(java.awt.event.KeyEvent e)
void
keyTyped(java.awt.event.KeyEvent e)
void
mouseClicked(java.awt.event.MouseEvent e)
void
mouseDragged(java.awt.event.MouseEvent e)
void
mouseEntered(java.awt.event.MouseEvent e)
void
mouseExited(java.awt.event.MouseEvent e)
void
mouseMoved(java.awt.event.MouseEvent e)
void
mousePressed(java.awt.event.MouseEvent e)
void
mouseReleased(java.awt.event.MouseEvent e)
void
mouseWheelMoved(java.awt.event.MouseWheelEvent e)
protected abstract void
processAWTEvents(java.awt.AWTEvent[] events)
This is called once per frame if there are any AWT events to process.void
processStimulus(java.util.Enumeration behEnum)
Process a stimulus meant for this behavior.protected void
queueAWTEvent(java.awt.AWTEvent e)
Queue AWTEvents in a thread safe manner.void
setEnable(boolean state)
Overload setEnable from Behavior.protected void
setListenerFlags(int listenerFlags)
Sets listener flags for this behavior.void
setViewingPlatform(ViewingPlatform vp)
Sets the ViewingPlatform for this behavior.-
Methods inherited from class com.sun.j3d.utils.behaviors.vp.ViewPlatformBehavior
getHomeTransform, getViewingPlatform, goHome, setHomeTransform
-
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
-
POST_ID
protected static final int POST_ID
Behavior PostId used in this behavior- See Also:
- Constant Field Values
-
frameWakeup
protected WakeupOnElapsedFrames frameWakeup
The different criterion for the behavior to wakeup
-
postWakeup
protected WakeupOnBehaviorPost postWakeup
The Or of the different criterion for the behavior to wakeup
-
targetTransform
protected Transform3D targetTransform
The target Transform3D for this behavior
-
motion
protected boolean motion
Boolean for whether the mouse is in motion
-
MOUSE_LISTENER
public static final int MOUSE_LISTENER
Flag indicating Behavior should listen for Mouse Events- See Also:
- Constant Field Values
-
MOUSE_MOTION_LISTENER
public static final int MOUSE_MOTION_LISTENER
Flag indicating Behavior should listen for Mouse Motion Events- See Also:
- Constant Field Values
-
KEY_LISTENER
public static final int KEY_LISTENER
Flag indicating Behavior should listen for Key Events- See Also:
- Constant Field Values
-
MOUSE_WHEEL_LISTENER
public static final int MOUSE_WHEEL_LISTENER
Flag indicating Behavior should listen for MouseWheel Events- See Also:
- Constant Field Values
-
canvases
protected Canvas3D[] canvases
The Canvas3Ds from which this Behavior gets AWT events
-
-
Constructor Detail
-
ViewPlatformAWTBehavior
protected ViewPlatformAWTBehavior()
Parameterless constructor for this behavior, intended for use by subclasses instantiated through ConfiguredUniverse. Such a constructor is required for configurable behaviors.- Since:
- Java 3D 1.3
-
ViewPlatformAWTBehavior
protected ViewPlatformAWTBehavior(int listenerFlags)
Construct a behavior which listens for events specified by the given flags, intended for use by subclasses instantiated through ConfiguredUniverse.- Parameters:
listenerFlags
- Indicates which listener should be registered, one or more of MOUSE_LISTENER, MOUSE_MOTION_LISTENER, KEY_LISTENER, MOUSE_WHEEL_LISTENER- Since:
- Java 3D 1.3
-
ViewPlatformAWTBehavior
public ViewPlatformAWTBehavior(Canvas3D c, int listenerFlags)
Constructs a new ViewPlatformAWTBehavior.- Parameters:
c
- The Canvas3D on which to listen for events. If this is null a NullPointerException will be thrown.listenerFlags
- Indicates which listener should be registered, one or more of MOUSE_LISTENER, MOUSE_MOTION_LISTENER, KEY_LISTENER, MOUSE_WHEEL_LISTENER
-
-
Method Detail
-
setListenerFlags
protected void setListenerFlags(int listenerFlags)
Sets listener flags for this behavior.- Parameters:
listenerFlags
- Indicates which listener should be registered, one or more of MOUSE_LISTENER, MOUSE_MOTION_LISTENER, KEY_LISTENER, MOUSE_WHEEL_LISTENER- Since:
- Java 3D 1.3
-
initialize
public void initialize()
Initializes the behavior. NOTE: Applications should not call this method. It is called by the Java 3D behavior scheduler.- Specified by:
initialize
in classBehavior
-
processStimulus
public void processStimulus(java.util.Enumeration behEnum)
Process a stimulus meant for this behavior. NOTE: Applications should not call this method. It is called by the Java 3D behavior scheduler.- Specified by:
processStimulus
in classBehavior
- Parameters:
behEnum
- an enumeration of triggered wakeup criteria for this behavior
-
setEnable
public void setEnable(boolean state)
Overload setEnable from Behavior. Adds/Removes the AWT listeners depending on the requested state.
-
setViewingPlatform
public void setViewingPlatform(ViewingPlatform vp)
Sets the ViewingPlatform for this behavior. This method is called by the ViewingPlatform. If a sub-calls overrides this method, it must call super.setViewingPlatform(vp). NOTE: Applications should not call this method.- Overrides:
setViewingPlatform
in classViewPlatformBehavior
- Parameters:
vp
- the target ViewingPlatform for this behavior
-
processAWTEvents
protected abstract void processAWTEvents(java.awt.AWTEvent[] events)
This is called once per frame if there are any AWT events to process. Themotion
variable will be true when the method is called. If it is true when the method returns integrateTransforms will be called immediately. The AWTEvents are presented in the array in the order in which they arrived from AWT.
-
integrateTransforms
protected abstract void integrateTransforms()
Called once per frame (if the view is moving) to calculate the new view platform transform
-
queueAWTEvent
protected void queueAWTEvent(java.awt.AWTEvent e)
Queue AWTEvents in a thread safe manner. If subclasses override this method they must call super.queueAWTEvent(e)
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent e)
- Specified by:
mouseClicked
in interfacejava.awt.event.MouseListener
-
mouseEntered
public void mouseEntered(java.awt.event.MouseEvent e)
- Specified by:
mouseEntered
in interfacejava.awt.event.MouseListener
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent e)
- Specified by:
mouseExited
in interfacejava.awt.event.MouseListener
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent e)
- Specified by:
mousePressed
in interfacejava.awt.event.MouseListener
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent e)
- Specified by:
mouseReleased
in interfacejava.awt.event.MouseListener
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent e)
- Specified by:
mouseDragged
in interfacejava.awt.event.MouseMotionListener
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent e)
- Specified by:
mouseMoved
in interfacejava.awt.event.MouseMotionListener
-
keyReleased
public void keyReleased(java.awt.event.KeyEvent e)
- Specified by:
keyReleased
in interfacejava.awt.event.KeyListener
-
keyPressed
public void keyPressed(java.awt.event.KeyEvent e)
- Specified by:
keyPressed
in interfacejava.awt.event.KeyListener
-
keyTyped
public void keyTyped(java.awt.event.KeyEvent e)
- Specified by:
keyTyped
in interfacejava.awt.event.KeyListener
-
mouseWheelMoved
public void mouseWheelMoved(java.awt.event.MouseWheelEvent e)
- Specified by:
mouseWheelMoved
in interfacejava.awt.event.MouseWheelListener
-
-