org.j3d.geom.overlay
Class OverlayManager
- public class OverlayManager
- extends javax.media.j3d.BranchGroup
- implements java.awt.event.ComponentListener
- The overlay manager keeps track of all the overlay's on the screen and makes sure they are updated with the view transform once a frame.
The Overlay manager should be placed into the scenegraph where the view transform is. It also assumes that none of the child overlays set have the Canvas3D reference set and so manages that all for them.
- Version:
- $Revision: 1.4 $
- Author:
- Justin Couch
CONSOLE_Z
private static double CONSOLE_Z
- I do not undersand what this is for
updateManager
private org.j3d.geom.overlay.UpdateManager updateManager
- The update manager for keeping us in sync
awtBehavior
private org.j3d.geom.overlay.AWTEventBehavior awtBehavior
- Behaviour for processing interactive events
consoleTG
private javax.media.j3d.TransformGroup consoleTG
- Transformation to make the raster become screen coords as well
windows
private javax.media.j3d.BranchGroup windows
- Group containing all the child overlays
planeOffset
private javax.media.j3d.Transform3D planeOffset
- Transform of image plate
worldTransform
private javax.media.j3d.Transform3D worldTransform
- Total transform used to correct the overlays each frame
canvasDim
private java.awt.Dimension canvasDim
- the dimensions of the Canvas3d
checkDim
private java.awt.Dimension checkDim
- used to check for dimension changes
canvas3D
private javax.media.j3d.Canvas3D canvas3D
- Canvas we are displayed on
overlays
private java.util.ArrayList overlays
- List of all the overlays that are children here
OverlayManager
public OverlayManager(javax.media.j3d.Canvas3D canvas)
- Create a new manager that works on the given canvas. It does not have an update manager provided, so it will provide its own and add it as part of the scene graph below this BranchGroup.
- Parameters:
canvas
- The canvas the overlay is drawn on
OverlayManager
public OverlayManager(javax.media.j3d.Canvas3D canvas,
org.j3d.geom.overlay.UpdateManager updateManager)
- Constructs an overlay window with an update manager. It has two buffers. This window will not be visible unless it is added to the scene under the view platform transform. If the bounds are null, then resize the overlay to fit the canvas and then track the size of the canvas.
- Parameters:
canvas
- The canvas the overlay is drawn on
bounds
- The part of the canvas covered by the overlay
updateManager
- Responsible for allowing the Overlay to update between renders. If this is null a default manager is created
viewChanged
public void viewChanged()
- Notification that the canvas's view has changed.
componentResized
public void componentResized(java.awt.event.ComponentEvent e)
- Notification that the component has been resized.
- Parameters:
e
- The event that caused this method to be called
componentMoved
public void componentMoved(java.awt.event.ComponentEvent e)
- Notification that the component has been moved.
- Parameters:
e
- The event that caused this method to be called
componentShown
public void componentShown(java.awt.event.ComponentEvent e)
- Notification that the component has been shown. This is the component being shown, not the window that it is contained in.
- Parameters:
e
- The event that caused this method to be called
componentHidden
public void componentHidden(java.awt.event.ComponentEvent e)
- Notification that the component has been hidden.
- Parameters:
e
- The event that caused this method to be called
initialize
public void initialize()
- Initialise the manager, which in turn initializes all the managed overlays.
getUpdateManager
public org.j3d.geom.overlay.UpdateManager getUpdateManager()
- Returns the UpdateManager responsible for seeing that updates to the Overlay only take place between frames.
- Parameters:
The
- update manage instance for this overlay
setUpdateManager
public void setUpdateManager(org.j3d.geom.overlay.UpdateManager manager)
- Set the UpdateManager to the new value. If the reference is null, it will clear the current manager.
- Parameters:
updateManager
- A reference to the new manage instance to use
setPosition
public void setPosition(org.j3d.geom.overlay.Overlay overlay,
int x,
int y)
- Sets the position of the specified overlay
newFrame
public void newFrame(javax.media.j3d.Transform3D viewTransform)
- Called once a frame to update the different overlays
addOverlay
public void addOverlay(org.j3d.geom.overlay.Overlay overlay)
- This adds an overlay into the overlay manager system.
- Parameters:
overlay
- The overlay to add
removeOverlay
public void removeOverlay(org.j3d.geom.overlay.Overlay overlay)
- This removes the overlay from the overlay system. The underlying resources will be released.
- Parameters:
overlay
- The overlay to remove
clearOverlays
public void clearOverlays()
- Clear all the current overlays. This is either to reset or to close down the application.
calcImagePlate
private void calcImagePlate()
- calculates the image plate transformation considering the field of view and the size of the screen.
checkScreenSize
private void checkScreenSize()
- Synchronize with the view platform