Package javax.media.j3d

# Class LinearFog

java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.Node
javax.media.j3d.Leaf
javax.media.j3d.Fog
javax.media.j3d.LinearFog

public class LinearFog extends Fog
The LinearFog leaf node defines fog distance parameters for linear fog. LinearFog extends the Fog node by adding a pair of distance values, in Z, at which the fog should start obscuring the scene and should maximally obscure the scene.

The front and back fog distances are defined in the local coordinate system of the node, but the actual fog equation will ideally take place in eye coordinates.

The linear fog blending factor, `f`, is computed as follows:

`f = (backDistance - z) / (backDistance - frontDistance)`

where:

`z` is the distance from the viewpoint.
`frontDistance` is the distance at which fog starts obscuring objects.
`backDistance` is the distance at which fog totally obscurs objects.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ALLOW_DISTANCE_READ`
Specifies that this LinearFog node allows read access to its distance information.
`static final int`
`ALLOW_DISTANCE_WRITE`
Specifies that this LinearFog node allows write access to its distance information.

### Fields inherited from class javax.media.j3d.Fog

`ALLOW_COLOR_READ, ALLOW_COLOR_WRITE, ALLOW_INFLUENCING_BOUNDS_READ, ALLOW_INFLUENCING_BOUNDS_WRITE, ALLOW_SCOPE_READ, ALLOW_SCOPE_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

Constructors
Constructor
Description
`LinearFog()`
Constructs a LinearFog node with default parameters.
`LinearFog(float r, float g, float b)`
Constructs a LinearFog node with the specified fog color.
`LinearFog(float r, float g, float b, double frontDistance, double backDistance)`
Constructs a LinearFog node with the specified fog color and distances.
`LinearFog(javax.vecmath.Color3f color)`
Constructs a LinearFog node with the specified fog color.
`LinearFog(javax.vecmath.Color3f color, double frontDistance, double backDistance)`
Constructs a LinearFog node with the specified fog color and distances.

## Method Summary

Modifier and Type
Method
Description
`Node`
`cloneNode(boolean forceDuplicate)`
Used to create a new instance of the node.
`double`
`getBackDistance()`
Gets back distance for fog.
`double`
`getFrontDistance()`
Gets front distance for fog.
`void`
`setBackDistance(double backDistance)`
Sets back distance for fog.
`void`
`setFrontDistance(double frontDistance)`
Sets front distance for fog.

### Methods inherited from class javax.media.j3d.Fog

`addScope, getAllScopes, getColor, getInfluencingBoundingLeaf, getInfluencingBounds, getScope, indexOfScope, insertScope, numScopes, removeAllScopes, removeScope, removeScope, setColor, setColor, setInfluencingBoundingLeaf, setInfluencingBounds, setScope, updateNodeReferences`

### 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`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### ALLOW_DISTANCE_READ

public static final int ALLOW_DISTANCE_READ
Specifies that this LinearFog node allows read access to its distance information.

See Also:
  - Constant Field Values

### ALLOW_DISTANCE_WRITE

public static final int ALLOW_DISTANCE_WRITE
Specifies that this LinearFog node allows write access to its distance information.

See Also:
  - Constant Field Values

## Constructor Details

### LinearFog

public LinearFog()
Constructs a LinearFog node with default parameters. The default values are as follows:

front distance : 0.1
back distance : 1.0

### LinearFog

public LinearFog(javax.vecmath.Color3f color)
Constructs a LinearFog node with the specified fog color.

Parameters:
  `color` - the fog color

### LinearFog

public LinearFog(javax.vecmath.Color3f color, double frontDistance, double backDistance)
Constructs a LinearFog node with the specified fog color and distances.

Parameters:
  `color` - the fog color
  `frontDistance` - the front distance for the fog
  `backDistance` - the back distance for the fog

### LinearFog

public LinearFog(float r, float g, float b)
Constructs a LinearFog node with the specified fog color.

Parameters:
  `r` - the red component of the fog color
  `g` - the green component of the fog color
  `b` - the blue component of the fog color

### LinearFog

public LinearFog(float r, float g, float b, double frontDistance, double backDistance)
Constructs a LinearFog node with the specified fog color and distances.

Parameters:
  `r` - the red component of the fog color
  `g` - the green component of the fog color
  `b` - the blue component of the fog color
  `frontDistance` - the front distance for the fog
  `backDistance` - the back distance for the fog

## Method Details

### setFrontDistance

public void setFrontDistance(double frontDistance)
Sets front distance for fog.

Parameters:
  `frontDistance` - the distance at which fog starts obscuring objects
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getFrontDistance

public double getFrontDistance()
Gets front distance for fog.

Returns:
  the distance at which fog starts obscuring objects
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setBackDistance

public void setBackDistance(double backDistance)
Sets back distance for fog.

Parameters:
  `backDistance` - the distance at which fog totally obscurs objects
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getBackDistance

public double getBackDistance()
Gets back distance for fog.

Returns:
  the distance at which fog totally obscurs objects
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### 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.

Overrides:
  `cloneNode` in class `Node`
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.cloneNode(boolean)`
  - `Node.duplicateNode(javax.media.j3d.Node, boolean)`
  - `NodeComponent.setDuplicateOnCloneTree(boolean)`