Class Cylinder
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.
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 intDesignates the body of the cylinder.static final intDesignates the bottom end-cap of the cylinder.static final intDesignates the top end-cap of the cylinder.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_SHAREDFields inherited from class javax.media.j3d.Group
ALLOW_CHILDREN_EXTEND, ALLOW_CHILDREN_READ, ALLOW_CHILDREN_WRITE, ALLOW_COLLISION_BOUNDS_READ, ALLOW_COLLISION_BOUNDS_WRITEFields 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
ConstructorsConstructorDescriptionCylinder()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, int primflags, int xdivision, int ydivision, Appearance ap) Constructs a customized cylinder of a given radius, height, resolution (X and Y dimensions), 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, Appearance ap) Constructs a default cylinder of a given radius, height, and appearance. -
Method Summary
Modifier and TypeMethodDescriptioncloneNode(boolean forceDuplicate) Used to create a new instance of the node.voidduplicateNode(Node originalNode, boolean forceDuplicate) Copies all node information fromoriginalNodeinto the current node.getAppearance(int partId) Gets the appearance of the specified part of the cylinder.floatReturns the height of the cylinderfloatReturns the radius of the cylindergetShape(int partId) Obtains the Shape3D node associated with a given part of the cylinder.intReturns the number divisions along the X directionintReturns the number of divisions along the height of the cylindervoidSets appearance of the cylinder.Methods inherited from class com.sun.j3d.utils.geometry.Primitive
cacheGeometry, clearGeometryCache, getAppearance, getCachedGeometry, getNumTriangles, getNumVertices, getPrimitiveFlags, setAppearance, setAppearance, setNumTriangles, setNumVertices, setPrimitiveFlagsMethods inherited from class javax.media.j3d.Group
addChild, getAllChildren, getAlternateCollisionTarget, getChild, getCollisionBounds, indexOfChild, insertChild, moveTo, numChildren, removeAllChildren, removeChild, removeChild, setAlternateCollisionTarget, setChild, setCollisionBoundsMethods inherited from class javax.media.j3d.Node
cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickableMethods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences
-
Field Details
-
BODY
public static final int BODYDesignates the body of the cylinder. Used bygetShape.- See Also:
-
TOP
public static final int TOPDesignates the top end-cap of the cylinder. Used bygetShape.- See Also:
-
BOTTOM
public static final int BOTTOMDesignates the bottom end-cap of the cylinder. Used bygetShape.- See Also:
-
-
Constructor Details
-
Cylinder
public Cylinder()Constructs a default cylinder of radius of 1.0 and height of 2.0. Normals are generated by default, texture coordinates are not. 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. Normals are generated by default, texture coordinates are not.- Parameters:
radius- Radiusheight- Height
-
Cylinder
Constructs a default cylinder of a given radius, height, and appearance. Normals are generated by default, texture coordinates are not.- Parameters:
radius- Radiusheight- Heightap- Appearance
-
Cylinder
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
-
-
Method Details
-
getShape
Obtains the Shape3D node associated with a given part of the cylinder. This allows users to modify the appearance or geometry of individual parts. -
setAppearance
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).- Specified by:
setAppearancein classPrimitive
-
getAppearance
Gets the appearance of the specified part of the cylinder.- Specified by:
getAppearancein classPrimitive- Parameters:
partId- identifier for a given subpart of the cylinder- 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 bycloneTreeto duplicate the current node.cloneNodeshould be overridden by any user subclassed objects. All subclasses must have theircloneNodemethod 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 fromoriginalNodeinto the current node. This method is called from thecloneNodemethod which is, in turn, called by thecloneTreemethod.For any NodeComponent objects contained by the object being duplicated, each NodeComponent object's
duplicateOnCloneTreevalue 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 theforceDuplicateparameter in thecloneTreemethod totrue.- Overrides:
duplicateNodein classNode- Parameters:
originalNode- the original node to duplicate.forceDuplicate- when set totrue, causes theduplicateOnCloneTreeflag to be ignored. Whenfalse, the value of each node'sduplicateOnCloneTreevariable determines whether NodeComponent data is duplicated or copied.- See Also:
-
getRadius
public float getRadius()Returns the radius of the cylinder- Since:
- Java 3D 1.2.1
-
getHeight
public float getHeight()Returns the height of the cylinder- Since:
- Java 3D 1.2.1
-
getXdivisions
public int getXdivisions()Returns the number divisions along the X direction- Since:
- Java 3D 1.2.1
-
getYdivisions
public int getYdivisions()Returns the number of divisions along the height of the cylinder- Since:
- Java 3D 1.2.1
-