Aviatrix3D
2.1.0

org.j3d.renderer.aviatrix3d.geom
Class Spring

java.lang.Object
  extended by org.j3d.aviatrix3d.SceneGraphObject
      extended by org.j3d.aviatrix3d.Node
          extended by org.j3d.aviatrix3d.Leaf
              extended by org.j3d.aviatrix3d.Shape3D
                  extended by org.j3d.renderer.aviatrix3d.geom.Spring
All Implemented Interfaces:
java.lang.Comparable, NodeUpdateListener, PickableObject, PickTarget, SinglePickTarget, Cullable, LeafCullable, ObjectRenderable, Renderable, ShapeRenderable

public class Spring
extends Shape3D
implements NodeUpdateListener

A simple spring that uses triangle strips.

As we assume you may want to use this as a collidable object, we store the GeometryData instance that is used to create the object in the userData of the underlying TriangleStripArray. The geometry does not have texture coordinates set.

Version:
$Revision: 1.3 $
Author:
Justin Couch

Field Summary
 
Fields inherited from class org.j3d.aviatrix3d.Node
bounds, implicitBounds, INVALID_BOUNDS, parent
 
Fields inherited from class org.j3d.aviatrix3d.SceneGraphObject
alive, LISTENER_SET_TIMING_ERR_PROP, updateHandler
 
Fields inherited from interface org.j3d.aviatrix3d.picking.PickableObject
COLLIDABLE_OBJECT, GENERAL_OBJECT, PROXIMITY_OBJECT, VISIBLE_OBJECT
 
Fields inherited from interface org.j3d.aviatrix3d.picking.PickTarget
CUSTOM_PICK_TYPE, GROUP_PICK_TYPE, LEAF_PICK_TYPE, SINGLE_PICK_TYPE
 
Fields inherited from interface org.j3d.aviatrix3d.rendering.LeafCullable
AUDIO_CULLABLE, CLIP_CULLABLE, FOG_CULLABLE, GEOMETRY_CULLABLE, LIGHT_CULLABLE, OVERRIDE_CULLABLE
 
Constructor Summary
Spring()
          Construct a default spring that has:
inner radius: 0.25
outer radius: 1.0
inner facet count: 16
outer facet count: 16
loop count: 4
loop spacing: 1.0
Spring(Appearance app)
          Construct a default spring with a given appearance that has:
inner radius: 0.25
outer radius: 1.0
inner facet count: 16
outer facet count: 16
loop count: 4
loop spacing: 1.0
Spring(float spacing)
          Construct a spring with the given loop spacing and all other values fixed at the defaults.
Spring(float spacing, Appearance app)
          Construct a spring with the given loop spacing and all other values fixed at the defaults.
Spring(float ir, float or)
          Construct a spring that has the given radius values with all other values fixed at the defaults
Spring(float ir, float or, Appearance app)
          Construct a spring that has the given radius values with all other values fixed at the defaults but a customisable appearance.
Spring(float ir, float or, float spacing, int lc)
          Construct a spring with the given radius, spacing and loop count information.
Spring(float ir, float or, float spacing, int lc, int ifc, int ofc, Appearance app)
          Construct a spring with the given radius, spacing and loop count information, and facet count.
Spring(int lc)
          Construct a spring that has the given number of loops with all other values fixed at the defaults.
Spring(int lc, Appearance app)
          Construct a spring that has the given number of loops with all other values fixed at the defaults.
Spring(int ifc, int ofc)
          Construct a spring that has the selected number of facets but with all other values fixed at the defaults.
Spring(int ifc, int ofc, Appearance app)
          Construct a spring that has the selected number of facets but with all other values fixed at the defaults.
 
Method Summary
 void setDimensions(float innerRadius, float outerRadius)
          Change the radius values of the spring to the new values.
 void setFacetCount(int inner, int outer)
          Set the facet count of the spring to the new value.
 void setLoopDimensions(float spacing, int lc)
          Change the loop values of the spring to the new values.
 void updateNodeBoundsChanges(java.lang.Object src)
          Notification that its safe to update the node now with any operations that could potentially effect the node's bounds.
 void updateNodeDataChanges(java.lang.Object src)
          Notification that its safe to update the node now with any operations that only change the node's properties, but do not change the bounds.
 
Methods inherited from class org.j3d.aviatrix3d.Shape3D
checkForCyclicChild, checkPickMask, compareTo, compareTo, equals, equals, getAppearance, getAppearanceRenderable, getCenter, getCullableType, getGeometry, getGeometryRenderable, getPickableBounds, getPickableChild, getPickMask, getPickTargetType, getRenderable, is2D, isVisible, pickBatch, pickSingle, postRender, recomputeBounds, render, requestBoundsUpdate, setAppearance, setGeometry, setLive, setPickMask, setUpdateHandler, updateBounds
 
Methods inherited from class org.j3d.aviatrix3d.Node
boundsChanged, checkForCyclicParent, getBounds, getParent, markBoundsDirty, removeParent, setBounds, setParent, updateParentBounds
 
Methods inherited from class org.j3d.aviatrix3d.SceneGraphObject
dataChanged, getAppUpdateWriteTimingMessage, getBoundsWriteTimingMessage, getDataWriteTimingMessage, getUserData, isLive, setUserData
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.j3d.aviatrix3d.rendering.LeafCullable
getBounds
 

Constructor Detail

Spring

public Spring()
Construct a default spring that has:
inner radius: 0.25
outer radius: 1.0
inner facet count: 16
outer facet count: 16
loop count: 4
loop spacing: 1.0


Spring

public Spring(Appearance app)
Construct a default spring with a given appearance that has:
inner radius: 0.25
outer radius: 1.0
inner facet count: 16
outer facet count: 16
loop count: 4
loop spacing: 1.0

Parameters:
app - The Appearance to use

Spring

public Spring(float ir,
              float or)
Construct a spring that has the given radius values with all other values fixed at the defaults

Parameters:
ir - The inner radius to use
or - The outer radius to use

Spring

public Spring(float ir,
              float or,
              Appearance app)
Construct a spring that has the given radius values with all other values fixed at the defaults but a customisable appearance.

Parameters:
ir - The inner radius to use
or - The outer radius to use
app - The Appearance to use

Spring

public Spring(int lc)
Construct a spring that has the given number of loops with all other values fixed at the defaults. The loop count must be one or more.

Parameters:
lc - The loop count
Throws:
java.lang.IllegalArgumentException - The loop count was invalid

Spring

public Spring(int lc,
              Appearance app)
Construct a spring that has the given number of loops with all other values fixed at the defaults. The loop count must be one or more. An Appearance value may be supplied.

Parameters:
lc - The loop count
app - The Appearance to use
Throws:
java.lang.IllegalArgumentException - The loop count was invalid

Spring

public Spring(float spacing)
Construct a spring with the given loop spacing and all other values fixed at the defaults.

Parameters:
spacing - The spacing between loops

Spring

public Spring(float spacing,
              Appearance app)
Construct a spring with the given loop spacing and all other values fixed at the defaults.

Parameters:
spacing - The spacing between loops
app - The Appearance to use

Spring

public Spring(int ifc,
              int ofc)
Construct a spring that has the selected number of facets but with all other values fixed at the defaults. The minimum number of facets is 3.

Parameters:
ifc - The number of facets to use around the inner radius
ofc - The number of facets to use around the outer radius
Throws:
java.lang.IllegalArgumentException - The number of facets is less than 3

Spring

public Spring(int ifc,
              int ofc,
              Appearance app)
Construct a spring that has the selected number of facets but with all other values fixed at the defaults. The minimum number of facets is 3.

Parameters:
ifc - The number of facets to use around the inner radius
ofc - The number of facets to use around the outer radius
app - The Appearance to use
Throws:
java.lang.IllegalArgumentException - The number of facets is less than 3

Spring

public Spring(float ir,
              float or,
              float spacing,
              int lc)
Construct a spring with the given radius, spacing and loop count information. All other values are defaults. The loop count must be greater than or equal to 1.

Parameters:
ir - The inner radius to use
or - The outer radius to use
spacing - The spacing between loops
lc - The loop count
Throws:
java.lang.IllegalArgumentException - The loop count was invalid

Spring

public Spring(float ir,
              float or,
              float spacing,
              int lc,
              int ifc,
              int ofc,
              Appearance app)
Construct a spring with the given radius, spacing and loop count information, and facet count. The loop count must be greater than or equal to 1 and the facet counts must be 3 or more.

Parameters:
ir - The inner radius to use
or - The outer radius to use
spacing - The spacing between loops
lc - The loop count
ifc - The number of facets to use around the inner radius
ofc - The number of facets to use around the outer radius
Throws:
java.lang.IllegalArgumentException - The loop count was invalid or facet counts were less than 4
Method Detail

updateNodeBoundsChanges

public void updateNodeBoundsChanges(java.lang.Object src)
Notification that its safe to update the node now with any operations that could potentially effect the node's bounds.

Specified by:
updateNodeBoundsChanges in interface NodeUpdateListener
Parameters:
src - The node or Node Component that is to be updated.

updateNodeDataChanges

public void updateNodeDataChanges(java.lang.Object src)
Notification that its safe to update the node now with any operations that only change the node's properties, but do not change the bounds.

Specified by:
updateNodeDataChanges in interface NodeUpdateListener
Parameters:
src - The node or Node Component that is to be updated.

setDimensions

public void setDimensions(float innerRadius,
                          float outerRadius)
Change the radius values of the spring to the new values. If the geometry write capability has been turned off, this will not do anything.

Parameters:
innerRadius - The inner radius of the spring
outerRadius - The outer radius of the spring

setLoopDimensions

public void setLoopDimensions(float spacing,
                              int lc)
Change the loop values of the spring to the new values. If the geometry write capability has been turned off, this will not do anything.

Parameters:
spacing - The spacing between loops
lc - The loop count

setFacetCount

public void setFacetCount(int inner,
                          int outer)
Set the facet count of the spring to the new value. If the geometry write capability has been turned off, this will not do anything.

Parameters:
inner - The number of faces to use around the inner radius
outer - The number of faces to use around the outer radius

Aviatrix3D
2.1.0

Latest Info from http://aviatrix3d.j3d.org/
Copyright © 2003 - 2009 j3d.org