Class Alpha
- java.lang.Object
-
- javax.media.j3d.SceneGraphObject
-
- javax.media.j3d.NodeComponent
-
- javax.media.j3d.Alpha
-
public class Alpha extends NodeComponent
The alpha NodeComponent object provides common methods for converting a time value into an alpha value (a value in the range 0 to 1). The Alpha object is effectively a function of time that generates alpha values in the range [0,1] when sampled: f(t) = [0,1]. A primary use of the Alpha object is to provide alpha values for Interpolator behaviors. The function f(t) and the characteristics of the Alpha object are determined by user-definable parameters:loopCount
-- This is the number of times to run this Alpha; a value of -1 specifies that the Alpha loops indefinitely.triggerTime
-- This is the time in milliseconds since the start time that this object first triggers. If (startTime + triggerTime >= currentTime) then the Alpha object starts running.phaseDelayDuration
-- This is an additional number of milliseconds to wait after triggerTime before actually starting this Alpha.mode
-- This can be set to INCREASING_ENABLE, DECREASING_ENABLE, or the Or'ed value of the two. INCREASING_ENABLE activates the increasing Alpha parameters listed below; DECREASING_ENABLE activates the decreasing Alpha parameters listed below.increasingAlphaDuration
-- This is the period of time during which Alpha goes from zero to one.increasingAlphaRampDuration
-- This is the period of time during which the Alpha step size increases at the beginning of the increasingAlphaDuration and, correspondingly, decreases at the end of the increasingAlphaDuration. This parameter is clamped to half of increasingAlphaDuration. When this parameter is non-zero, one gets constant acceleration while it is in effect; constant positive acceleration at the beginning of the ramp and constant negative acceleration at the end of the ramp. If this parameter is zero, then the effective velocity of the Alpha value is constant and the acceleration is zero (ie, a linearly increasing alpha ramp).alphaAtOneDuration
-- This is the period of time that Alpha stays at one.decreasingAlphaDuration
-- This is the period of time during which Alpha goes from one to zero.decreasingAlphaRampDuration
-- This is the period of time during which the Alpha step size increases at the beginning of the decreasingAlphaDuration and, correspondingly, decreases at the end of the decreasingAlphaDuration. This parameter is clamped to half of decreasingAlphaDuration. When this parameter is non-zero, one gets constant acceleration while it is in effect; constant positive acceleration at the beginning of the ramp and constant negative acceleration at the end of the ramp. If this parameter is zero, the effective velocity of the Alpha value is constant and the acceleration is zero (i.e., a linearly-decreasing alpha ramp).alphaAtZeroDuration
-- This is the period of time that Alpha stays at zero.- See Also:
Interpolator
-
-
Field Summary
Fields Modifier and Type Field Description static int
DECREASING_ENABLE
Specifies that the decreasing component of the alpha is usedstatic int
INCREASING_ENABLE
Specifies that the increasing component of the alpha is used.
-
Constructor Summary
Constructors Constructor Description Alpha()
Constructs an Alpha object with default parameters.Alpha(int loopCount, int mode, long triggerTime, long phaseDelayDuration, long increasingAlphaDuration, long increasingAlphaRampDuration, long alphaAtOneDuration, long decreasingAlphaDuration, long decreasingAlphaRampDuration, long alphaAtZeroDuration)
This constructor takes all of the Alpha user-definable parameters.Alpha(int loopCount, long increasingAlphaDuration)
This constructor takes only the loopCount and increasingAlphaDuration as parameters and assigns the default values to all of the other parameters.Alpha(int loopCount, long triggerTime, long phaseDelayDuration, long increasingAlphaDuration, long increasingAlphaRampDuration, long alphaAtOneDuration)
Constructs a new Alpha object that assumes that the mode is INCREASING_ENABLE.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
finished()
Query to test if this alpha object is past its activity window, that is, if it has finished looping.long
getAlphaAtOneDuration()
Retrieves this alpha's alphaAtOneDuration.long
getAlphaAtZeroDuration()
Retrieves this alpha's alphaAtZeroDuration.long
getDecreasingAlphaDuration()
Retrieves this alpha's decreasingAlphaDuration.long
getDecreasingAlphaRampDuration()
Retrieves this alpha's decreasingAlphaRampDuration.long
getIncreasingAlphaDuration()
Retrieves this alpha's increasingAlphaDuration.long
getIncreasingAlphaRampDuration()
Retrieves this alpha's increasingAlphaRampDuration.int
getLoopCount()
Retrieves this alpha's loopCount.int
getMode()
Retrieves this alpha's mode.long
getPauseTime()
Returns the time at which this alpha was paused.long
getPhaseDelayDuration()
Retrieves this alpha's phaseDelayDuration.long
getStartTime()
Retrieves this alpha's startTime, the base for all relative time specifications; the default value for startTime is the system start time.long
getTriggerTime()
Retrieves this alpha's triggerTime.boolean
isPaused()
Returns true if this alpha object is paused.void
pause()
Pauses this alpha object.void
pause(long time)
Pauses this alpha object as of the specified time.void
resume()
Resumes this alpha object.void
resume(long time)
Resumes this alpha object as of the specified time.void
setAlphaAtOneDuration(long alphaAtOneDuration)
Set this alpha object's alphaAtOneDuration to the specified value.void
setAlphaAtZeroDuration(long alphaAtZeroDuration)
Set this alpha object's alphaAtZeroDuration to the specified value.void
setDecreasingAlphaDuration(long decreasingAlphaDuration)
Set this alpha's decreasingAlphaDuration to that specified in the argument.void
setDecreasingAlphaRampDuration(long decreasingAlphaRampDuration)
Set this alpha's decreasingAlphaRampDuration to that specified in the argument.void
setIncreasingAlphaDuration(long increasingAlphaDuration)
Set this alpha's increasingAlphaDuration to that specified in the argument.void
setIncreasingAlphaRampDuration(long increasingAlphaRampDuration)
Set this alpha's increasingAlphaRampDuration to that specified in the argument.void
setLoopCount(int loopCount)
Set this alpha's loopCount to that specified in the argument.void
setMode(int mode)
Set this alpha's mode to that specified in the argument.void
setPhaseDelayDuration(long phaseDelayDuration)
Set this alpha's phaseDelayDuration to that specified in the argument.void
setStartTime(long startTime)
Sets this alpha's startTime to that specified in the argument; startTime sets the base (or zero) for all relative time computations; the default value for startTime is the system start time.void
setTriggerTime(long triggerTime)
Set this alpha's triggerTime to that specified in the argument.float
value()
This method returns a value between 0.0 and 1.0 inclusive, based on the current time and the time-to-alpha parameters established for this alpha.float
value(long atTime)
This method returns a value between 0.0 and 1.0 inclusive, based on the specified time and the time-to-alpha parameters established for this alpha.-
Methods inherited from class javax.media.j3d.NodeComponent
cloneNodeComponent, cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree
-
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences
-
-
-
-
Field Detail
-
INCREASING_ENABLE
public static final int INCREASING_ENABLE
Specifies that the increasing component of the alpha is used.- See Also:
- Constant Field Values
-
DECREASING_ENABLE
public static final int DECREASING_ENABLE
Specifies that the decreasing component of the alpha is used- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Alpha
public Alpha()
Constructs an Alpha object with default parameters. The default values are as follows:-
loopCount : -1
mode : INCREASING_ENABLE
startTime : system start time
triggerTime : 0
phaseDelayDuration : 0
increasingAlphaDuration : 1000
increasingAlphaRampDuration : 0
alphaAtOneDuration : 0
decreasingAlphaDuration : 0
decreasingAlphaRampDuration : 0
alphaAtZeroDuration : 0
isPaused : false
pauseTime : 0
-
Alpha
public Alpha(int loopCount, int mode, long triggerTime, long phaseDelayDuration, long increasingAlphaDuration, long increasingAlphaRampDuration, long alphaAtOneDuration, long decreasingAlphaDuration, long decreasingAlphaRampDuration, long alphaAtZeroDuration)
This constructor takes all of the Alpha user-definable parameters.- Parameters:
loopCount
- number of times to run this alpha; a value of -1 specifies that the alpha loops indefinitelymode
- indicates whether the increasing alpha parameters or the decreasing alpha parameters or both are active. This parameter accepts the following values, INCREASING_ENABLE or DECREASING_ENABLE, which may be ORed together to specify that both are active. The increasing alpha parameters are increasingAlphaDuration, increasingAlphaRampDuration, and alphaAtOneDuration. The decreasing alpha parameters are decreasingAlphaDuration, decreasingAlphaRampDuration, and alphaAtZeroDuration.triggerTime
- time in milliseconds since the start time that this object first triggersphaseDelayDuration
- number of milliseconds to wait after triggerTime before actually starting this alphaincreasingAlphaDuration
- period of time during which alpha goes from zero to oneincreasingAlphaRampDuration
- period of time during which the alpha step size increases at the beginning of the increasingAlphaDuration and, correspondingly, decreases at the end of the increasingAlphaDuration. This value is clamped to half of increasingAlphaDuration. NOTE: a value of zero means that the alpha step size remains constant during the entire increasingAlphaDuration.alphaAtOneDuration
- period of time that alpha stays at onedecreasingAlphaDuration
- period of time during which alpha goes from one to zerodecreasingAlphaRampDuration
- period of time during which the alpha step size increases at the beginning of the decreasingAlphaDuration and, correspondingly, decreases at the end of the decreasingAlphaDuration. This value is clamped to half of decreasingAlphaDuration. NOTE: a value of zero means that the alpha step size remains constant during the entire decreasingAlphaDuration.alphaAtZeroDuration
- period of time that alpha stays at zero
-
Alpha
public Alpha(int loopCount, long triggerTime, long phaseDelayDuration, long increasingAlphaDuration, long increasingAlphaRampDuration, long alphaAtOneDuration)
Constructs a new Alpha object that assumes that the mode is INCREASING_ENABLE.- Parameters:
loopCount
- number of times to run this alpha; a value of -1 specifies that the alpha loops indefinitely.triggerTime
- time in milliseconds since the start time that this object first triggersphaseDelayDuration
- number of milliseconds to wait after triggerTime before actually starting this alphaincreasingAlphaDuration
- period of time during which alpha goes from zero to oneincreasingAlphaRampDuration
- period of time during which the alpha step size increases at the beginning of the increasingAlphaDuration and, correspondingly, decreases at the end of the increasingAlphaDuration. This value is clamped to half of increasingAlphaDuration. NOTE: a value of zero means that the alpha step size remains constant during the entire increasingAlphaDuration.alphaAtOneDuration
- period of time that alpha stays at one
-
Alpha
public Alpha(int loopCount, long increasingAlphaDuration)
This constructor takes only the loopCount and increasingAlphaDuration as parameters and assigns the default values to all of the other parameters.- Parameters:
loopCount
- number of times to run this alpha; a value of -1 specifies that the alpha loops indefinitelyincreasingAlphaDuration
- period of time during which alpha goes from zero to one
-
-
Method Detail
-
pause
public void pause()
Pauses this alpha object. The current system time when this method is called will be used in place of the actual current time when calculating subsequent alpha values. This has the effect of freezing the interpolator at the time the method is called.- Since:
- Java 3D 1.3
-
pause
public void pause(long time)
Pauses this alpha object as of the specified time. The specified time will be used in place of the actual current time when calculating subsequent alpha values. This has the effect of freezing the interpolator at the specified time. Note that specifying a time in the future (that is, a time greater than System.currentTimeMillis()) will cause the alpha to immediately advance to that point before pausing. Similarly, specifying a time in the past (that is, a time less than System.currentTimeMillis()) will cause the alpha to immediately revert to that point before pausing.- Parameters:
time
- the time at which to pause the alpha- Throws:
java.lang.IllegalArgumentException
- if time <= 0- Since:
- Java 3D 1.3
-
resume
public void resume()
Resumes this alpha object. If the alpha object was paused, the difference between the current time and the pause time will be used to adjust the startTime of this alpha. The equation is as follows:startTime += System.currentTimeMillis() - pauseTime
- Since:
- Java 3D 1.3
-
resume
public void resume(long time)
Resumes this alpha object as of the specified time. If the alpha object was paused, the difference between the specified time and the pause time will be used to adjust the startTime of this alpha. The equation is as follows:startTime += time - pauseTime
- Parameters:
time
- the time at which to resume the alpha- Throws:
java.lang.IllegalArgumentException
- if time <= 0- Since:
- Java 3D 1.3
-
isPaused
public boolean isPaused()
Returns true if this alpha object is paused.- Returns:
- true if this alpha object is paused, false otherwise
- Since:
- Java 3D 1.3
-
getPauseTime
public long getPauseTime()
Returns the time at which this alpha was paused.- Returns:
- the pause time; returns 0 if this alpha is not paused
- Since:
- Java 3D 1.3
-
value
public float value()
This method returns a value between 0.0 and 1.0 inclusive, based on the current time and the time-to-alpha parameters established for this alpha. If this alpha object is paused, the value will be based on the pause time rather than the current time. This method will return the starting alpha value if the alpha has not yet started (that is, if the current time is less than startTime + triggerTime + phaseDelayDuration). This method will return the ending alpha value if the alpha has finished (that is, if the loop count has expired).- Returns:
- a value between 0.0 and 1.0 based on the current time
-
value
public float value(long atTime)
This method returns a value between 0.0 and 1.0 inclusive, based on the specified time and the time-to-alpha parameters established for this alpha. This method will return the starting alpha value if the alpha has not yet started (that is, if the specified time is less than startTime + triggerTime + phaseDelayDuration). This method will return the ending alpha value if the alpha has finished (that is, if the loop count has expired).- Parameters:
atTime
- The time for which we wish to compute alpha- Returns:
- a value between 0.0 and 1.0 based on the specified time
-
getStartTime
public long getStartTime()
Retrieves this alpha's startTime, the base for all relative time specifications; the default value for startTime is the system start time.- Returns:
- this alpha's startTime.
-
setStartTime
public void setStartTime(long startTime)
Sets this alpha's startTime to that specified in the argument; startTime sets the base (or zero) for all relative time computations; the default value for startTime is the system start time.- Parameters:
startTime
- the new startTime value
-
getLoopCount
public int getLoopCount()
Retrieves this alpha's loopCount.- Returns:
- this alpha's loopCount.
-
setLoopCount
public void setLoopCount(int loopCount)
Set this alpha's loopCount to that specified in the argument.- Parameters:
loopCount
- the new loopCount value
-
getMode
public int getMode()
Retrieves this alpha's mode.- Returns:
- this alpha's mode: any combination of INCREASING_ENABLE and DECREASING_ENABLE
-
setMode
public void setMode(int mode)
Set this alpha's mode to that specified in the argument.- Parameters:
mode
- indicates whether the increasing alpha parameters or the decreasing alpha parameters or both are active. This parameter accepts the following values, INCREASING_ENABLE or DECREASING_ENABLE, which may be ORed together to specify that both are active. The increasing alpha parameters are increasingAlphaDuration, increasingAlphaRampDuration, and alphaAtOneDuration. The decreasing alpha parameters are decreasingAlphaDuration, decreasingAlphaRampDuration, and alphaAtZeroDuration.
-
getTriggerTime
public long getTriggerTime()
Retrieves this alpha's triggerTime.- Returns:
- this alpha's triggerTime.
-
setTriggerTime
public void setTriggerTime(long triggerTime)
Set this alpha's triggerTime to that specified in the argument.- Parameters:
triggerTime
- the new triggerTime
-
getPhaseDelayDuration
public long getPhaseDelayDuration()
Retrieves this alpha's phaseDelayDuration.- Returns:
- this alpha's phaseDelayDuration.
-
setPhaseDelayDuration
public void setPhaseDelayDuration(long phaseDelayDuration)
Set this alpha's phaseDelayDuration to that specified in the argument.- Parameters:
phaseDelayDuration
- the new phaseDelayDuration
-
getIncreasingAlphaDuration
public long getIncreasingAlphaDuration()
Retrieves this alpha's increasingAlphaDuration.- Returns:
- this alpha's increasingAlphaDuration.
-
setIncreasingAlphaDuration
public void setIncreasingAlphaDuration(long increasingAlphaDuration)
Set this alpha's increasingAlphaDuration to that specified in the argument.- Parameters:
increasingAlphaDuration
- the new increasingAlphaDuration
-
getIncreasingAlphaRampDuration
public long getIncreasingAlphaRampDuration()
Retrieves this alpha's increasingAlphaRampDuration.- Returns:
- this alpha's increasingAlphaRampDuration.
-
setIncreasingAlphaRampDuration
public void setIncreasingAlphaRampDuration(long increasingAlphaRampDuration)
Set this alpha's increasingAlphaRampDuration to that specified in the argument.- Parameters:
increasingAlphaRampDuration
- the new increasingAlphaRampDuration
-
getAlphaAtOneDuration
public long getAlphaAtOneDuration()
Retrieves this alpha's alphaAtOneDuration.- Returns:
- this alpha's alphaAtOneDuration.
-
setAlphaAtOneDuration
public void setAlphaAtOneDuration(long alphaAtOneDuration)
Set this alpha object's alphaAtOneDuration to the specified value.- Parameters:
alphaAtOneDuration
- the new alphaAtOneDuration
-
getDecreasingAlphaDuration
public long getDecreasingAlphaDuration()
Retrieves this alpha's decreasingAlphaDuration.- Returns:
- this alpha's decreasingAlphaDuration.
-
setDecreasingAlphaDuration
public void setDecreasingAlphaDuration(long decreasingAlphaDuration)
Set this alpha's decreasingAlphaDuration to that specified in the argument.- Parameters:
decreasingAlphaDuration
- the new decreasingAlphaDuration
-
getDecreasingAlphaRampDuration
public long getDecreasingAlphaRampDuration()
Retrieves this alpha's decreasingAlphaRampDuration.- Returns:
- this alpha's decreasingAlphaRampDuration.
-
setDecreasingAlphaRampDuration
public void setDecreasingAlphaRampDuration(long decreasingAlphaRampDuration)
Set this alpha's decreasingAlphaRampDuration to that specified in the argument.- Parameters:
decreasingAlphaRampDuration
- the new decreasingAlphaRampDuration
-
getAlphaAtZeroDuration
public long getAlphaAtZeroDuration()
Retrieves this alpha's alphaAtZeroDuration.- Returns:
- this alpha's alphaAtZeroDuration.
-
setAlphaAtZeroDuration
public void setAlphaAtZeroDuration(long alphaAtZeroDuration)
Set this alpha object's alphaAtZeroDuration to the specified value.- Parameters:
alphaAtZeroDuration
- the new alphaAtZeroDuration
-
finished
public boolean finished()
Query to test if this alpha object is past its activity window, that is, if it has finished looping.- Returns:
- true if no longer looping, false otherwise
-
-