Aviatrix3D 1.0

org.j3d.aviatrix3d
Class SwitchGroup

java.lang.Object
  extended byorg.j3d.aviatrix3d.SceneGraphObject
      extended byorg.j3d.aviatrix3d.Node
          extended byorg.j3d.aviatrix3d.Group
              extended byorg.j3d.aviatrix3d.SwitchGroup
All Implemented Interfaces:
PickableObject

public class SwitchGroup
extends Group

Special grouping node that allows the selection of only a single child to be rendered.

If the node that is the selected index is removed, then the selectedChild is automatically to be invalid. The user must reset the selected child index in order for rendering to continue.

Version:
$Revision: 1.15 $
Author:
Justin Couch

Field Summary
 
Fields inherited from class org.j3d.aviatrix3d.Group
childList, dirtyBoundsCount, lastChild, pickFlags, wkVec1, wkVec2
 
Fields inherited from class org.j3d.aviatrix3d.Node
bounds, implicitBounds, INVALID_BOUNDS, parent
 
Fields inherited from class org.j3d.aviatrix3d.SceneGraphObject
alive, LISTENER_SET_NOT_LIVE_MESSAGE, updateHandler, WRITE_TIMING_MSG
 
Fields inherited from interface org.j3d.aviatrix3d.PickableObject
COLLIDABLE_OBJECT, GENERAL_OBJECT, PROXIMITY_OBJECT, VISIBLE_OBJECT
 
Constructor Summary
SwitchGroup()
          The default constructor
 
Method Summary
 int getActiveChild()
          Get the currently selected active child of this switch node.
 Node[] getRenderableChild()
          Get the list of children that are valid to be rendered according to the rules of the grouping node.
 int numRenderableChildren()
          Returns the number of valid renderable children to process.If there are no valid renderable children return -1.
protected  void recomputeBounds()
          Internal method to recalculate the implicit bounds of this Node.
 void removeAllChildren()
          Removes all children from the group.
 void removeChild(int idx)
          Remove the child at the specified index from the group.
 void setActiveChild(int idx)
          Set the selected child to be rendered to the given index.
 void setChild(Node newChild, int idx)
          Replaces the child node at the specified index in this group node's list of children with the specified child.
 
Methods inherited from class org.j3d.aviatrix3d.Group
addChild, checkForCyclicChild, getAllChildren, getChild, getPickMask, indexOfChild, markBoundsDirty, numChildren, pickBatch, pickSingle, removeChild, requestBoundsUpdate, setBounds, setLive, setPickMask, setUpdateHandler, updateBounds
 
Methods inherited from class org.j3d.aviatrix3d.Node
boundsChanged, checkForCyclicParent, getBounds, getParent, removeParent, setParent, updateParentBounds
 
Methods inherited from class org.j3d.aviatrix3d.SceneGraphObject
dataChanged, getUserData, isLive, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SwitchGroup

public SwitchGroup()
The default constructor

Method Detail

setChild

public void setChild(Node newChild,
                     int idx)
              throws InvalidWriteTimingException
Replaces the child node at the specified index in this group node's list of children with the specified child.

Overrides:
setChild in class Group
Parameters:
newChild - The child node to use
idx - The index to replace. Must be greater than 0 and less then numChildren
Throws:
java.lang.IndexOutOfBoundsException - When the idx is invalid
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener callback method

removeChild

public void removeChild(int idx)
                 throws InvalidWriteTimingException
Remove the child at the specified index from the group.

Overrides:
removeChild in class Group
Parameters:
idx - The index of the child to remove
Throws:
IndexOfBoundsException - When the idx is invalid
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener callback method

getRenderableChild

public Node[] getRenderableChild()
Get the list of children that are valid to be rendered according to the rules of the grouping node.

Overrides:
getRenderableChild in class Group
Returns:
an array of nodes

numRenderableChildren

public int numRenderableChildren()
Returns the number of valid renderable children to process.If there are no valid renderable children return -1.

Overrides:
numRenderableChildren in class Group
Returns:
A number greater than or equal to zero

removeAllChildren

public void removeAllChildren()
                       throws InvalidWriteTimingException
Removes all children from the group.

Overrides:
removeAllChildren in class Group
Throws:
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener callback method

recomputeBounds

protected void recomputeBounds()
Internal method to recalculate the implicit bounds of this Node. By default the bounds are a point sphere, so derived classes should override this method with something better.

Overrides:
recomputeBounds in class Group

setActiveChild

public void setActiveChild(int idx)
                    throws InvalidWriteTimingException
Set the selected child to be rendered to the given index. If the index is invalid, then an exception is issued. Using a value of -1 means that no child will be rendered.

Parameters:
idx - The index of the child to now be rendered
Throws:
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener callback method

getActiveChild

public int getActiveChild()
Get the currently selected active child of this switch node. If none is active, -1 will be returned.

Returns:
The valid child index or -1

Aviatrix3D 1.0

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