Aviatrix3D
2.1.0

org.j3d.aviatrix3d
Class CompositeViewport

java.lang.Object
  extended by org.j3d.aviatrix3d.SceneGraphObject
      extended by org.j3d.aviatrix3d.Viewport
          extended by org.j3d.aviatrix3d.CompositeViewport
All Implemented Interfaces:
Cullable, ViewportCullable

public class CompositeViewport
extends Viewport
implements ViewportCullable

An viewport that may, itself contain a large collection of layers.

Like the global layers, this viewport allows a selection of local layers that are specific to this viewport to be defined. These viewport layers follow a different structure from the main system layer. All layers in this viewport are rendered at the full size of the viewport.

Internationalisation Resource Names

Version:
$Revision: 1.11 $
Author:
Justin Couch

Field Summary
 
Fields inherited from class org.j3d.aviatrix3d.Viewport
COMPOSITE, FLAT, MULTIPASS, SIMPLE, viewHeight, viewportType, viewWidth, viewX, viewY
 
Fields inherited from class org.j3d.aviatrix3d.SceneGraphObject
alive, LISTENER_SET_TIMING_ERR_PROP, updateHandler
 
Constructor Summary
CompositeViewport()
          Construct a new, empty, viewport instance
 
Method Summary
 void addViewportLayer(ViewportLayer vp)
          Add a new layer to be used by this layer.
 void clearViewportLayers()
          Remove all the layers from this viewport.
 ViewportLayerCullable getCullableLayer(int viewportIndex)
          Get the cullable layer child that for the given layer index.
 ViewportLayer getViewportLayer(int num)
          Get the currently set layer instance at a specific index.
 void insertViewportLayer(ViewportLayer vp, int index)
          Add a new layer to be used by this layer at a specified position in the array of layer.
 int numCullableChildren()
          Returns the number of valid cullable children to process.
 int numViewportLayers()
          Return how many layers this viewport contains.
 ViewportLayer removeViewportLayer(int num)
          Remove the given layer at the specified index from this layer.
 void removeViewportLayer(ViewportLayer vp)
          Remove the given layer from this layer.
 void setDimensions(int x, int y, int width, int height)
          Set the dimensions of the viewport in pixels.
protected  void setLive(boolean state)
          Notification that this object is live now.
protected  void setUpdateHandler(NodeUpdateHandler handler)
          Set the viewportgraph update handler for this node.
 
Methods inherited from class org.j3d.aviatrix3d.Viewport
getDimensions, getHeight, getType, getWidth, getX, getY, isValid
 
Methods inherited from class org.j3d.aviatrix3d.SceneGraphObject
checkForCyclicChild, checkForCyclicParent, dataChanged, getAppUpdateWriteTimingMessage, getBoundsWriteTimingMessage, getDataWriteTimingMessage, getUserData, isLive, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.j3d.aviatrix3d.rendering.ViewportCullable
isValid
 

Constructor Detail

CompositeViewport

public CompositeViewport()
Construct a new, empty, viewport instance

Method Detail

getCullableLayer

public ViewportLayerCullable getCullableLayer(int viewportIndex)
Get the cullable layer child that for the given layer index.

Specified by:
getCullableLayer in interface ViewportCullable
Returns:
The layer cullable at the given index or null

numCullableChildren

public int numCullableChildren()
Returns the number of valid cullable children to process. If there are no valid cullable children, return 0.

Specified by:
numCullableChildren in interface ViewportCullable
Returns:
A number greater than or equal to zero

setDimensions

public void setDimensions(int x,
                          int y,
                          int width,
                          int height)
                   throws InvalidWriteTimingException
Set the dimensions of the viewport in pixels. Coordinates are defined in the space of the parent component that is being rendered to.

Overrides:
setDimensions in class Viewport
Parameters:
x - The lower left x coordinate for the view
y - The lower left y coordinate for the view
width - The width of the viewport in pixels
height - The height of the viewport in pixels
Throws:
InvalidWriteTimingException - An attempt was made to write outside of the ApplicationUpdateObserver callback method

setUpdateHandler

protected void setUpdateHandler(NodeUpdateHandler handler)
Set the viewportgraph update handler for this node. It will notify all its children of the value. A null value will clear the current handler.

Overrides:
setUpdateHandler in class SceneGraphObject
Parameters:
handler - The instance to use as a handler

setLive

protected void setLive(boolean state)
Notification that this object is live now. Overridden to make sure that the live state of the nodes represents the same state as the parent viewport graph.

Overrides:
setLive in class SceneGraphObject
Parameters:
state - true if this should be marked as live now

addViewportLayer

public void addViewportLayer(ViewportLayer vp)
                      throws InvalidWriteTimingException,
                             AlreadyParentedException
Add a new layer to be used by this layer. Adding null references is silently ignored. The layer is added to the end of the current listing.

Note that a layer cannot have more than one parent, so sharing it between layers will result in an error.

Parameters:
vp - The layer instance to use
Throws:
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener data change callback method
AlreadyParentedException - This viewport already has a current parent preventing it from being used

insertViewportLayer

public void insertViewportLayer(ViewportLayer vp,
                                int index)
                         throws InvalidWriteTimingException,
                                AlreadyParentedException
Add a new layer to be used by this layer at a specified position in the array of layer. Adding null references is silently ignored. If the index is greater than the current number of registered layer, the viewport is added to the end of the current list. If the index is zero or negative, it is inserted at the front of the list.

Note that a layer cannot have more than one parent, so sharing it between layers will result in an error.

Parameters:
vp - The layer instance to use
index - The position in the list to put this viewport
Throws:
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener data change callback method
AlreadyParentedException - This viewport already has a current parent preventing it from being used

removeViewportLayer

public void removeViewportLayer(ViewportLayer vp)
Remove the given layer from this layer. If the layer is not registered, then the request is silently ignored.

Parameters:
vp - The layer instance to be removed
Throws:
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener data change callback method

removeViewportLayer

public ViewportLayer removeViewportLayer(int num)
Remove the given layer at the specified index from this layer. If the index is out of bounds, null is returned and nothing happens. All layers at indices above this number are shifted down by 1.

Parameters:
num - The index of the layer to remove
Returns:
viewport The viewport that was at the given index
Throws:
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener data change callback method

clearViewportLayers

public void clearViewportLayers()
Remove all the layers from this viewport.

Throws:
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener data change callback method

getViewportLayer

public ViewportLayer getViewportLayer(int num)
Get the currently set layer instance at a specific index. If no layer is set at that index, null is returned.

Parameters:
num - The index of the viewport to fetch
Returns:
The current viewport instance or null

numViewportLayers

public int numViewportLayers()
Return how many layers this viewport contains.

Returns:
A value >= 0

Aviatrix3D
2.1.0

Latest Info from http://aviatrix3d.j3d.org/
Copyright © 2003 - 2009 j3d.org