org.jscience.biology.lsystems.common
Class TruncatedCone

java.lang.Object
  extended by javax.media.j3d.SceneGraphObject
      extended by javax.media.j3d.Node
          extended by javax.media.j3d.Group
              extended by org.jscience.biology.lsystems.common.Primitive
                  extended by org.jscience.biology.lsystems.common.TruncatedCone
Direct Known Subclasses:
Branch

public class TruncatedCone
extends Primitive

Truncated Cone is a geometry primitive defined with two radius and a height. It is a truncated cone centered at the origin with its central axis aligned along the Y-axis.

When a texture is applied to a truncated cone, 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 truncated cone.
static int BOTTOM
          Designates the bottom end-cap of the truncated cone.
static int TOP
          Designates the top end-cap of the truncated cone.
 
Fields inherited from class org.jscience.biology.lsystems.common.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
TruncatedCone()
          Constructs a default truncated cone of bottom radius of 1.0, top radius 0.5 and height of 2.0.
TruncatedCone(float radius1, float radius2, float height)
          Constructs a default truncated cone of two given radius and height.
TruncatedCone(float radius1, float radius2, float height, javax.media.j3d.Appearance ap)
          Constructs a default truncated cone of two given radius, height height and appearance.
TruncatedCone(float radius1, float radius2, float height, int primflags, javax.media.j3d.Appearance ap)
          Constructs a default truncated cone of two given radius, height, primitive flags and appearance.
TruncatedCone(float radius1, float radius2, float height, int primflags, int xdivision, int ydivision, javax.media.j3d.Appearance ap)
          Constructs a customized truncated cone of two given radius, height, resolution (X and Y dimensions), 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.Shape3D getShape(int partId)
          Obtains the Shape3D node associated with a given part of the truncated cone.
 void setAppearance(javax.media.j3d.Appearance ap)
          Sets appearance of the truncated cone.
 
Methods inherited from class org.jscience.biology.lsystems.common.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, 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

BODY

public static final int BODY
Designates the body of the truncated cone. Used by getShape.

See Also:
Constant Field Values

TOP

public static final int TOP
Designates the top end-cap of the truncated cone. Used by getShape.

See Also:
Constant Field Values

BOTTOM

public static final int BOTTOM
Designates the bottom end-cap of the truncated cone. Used by getShape.

See Also:
Constant Field Values
Constructor Detail

TruncatedCone

public TruncatedCone()
Constructs a default truncated cone of bottom radius of 1.0, top radius 0.5 and height of 2.0. Resolution defaults to 15 divisions along X axis and 1 along the Y axis.


TruncatedCone

public TruncatedCone(float radius1,
                     float radius2,
                     float height)
Constructs a default truncated cone of two given radius and height.

Parameters:
radius1 - Bottom Radius
radius2 - Top Radius
height - Height

TruncatedCone

public TruncatedCone(float radius1,
                     float radius2,
                     float height,
                     javax.media.j3d.Appearance ap)
Constructs a default truncated cone of two given radius, height height and appearance.

Parameters:
radius1 - Bottom Radius
radius2 - Top Radius
height - Height
ap - Appearance
bDrawCaps - Indicates if top and bottom caps shall be drawn

TruncatedCone

public TruncatedCone(float radius1,
                     float radius2,
                     float height,
                     int primflags,
                     javax.media.j3d.Appearance ap)
Constructs a default truncated cone of two given radius, height, primitive flags and appearance.

Parameters:
radius1 - Bottom Radius
radius2 - Top Radius
height - Height
primflags - Flags
ap - Appearance
bDrawCaps - Indicates if top and bottom caps shall be drawn.

TruncatedCone

public TruncatedCone(float radius1,
                     float radius2,
                     float height,
                     int primflags,
                     int xdivision,
                     int ydivision,
                     javax.media.j3d.Appearance ap)
Constructs a customized truncated cone of two 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 - Radius
height - Height
xdivision - Number of divisions along X direction.
ydivision - Number of divisions along height of cylinder.
primflags - Primitive flags.
ap - Appearance
bDrawCaps - Indicates if top and bottom caps shall be drawn.
Method Detail

getShape

public javax.media.j3d.Shape3D getShape(int partId)
Obtains the Shape3D node associated with a given part of the truncated cone. This allows users to modify the appearance or geometry of individual parts.

Specified by:
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(javax.media.j3d.Appearance ap)
Sets appearance of the truncated cone. This will set each part of the truncated cone (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:
setAppearance in class Primitive
Parameters:
ap - DOCUMENT ME!

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)