j3d.examples.shape.cube.cuboid
Class Cuboid

java.lang.Object
  extended by javax.media.j3d.SceneGraphObject
      extended by javax.media.j3d.Node
          extended by javax.media.j3d.Group
              extended by com.sun.j3d.utils.geometry.Primitive
                  extended by j3d.examples.shape.cube.cuboid.Cuboid

public class Cuboid
extends com.sun.j3d.utils.geometry.Primitive

Cuboid is a geometry primitive created with a given length, width, and height. It is centered affineTransform the origin. By default, it lies within the bounding Cuboid, [-1,-1,-1] and [1,1,1].

When a texture is applied to a Cuboid, 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.


Field Summary
static int BACK
          Used to designate the back side of the Cuboid when using getShape().
static int BOTTOM
          Used to designate the bottom side of the Cuboid when using getShape().
static int FRONT
          Used to designate the front side of the Cuboid when using getShape().
static int LEFT
          Used to designate the left side of the Cuboid when using getShape().
static int RIGHT
          Used to designate the right side of the Cuboid when using getShape().
static int TOP
          Used to designate the top side of the Cuboid 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, 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
Cuboid()
          Constructs a default Cuboid of 1.0 in all dimensions.
Cuboid(float xdim, float ydim, float zdim, javax.media.j3d.Appearance ap)
          Constructs a Cuboid of a given dimension and appearance.
Cuboid(float xdim, float ydim, float zdim, int primflags, javax.media.j3d.Appearance ap)
          Constructs a Cuboid of a given dimension, flags, and appearance.
 
Method Summary
 javax.media.j3d.Node cloneNode(boolean forceDuplicate)
          Used to create a new instance of the node.
 void duplicateNode(javax.media.j3d.Node originalNode, boolean forceDuplicate)
          Copies all node information from originalNode into the current node.
 javax.media.j3d.Appearance getAppearance(int index)
           
 javax.media.j3d.Shape3D getShape(int partId)
          Gets one of the faces (Shape3D) from the Cuboid that contains the geometry and appearance.
 void setAppearance(javax.media.j3d.Appearance ap)
          Sets appearance of the Cuboid.
 
Methods inherited from class com.sun.j3d.utils.geometry.Primitive
clearGeometryCache, getAppearance, 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, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FRONT

public static final int FRONT
Used to designate the front side of the Cuboid when using getShape().

See Also:
getShape(int), Constant Field Values

BACK

public static final int BACK
Used to designate the back side of the Cuboid when using getShape().

See Also:
getShape(int), Constant Field Values

RIGHT

public static final int RIGHT
Used to designate the right side of the Cuboid when using getShape().

See Also:
getShape(int), Constant Field Values

LEFT

public static final int LEFT
Used to designate the left side of the Cuboid when using getShape().

See Also:
getShape(int), Constant Field Values

TOP

public static final int TOP
Used to designate the top side of the Cuboid when using getShape().

See Also:
getShape(int), Constant Field Values

BOTTOM

public static final int BOTTOM
Used to designate the bottom side of the Cuboid when using getShape().

See Also:
getShape(int), Constant Field Values
Constructor Detail

Cuboid

public Cuboid()
Constructs a default Cuboid of 1.0 in all dimensions.


Cuboid

public Cuboid(float xdim,
              float ydim,
              float zdim,
              javax.media.j3d.Appearance ap)
Constructs a Cuboid of a given dimension and appearance.

Parameters:
xdim - X-dimension size.
ydim - Y-dimension size.
zdim - Z-dimension size.
ap - Appearance

Cuboid

public Cuboid(float xdim,
              float ydim,
              float zdim,
              int primflags,
              javax.media.j3d.Appearance ap)
Constructs a Cuboid 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
Method Detail

getAppearance

public javax.media.j3d.Appearance getAppearance(int index)
Specified by:
getAppearance in class com.sun.j3d.utils.geometry.Primitive

getShape

public javax.media.j3d.Shape3D getShape(int partId)
Gets one of the faces (Shape3D) from the Cuboid that contains the geometry and appearance. This allows users to modify the appearance or geometry of individual parts.

Specified by:
getShape in class com.sun.j3d.utils.geometry.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(javax.media.j3d.Appearance ap)
Sets appearance of the Cuboid. This will set each face of the Cuboid 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 com.sun.j3d.utils.geometry.Primitive

cloneNode

public javax.media.j3d.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 javax.media.j3d.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(javax.media.j3d.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 javax.media.j3d.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)