## javax.media.j3d
Class Switch

    java.lang.Object
      javax.media.j3d.SceneGraphObject
          javax.media.j3d.Node
              javax.media.j3d.Group
                  javax.media.j3d.Switch

    public class Switch

extends Group

The Switch node controls which of its children will be rendered. It defines a child selection value (a switch value) that can either select a single child, or it can select 0 or more children using a mask to indicate which children are selected for rendering. The Switch node contains an ordered list of children, but the index order of the children in the list is only used for selecting the appropriate child or children and does not specify rendering order.

Field Summary
`static int` `ALLOW_SWITCH_READ` Specifies that this node allows reading its child selection and mask values and its current child.
`static int` `ALLOW_SWITCH_WRITE` Specifies that this node allows writing its child selection and mask values.
`static int` `CHILD_ALL` Specifies that all children are rendered.
`static int` `CHILD_MASK` Specifies that the childMask BitSet is used to select which children are rendered.
`static int` `CHILD_NONE` Specifies that no children are rendered.

Fields inherited from class javax.media.j3d.Group
`ALLOW_CHILDREN_EXTEND, ALLOW_CHILDREN_READ, ALLOW_CHILDREN_WRITE, ALLOW_COLLISION_BOUNDS_READ, ALLOW_COLLISION_BOUNDS_WRITE`

Fields inherited from class javax.media.j3d.Node
`ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING`

Constructor Summary
`Switch()` Constructs a Switch node with default parameters.
`Switch(int whichChild)` Constructs and initializes a Switch node using the specified child selection index.
`Switch(int whichChild, java.util.BitSet childMask)` Constructs and initializes a Switch node using the specified child selection index and mask.

Method Summary
`Node` `cloneNode(boolean forceDuplicate)` Used to create a new instance of the node.
`Node` `currentChild()` Retrieves the currently selected child.
`java.util.BitSet` `getChildMask()` Retrieves the current child selection mask.
`int` `getWhichChild()` Retrieves the current child selection index that specifies which child is rendered.
`void` `setChildMask(java.util.BitSet childMask)` Sets the child selection mask.
`void` `setWhichChild(int child)` Sets the child selection index that specifies which child is rendered.

Methods inherited from class javax.media.j3d.Group
`addChild, getAllChildren, getAlternateCollisionTarget, getChild, getCollisionBounds, indexOfChild, insertChild, moveTo, numChildren, removeAllChildren, removeChild, removeChild, setAlternateCollisionTarget, setChild, setCollisionBounds`

Methods inherited from class javax.media.j3d.Node
`cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable`

Methods inherited from class javax.media.j3d.SceneGraphObject
`clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences`

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

Field Detail

### ALLOW_SWITCH_READ

    public static final int ALLOW_SWITCH_READ

  Specifies that this node allows reading its child selection and mask values and its current child.

  See Also:
    Constant Field Values

### ALLOW_SWITCH_WRITE

    public static final int ALLOW_SWITCH_WRITE

  Specifies that this node allows writing its child selection and mask values.

  See Also:
    Constant Field Values

### CHILD_NONE

    public static final int CHILD_NONE

  Specifies that no children are rendered. This value may be used in place of a non-negative child selection index.

  See Also:
    Constant Field Values

### CHILD_ALL

    public static final int CHILD_ALL

  Specifies that all children are rendered. This setting causes the switch node to function as an ordinary group node. This value may be used in place of a non-negative child selection index.

  See Also:
    Constant Field Values

### CHILD_MASK

    public static final int CHILD_MASK

  Specifies that the childMask BitSet is used to select which children are rendered. This value may be used in place of a non-negative child selection index.

  See Also:
    Constant Field Values

Constructor Detail

### Switch

    public Switch()

  Constructs a Switch node with default parameters. The default values are as follows:
  child selection index : CHILD_NONE
  child selection mask : false (for all children)

### Switch

    public Switch(int whichChild)

  Constructs and initializes a Switch node using the specified child selection index.

  Parameters:
    `whichChild` - the initial child selection index

### Switch

    public Switch(int whichChild,
                  java.util.BitSet childMask)

  Constructs and initializes a Switch node using the specified child selection index and mask.

  Parameters:
    `whichChild` - the initial child selection index
    `childMask` - the initial child selection mask

Method Detail

### setWhichChild

    public void setWhichChild(int child)

  Sets the child selection index that specifies which child is rendered. If the value is out of range, then no children are drawn.

  Parameters:
    `child` - a non-negative integer index value, indicating a specific child, or one of the following constants: CHILD_NONE, CHILD_ALL, or CHILD_MASK.
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  See Also:
    `CHILD_NONE`, `CHILD_ALL`, `CHILD_MASK`

### getWhichChild

    public int getWhichChild()

  Retrieves the current child selection index that specifies which child is rendered.

  Returns:
    a non-negative integer index value, indicating a specific child, or one of the following constants: CHILD_NONE, CHILD_ALL, or CHILD_MASK
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  See Also:
    `CHILD_NONE`, `CHILD_ALL`, `CHILD_MASK`

### setChildMask

    public void setChildMask(java.util.BitSet childMask)

  Sets the child selection mask. This mask is used when the child selection index is set to CHILD_MASK.

  Parameters:
    `childMask` - a BitSet that specifies which children are rendered
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getChildMask

    public java.util.BitSet getChildMask()

  Retrieves the current child selection mask. This mask is used when the child selection index is set to CHILD_MASK.

  Returns:
    the child selection mask
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### currentChild

    public Node currentChild()

  Retrieves the currently selected child. If the child selection index is out of range or is set to CHILD_NONE, CHILD_ALL, or CHILD_MASK, then this method returns null.

  Returns:
    a reference to the current child chosen for rendering
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### cloneNode

    public Node cloneNode(boolean forceDuplicate)

  Used to create a new instance of the node. This routine is called by `cloneTree` to duplicate the current node.

  Overrides:
    `cloneNode` in class `Group`
  Parameters:
    `forceDuplicate` - when set to `true`, causes the `duplicateOnCloneTree` flag to be ignored. When `false`, the value of each node's `duplicateOnCloneTree` variable determines whether NodeComponent data is duplicated or copied.
  See Also:
    `Node.cloneTree()`, `Node.cloneNode(boolean)`, `Node.duplicateNode(javax.media.j3d.Node, boolean)`, `NodeComponent.setDuplicateOnCloneTree(boolean)`

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.