javax.media.j3d
Class TransformStructure

java.lang.Object
  extended by javax.media.j3d.J3dStructure
      extended by javax.media.j3d.TransformStructure
All Implemented Interfaces:
ObjectUpdate

 class TransformStructure
extends J3dStructure
implements ObjectUpdate

A transform update is a object that manages TransformGroups


Nested Class Summary
private  class TransformStructure.TransformData
           
 
Field Summary
private  java.util.ArrayList<TransformGroupRetained> activeTraverseList
           
private  java.util.ArrayList blUsers
          arraylist of the bounding leaf users affected by the transform
private  java.util.ArrayList collisionObjectList
          An arrayList of nodes that need collisionBounds updates
private  java.util.ArrayList dirtyTransformGroups
           
private  boolean inUpdateObjectList
           
private  java.util.ArrayList keySet
           
private  boolean lazyUpdate
           
private  java.util.ArrayList objectList
           
private  java.util.ArrayList switchChangedList
           
private  java.util.ArrayList switchDirtyTgList
           
private  UpdateTargets targets
           
private  java.util.HashSet<TransformStructure.TransformData> transformSet
          A set of TransformGroups and associated Transform3Ds to traverse
 
Fields inherited from class javax.media.j3d.J3dStructure
messageList, msgList, nMessage, threadData, threadType, universe, updateThread
 
Constructor Summary
TransformStructure(VirtualUniverse u)
          This constructor does nothing
 
Method Summary
(package private)  void cleanup()
          Release resource associate with this structure before GC We need to clear all those IndexedUnorderSet/WakeupIndexedList so that the listIdx associate with IndexedObject reset to -1.
(package private)  java.util.ArrayList getBlUsers()
           
(package private)  boolean getLazyUpdate()
           
(package private)  UpdateTargets getTargetList()
           
private  void insertSort(int size, TransformGroupRetained[] tgs)
           
(package private)  void processBoundsAutoComputeChanged(J3dMessage m)
           
(package private)  void processBoundsChanged(java.lang.Object[] gaArray, Bounds updateBounds)
           
(package private)  void processCollisionBoundChanged(J3dMessage m)
           
(package private)  void processCurrentLocalToVworld()
           
(package private)  void processGeometryAtomVwcBounds()
           
(package private)  void processLastLocalToVworld()
           
(package private)  void processLastSwitchOn()
           
(package private)  void processMessages(long referenceTime)
          This gets overriden by the structure
(package private)  void processRegionBoundChanged(J3dMessage m)
           
(package private)  void processSwitchChanged(J3dMessage m)
           
(package private)  void processVwcBounds()
           
private  void quicksort(int l, int r, TransformGroupRetained[] tgs)
           
(package private)  void removeNodes(J3dMessage m)
          This is used by MasterControl to process any unused message for final cleanup.
private  void sortTransformGroups(int size, TransformGroupRetained[] tgs)
           
 void updateObject()
          The actual update function.
 
Methods inherited from class javax.media.j3d.J3dStructure
addMessage, clearMessages, getMessages, getNumMessage, getUpdateThreadData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

transformSet

private java.util.HashSet<TransformStructure.TransformData> transformSet
A set of TransformGroups and associated Transform3Ds to traverse


objectList

private java.util.ArrayList objectList

blUsers

private java.util.ArrayList blUsers
arraylist of the bounding leaf users affected by the transform


targets

private UpdateTargets targets

collisionObjectList

private java.util.ArrayList collisionObjectList
An arrayList of nodes that need collisionBounds updates


dirtyTransformGroups

private java.util.ArrayList dirtyTransformGroups

keySet

private java.util.ArrayList keySet

activeTraverseList

private java.util.ArrayList<TransformGroupRetained> activeTraverseList

switchDirtyTgList

private java.util.ArrayList switchDirtyTgList

lazyUpdate

private boolean lazyUpdate

switchChangedList

private java.util.ArrayList switchChangedList

inUpdateObjectList

private boolean inUpdateObjectList
Constructor Detail

TransformStructure

TransformStructure(VirtualUniverse u)
This constructor does nothing

Method Detail

processMessages

void processMessages(long referenceTime)
Description copied from class: J3dStructure
This gets overriden by the structure

Specified by:
processMessages in class J3dStructure

processCurrentLocalToVworld

void processCurrentLocalToVworld()

sortTransformGroups

private void sortTransformGroups(int size,
                                 TransformGroupRetained[] tgs)

insertSort

private void insertSort(int size,
                        TransformGroupRetained[] tgs)

quicksort

private void quicksort(int l,
                       int r,
                       TransformGroupRetained[] tgs)

updateObject

public void updateObject()
Description copied from interface: ObjectUpdate
The actual update function.

Specified by:
updateObject in interface ObjectUpdate

processLastSwitchOn

void processLastSwitchOn()

processLastLocalToVworld

void processLastLocalToVworld()

processGeometryAtomVwcBounds

void processGeometryAtomVwcBounds()

processVwcBounds

void processVwcBounds()

processRegionBoundChanged

void processRegionBoundChanged(J3dMessage m)

processBoundsChanged

void processBoundsChanged(java.lang.Object[] gaArray,
                          Bounds updateBounds)

processCollisionBoundChanged

void processCollisionBoundChanged(J3dMessage m)

processBoundsAutoComputeChanged

void processBoundsAutoComputeChanged(J3dMessage m)

processSwitchChanged

void processSwitchChanged(J3dMessage m)

getTargetList

UpdateTargets getTargetList()

getBlUsers

java.util.ArrayList getBlUsers()

getLazyUpdate

boolean getLazyUpdate()

removeNodes

void removeNodes(J3dMessage m)
Description copied from class: J3dStructure
This is used by MasterControl to process any unused message for final cleanup. DON'T decrememt message count in the method, as it is done by MasterControl.

Specified by:
removeNodes in class J3dStructure

cleanup

void cleanup()
Description copied from class: J3dStructure
Release resource associate with this structure before GC We need to clear all those IndexedUnorderSet/WakeupIndexedList so that the listIdx associate with IndexedObject reset to -1.

Specified by:
cleanup in class J3dStructure


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