Class Box
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
FieldsModifier and TypeFieldDescriptionstatic final int
Used to designate the back side of the box when using getShape().static final int
Used to designate the bottom side of the box when using getShape().static final int
Used to designate the front side of the box when using getShape().static final int
Used to designate the left side of the box when using getShape().static final int
Used to designate the right side of the box when using getShape().static final int
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
ConstructorsConstructorDescriptionBox()
Constructs a default box of 1.0 in all dimensions.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.Box
(float xdim, float ydim, float zdim, Appearance ap) Constructs a box of a given dimension and appearance. -
Method Summary
Modifier and TypeMethodDescriptioncloneNode
(boolean forceDuplicate) Used to create a new instance of the node.void
duplicateNode
(Node originalNode, boolean forceDuplicate) Copies all node information fromoriginalNode
into the current node.getAppearance
(int partId) Gets the appearance of the specified part of the box.getShape
(int partId) Gets one of the faces (Shape3D) from the box that contains the geometry and appearance.float
Returns the X-dimension size of the Boxfloat
Returns the Y-dimension size of the Boxfloat
Returns the Z-dimension size of the Boxvoid
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
-
Field Details
-
FRONT
public static final int FRONTUsed to designate the front side of the box when using getShape().- See Also:
-
BACK
public static final int BACKUsed to designate the back side of the box when using getShape().- See Also:
-
RIGHT
public static final int RIGHTUsed to designate the right side of the box when using getShape().- See Also:
-
LEFT
public static final int LEFTUsed to designate the left side of the box when using getShape().- See Also:
-
TOP
public static final int TOPUsed to designate the top side of the box when using getShape().- See Also:
-
BOTTOM
public static final int BOTTOMUsed to designate the bottom side of the box when using getShape().- See Also:
-
-
Constructor Details
-
Box
public Box()Constructs a default box of 1.0 in all dimensions. Normals are generated by default, texture coordinates are not. -
Box
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
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
-
-
Method Details
-
getShape
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. -
setAppearance
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 classPrimitive
-
getAppearance
Gets the appearance of the specified part of the box.- Specified by:
getAppearance
in classPrimitive
- 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
Used to create a new instance of the node. This routine is called bycloneTree
to duplicate the current node.cloneNode
should be overridden by any user subclassed objects. All subclasses must have theircloneNode
method consist of the following lines:public Node cloneNode(boolean forceDuplicate) { UserSubClass usc = new UserSubClass(); usc.duplicateNode(this, forceDuplicate); return usc; }
-
duplicateNode
Copies all node information fromoriginalNode
into the current node. This method is called from thecloneNode
method which is, in turn, called by thecloneTree
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 theforceDuplicate
parameter in thecloneTree
method totrue
.- Overrides:
duplicateNode
in classNode
- Parameters:
originalNode
- the original node to duplicate.forceDuplicate
- when set totrue
, causes theduplicateOnCloneTree
flag to be ignored. Whenfalse
, the value of each node'sduplicateOnCloneTree
variable determines whether NodeComponent data is duplicated or copied.- See Also:
-
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
-