Class ConeSound
Distance Gain attuation
-
A cone sound node can have one or two distance attenuation arrays.
If none are set, no distance gain attenuation is performed (equivalent
to using a distance gain of 1.0 for all distances). If only one distance
attenuation array is set, sphere attenuation is assumed. If both a front
and back distance attenuation are set, elliptical attenuation regions
are defined.
Use PointSound setDistanceGain() method to set the front distance attenuation array separate from the back distance attenuation array. A front distance attenuation array defines monotonically-increasing distances from the sound source origin along the position direction vector. A back distance attenuation array (if given) defines monotonically-increasing distances from the sound source origin along the negative direction vector. The two arrays must be of the same length. The backDistance[i] gain values must be less than or equal to the frontDistance[i] gain values.
Gain scale factors are associated with distances from the listener to the sound source via an array of (distance, gain-scale-factor) pairs. The gain scale factor applied to the sound source is the linear interpolated gain value between the distance value range that includes the current distance from the listener to the sound source.
The getDistanceGainLength method defined for PointSound returns the length of the all distance gain attenuation arrays, including the back distance gain arrays. Arrays passed into getDistanceGain methods should all be at least this size.
Direction Methods
-
This value is the sound source's direction vector. It is the axis from
which angular distance is measured.
Angular Attenuation
-
Besides sound (linear) distance attenuation a ConeSound can optionally
define angular gain and filter attenuation.
This attenuation is defined as a triple of (angular distance, gain-scale-factor, filter). The distance is measured as the angle in radians between the ConeSound's direction vector and the vector from the sound source position to the listener. Both the gain scale factor and filter applied to the sound source is the linear interpolation of values between the distance value range that includes the angular distance from the sound source axis.
If this is not set, no angular gain attenuation or filtering is performed (equivalent to using an angular gain scale factor of 1.0 and an angular filter of Sound.NO_FILTER for all distances).
If angular distance from the listener-sound-position vector and a sound's direction vector is less than the first distance in the array, only the first gain scale factor and first filter are applied to the sound source. This creates a conical region around the listener within which the sound is uniformly attenuated by first gain and first filter in the array.
If the distance from the listener-sound-position vector and the sound's direction vector is greater than the last distance in the array, the last gain scale factor and last filter are applied to the sound source.
Distance elements in this array of points is a monotonically-increasing set of floating point numbers measured from 0 to p radians. Gain scale factors elements in this list of points 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. The filter (for now) is a single simple frequency cutoff value.
The getAngularAttenuationArrayLength method returns the length of the angular attenuation arrays. Arrays passed into getAngularAttenuation methods should all be at least this size.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Specifies that this ConeSound allows access to its object's cone params information.static final int
Specifies that this ConeSound allows writing to its object's cone params information.static final int
Specifies that this ConeSound allows access to its object's direction information.static final int
Specifies that this ConeSound allows writing to its object's direction information.Fields inherited from class javax.media.j3d.PointSound
ALLOW_DISTANCE_GAIN_READ, ALLOW_DISTANCE_GAIN_WRITE, ALLOW_POSITION_READ, ALLOW_POSITION_WRITE
Fields inherited from class javax.media.j3d.Sound
ALLOW_CHANNELS_USED_READ, ALLOW_CONT_PLAY_READ, ALLOW_CONT_PLAY_WRITE, ALLOW_DURATION_READ, ALLOW_ENABLE_READ, ALLOW_ENABLE_WRITE, ALLOW_INITIAL_GAIN_READ, ALLOW_INITIAL_GAIN_WRITE, ALLOW_IS_PLAYING_READ, ALLOW_IS_READY_READ, ALLOW_LOOP_READ, ALLOW_LOOP_WRITE, ALLOW_MUTE_READ, ALLOW_MUTE_WRITE, ALLOW_PAUSE_READ, ALLOW_PAUSE_WRITE, ALLOW_PRIORITY_READ, ALLOW_PRIORITY_WRITE, ALLOW_RATE_SCALE_FACTOR_READ, ALLOW_RATE_SCALE_FACTOR_WRITE, ALLOW_RELEASE_READ, ALLOW_RELEASE_WRITE, ALLOW_SCHEDULING_BOUNDS_READ, ALLOW_SCHEDULING_BOUNDS_WRITE, ALLOW_SOUND_DATA_READ, ALLOW_SOUND_DATA_WRITE, DURATION_UNKNOWN, INFINITE_LOOPS, NO_FILTER
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
ConstructorsConstructorDescriptionConstructs and initializes a new ConeSound node using default parameters.ConeSound
(MediaContainer soundData, float initialGain, float posX, float posY, float posZ, float dirX, float dirY, float dirZ) Constructs a ConeSound node object using only the provided parameter values for sound, overall initial gain, position, and direction.ConeSound
(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float posX, float posY, float posZ, float[] frontDistance, float[] frontDistanceGain, float[] backDistance, float[] backDistanceGain, float dirX, float dirY, float dirZ) Constructs a ConeSound node object using the provided parameter values.ConeSound
(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float posX, float posY, float posZ, float[] frontDistance, float[] frontDistanceGain, float[] backDistance, float[] backDistanceGain, float dirX, float dirY, float dirZ, float[] angle, float[] angularGain, float[] frequencyCutoff) Constructs and initializes a new Cone Sound node explicitly setting all PointSound and ConeSound fields as arguments but all the vector and point arguments are broken into individual float array components.ConeSound
(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float posX, float posY, float posZ, float[] distance, float[] distanceGain, float dirX, float dirY, float dirZ, float[] angle, float[] angularGain, float[] frequencyCutoff) Constructs a ConeSound node object using all the provided PointSound parameter values, which include a single spherical distance attenuation array, but includes an angular attenuation array.ConeSound
(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, javax.vecmath.Point3f position, javax.vecmath.Point2f[] frontDistanceAttenuation, javax.vecmath.Point2f[] backDistanceAttenuation, javax.vecmath.Vector3f direction) Constructs a ConeSound node object using all the provided PointSound parameter values.ConeSound
(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, javax.vecmath.Point3f position, javax.vecmath.Point2f[] frontDistanceAttenuation, javax.vecmath.Point2f[] backDistanceAttenuation, javax.vecmath.Vector3f direction, javax.vecmath.Point3f[] angularAttenuation) Constructs and initializes a new Cone Sound node explicitly setting all PointSound and ConeSound fields as arguments: the PointSound position, front and back distance attenuation Point2f array, and ConeSound direction vector and Point3f angular attenuation.ConeSound
(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, javax.vecmath.Point3f position, javax.vecmath.Point2f[] distanceAttenuation, javax.vecmath.Vector3f direction, javax.vecmath.Point3f[] angularAttenuation) Constructs a ConeSound node object using all the provided PointSound parameter values, which include a single spherical distance attenuation array, but includes an angular attenuation array.ConeSound
(MediaContainer soundData, float initialGain, javax.vecmath.Point3f position, javax.vecmath.Vector3f direction) Constructs a ConeSound node object using only the provided parameter values for sound, overall initial gain, position, and direction. -
Method Summary
Modifier and TypeMethodDescriptioncloneNode
(boolean forceDuplicate) Creates a new instance of the node.void
duplicateNode
(Node originalNode, boolean forceDuplicate) Copies all node information fromoriginalNode
into the current node.void
getAngularAttenuation
(float[] distance, float[] gain, float[] filter) Copies the array of attenuation values from this sound, including gain and filter, into the separate arrays.void
getAngularAttenuation
(javax.vecmath.Point3f[] attenuation) Copies the array of attenuation values from this sound, including gain and filter, into the specified array.int
Retrieves angular attenuation array length.void
getDirection
(javax.vecmath.Vector3f direction) Retrieves this sound's direction and places it in the vector provided.void
getDistanceGain
(float[] frontDistance, float[] frontGain, float[] backDistance, float[] backGain) Gets this sound's elliptical distance gain attenuation values in separate arrays.void
getDistanceGain
(javax.vecmath.Point2f[] frontAttenuation, javax.vecmath.Point2f[] backAttenuation) Gets this sound's elliptical distance attenuation.void
setAngularAttenuation
(float[] distance, float[] gain, float[] filter) Sets angular attenuation including gain and filter using separate arrays.void
setAngularAttenuation
(javax.vecmath.Point2f[] attenuation) Sets this sound's angular gain attenuation (not including filter).void
setAngularAttenuation
(javax.vecmath.Point3f[] attenuation) In the second form of setAngularAttenuation, an array of all three values is supplied.void
setBackDistanceGain
(float[] distance, float[] gain) Sets this sound's back distance gain attenuation as separate arrays.void
setBackDistanceGain
(javax.vecmath.Point2f[] attenuation) Sets this sound's back distance gain attenuation - where gain scale factor is applied to sound based on distance listener along the negative sound direction axis from sound source.void
setDirection
(float x, float y, float z) Sets this sound's direction from the three values provided.void
setDirection
(javax.vecmath.Vector3f direction) Sets this sound's direction from the vector provided.void
setDistanceGain
(float[] frontDistance, float[] frontGain, float[] backDistance, float[] backGain) Sets this sound's distance gain attenuation as an array of Point2fs.void
setDistanceGain
(javax.vecmath.Point2f[] frontAttenuation, javax.vecmath.Point2f[] backAttenuation) Sets this sound's distance gain elliptical attenuation - where gain scale factor is applied to sound based on distance listener is from sound source.Methods inherited from class javax.media.j3d.PointSound
getDistanceGain, getDistanceGain, getDistanceGainLength, getPosition, setDistanceGain, setDistanceGain, setPosition, setPosition
Methods inherited from class javax.media.j3d.Sound
getContinuousEnable, getDuration, getEnable, getInitialGain, getLoop, getMute, getNumberOfChannelsUsed, getNumberOfChannelsUsed, getPause, getPriority, getRateScaleFactor, getReleaseEnable, getSchedulingBoundingLeaf, getSchedulingBounds, getSoundData, isPlaying, isPlaying, isPlayingSilently, isPlayingSilently, isReady, isReady, setContinuousEnable, setEnable, setInitialGain, setLoop, setMute, setPause, setPriority, setRateScaleFactor, setReleaseEnable, setSchedulingBoundingLeaf, setSchedulingBounds, setSoundData, updateNodeReferences
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
-
Field Details
-
ALLOW_DIRECTION_READ
public static final int ALLOW_DIRECTION_READSpecifies that this ConeSound allows access to its object's direction information.- See Also:
-
ALLOW_DIRECTION_WRITE
public static final int ALLOW_DIRECTION_WRITESpecifies that this ConeSound allows writing to its object's direction information.- See Also:
-
ALLOW_ANGULAR_ATTENUATION_READ
public static final int ALLOW_ANGULAR_ATTENUATION_READSpecifies that this ConeSound allows access to its object's cone params information.- See Also:
-
ALLOW_ANGULAR_ATTENUATION_WRITE
public static final int ALLOW_ANGULAR_ATTENUATION_WRITESpecifies that this ConeSound allows writing to its object's cone params information.- See Also:
-
-
Constructor Details
-
ConeSound
public ConeSound()Constructs and initializes a new ConeSound node using default parameters. The following default values are used:-
Direction vector: (0.0, 0.0, 1.0)
Angular attenuation: ((0.0, 1.0, Sound.NO_FILTER),(p/2, 0.0, Sound.NO_FILTER))
-
ConeSound
public ConeSound(MediaContainer soundData, float initialGain, javax.vecmath.Point3f position, javax.vecmath.Vector3f direction) Constructs a ConeSound node object using only the provided parameter values for sound, overall initial gain, position, and direction. The remaining fields are set to the default values above. This form uses Point3f as input for its position and Vector3f for direction.- Parameters:
soundData
- sound source data associated with this nodeinitialGain
- amplitude scale factor applied to soundposition
- 3D location of sourcedirection
- 3D vector defining cone's axis
-
ConeSound
public ConeSound(MediaContainer soundData, float initialGain, float posX, float posY, float posZ, float dirX, float dirY, float dirZ) Constructs a ConeSound node object using only the provided parameter values for sound, overall initial gain, position, and direction. The remaining fields are set to the default values above. This form uses individual float parameters for the elements of the position and direction vectors.- Parameters:
soundData
- sound source datainitialGain
- amplitude scale factor applied to soundposX
- x coordinate of location of sourceposY
- y coordinate of location of sourceposZ
- z coordinate of location of sourcedirX
- x coordinate cones' axii vectordirY
- y coordinate cones' axii vectordirZ
- z coordinate cones' axii vector
-
ConeSound
public ConeSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, javax.vecmath.Point3f position, javax.vecmath.Point2f[] frontDistanceAttenuation, javax.vecmath.Point2f[] backDistanceAttenuation, javax.vecmath.Vector3f direction) Constructs a ConeSound node object using all the provided PointSound parameter values. This form uses points or vectors as input for its position, direction, and front/back distance attenuation arrays.Unlike the single distance gain attenuation array for PointSounds which define spherical areas about the sound source between which gains are linearly interpolated, this directed ConeSound can have two distance gain attenuation arrays that define ellipsoidal attenuation areas. See the setDistanceGain PointSound method for details on how the separate distance and distanceGain arrays are interpreted.
The ConeSound's direction vector and angular measurements are defined in the local coordinate system of the node.
- Parameters:
soundData
- sound source data associated with this nodeinitialGain
- amplitude scale factor applied to soundloopCount
- number of times sound is loopedrelease
- flag denoting playing sound to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- scheduling boundspriority
- playback ranking valueposition
- 3D location of sourcefrontDistanceAttenuation
- array of (distance,gain) pairs controlling attenuation values along the positive direction axisbackDistanceAttenuation
- array of (distance,gain) pairs controlling attenuation values along the negative direction axisdirection
- vector defining cones' axii
-
ConeSound
public ConeSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float posX, float posY, float posZ, float[] frontDistance, float[] frontDistanceGain, float[] backDistance, float[] backDistanceGain, float dirX, float dirY, float dirZ) Constructs a ConeSound node object using the provided parameter values. This form uses individual float parameters for the elements of the position, direction, and two distance attenuation arrays. Unlike the single distance gain attenuation array for PointSounds, which define spherical areas about the sound source between which gains are linearly interpolated, this directed ConeSound can have two distance gain attenuation arrays that define ellipsoidal attenuation areas. See the setDistanceGain PointSound method for details on how the separate distance and distanceGain arrays are interpreted. The ConeSound's direction vector and angular measurements are defined in the local coordinate system of the node.- Parameters:
soundData
- sound source data associated with this nodeinitialGain
- amplitude scale factor applied to soundloopCount
- number of times sound is loopedrelease
- flag denoting playing sound to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- scheduling boundspriority
- playback ranking valueposX
- x coordinate of location of sourceposY
- y coordinate of location of sourceposZ
- z coordinate of location of sourcefrontDistance
- array of front distance values used for attenuationfrontDistanceGain
- array of front gain scale factors used for attenuationbackDistance
- array of back distance values used for attenuationbackDistanceGain
- array of back gain scale factors used for attenuationdirX
- x coordinate cones' axii vectordirY
- y coordinate cones' axii vectordirZ
- z coordinate cones' axii vector
-
ConeSound
public ConeSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, javax.vecmath.Point3f position, javax.vecmath.Point2f[] distanceAttenuation, javax.vecmath.Vector3f direction, javax.vecmath.Point3f[] angularAttenuation) Constructs a ConeSound node object using all the provided PointSound parameter values, which include a single spherical distance attenuation array, but includes an angular attenuation array. This form uses points and vectors as input for its position, direction, single spherical distanceAttenuation array, and angularAttenuation array. It also accepts arrays of points for the distance attenuation and angular values. Each Point2f in the distanceAttenuation array contains a distance and a gain scale factor. Each Point3f in the angularAttenuation array contains an angular distance, a gain scale factor, and a filtering value (which is currently defined as a simple cutoff frequency).- Parameters:
soundData
- sound source data associated with this nodeinitialGain
- amplitude scale factor applied to soundloopCount
- number of times sound is loopedrelease
- flag denoting playing sound to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- scheduling boundspriority
- playback ranking valueposition
- 3D location of sourcedistanceAttenuation
- array of (distance,gain) pairs controlling attenuation values along the positive direction axisdirection
- vector defining cones' axiiangularAttenuation
- array of tuples defining angular gain/filtering
-
ConeSound
public ConeSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float posX, float posY, float posZ, float[] distance, float[] distanceGain, float dirX, float dirY, float dirZ, float[] angle, float[] angularGain, float[] frequencyCutoff) Constructs a ConeSound node object using all the provided PointSound parameter values, which include a single spherical distance attenuation array, but includes an angular attenuation array. This form uses individual float parameters for elements of position, direction, distanceAttenuation array, and angularAttenuation array. It also accepts separate arrays for the distance and gain scale factors components of distance attenuation, and separate arrays for the angular distance, angular gain, and filtering components of angular attenuation. See the setDistanceGain ConeSound method for details on how the separate distance and distanceGain arrays are interpreted. See the setAngularAttenuation ConeSound method for details on how the separate angularDistance, angularGain, and filter arrays are interpreted.- Parameters:
soundData
- sound source data associated with this nodeinitialGain
- amplitude scale factor applied to soundloopCount
- number of times sound is loopedrelease
- flag denoting playing sound to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- scheduling boundspriority
- playback ranking valueposX
- x coordinate of location of sourceposY
- y coordinate of location of sourceposZ
- z coordinate of location of sourcedistance
- array of front distance values used for attenuationdistanceGain
- array of front gain scale factors used for attenuationdirX
- x coordinate cones' axii vectordirY
- y coordinate cones' axii vectordirZ
- z coordinate cones' axii vectorangle
- array of angle radians for angularAttenuationangularGain
- array of gain scale factors for angularAttenuationfrequencyCutoff
- array of lowpass filter values in Hertz
-
ConeSound
public ConeSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, javax.vecmath.Point3f position, javax.vecmath.Point2f[] frontDistanceAttenuation, javax.vecmath.Point2f[] backDistanceAttenuation, javax.vecmath.Vector3f direction, javax.vecmath.Point3f[] angularAttenuation) Constructs and initializes a new Cone Sound node explicitly setting all PointSound and ConeSound fields as arguments: the PointSound position, front and back distance attenuation Point2f array, and ConeSound direction vector and Point3f angular attenuation.- Parameters:
soundData
- sound source data associated with this nodeinitialGain
- amplitude scale factor applied to soundloopCount
- number of times sound is loopedrelease
- flag denoting playing sound to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- scheduling boundspriority
- playback ranking valueposition
- 3D location of sourcefrontDistanceAttenuation
- array of (distance,gain) pairs controlling attenuation values along the positive direction axisbackDistanceAttenuation
- array of (distance,gain) pairs controlling attenuation values along the negative direction axisdirection
- vector defining cones' axiiangularAttenuation
- array of tuples defining angular gain/filtering
-
ConeSound
public ConeSound(MediaContainer soundData, float initialGain, int loopCount, boolean release, boolean continuous, boolean enable, Bounds region, float priority, float posX, float posY, float posZ, float[] frontDistance, float[] frontDistanceGain, float[] backDistance, float[] backDistanceGain, float dirX, float dirY, float dirZ, float[] angle, float[] angularGain, float[] frequencyCutoff) Constructs and initializes a new Cone Sound node explicitly setting all PointSound and ConeSound fields as arguments but all the vector and point arguments are broken into individual float array components.- Parameters:
soundData
- sound source data associated with this nodeinitialGain
- amplitude scale factor applied to soundloopCount
- number of times sound is loopedrelease
- flag denoting playing sound to endcontinuous
- denotes that sound silently plays when disabledenable
- sound switched on/offregion
- scheduling boundspriority
- playback ranking valueposX
- x coordinate of location of sourceposY
- y coordinate of location of sourceposZ
- z coordinate of location of sourcefrontDistance
- array of front distance values used for attenuationfrontDistanceGain
- array of front gain scale factors used for attenuationbackDistance
- array of back distance values used for attenuationbackDistanceGain
- array of back gain scale factors used for attenuationdirX
- x coordinate cones' axii vectordirY
- y coordinate cones' axii vectordirZ
- z coordinate cones' axii vectorangle
- array of angle radians for angularAttenuationangularGain
- array of gain scale factors for angularAttenuationfrequencyCutoff
- array of lowpass filter values in Hertz
-
-
Method Details
-
setDistanceGain
public void setDistanceGain(javax.vecmath.Point2f[] frontAttenuation, javax.vecmath.Point2f[] backAttenuation) Sets this sound's distance gain elliptical attenuation - where gain scale factor is applied to sound based on distance listener is from sound source.- Parameters:
frontAttenuation
- defined by pairs of (distance,gain-scale-factor)backAttenuation
- defined by pairs of (distance,gain-scale-factor)- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setDistanceGain
public void setDistanceGain(float[] frontDistance, float[] frontGain, float[] backDistance, float[] backGain) Sets this sound's distance gain attenuation as an array of Point2fs.- Parameters:
frontDistance
- array of monotonically-increasing floatsfrontGain
- array of non-negative scale factorsbackDistance
- array of monotonically-increasing floatsbackGain
- array of non-negative scale factors- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setBackDistanceGain
public void setBackDistanceGain(javax.vecmath.Point2f[] attenuation) Sets this sound's back distance gain attenuation - where gain scale factor is applied to sound based on distance listener along the negative sound direction axis from sound source.- Parameters:
attenuation
- defined by pairs of (distance,gain-scale-factor)- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setBackDistanceGain
public void setBackDistanceGain(float[] distance, float[] gain) Sets this sound's back distance gain attenuation as separate arrays.- Parameters:
distance
- array of monotonically-increasing floatsgain
- array of non-negative scale factors- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getDistanceGain
public void getDistanceGain(javax.vecmath.Point2f[] frontAttenuation, javax.vecmath.Point2f[] backAttenuation) Gets this sound's elliptical distance attenuation. The attenuation values are copied into the specified arrays. The arrays must be large enough to hold all of the forward distances and backward distances attenuation values. The individual array elements must be allocated by the caller. The Point2f x,y values are defined as follows: x is the distance, y is the gain.- Parameters:
frontAttenuation
- arrays containing forward distances attenuation pairsbackAttenuation
- arrays containing backward distances attenuation pairs- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getDistanceGain
public void getDistanceGain(float[] frontDistance, float[] frontGain, float[] backDistance, float[] backGain) Gets this sound's elliptical distance gain attenuation values in separate arrays. The arrays must be large enough to hold all of the values.- Parameters:
frontDistance
- array of float distances along the sound axisfrontGain
- array of non-negative scale factors associated with front distancesbackDistance
- array of float negative distances along the sound axisbackGain
- array of non-negative scale factors associated with back distances- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setDirection
public void setDirection(javax.vecmath.Vector3f direction) Sets this sound's direction from the vector provided.- Parameters:
direction
- the new direction- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setDirection
public void setDirection(float x, float y, float z) Sets this sound's direction from the three values provided.- Parameters:
x
- the new x directiony
- the new y directionz
- the new z direction- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getDirection
public void getDirection(javax.vecmath.Vector3f direction) Retrieves this sound's direction and places it in the vector provided.- Parameters:
direction
- axis of cones; 'direction' of sound- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setAngularAttenuation
public void setAngularAttenuation(javax.vecmath.Point2f[] attenuation) Sets this sound's angular gain attenuation (not including filter). In this form of setAngularAttenuation, only the angular distances and angular gain scale factors pairs are given. The filter values for these tuples are implicitly set to Sound.NO_FILTER.- Parameters:
attenuation
- array containing angular distance and gain- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setAngularAttenuation
public void setAngularAttenuation(javax.vecmath.Point3f[] attenuation) In the second form of setAngularAttenuation, an array of all three values is supplied.- Parameters:
attenuation
- array containing angular distance, gain, and filter- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
setAngularAttenuation
public void setAngularAttenuation(float[] distance, float[] gain, float[] filter) Sets angular attenuation including gain and filter using separate arrays. The third form of setAngularAttenuation accepts three separate arrays for these angular attenuation values. These arrays should be of the same length. If the angularGain or filtering array length is greater than angularDistance array length, the array elements beyond the length of the angularDistance array are ignored. If the angularGain or filtering array is shorter than the angularDistance array, the last value of the short array is repeated to fill an array of length equal to angularDistance array.- Parameters:
distance
- array containing angular distancegain
- array containing angular gain attenuationfilter
- array containing angular low-pass frequency cutoff values- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getAngularAttenuationLength
public int getAngularAttenuationLength()Retrieves angular attenuation array length. All arrays are forced to same size.- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getAngularAttenuation
public void getAngularAttenuation(javax.vecmath.Point3f[] attenuation) Copies the array of attenuation values from this sound, including gain and filter, into the specified array. The array must be large enough to hold all of the points. The individual array elements must be allocated by the caller. The Point3f x,y,z values are defined as follows: x is the angular distance, y is the angular gain attenuation, and z is the frequency cutoff.- Parameters:
attenuation
- the array to receive the attenuation values applied to gain when listener is between cones- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
getAngularAttenuation
public void getAngularAttenuation(float[] distance, float[] gain, float[] filter) Copies the array of attenuation values from this sound, including gain and filter, into the separate arrays. The arrays must be large enough to hold all of the values.- Parameters:
distance
- array containing angular distancegain
- array containing angular gain attenuationfilter
- array containing angular low-pass frequency cutoff values- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
cloneNode
Creates a new instance of the node. This routine is called bycloneTree
to duplicate the current node.- Overrides:
cloneNode
in classPointSound
- 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:
-
duplicateNode
Copies all node information fromoriginalNode
into the current node. This method is called from thecloneNode
method which is, in turn, called by thecloneTree
method.For any
NodeComponent
objects contained by the object being duplicated, eachNodeComponent
object'sduplicateOnCloneTree
value is used to determine whether theNodeComponent
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 theforceDuplicate
parameter in thecloneTree
method totrue
.
NOTE: Applications should not call this method directly. It should only be called by the cloneNode method.- Overrides:
duplicateNode
in classPointSound
- Parameters:
originalNode
- the original node to duplicate.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.- Throws:
ClassCastException
- if originalNode is not an instance ofConeSound
- See Also:
-