edu.sdsc.mbt.viewers.GLViewerImpl
Class GlGeometryViewer

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byedu.sdsc.mbt.viewers.GLViewerImpl.GlGeometryViewer
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, javax.media.opengl.GLEventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.io.Serializable

public class GlGeometryViewer
extends javax.swing.JPanel
implements javax.media.opengl.GLEventListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener

Define the GlGeometryViewer class.

Author:
John L. Moreland
See Also:
, Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Field Summary
 boolean hold
           
 java.util.Vector renderables
           
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
GlGeometryViewer()
          Construct an instance of the class.
 
Method Summary
 void addMoveEventListener(MoveEventListener moveEventListener)
           
 void addPickEventListener(GvPickEventListener pickEventListener)
          Add a pick event listener.
 void addRenderable(Renderable renderable)
          Add a new renderable object to the scene.
 void clearRenderables()
          Remove all renderable objects from the scene.
 void display(javax.media.opengl.GLAutoDrawable drawable)
          GLEventListener interface - display method:
 void displayChanged(javax.media.opengl.GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged)
          GLEventListener interface - displayChanged method:
 void fireMoveEvent(MoveEvent moveEvent)
          Fire a pick event to all listeners.
 void firePickEvent(GvPickEvent pickEvent)
          Fire a pick event to all listeners.
 void fitView(double[] center, double radius)
           
 double getAspectRatio()
           
 float[] getBackgroundColor()
           
 java.awt.image.BufferedImage getBufferedImage()
           
 javax.media.opengl.GLAutoDrawable getDrawable()
           
 double[] getEyePosition()
           
 double getFarDistance()
           
 float getFogFar()
           
 float getFogNear()
           
 java.awt.image.BufferedImage getImage()
           
 double[] getLookAt()
           
 double getNearDistance()
           
 double[] getRotationCenter()
           
 double[] getUpVector()
           
 ViewerParameters getViewerParameters()
           
 void init(javax.media.opengl.GLAutoDrawable drawable)
          GLEventListener interface - init method: Initialize the GlGeometryViewer class.
 void lookAt(double[] center)
          Rotate and refocus the camera at the specified 3D point, but keep the current eye location and up orientation of the camera.
 void lookAt(double[] eye, double[] center)
          Move the camera to the specified eye point and orient the view toward the specified 3D center point.
 void lookAt(double[] eye, double[] center, double[] up)
          Move the camera to the specified eye point and orient the view toward the specified 3D center point with a given up vector.
 void mouseClicked(java.awt.event.MouseEvent e)
          mouseClicked method.
 void mouseDragged(java.awt.event.MouseEvent e)
          Control the camera motion.
 void mouseEntered(java.awt.event.MouseEvent e)
          MouseListener interface - mouseEntered method.
 void mouseExited(java.awt.event.MouseEvent e)
          mouseExited method.
 void mouseMoved(java.awt.event.MouseEvent e)
          mouseMoved method.
 void mousePressed(java.awt.event.MouseEvent e)
          mousePressed method.
 void mouseReleased(java.awt.event.MouseEvent e)
          mouseReleased method.
 void removeMoveEventListener(MoveEventListener moveEventListener)
          Remove a pick event listener.
 void removePickEventListener(GvPickEventListener pickEventListener)
          Remove a pick event listener.
 void removeRenderable(Renderable renderable)
          Remove a renderable object from the scene.
 void requestImage(int x, int y, int width, int height, int res)
           
 void resetFog(double[] center, double radius)
           
 void resetView()
          Reset the camera view to point at the origin, with an eye position at Z = -1, with a Y-up orientation.
 void resetView(double[] center, double radius, boolean fragment)
           
 void reshape(javax.media.opengl.GLAutoDrawable drawable, int x, int y, int width, int height)
          GLEventListener interface - reshape method:
 void rotate(double[] center, int axis, int angle)
          this method simulates rotation of the loaded structure(s) by transforming the camera position and direction positive values of rotation angle correspond to counterclockwise rotation when looking down the positive axis
 void setBackgroundColor(float[] color)
           
 void setFog(boolean enable, float near, float far)
           
 void setIndependentMotion(boolean flag, double[] center, double radius)
           
 void setMotionCenter(double[] center)
           
 void setRenderables(java.util.Vector renderables)
          Set the renderable object vector used to render the scene.
 void setRotationMode(boolean rotation)
           
 void setViewerParameters(ViewerParameters p)
           
 void translate(int axis, int distance)
           
 void updateMouseResponse(int f)
           
 void updateView()
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

renderables

public java.util.Vector renderables

hold

public boolean hold
Constructor Detail

GlGeometryViewer

public GlGeometryViewer()
Construct an instance of the class.

Method Detail

updateMouseResponse

public void updateMouseResponse(int f)

setIndependentMotion

public void setIndependentMotion(boolean flag,
                                 double[] center,
                                 double radius)

setMotionCenter

