javax.media.j3d

## Class TransformGroup

- java.lang.Object
- - javax.media.j3d.SceneGraphObject
  - - javax.media.j3d.Node
    - - javax.media.j3d.Group
      - - javax.media.j3d.TransformGroup

-     public class TransformGroup
      extends Group

  Group node that contains a transform. The TransformGroup node specifies a single spatial transformation, via a Transform3D object, that can position, orient, and scale all of its children.

  The specified transformation must be affine. Further, if the TransformGroup node is used as an ancestor of a ViewPlatform node in the scene graph, the transformation must be congruent-only rotations, translations, and uniform scales are allowed in a direct path from a Locale to a ViewPlatform node.

  Note: Even though arbitrary affine transformations are allowed, better performance will result if all matrices within a branch graph are congruent, containing only rotations translation, and uniform scale.

  The effects of transformations in the scene graph are cumulative. The concatenation of the transformations of each TransformGroup in a direct path from the Locale to a Leaf node defines a composite model transformation (CMT) that takes points in that Leaf node's local coordinates and transforms them into Virtual World (Vworld) coordinates. This composite transformation is used to transform points, normals, and distances into Vworld coordinates. Points are transformed by the CMT. Normals are transformed by the inverse-transpose of the CMT. Distances are transformed by the scale of the CMT. In the case of a transformation containing a nonuniform scale or shear, the maximum scale value in any direction is used. This ensures, for example, that a transformed bounding sphere, which is specified as a point and a radius, continues to enclose all objects that are also transformed using a nonuniform scale.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ALLOW_TRANSFORM_READ` Specifies that the node allows access to its object's transform information.
    `static int` | `ALLOW_TRANSFORM_WRITE` Specifies that the node allows writing its object's transform information.

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

    Constructors
    Constructor and Description
    `TransformGroup()` Constructs and initializes a TransformGroup using an identity transform.
    `TransformGroup(Transform3D t1)` Constructs and initializes a TransformGroup from the Transform passed.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Node` | `cloneNode(boolean forceDuplicate)` Creates a new instance of the node.
    `void` | `getTransform(Transform3D t1)` Copies the transform component of this TransformGroup into the passed transform object.
    `void` | `setTransform(Transform3D t1)` Sets the transform component of this TransformGroup to the value of the passed transform.

    - ### 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_TRANSFORM_READ

          public static final int ALLOW_TRANSFORM_READ

      Specifies that the node allows access to its object's transform information.
      See Also:
        Constant Field Values

    - #### ALLOW_TRANSFORM_WRITE

          public static final int ALLOW_TRANSFORM_WRITE

      Specifies that the node allows writing its object's transform information.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### TransformGroup

          public TransformGroup()

      Constructs and initializes a TransformGroup using an identity transform.

    - #### TransformGroup

          public TransformGroup(Transform3D t1)

      Constructs and initializes a TransformGroup from the Transform passed.
      Parameters:
        `t1` - the transform3D object
      Throws:
        `BadTransformException` - if the transform is not affine.

  - ### Method Detail

    - #### setTransform

          public void setTransform(Transform3D t1)

      Sets the transform component of this TransformGroup to the value of the passed transform.
      Parameters:
        `t1` - the transform to be copied
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
        `BadTransformException` - if the transform is not affine.

    - #### getTransform

          public void getTransform(Transform3D t1)

      Copies the transform component of this TransformGroup into the passed transform object.
      Parameters:
        `t1` - the transform object to be copied into
      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)

      Creates 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.