|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.media.j3d.SceneGraphObject | +--javax.media.j3d.Node | +--javax.media.j3d.Leaf | +--javax.media.j3d.Sound | +--javax.media.j3d.PointSound
The PointSound node (a sub-class of the Sound node) defines a spatially located sound source whose waves radiate uniformly in all directions from a given location in space. It has the same attributes as a Sound object with the addition of a location and the specification of distance-based gain attenuation for listener positions between an array of distances.
A sound's amplitude is attenuated based on the distance between the listener and the sound source position. A piecewise linear curve (defined in terms of pairs of distance and gain scale factor) specifies the gain scale factor slope. The PointSound's location and attenuation distances are defined in the local coordinate system of the node.
Distance Gain Attenuation
Distance elements in this array of Point2f is a monotonically-increasing set of floating point numbers measured from the location of the sound source. Gain scale factors elements in this list of pairs can be any positive floating point numbers. While for most applications this list of gain scale factors will usually be monotonically-decreasing, they do not have to be. If this is not set, no distance gain attenuation is performed (equivalent to using a distance gain of 1.0 for all distances).
getDistanceGainLength method returns the length of the distance gain attenuation arrays. Arrays passed into getDistanceGain methods should all be at least this size.
There are two methods for getDistanceGain, one returning an array of points, the other returning separate arrays for each attenuation component.
Field Summary | |
static int |
ALLOW_DISTANCE_GAIN_READ
Specifies that this node allows access to its object's distance gain attenuation information. |
static int |
ALLOW_DISTANCE_GAIN_WRITE
Specifies that this node allows writing to its object's distance gain attenuation information. |
static int |
ALLOW_POSITION_READ
Specifies that this node allows access to its object's position information. |
static int |
ALLOW_POSITION_WRITE
Specifies that this node allows writing to its object's position information. |
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_PICKABLE_READ,
ALLOW_PICKABLE_WRITE,
ENABLE_COLLISION_REPORTING,
ENABLE_PICK_REPORTING |
Constructor Summary | |
PointSound()
Constructs and initializes a new PointSound node using default parameters. |
|
PointSound(MediaContainer soundData,
float initialGain,
float posX,
float posY,
float posZ)
Constructs a PointSound node object using only the provided parameter values for sound data, sample gain, and position. |
|
PointSound(MediaContainer soundData,
float initialGain,
int loopCount,
boolean release,
boolean continuous,
boolean enable,
Bounds region,
float priority,
float posX,
float posY,
float posZ,
float[] attenuationDistance,
float[] attenuationGain)
Construct a PointSound object accepting individual float parameters for the elements of the position points, and accepting separate arrays for the distance and gain scale factors components of distance attenuation. |
|
PointSound(MediaContainer soundData,
float initialGain,
int loopCount,
boolean release,
boolean continuous,
boolean enable,
Bounds region,
float priority,
float posX,
float posY,
float posZ,
Point2f[] distanceGain)
Construct a PointSound object accepting individual float parameters for the elements of the position point, and accepting an array of Point2f for the distance attenuation values where each pair in the array contains a distance and a gain scale factor. |
|
PointSound(MediaContainer soundData,
float initialGain,
int loopCount,
boolean release,
boolean continuous,
boolean enable,
Bounds region,
float priority,
Point3f position,
float[] attenuationDistance,
float[] attenuationGain)
Construct a PointSound object accepting points as input for the position. |
|
PointSound(MediaContainer soundData,
float initialGain,
int loopCount,
boolean release,
boolean continuous,
boolean enable,
Bounds region,
float priority,
Point3f position,
Point2f[] distanceGain)
Construct a PointSound object accepting Point3f as input for the position and accepting an array of Point2f for the distance attenuation values where each pair in the array contains a distance and a gain scale factor. |
|
PointSound(MediaContainer soundData,
float initialGain,
Point3f position)
Constructs a PointSound node object using only the provided parameter values for sound data, sample gain, and position. |
Method Summary | |
Node |
cloneNode(boolean forceDuplicate)
Creates a new instance of the node. |
void |
duplicateNode(Node originalNode,
boolean forceDuplicate)
Copies all node information from originalNode into
the current node. |
void |
getDistanceGain(float[] distance,
float[] gain)
Gets this sound's distance gain attenuation values in separate arrays. |
void |
getDistanceGain(Point2f[] attenuation)
Gets this sound's distance attenuation. |
int |
getDistanceGainLength()
Get the length of this node's distance gain attenuation arrays. |
void |
getPosition(Point3f position)
Retrieves this sound's direction and places it in the vector provided. |
void |
setDistanceGain(float[] distance,
float[] gain)
Sets this sound's distance gain attenuation as an array of Point2fs. |
void |
setDistanceGain(Point2f[] attenuation)
Sets this sound's distance gain attenuation - where gain scale factor is applied to sound based on distance listener is from sound source. |
void |
setPosition(float x,
float y,
float z)
Sets this sound's position from the three values provided. |
void |
setPosition(Point3f position)
Sets this sound's location from the vector provided. |
Methods inherited from class javax.media.j3d.Sound |
getContinuousEnable,
getDuration,
getEnable,
getInitialGain,
getLoop,
getNumberOfChannelsUsed,
getPriority,
getReleaseEnable,
getSchedulingBoundingLeaf,
getSchedulingBounds,
getSoundData,
isPlaying,
isPlayingSilently,
isReady,
setContinuousEnable,
setEnable,
setInitialGain,
setLoop,
setPriority,
setReleaseEnable,
setSchedulingBoundingLeaf,
setSchedulingBounds,
setSoundData,
updateNodeReferences |
Methods inherited from class javax.media.j3d.Node |
cloneTree,
cloneTree,
cloneTree,
cloneTree,
cloneTree,
cloneTree,
getBounds,
getBoundsAutoCompute,
getCollidable,
getLocalToVworld,
getLocalToVworld,
getParent,
getPickable,
setBounds,
setBoundsAutoCompute,
setCollidable,
setPickable |
Methods inherited from class javax.media.j3d.SceneGraphObject |
clearCapability,
duplicateSceneGraphObject,
getCapability,
getUserData,
isCompiled,
isLive,
setCapability,
setUserData |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Field Detail |
public static final int ALLOW_POSITION_READ
public static final int ALLOW_POSITION_WRITE
public static final int ALLOW_DISTANCE_GAIN_READ
public static final int ALLOW_DISTANCE_GAIN_WRITE
Constructor Detail |
public PointSound()
public PointSound(MediaContainer soundData, float initialGain, Point3f position)
soundData
- sound data associated with this sound source nodeinitialGain
- amplitude scale factor applied to sound sourceposition
- 3D location of sourcepublic PointSound(MediaContainer soundData, float initialGain, float posX, float posY, float posZ)
soundData
- sound data associated with this sound source nodeinitialGain
- amplitude scale factor applied to sound source dataposX
- x coordinate of location of sourceposY
- y coordinate of location of sourceposZ
- z coordinate of location of sourcepublic PointSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, Point3f position, Point2f[] distanceGain)
soundData
- sound data associated with this sound source nodeinitialGain
- amplitude scale factor applied to sound sourceloopCount
- number of times loop is loopedrelease
- flag denoting playing sound data to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- activation boundspriority
- playback ranking valueposition
- 3D location of sourcedistanceGain
- array of (distance,gain) pairs controling attenuationpublic PointSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float posX, float posY, float posZ, Point2f[] distanceGain)
soundData
- sound data associated with this sound source nodeinitialGain
- amplitude scale factor applied to sound sourceloopCount
- number of times loop is loopedrelease
- flag denoting playing sound to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- activation boundspriority
- playback ranking valueposX
- x coordinate of location of sourceposY
- y coordinate of location of sourceposZ
- z coordinate of location of sourcedistanceGain
- array of (distance,gain) pairs controling attenuationpublic PointSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, Point3f position, float[] attenuationDistance, float[] attenuationGain)
soundData
- sound data associated with this sound source nodeinitialGain
- amplitude scale factor applied to sound sourceloopCount
- number of times loop is loopedrelease
- flag denoting playing sound data to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- activation boundspriority
- playback ranking valueposition
- 3D location of sourceattenuationDistance
- array of distance values used for attenuationattenuationGain
- array of gain scale factors used for attenuationpublic PointSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float posX, float posY, float posZ, float[] attenuationDistance, float[] attenuationGain)
soundData
- sound data associated with this sound source nodeinitialGain
- amplitude scale factor applied to sound sourceloopCount
- number of times loop is loopedrelease
- flag denoting playing sound to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- activation boundspriority
- playback ranking valueposX
- x coordinate of location of sourceposY
- y coordinate of location of sourceposZ
- z coordinate of location of sourceattenuationDistance
- array of distance values used for attenuationattenuationGain
- array of gain scale factors used for attenuationMethod Detail |
public void setPosition(Point3f position)
position
- the new locationpublic void setPosition(float x, float y, float z)
x
- the new x positiony
- the new y positionz
- the new z positionpublic void getPosition(Point3f position)
position
- the variable to receive the direction vectorpublic void setDistanceGain(Point2f[] attenuation)
attenuation
- defined by pairs of (distance,gain-scale-factor)public void setDistanceGain(float[] distance, float[] gain)
distance
- array of monotonically-increasing floatsgain
- array of non-negative scale factorspublic int getDistanceGainLength()
public void getDistanceGain(Point2f[] attenuation)
attenuation
- arrays containing distance attenuation pairspublic void getDistanceGain(float[] distance, float[] gain)
distance
- array of float distance from sound sourcegain
- array of non-negative scale factors associated withpublic Node cloneNode(boolean forceDuplicate)
cloneTree
to duplicate the current node.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.Node.cloneTree()
,
Node.cloneNode(boolean)
,
Node.duplicateNode(javax.media.j3d.Node, boolean)
,
NodeComponent.setDuplicateOnCloneTree(boolean)
public void duplicateNode(Node originalNode, boolean forceDuplicate)
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
.
NOTE: Applications should not call this method directly.
It should only be called by the cloneNode method.
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.PointSound
Node.cloneTree()
,
Node.cloneNode(boolean)
,
NodeComponent.setDuplicateOnCloneTree(boolean)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |