Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## shout3d
Class Shout3DPanel

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--java.awt.Panel
                        |
                        +--shout3d.Shout3DPanel

public class Shout3DPanel
extends java.awt.Panel
implements Shout3DViewer, java.lang.Runnable, Clock, DeviceListener, RenderObserver

Shout3D Panel - a Panel containing a Shout3DViewer

See Also:
  Serialized Form

Field Summary
`Shout3DApplet` | `applet` The Shout3DApplet in which this panel is contained.

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Constructor Summary
`Shout3DPanel(Shout3DApplet applet)` Constructs a Shout3DPanel
`Shout3DPanel(Shout3DApplet applet, int width, int height)` Constructs a Shout3DPanel
`Shout3DPanel(Shout3DApplet applet, int x, int y, int width, int height)` Constructs a Shout3DPanel

Method Summary
`void` | `addDeviceObserver(DeviceObserver devo, java.lang.String typeName, java.lang.Object userData)` Adds the given DeviceObserver to the list of observers for which this DeviceObserver will invoke methods.
`boolean` | `addRoute(Field fromField, Field toField)` Adds a route that copies values from 'fromField' to 'toField' each time that fromField's value changes.
`void` | `clearResourceCaches()` Clears the cache of loaded resources, freeing the memory that holds them.
`void` | `customInitialize()` Subclasses should override to perform custom initialization tasks.
`boolean` | `deleteRoute(Field fromField, Field toField)` Removes any existing route from fromField to toField Returns true if a route existed and was removed, false otherwise Note: Routes of ArrayFields copy by reference, not by value.
`double` | `getAbsoluteTime()` this method gets the number of seconds since midnight GMT January 1, 1970, as of the last call to tick().
`Clock` | `getClock()` Returns a reference to the Clock
`Bindable` | `getCurrentBindableNode(java.lang.String typeName)` Returns a reference to the currently bound node of the given type.
`DeviceListener` | `getDeviceListener()` Gets this panel's DeviceListener
`float` | `getFramesPerSecond()` Returns the rendering frame rate
`Picker` | `getNewPicker()` Gets a new Shout3DPicker
`Searcher` | `getNewSearcher()` Gets a new Searcher
`Node` | `getNodeByName(java.lang.String nodeName)` Gets a Node by DEF name.
`java.lang.String` | `getProfile()` Gets a string denoting the profile of the current scene.
`Renderer` | `getRenderer()` Gets the renderer
`ResourceListener` | `getResourceListener()` Returns a reference to the ResourceListener
`Group` | `getScene()` Gets the scene in the panel
`java.lang.String` | `getVersion()` Gets a string denoting the version of this viewer.
`boolean` | `handleEvent(java.awt.Event event)`
`boolean` | `isAntiAliased()` Returns whether antialiasing is enabled
`boolean` | `isBilinearFiltering()` Returns whether bilinear filtering is enabled on textures
`boolean` | `isLoadResourcesInSeparateThread()` Returns whether resources should are being loaded in a separate thread.
`boolean` | `isRouted(Field fromField, Field toField)` Checks if a route currently exists from fromField to toField
`void` | `loadURL(java.lang.String[] url, Node root)` Loads an URL into the node root.
`void` | `onPostRender(Renderer r, java.lang.Object userData)` Called immediately following rendering.
`void` | `onPreRender(Renderer r, java.lang.Object userData)` Called immediately prior to rendering.
`void` | `removeDeviceObserver(DeviceObserver devo, java.lang.String typeName)` Removes the given ResourceObserver from the list of observers for which this ResrourceObserver will invoke methods.
`void` | `run()` Runnable's run method
`void` | `setAntiAliased(boolean newVal)` Sets whether antialiasing is enabled.
`void` | `setBilinearFiltering(boolean newVal)` Sets whether bilinear filtering is enabled on textures.
`void` | `setLoadResourcesInSeparateThread(boolean newVal)` Sets whether resources (textures and sounds) should be loaded in a separate thread from the main thread.
`void` | `setScene(Group root)` Replaces the scene in the panel This includes applying all of the applet parameters (headlight, anti-aliasing, etc) to the newly loaded scene.
`void` | `setSceneFromURL(java.lang.String[] url)` Loads an URL into the panel's scene This includes applying all of the applet parameters (headlight, anti-aliasing, etc) to the newly loaded scene.
`void` | `tick()` This method updates the Clock and sets a new absolute time.
`void` | `update(java.awt.Graphics g)` Inherited Applet update method

