com.sun.j3d.utils.geometry

## Class Box

- java.lang.Object
- - javax.media.j3d.SceneGraphObject
  - - javax.media.j3d.Node
    - - javax.media.j3d.Group
      - - com.sun.j3d.utils.geometry.Primitive
        - - com.sun.j3d.utils.geometry.Box

-     public class Box
      extends Primitive

  Box is a geometry primitive created with a given length, width, and height. It is centered at the origin. By default, it lies within the bounding box, [-1,-1,-1] and [1,1,1]. When a texture is applied to a box, it is map CCW like on a Cylinder. A texture is mapped CCW from the back of the body. The top and bottom faces are mapped such that the texture appears front facing when the faces are rotated 90 toward the viewer.

  By default all primitives with the same parameters share their geometry (e.g., you can have 50 shperes in your scene, but the geometry is stored only once). A change to one primitive will effect all shared nodes. Another implication of this implementation is that the capabilities of the geometry are shared, and once one of the shared nodes is live, the capabilities cannot be set. Use the GEOMETRY_NOT_SHARED flag if you do not wish to share geometry among primitives with the same parameters.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `BACK` Used to designate the back side of the box when using getShape().
    `static int` | `BOTTOM` Used to designate the bottom side of the box when using getShape().
    `static int` | `FRONT` Used to designate the front side of the box when using getShape().
    `static int` | `LEFT` Used to designate the left side of the box when using getShape().
    `static int` | `RIGHT` Used to designate the right side of the box when using getShape().
    `static int` | `TOP` Used to designate the top side of the box when using getShape().

    - ### Fields inherited from class com.sun.j3d.utils.geometry.Primitive

      `ENABLE_APPEARANCE_MODIFY, ENABLE_GEOMETRY_PICKING, GENERATE_NORMALS, GENERATE_NORMALS_INWARD, GENERATE_TEXTURE_COORDS, GENERATE_TEXTURE_COORDS_Y_UP, GEOMETRY_NOT_SHARED`

    - ### 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
    `Box()` Constructs a default box of 1.0 in all dimensions.
    `Box(float xdim, float ydim, float zdim, Appearance ap)` Constructs a box of a given dimension and appearance.
    `Box(float xdim, float ydim, float zdim, int primflags, Appearance ap)`
    `Box(float xdim, float ydim, float zdim, int primflags, Appearance ap, int numTexUnit)` Constructs a box of a given dimension, flags, and appearance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Node` | `cloneNode(boolean forceDuplicate)` Used to create a new instance of the node.
    `void` | `duplicateNode(Node originalNode, boolean forceDuplicate)` Copies all node information from `originalNode` into the current node.
    `Appearance` | `getAppearance(int partId)` Gets the appearance of the specified part of the box.
    `Shape3D` | `getShape(int partId)` Gets one of the faces (Shape3D) from the box that contains the geometry and appearance.
    `float` | `getXdimension()` Returns the X-dimension size of the Box
    `float` | `getYdimension()` Returns the Y-dimension size of the Box
    `float` | `getZdimension()` Returns the Z-dimension size of the Box
    `void` | `setAppearance(Appearance ap)` Sets appearance of the box.

    - ### Methods inherited from class com.sun.j3d.utils.geometry.Primitive

      `cacheGeometry, clearGeometryCache, getAppearance, getCachedGeometry, getNumTriangles, getNumVertices, getPrimitiveFlags, setAppearance, setAppearance, setNumTriangles, setNumVertices, setPrimitiveFlags`

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

    - #### FRONT

          public static final int FRONT

      Used to designate the front side of the box when using getShape().
      See Also:
        `getShape(int)`, Constant Field Values

    - #### BACK

          public static final int BACK

      Used to designate the back side of the box when using getShape().
      See Also:
        `getShape(int)`, Constant Field Values

    - #### RIGHT

          public static final int RIGHT

      Used to designate the right side of the box when using getShape().
      See Also:
        `getShape(int)`, Constant Field Values

    - #### LEFT

          public static final int LEFT

      Used to designate the left side of the box when using getShape().
      See Also:
        `getShape(int)`, Constant Field Values

    - #### TOP

          public static final int TOP

      Used to designate the top side of the box when using getShape().
      See Also:
        `getShape(int)`, Constant Field Values

    - #### BOTTOM

          public static final int BOTTOM

      Used to designate the bottom side of the box when using getShape().
      See Also:
        `getShape(int)`, Constant Field Values

  - ### Constructor Detail

    - #### Box

          public Box()

      Constructs a default box of 1.0 in all dimensions. Normals are generated by default, texture coordinates are not.

    - #### Box

          public Box(float xdim,
             float ydim,
             float zdim,
             Appearance ap)

      Constructs a box of a given dimension and appearance. Normals are generated by default, texture coordinates are not.
      Parameters:
        `xdim` - X-dimension size.
        `ydim` - Y-dimension size.
        `zdim` - Z-dimension size.
        `ap` - Appearance

    - #### Box

          public Box(float xdim,
             float ydim,
             float zdim,
             int primflags,
             Appearance ap,
             int numTexUnit)

      Constructs a box of a given dimension, flags, and appearance.
      Parameters:
        `xdim` - X-dimension size.
        `ydim` - Y-dimension size.
        `zdim` - Z-dimension size.
        `primflags` - primitive flags.
        `ap` - Appearance

    - #### Box

          public Box(float xdim,
             float ydim,
             float zdim,
             int primflags,
             Appearance ap)

  - ### Method Detail

    - #### getShape

          public Shape3D getShape(int partId)

      Gets one of the faces (Shape3D) from the box that contains the geometry and appearance. This allows users to modify the appearance or geometry of individual parts.
      Specified by:
        `getShape` in class `Primitive`
      Parameters:
        `partId` - The part to return.
      Returns:
        The Shape3D object associated with the partID. If an invalid partId is passed in, null is returned.

    - #### setAppearance

          public void setAppearance(Appearance ap)

      Sets appearance of the box. This will set each face of the box to the same appearance. To set each face's appearance separately, use getShape(partId) to get the individual shape and call shape.setAppearance(ap).
      Specified by:
        `setAppearance` in class `Primitive`

    - #### getAppearance

          public Appearance getAppearance(int partId)

      Gets the appearance of the specified part of the box.
      Specified by:
        `getAppearance` in class `Primitive`
      Parameters:
        `partId` - identifier for a given subpart of the box
      Returns:
        The appearance object associated with the partID. If an invalid partId is passed in, null is returned.
      Since:
        Java 3D 1.2.1

    - #### 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. `cloneNode` should be overridden by any user subclassed objects. All subclasses must have their `cloneNode` method consist of the following lines:

      >          public Node cloneNode(boolean forceDuplicate) {
      >              UserSubClass usc = new UserSubClass();
      >              usc.duplicateNode(this, forceDuplicate);
      >              return usc;
      >          }

      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.duplicateNode(javax.media.j3d.Node, boolean)`, `NodeComponent.setDuplicateOnCloneTree(boolean)`

    - #### duplicateNode

          public void duplicateNode(Node originalNode,
                           boolean forceDuplicate)

      Copies all node information from `originalNode` into the current node. This method is called from the `cloneNode` method which is, in turn, called by the `cloneTree` method.

      For any NodeComponent objects contained by the object being duplicated, each NodeComponent object's `duplicateOnCloneTree` value is used to determine whether the NodeComponent should be duplicated in the new node or if just a reference to the current node should be placed in the new node. This flag can be overridden by setting the `forceDuplicate` parameter in the `cloneTree` method to `true`.

      Overrides:
        `duplicateNode` in class `Node`
      Parameters:
        `originalNode` - the original node to duplicate.
        `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)`, `NodeComponent.setDuplicateOnCloneTree(boolean)`

    - #### getXdimension

          public float getXdimension()

      Returns the X-dimension size of the Box
      Since:
        Java 3D 1.2.1

    - #### getYdimension

          public float getYdimension()

      Returns the Y-dimension size of the Box
      Since:
        Java 3D 1.2.1

    - #### getZdimension

          public float getZdimension()

      Returns the Z-dimension size of the Box
      Since:
        Java 3D 1.2.1

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