edu.d.umn.windows
Class View3DPanel

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 edu.d.umn.windows.View3DPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
LeftPanel

public class View3DPanel
extends javax.swing.JPanel

This class, based on JPanel, creates a Panel that displays a SimpleUniverse, complete with ambient and directional lights. View3DPanel also provides the capability to load and display DEM data, and view the data using a FlyingPlatform.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static javax.vecmath.Color3f backgroundColor
          background color
protected  CapturingCanvas3D canvas
          The canvas.
protected  ControlWindow controlWindow
           
protected  ElevationModel currentModel
          Reference to the last added currentModel.
protected static javax.vecmath.Color3f directionalColor
          directional light color
protected static int FIELD_OF_VIEW
          degrees in the field of view
protected  DEMViewerFlyBehavior flyBehavior
           
protected  javax.media.j3d.BoundingSphere infiniteBounds
          Infinite bounds to use for background and lights.
protected  java.util.ArrayList modelList
          A list of all the models currently viewable.
protected  MyOrbitBehavior orbitBehavior
           
protected  com.sun.j3d.utils.universe.SimpleUniverse universe
          The SimpleUniverse.
protected  javax.media.j3d.BranchGroup world
          The branch group that contains the content.
 
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
View3DPanel(ControlWindow controlWindow)
          This class, based on JPanel, creates a Panel that displays a SimpleUniverse complete with ambient and directional lights
 
Method Summary
 void addModel(java.lang.String fileName, StatusWindow stat)
          Adds a new model to the scene once the user is already viewing it.
 void changeExageration(float newAmount)
          Changes the elevation exageration of the ElevationModels.
 ElevationModel getModel()
          retrieve the elevation currentModel that was last loaded.
 ElevationModel getModel(java.lang.String name)
          retrieve the name ElevationModel
 java.util.ArrayList getModels()
          Get the list of models currently viewable.
 void load(java.lang.String fileName, StatusWindow stat)
          Loads elevation data file, creates and initializes the view and viewing platform to conform to the terrain currentModel
 java.lang.String removeModel()
          removes the last added model from the scene.
 void removeModel(java.lang.String modelName)
          Remove the named model from the current scene.
 void removeTexture()
          Removes the current texture from the selected ElevationModel.
 void setFlyBehavior()
          Changes the ViewPlatformBehavior to the FlyBehavior.
 void setLightDirection(javax.vecmath.Vector3f dir)
          changes the direction of the directional lights.
 void setModelColor(java.awt.Color color)
          Changes the color of the currently selected ElevationModel.
 void setOrbitBehavior()
          Changes the the ViewPlatformBehavior to OrbitBehavior.
 void setRendering(boolean value)
          starts and stops rendering
 void setTexture(javax.media.j3d.Texture2D tex)
          Changes the texture of the selected ElevationModel.
 void takeScreenShot()
          Take a shot of the currently rendered screen.
 
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, 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, 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

FIELD_OF_VIEW

protected static final int FIELD_OF_VIEW
degrees in the field of view

See Also:
Constant Field Values

backgroundColor

protected static final javax.vecmath.Color3f backgroundColor
background color


directionalColor

protected static final javax.vecmath.Color3f directionalColor
directional light color


universe

protected com.sun.j3d.utils.universe.SimpleUniverse universe
The SimpleUniverse.


canvas

protected CapturingCanvas3D canvas
The canvas.


currentModel

protected ElevationModel currentModel
Reference to the last added currentModel.


modelList

protected java.util.ArrayList modelList
A list of all the models currently viewable.


world

protected javax.media.j3d.BranchGroup world
The branch group that contains the content.


infiniteBounds

protected javax.media.j3d.BoundingSphere infiniteBounds
Infinite bounds to use for background and lights.


controlWindow

protected ControlWindow controlWindow

orbitBehavior

protected MyOrbitBehavior orbitBehavior

flyBehavior

protected DEMViewerFlyBehavior flyBehavior
Constructor Detail

View3DPanel

public View3DPanel(ControlWindow controlWindow)
This class, based on JPanel, creates a Panel that displays a SimpleUniverse complete with ambient and directional lights

Parameters:
controlWindow - The control window associated with this view.
Method Detail

load

public void load(java.lang.String fileName,
                 StatusWindow stat)
Loads elevation data file, creates and initializes the view and viewing platform to conform to the terrain currentModel

Parameters:
fileName - Full name of the file. Will be passed into the ElevationModel constructor, so it needs to be ready to be formatted into a URL.
stat - The status window. May be null.

addModel

public void addModel(java.lang.String fileName,
                     StatusWindow stat)
Adds a new model to the scene once the user is already viewing it.

Parameters:
fileName - The full name of the file to add.
stat - The status window. May be null.

removeModel

public java.lang.String removeModel()
removes the last added model from the scene.

Returns:
The name of the model removed. Used for removing it as an option from the remove menu.

removeModel

public void removeModel(java.lang.String modelName)
Remove the named model from the current scene.

Parameters:
modelName - The name of the model to remove.

getModel

public ElevationModel getModel()
retrieve the elevation currentModel that was last loaded.

Returns:
reference to ElevationModel object last loaded or null if a currentModel has never been loaded.

getModel

public ElevationModel getModel(java.lang.String name)
retrieve the name ElevationModel

Parameters:
name - The name of the ElevationModel
Returns:
The named ElevationModel or null if the name does not match any models currently displayed.

setRendering

public void setRendering(boolean value)
starts and stops rendering

Parameters:
value - if true, then start rendering, else stop rendering

getModels

public java.util.ArrayList getModels()
Get the list of models currently viewable.

Returns:
The list of models.

setFlyBehavior

public void setFlyBehavior()
Changes the ViewPlatformBehavior to the FlyBehavior.


setOrbitBehavior

public void setOrbitBehavior()
Changes the the ViewPlatformBehavior to OrbitBehavior.


takeScreenShot

public void takeScreenShot()
Take a shot of the currently rendered screen.


changeExageration

public void changeExageration(float newAmount)
Changes the elevation exageration of the ElevationModels.

Parameters:
newAmount - The new amount of exageration desired.

setTexture

public void setTexture(javax.media.j3d.Texture2D tex)
Changes the texture of the selected ElevationModel.

Parameters:
tex - The new texture desired.

removeTexture

public void removeTexture()
Removes the current texture from the selected ElevationModel.


setLightDirection

public void setLightDirection(javax.vecmath.Vector3f dir)
changes the direction of the directional lights.

Parameters:
dir - The direction of the lights.

setModelColor

public void setModelColor(java.awt.Color color)
Changes the color of the currently selected ElevationModel.

Parameters:
color - The desired new color.