public void setMotionCenter(double[] center)

requestImage

public void requestImage(int x,
                         int y,
                         int width,
                         int height,
                         int res)

getImage

public java.awt.image.BufferedImage getImage()

setBackgroundColor

public void setBackgroundColor(float[] color)

getBackgroundColor

public float[] getBackgroundColor()

setFog

public void setFog(boolean enable,
                   float near,
                   float far)

getDrawable

public javax.media.opengl.GLAutoDrawable getDrawable()

init

public void init(javax.media.opengl.GLAutoDrawable drawable)
GLEventListener interface - init method: Initialize the GlGeometryViewer class.

Specified by:
init in interface javax.media.opengl.GLEventListener

reshape

public void reshape(javax.media.opengl.GLAutoDrawable drawable,
                    int x,
                    int y,
                    int width,
                    int height)
GLEventListener interface - reshape method:

Specified by:
reshape in interface javax.media.opengl.GLEventListener

display

public void display(javax.media.opengl.GLAutoDrawable drawable)
GLEventListener interface - display method:

Specified by:
display in interface javax.media.opengl.GLEventListener

displayChanged

public void displayChanged(javax.media.opengl.GLAutoDrawable drawable,
                           boolean modeChanged,
                           boolean deviceChanged)
GLEventListener interface - displayChanged method:

Specified by:
displayChanged in interface javax.media.opengl.GLEventListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
MouseListener interface - mouseEntered method.

Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
mouseExited method.

Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
mousePressed method.

Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
mouseReleased method.

Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
mouseClicked method.

Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Control the camera motion.

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
mouseMoved method.

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

resetView

public void resetView()
Reset the camera view to point at the origin, with an eye position at Z = -1, with a Y-up orientation. Default, if no structures are loaded


fitView

public void fitView(double[] center,
                    double radius)

resetView

public void resetView(double[] center,
                      double radius,
                      boolean fragment)

resetFog

public void resetFog(double[] center,
                     double radius)

lookAt

public void lookAt(double[] eye,
                   double[] center,
                   double[] up)
Move the camera to the specified eye point and orient the view toward the specified 3D center point with a given up vector. This provides complete camera control.


lookAt

public void lookAt(double[] center)
Rotate and refocus the camera at the specified 3D point, but keep the current eye location and up orientation of the camera. This provides a "turn your head and eyes toward an object" behavior. The new up-vector is computed automatically.


lookAt

public void lookAt(double[] eye,
                   double[] center)
Move the camera to the specified eye point and orient the view toward the specified 3D center point. This provides a "move your body to a point in space and look at an object" behavior. The new up-vector is computed automatically.


addRenderable

public void addRenderable(Renderable renderable)
Add a new renderable object to the scene.


removeRenderable

public void removeRenderable(Renderable renderable)
Remove a renderable object from the scene.


clearRenderables

public void clearRenderables()
Remove all renderable objects from the scene.


setRenderables

public void setRenderables(java.util.Vector renderables)
Set the renderable object vector used to render the scene. WARNING: The vector of renderable objects is not copied (in order to allow for high performance scene changes), so you should not modify the vector directly while it is active.


addPickEventListener

public void addPickEventListener(GvPickEventListener pickEventListener)
Add a pick event listener.


removePickEventListener

public void removePickEventListener(GvPickEventListener pickEventListener)
Remove a pick event listener.


firePickEvent

public void firePickEvent(GvPickEvent pickEvent)
Fire a pick event to all listeners.


addMoveEventListener

public void addMoveEventListener(MoveEventListener moveEventListener)

removeMoveEventListener

public void removeMoveEventListener(MoveEventListener moveEventListener)
Remove a pick event listener.


fireMoveEvent

public void fireMoveEvent(MoveEvent moveEvent)
Fire a pick event to all listeners.


getUpVector

public double[] getUpVector()

getLookAt

public double[] getLookAt()

getEyePosition

public double[] getEyePosition()

getFogNear

public float getFogNear()

getFogFar

public float getFogFar()

getNearDistance

public double getNearDistance()

getFarDistance

public double getFarDistance()

setRotationMode

public void setRotationMode(boolean rotation)

updateView

public void updateView()

setViewerParameters

public void setViewerParameters(ViewerParameters p)

getViewerParameters

public ViewerParameters getViewerParameters()

getRotationCenter

public double[] getRotationCenter()

getBufferedImage

public java.awt.image.BufferedImage getBufferedImage()

translate

public void translate(int axis,
                      int distance)

rotate

public void rotate(double[] center,
                   int axis,
                   int angle)
this method simulates rotation of the loaded structure(s) by transforming the camera position and direction positive values of rotation angle correspond to counterclockwise rotation when looking down the positive axis

Parameters:
axis - an integer parameter for coordinate axis
angle - angle in degrees
center - center of rotation (geometric center of the structure simulated to be rotsting)

getAspectRatio

public double getAspectRatio()