Methods inherited from class java.awt.Panel
`addNotify`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, remove, remove, removeAll, removeContainerListener, removeNotify, setFont, setLayout, validate`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, disable, dispatchEvent, enable, enable, enableInputMethods, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, hasFocus, hide, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### applet

    public Shout3DApplet applet

  The Shout3DApplet in which this panel is contained.

Constructor Detail

### Shout3DPanel

    public Shout3DPanel(Shout3DApplet applet)

  Constructs a Shout3DPanel
  Parameters:
    `applet` - the Shout3DApplet in which this panel is to be drawn

### Shout3DPanel

    public Shout3DPanel(Shout3DApplet applet,
                        int width,
                        int height)

  Constructs a Shout3DPanel
  Parameters:
    `applet` - the Shout3DApplet in which this panel is to be drawn
    `width` - the width of the panel in pixels
    `height` - the height of the panel in pixels

### Shout3DPanel

    public Shout3DPanel(Shout3DApplet applet,
                        int x,
                        int y,
                        int width,
                        int height)

  Constructs a Shout3DPanel
  Parameters:
    `applet` - the Shout3DApplet in which this panel is to be drawn
    `x` - the x position of the panel in pixels
    `y` - the x position of the panel in pixels
    `width` - the width of the panel in pixels
    `height` - the height of the panel in pixels

Method Detail

### getRenderer

    public final Renderer getRenderer()

  Gets the renderer
  Returns:
    the renderer

### getDeviceListener

    public final DeviceListener getDeviceListener()

  Gets this panel's DeviceListener
  Returns:
    the deviceListener

### getNewPicker

    public final Picker getNewPicker()

  Gets a new Shout3DPicker
  Returns:
    a new Picker

### getNewSearcher

    public final Searcher getNewSearcher()

  Gets a new Searcher
  Returns:
    a new Searcher

### setScene

    public final void setScene(Group root)
                        throws Shout3DException

  Replaces the scene in the panel This includes applying all of the applet parameters (headlight, anti-aliasing, etc) to the newly loaded scene.
  Parameters:
    `root` - the root of the new Scene

### getScene

    public final Group getScene()

  Gets the scene in the panel
  Returns:
    root the root of the Scene

### setSceneFromURL

    public final void setSceneFromURL(java.lang.String[] url)
                               throws Shout3DException

  Loads an URL into the panel's scene This includes applying all of the applet parameters (headlight, anti-aliasing, etc) to the newly loaded scene. This is always done in the same thread as the main thread.
  Parameters:
    `url` - a String representation of the URL

### loadURL

    public final void loadURL(java.lang.String[] url,
                              Node root)
                       throws Shout3DException

  Loads an URL into the node root. If isLoadResourcesInSeparateThread() is true, then this is done in a separate thread from the main thread. Otherwise, it is done in the same thread.
  Parameters:
    `url` - the URL to load
    `root` - the scene, once loaded

### getNodeByName

    public final Node getNodeByName(java.lang.String nodeName)

  Gets a Node by DEF name. Returns null if no node is found with the given name
  Parameters:
    `nodeName` - the name of the node to find
  Returns:
    the node matching the given name

### getProfile

    public final java.lang.String getProfile()

  Gets a string denoting the profile of the current scene. The format of the returned string is yet to be specified.
  Returns:
    the profile string

### getVersion

    public final java.lang.String getVersion()

  Gets a string denoting the version of this viewer.
  Returns:
    the version string

### getCurrentBindableNode

    public final Bindable getCurrentBindableNode(java.lang.String typeName)
                                          throws Shout3DException

  Returns a reference to the currently bound node of the given type. Takes a string specifying a subclass of Bindable node as input. Throws an exception if the input type is not a bindable class of node
  Returns:
    the currently bound node of the specified type

### getClock

    public final Clock getClock()

  Returns a reference to the Clock
  Returns:
    the clock

### addRoute

    public boolean addRoute(Field fromField,
                            Field toField)
                     throws Shout3DException

  Adds a route that copies values from 'fromField' to 'toField' each time that fromField's value changes. 'toField' will, in turn, notify any listeners or routed fields of this change. Also copies value from fromField to toField, so the values will match after this call. Note: Routes of ArrayFields copy by reference, not by value. This makes routing of ArrayFields efficient, since a value change does not cause a copy of the array contents. However, deleting the route does not undo the fact that both fields refer to the array in memory. (See deleteRoute for more info). Throws a Shout3DException if the two fields are not of the same type. Will not add a second route if a route already exists. Returns true if a route was added, false otherwise
  Specified by:
    addRoute in interface Shout3DViewer
  Parameters:
    `fromField` - the field from which values will be copied
    `toField` - the field to which values will be copied
  Returns:
    true if the route was added, false otherwise

### deleteRoute

    public boolean deleteRoute(Field fromField,
                               Field toField)

  Removes any existing route from fromField to toField Returns true if a route existed and was removed, false otherwise Note: Routes of ArrayFields copy by reference, not by value. (see addRoute) Deleting a route does not undo the fact that both fields refer to the array in memory. If you want to insure that the toField refers to unique memory, you should allocate a new value array of the same size as the source field, copy the values into the new array, and set this new array as the toField's value.
  Specified by:
    deleteRoute in interface Shout3DViewer
  Parameters:
    `fromField` - the field from which values will be copied
    `toField` - the field to which values will be copied
  Returns:
    true if the route was removed, false otherwise

### isRouted

    public boolean isRouted(Field fromField,
                            Field toField)

  Checks if a route currently exists from fromField to toField
  Specified by:
    isRouted in interface Shout3DViewer
  Returns:
    true if the route exists, false otherwise

### getResourceListener

    public final ResourceListener getResourceListener()

  Returns a reference to the ResourceListener
  Returns:
    the the resourceListener

### getAbsoluteTime

    public final double getAbsoluteTime()

  this method gets the number of seconds since midnight GMT January 1, 1970, as of the last call to tick().
  Specified by:
    getAbsoluteTime in interface Clock
  Returns:
    the time

### tick

    public final void tick()

  This method updates the Clock and sets a new absolute time. This method must be automatically invoked once per call to Renderer.render(). This method may also be invoked by a programmer whenever a new simulation tick is desired.
  Specified by:
    tick in interface Clock

### addDeviceObserver

    public final void addDeviceObserver(DeviceObserver devo,
                                        java.lang.String typeName,
                                        java.lang.Object userData)

  Adds the given DeviceObserver to the list of observers for which this DeviceObserver will invoke methods.
  Specified by:
    addDeviceObserver in interface DeviceListener
  Parameters:
    `devo` - the observer to add
    `userData` - the data given by the observer

### removeDeviceObserver

    public final void removeDeviceObserver(DeviceObserver devo,
                                           java.lang.String typeName)

  Removes the given ResourceObserver from the list of observers for which this ResrourceObserver will invoke methods.
  Specified by:
    removeDeviceObserver in interface DeviceListener
  Parameters:
    `devo` - the observer to remove

### onPreRender

    public void onPreRender(Renderer r,
                            java.lang.Object userData)

  Called immediately prior to rendering.
  Specified by:
    onPreRender in interface RenderObserver
  Parameters:
    `r` - the renderer that is about to render
    `userData` - the userdata that was passed by this panel to the renderer

### onPostRender

    public void onPostRender(Renderer r,
                             java.lang.Object userData)

  Called immediately following rendering.
  Specified by:
    onPostRender in interface RenderObserver
  Parameters:
    `r` - the renderer that just finished rendering
    `userData` - the userdata that was passed by this panel to the renderer

### getFramesPerSecond

    public final float getFramesPerSecond()

  Returns the rendering frame rate
  Returns:
    the frame rate, in frames per second

### customInitialize

    public void customInitialize()

  Subclasses should override to perform custom initialization tasks. The regular initialize() method may not be overriden, but calls this method at a point where it is safe to do so.

### run

    public final void run()

  Runnable's run method
  Specified by:
    run in interface java.lang.Runnable

### update

    public final void update(java.awt.Graphics g)

  Inherited Applet update method
  Overrides:
    update in class java.awt.Container

### handleEvent

    public final boolean handleEvent(java.awt.Event event)

  Overrides:
    handleEvent in class java.awt.Component

### clearResourceCaches

    public final void clearResourceCaches()

  Clears the cache of loaded resources, freeing the memory that holds them. Normally, a texture, sound or Shout3d scene that is loaded by the applet is stored in a cache, so that if the resource is needed again, it does not need to be fetched by the server repeatedly. This method frees those caches, which frees memory while making it so that all resources will be fetched if they are requested anew. Note: Nodes (such as ImageTexture and JavaSound) store separate references to their resources. The caches are a second reference. So calling clearResourceCaches() will not cause any errors in the way those nodes function.
  Specified by:
    clearResourceCaches in interface Shout3DViewer

### setAntiAliased

    public final void setAntiAliased(boolean newVal)

  Sets whether antialiasing is enabled. (Default is false) This performs antialiasing of all geometry against the background.
  Specified by:
    setAntiAliased in interface Shout3DViewer
  Parameters:
    `newVal` - whether antialiasing should be enabled

### isAntiAliased

    public final boolean isAntiAliased()

  Returns whether antialiasing is enabled
  Specified by:
    isAntiAliased in interface Shout3DViewer
  Returns:
    whether antialiasing is currently enabled

### setBilinearFiltering

    public final void setBilinearFiltering(boolean newVal)

  Sets whether bilinear filtering is enabled on textures. (Default is false) This results in higher quality, but slower rendering of the textures
  Specified by:
    setBilinearFiltering in interface Shout3DViewer
  Parameters:
    `newVal` - whether bilinear filtering should be enabled

### isBilinearFiltering

    public final boolean isBilinearFiltering()

  Returns whether bilinear filtering is enabled on textures
  Specified by:
    isBilinearFiltering in interface Shout3DViewer
  Returns:
    whether bilinear filtering is currently enabled

### setLoadResourcesInSeparateThread

    public final void setLoadResourcesInSeparateThread(boolean newVal)

  Sets whether resources (textures and sounds) should be loaded in a separate thread from the main thread. (Default is true)
  Specified by:
    setLoadResourcesInSeparateThread in interface Shout3DViewer
  Parameters:
    `newVal` - whether resources should be loaded in a separate thread.

### isLoadResourcesInSeparateThread

    public final boolean isLoadResourcesInSeparateThread()

  Returns whether resources should are being loaded in a separate thread.
  Specified by:
    isLoadResourcesInSeparateThread in interface Shout3DViewer
  Returns:
    whether resources should are being loaded in a separate thread.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD