Package javax.media.j3d
Class DistanceLOD
- java.lang.Object
-
- javax.media.j3d.SceneGraphObject
-
- javax.media.j3d.Node
-
- javax.media.j3d.Leaf
-
- javax.media.j3d.Behavior
-
- javax.media.j3d.LOD
-
- javax.media.j3d.DistanceLOD
-
public class DistanceLOD extends LOD
This class defines a distance-based LOD behavior node that operates on a Switch group node to select one of the children of that Switch node based on the distance of this LOD node from the viewer. An array of n monotonically increasing distance values is specified, such that distances[0] is associated with the highest level of detail and distances[n-1] is associated with the lowest level of detail. Based on the actual distance from the viewer to this DistanceLOD node, these n distance values [0, n-1] select from among n+1 levels of detail [0, n]. If d is the distance from the viewer to the LOD node, then the equation for determining which level of detail (child of the Switch node) is selected is:-
0, if d <= distances[0]
i, if distances[i-1] < d <= distances[i]
n, if d > distances[n-1]Note that both the position and the array of distances are specified in the local coordinate system of this node.
-
-
Field Summary
-
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
Constructors Constructor Description DistanceLOD()
Constructs and initializes a DistanceLOD node with default values.DistanceLOD(float[] distances)
Constructs and initializes a DistanceLOD node with the specified array of distances and a default position of (0,0,0).DistanceLOD(float[] distances, javax.vecmath.Point3f position)
Constructs and initializes a DistanceLOD node with the specified array of distances and the specified position.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Node
cloneNode(boolean forceDuplicate)
Used to create a new instance of the node.double
getDistance(int whichDistance)
Returns a particular LOD cut-off distance.void
getPosition(javax.vecmath.Point3f position)
Retrieves the current position of this LOD node.void
initialize()
Initialize method that sets up initial wakeup criteria.int
numDistances()
Returns a count of the number of LOD distance cut-off parameters.void
processStimulus(java.util.Enumeration criteria)
Process stimulus method that computes appropriate level of detail.void
setDistance(int whichDistance, double distance)
Sets a particular LOD cut-off distance.void
setPosition(javax.vecmath.Point3f position)
Sets the position of this LOD node.-
Methods inherited from class javax.media.j3d.LOD
addSwitch, getAllSwitches, getSwitch, indexOfSwitch, insertSwitch, numSwitches, removeAllSwitches, removeSwitch, removeSwitch, setSwitch, updateNodeReferences
-
Methods inherited from class javax.media.j3d.Behavior
getEnable, getNumSchedulingIntervals, getSchedulingBoundingLeaf, getSchedulingBounds, getSchedulingInterval, getView, getWakeupCondition, postId, setEnable, setSchedulingBoundingLeaf, setSchedulingBounds, setSchedulingInterval, wakeupOn
-
Methods inherited from class javax.media.j3d.Node
cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, 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
-
-
-
-
Constructor Detail
-
DistanceLOD
public DistanceLOD()
Constructs and initializes a DistanceLOD node with default values. Note that the default constructor creates a DistanceLOD object with a single distance value set to 0.0 and is, therefore, not useful.
-
DistanceLOD
public DistanceLOD(float[] distances)
Constructs and initializes a DistanceLOD node with the specified array of distances and a default position of (0,0,0).- Parameters:
distances
- an array of values representing LOD cutoff distances
-
DistanceLOD
public DistanceLOD(float[] distances, javax.vecmath.Point3f position)
Constructs and initializes a DistanceLOD node with the specified array of distances and the specified position.- Parameters:
distances
- an array of values representing LOD cutoff distancesposition
- the position of this LOD node
-
-
Method Detail
-
setPosition
public void setPosition(javax.vecmath.Point3f position)
Sets the position of this LOD node. This position is specified in the local coordinates of this node, and is the position from which the distance to the viewer is computed.- Parameters:
position
- the new position
-
getPosition
public void getPosition(javax.vecmath.Point3f position)
Retrieves the current position of this LOD node. This position is in the local coordinates of this node.- Parameters:
position
- the object that will receive the current position
-
numDistances
public int numDistances()
Returns a count of the number of LOD distance cut-off parameters. Note that the number of levels of detail (children of the Switch node) is one greater than the number of distance values.- Returns:
- a count of the LOD cut-off distances
-
getDistance
public double getDistance(int whichDistance)
Returns a particular LOD cut-off distance.- Parameters:
whichDistance
- an index specifying which LOD distance to return- Returns:
- the cut-off distance value associated with the index provided
-
setDistance
public void setDistance(int whichDistance, double distance)
Sets a particular LOD cut-off distance.- Parameters:
whichDistance
- an index specifying which LOD distance to modifydistance
- the cut-off distance associated with the index provided
-
initialize
public void initialize()
Initialize method that sets up initial wakeup criteria.- Specified by:
initialize
in classBehavior
-
processStimulus
public void processStimulus(java.util.Enumeration criteria)
Process stimulus method that computes appropriate level of detail.- Specified by:
processStimulus
in classBehavior
- Parameters:
criteria
- an enumeration of the criteria that caused the stimulus
-
cloneNode
public Node cloneNode(boolean forceDuplicate)
Used to create a new instance of the node. This routine is called bycloneTree
to duplicate the current node.- Overrides:
cloneNode
in classNode
- Parameters:
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:
Node.cloneTree()
,Node.cloneNode(boolean)
,Node.duplicateNode(javax.media.j3d.Node, boolean)
,NodeComponent.setDuplicateOnCloneTree(boolean)
-
-