Aviatrix3D
2.1.0

org.j3d.renderer.aviatrix3d.nodes
Class MaskedSwitch

java.lang.Object
  extended by org.j3d.aviatrix3d.SceneGraphObject
      extended by org.j3d.aviatrix3d.Node
          extended by org.j3d.aviatrix3d.Group
              extended by org.j3d.renderer.aviatrix3d.nodes.MaskedSwitch
All Implemented Interfaces:
GroupPickTarget, PickableObject, PickTarget, Cullable, GroupCullable, TransformHierarchy

public class MaskedSwitch
extends Group

Special grouping node that allows the selection of only a mask of children to be rendered.

If the mask has less entries then the children list the unspecified children will not be displayed.

Version:
$Revision: 1.10 $
Author:
Alan Hudson

Field Summary
 
Fields inherited from class org.j3d.aviatrix3d.Group
childList, cullList, dirtyBoundsCount, lastChild, pickableList, 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_TIMING_ERR_PROP, updateHandler
 
Fields inherited from interface org.j3d.aviatrix3d.picking.PickableObject
COLLIDABLE_OBJECT, GENERAL_OBJECT, PROXIMITY_OBJECT, VISIBLE_OBJECT
 
Fields inherited from interface org.j3d.aviatrix3d.picking.PickTarget
CUSTOM_PICK_TYPE, GROUP_PICK_TYPE, LEAF_PICK_TYPE, SINGLE_PICK_TYPE
 
Constructor Summary
MaskedSwitch()
          The default constructor.
MaskedSwitch(boolean[] mask)
          Constructor with mask specified.
 
Method Summary
 Cullable[] getCullableChildren()
          Get the list of children that are valid to be rendered according to the rules of the grouping node.
 void getMask(boolean[] mask)
          Get the current mask.
 int getMaskLength()
          Request the current length of the mask set.
 int numCullableChildren()
          Returns the number of valid renderable children to process.
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 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.
 void setMask(boolean[] mask)
          Set the mask to change which objects are to be visible of all the children.
 
Methods inherited from class org.j3d.aviatrix3d.Group
addChild, checkForCyclicChild, checkPickMask, getAllChildren, getChild, getCullableParent, getPickableBounds, getPickableChild, getPickableChildren, getPickMask, getPickTargetType, hasMultipleParents, indexOfChild, markBoundsDirty, numChildren, numPickableChildren, 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, 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.GroupCullable
getBounds
 

Constructor Detail

MaskedSwitch

public MaskedSwitch()
The default constructor. Nothing will be shown.


MaskedSwitch

public MaskedSwitch(boolean[] mask)
Constructor with mask specified.

Method Detail

getCullableChildren

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

Specified by:
getCullableChildren in interface GroupCullable
Overrides:
getCullableChildren in class Group
Returns:
an array of nodes

numCullableChildren

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

Specified by:
numCullableChildren in interface GroupCullable
Overrides:
numCullableChildren in class Group
Returns:
A number greater than or equal to zero or -1

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 bounds 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

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

setMask

public void setMask(boolean[] mask)
             throws InvalidWriteTimingException
Set the mask to change which objects are to be visible of all the children. If the length of the mask is longer than the number of children, any extras are ignored.

Parameters:
mask - The new mask
Throws:
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener callback method

getMask

public void getMask(boolean[] mask)
Get the current mask. The array passed in should be at least getMaskLength() long.

Parameters:
mask - The array to copy the values into

getMaskLength

public int getMaskLength()
Request the current length of the mask set.

Returns:
A number greater than or equal to zero

Aviatrix3D
2.1.0

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