com.sun.j3d.utils.geometry
Class Cylinder
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.Cylinder
- public class Cylinder
- extends Primitive
Cylinder is a geometry primitive defined with a radius and a height.
It is a capped cylinder centered at the origin with its central axis
aligned along the Y-axis.
When a texture is applied to a cylinder, the texture is applied to the
caps and the body different. A texture is mapped CCW from the back of the
body. The top and bottom caps are mapped such that the texture appears
front facing when the caps are rotated 90 degrees toward the viewer.
Field Summary |
static int |
BODY
Designates the body of the cylinder. |
static int |
BOTTOM
Designates the bottom end-cap of the cylinder. |
static int |
TOP
Designates the top end-cap of the cylinder. |
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_PICKABLE_READ,
ALLOW_PICKABLE_WRITE,
ENABLE_COLLISION_REPORTING,
ENABLE_PICK_REPORTING |
Constructor Summary |
Cylinder()
Constructs a default cylinder of radius of 1.0 and height
of 2.0. |
Cylinder(float radius,
float height)
Constructs a default cylinder of a given radius and height. |
Cylinder(float radius,
float height,
Appearance ap)
Constructs a default cylinder of a given radius, height, and
appearance. |
Cylinder(float radius,
float height,
int primflags,
Appearance ap)
Constructs a default cylinder of a given radius, height,
primitive flags and appearance. |
Cylinder(float radius,
float height,
int primflags,
int xdivision,
int ydivision,
Appearance ap)
Constructs a customized cylinder of a given radius, height,
resolution (X and Y dimensions), and appearance. |
Method Summary |
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. |
Shape3D |
getShape(int partId)
Obtains the Shape3D node associated with a given part of the cylinder. |
void |
setAppearance(Appearance ap)
Sets appearance of the cylinder. |
Methods inherited from class com.sun.j3d.utils.geometry.Primitive |
cacheGeometry,
getAppearance,
getCachedGeometry,
getNumTriangles,
getNumVertices,
getPrimitiveFlags,
setAppearance,
setAppearance,
setNumTriangles,
setNumVertices,
setPrimitiveFlags |
Methods inherited from class javax.media.j3d.Group |
addChild,
getAllChildren,
getAlternateCollisionTarget,
getChild,
getCollisionBounds,
insertChild,
moveTo,
numChildren,
removeChild,
setAlternateCollisionTarget,
setChild,
setCollisionBounds |
Methods inherited from class javax.media.j3d.Node |
cloneTree,
cloneTree,
cloneTree,
cloneTree,
cloneTree,
cloneTree,
getBounds,
getBoundsAutoCompute,
getCollidable,
getLocalToVworld,
getLocalToVworld,
getParent,
getPickable,
setBounds,
setBoundsAutoCompute,
setCollidable,
setPickable |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
BODY
public static final int BODY
- Designates the body of the cylinder. Used by
getShape
.
- See Also:
getShape(int)
TOP
public static final int TOP
- Designates the top end-cap of the cylinder.
Used by
getShape
.
- See Also:
getShape(int)
BOTTOM
public static final int BOTTOM
- Designates the bottom end-cap of the cylinder.
Used by
getShape
.
- See Also:
getShape(int)
Cylinder
public Cylinder()
- Constructs a default cylinder of radius of 1.0 and height
of 2.0. Resolution defaults to 15 divisions along X axis and
1 along the Y axis.
Cylinder
public Cylinder(float radius,
float height)
- Constructs a default cylinder of a given radius and height.
- Parameters:
radius
- Radiusheight
- Height
Cylinder
public Cylinder(float radius,
float height,
Appearance ap)
- Constructs a default cylinder of a given radius, height, and
appearance.
- Parameters:
radius
- Radiusheight
- Heightap
- Appearance
Cylinder
public Cylinder(float radius,
float height,
int primflags,
Appearance ap)
- Constructs a default cylinder of a given radius, height,
primitive flags and appearance.
- Parameters:
radius
- Radiusheight
- Heightprimflags
- Flagsap
- Appearance
Cylinder
public Cylinder(float radius,
float height,
int primflags,
int xdivision,
int ydivision,
Appearance ap)
- Constructs a customized cylinder of a given radius, height,
resolution (X and Y dimensions), and appearance. The
resolution is defined in terms of number of subdivisions
along the object's X axis (width) and Y axis (height). More divisions
lead to more finely tesselated objects.
- Parameters:
radius
- Radiusheight
- Heightxdivision
- Number of divisions along X direction.ydivision
- Number of divisions along height of cylinder.primflags
- Primitive flags.ap
- Appearance
getShape
public Shape3D getShape(int partId)
- Obtains the Shape3D node associated with a given part of the cylinder.
This allows users to modify the appearance or geometry
of individual parts.
- Overrides:
- getShape in class Primitive
- Parameters:
partId
- The part to return (BODY, TOP, or BOTTOM).- 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 cylinder. This will set each part of the
cylinder (TOP,BOTTOM,BODY) to the same appearance. To set each
part's appearance separately, use getShape(partId) to get the
individual shape and call shape.setAppearance(ap).
- Overrides:
- setAppearance in class Primitive
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)