edu.umd.cs.piccolo.activities
Class PInterpolatingActivity

java.lang.Object
  extended by edu.umd.cs.piccolo.activities.PActivity
      extended by edu.umd.cs.piccolo.activities.PInterpolatingActivity
Direct Known Subclasses:
PColorActivity, PTransformActivity

public class PInterpolatingActivity
extends PActivity

PInterpolatingActivity interpolates between two states (source and destination) over the duration of the activity. The interpolation can be either linear or slow- in, slow-out.

The mode determines how the activity interpolates between the two states. The default mode interpolates from source to destination, but you can also go from destination to source, and from source to destination to source.

A loopCount of greater then one will make the activity reschedule itself when it has finished. This makes the activity loop between the two states.

Version:
1.0
Author:
Jesse Grosjean

Nested Class Summary
 
Nested classes/interfaces inherited from class edu.umd.cs.piccolo.activities.PActivity
PActivity.PActivityDelegate
 
Field Summary
static int DESTINATION_TO_SOURCE
          Specifies that interpolation will be from the destination value to the source value.
static int SOURCE_TO_DESTINATION
          Specifies that interpolation will be from the source value to the destination value.
static int SOURCE_TO_DESTINATION_TO_SOURCE
          Specifies that interpolation proceed from the source to the destination then back to the source.
 
Fields inherited from class edu.umd.cs.piccolo.activities.PActivity
TERMINATE_AND_FINISH, TERMINATE_AND_FINISH_IF_STEPPING, TERMINATE_WITHOUT_FINISHING
 
Constructor Summary
PInterpolatingActivity(long duration)
          Constructs an interpolating activity that will last the duration given.
PInterpolatingActivity(long duration, long stepRate)
          Constructs an interpolating activity that will last the duration given and will update its target at the given rate.
PInterpolatingActivity(long duration, long stepRate, int loopCount, int mode)
          Constructs an interpolating activity that will last the duration given and will update its target at the given rate.
PInterpolatingActivity(long duration, long stepRate, long startTime, int loopCount, int mode)
          Create a new PInterpolatingActivity.
 
Method Summary
protected  void activityFinished()
          Called whenever the activity finishes.
protected  void activityStarted()
          Called when activity is started.
protected  void activityStep(long elapsedTime)
          Called at each step of the activity.
 float computeSlowInSlowOut(float zeroToOne)
          Computes percent or linear interpolation to apply when taking acceleration into account.
 boolean getFirstLoop()
          Return true if the activity is executing its first loop.
 int getLoopCount()
          Return the number of times the activity should automatically reschedule itself after it has finished.
 int getMode()
          Return the mode used for interpolation.
 boolean getSlowInSlowOut()
          Returns whether this interpolation accelerates and then decelerates as it interpolates.
 void setDuration(long duration)
          Set the amount of time that this activity should take to complete, after the startStepping method is called.
 void setFirstLoop(boolean firstLoop)
          Set if the activity is executing its first loop.
 void setLoopCount(int loopCount)
          Set the number of times the activity should automatically reschedule itself after it has finished.
 void setMode(int mode)
          Set the direction in which interpolation is going to occur.
 void setRelativeTargetValue(float zeroToOne)
          Subclasses should override this method and set the value on their target (the object that they are modifying) accordingly.
protected  void setRelativeTargetValueAdjustingForMode(float zeroToOne)
          Assigns relative target value taking the mode into account.
 void setSlowInSlowOut(boolean isSlowInSlowOut)
          Sets whether this interpolation accelerates and then decelerates as it interpolates.
 void terminate()
          Stop this activity immediately, and remove it from the activity scheduler.
 
Methods inherited from class edu.umd.cs.piccolo.activities.PActivity
getActivityScheduler, getDelegate, getDuration, getNextStepTime, getStartTime, getStepRate, getStopTime, isAnimation, isStepping, paramString, processStep, setActivityScheduler, setDelegate, setStartTime, setStepRate, startAfter, terminate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SOURCE_TO_DESTINATION

public static final int SOURCE_TO_DESTINATION
Specifies that interpolation will be from the source value to the destination value.

See Also:
Constant Field Values

DESTINATION_TO_SOURCE

public static final int DESTINATION_TO_SOURCE
Specifies that interpolation will be from the destination value to the source value.

See Also:
Constant Field Values

SOURCE_TO_DESTINATION_TO_SOURCE

public static final int SOURCE_TO_DESTINATION_TO_SOURCE
Specifies that interpolation proceed from the source to the destination then back to the source. Can be used to perform flashes. source value.

See Also:
Constant Field Values
Constructor Detail

PInterpolatingActivity

public PInterpolatingActivity(long duration)
Constructs an interpolating activity that will last the duration given.

Parameters:
duration - duration in milliseconds of the entire activity
Since:
1.3

PInterpolatingActivity

public PInterpolatingActivity(long duration,
                              long stepRate)
Constructs an interpolating activity that will last the duration given and will update its target at the given rate.

Parameters:
duration - duration in milliseconds of the entire activity
stepRate - interval in milliseconds between updates to target

PInterpolatingActivity

public PInterpolatingActivity(long duration,
                              long stepRate,
                              int loopCount,
                              int mode)
Constructs an interpolating activity that will last the duration given and will update its target at the given rate. Once done, it will repeat the loopCount times.

Parameters:
duration - duration in milliseconds of the entire activity
stepRate - interval in milliseconds between updates to target
loopCount - # of times to repeat this activity.
mode - controls the direction of the interpolation (source to destination, destination to source, or source to destination back to source)

PInterpolatingActivity

public PInterpolatingActivity(long duration,
                              long stepRate,
                              long startTime,
                              int loopCount,
                              int mode)
Create a new PInterpolatingActivity.

Parameters:
duration - the length of one loop of the activity
stepRate - the amount of time between steps of the activity
startTime - the time (relative to System.currentTimeMillis()) that this activity should start. This value can be in the future.
loopCount - number of times the activity should reschedule itself
mode - defines how the activity interpolates between states
Method Detail

setDuration

public void setDuration(long duration)
Set the amount of time that this activity should take to complete, after the startStepping method is called. The duration must be greater then zero so that the interpolation value can be computed.

Overrides:
setDuration in class PActivity
Parameters:
duration - new duration of this activity

getMode

public int getMode()
Return the mode used for interpolation. Acceptable values are: SOURCE_TO_DESTINATION, DESTINATION_TO_SOURCE and SOURCE_TO_DESTINATION_TO_SOURCE

Returns:
current mode of this activity

setMode

public void setMode(int mode)
Set the direction in which interpolation is going to occur. Acceptable values are: SOURCE_TO_DESTINATION, DESTINATION_TO_SOURCE and SOURCE_TO_DESTINATION_TO_SOURCE

Parameters:
mode - the new mode to use when interpolating

getLoopCount

public int getLoopCount()
Return the number of times the activity should automatically reschedule itself after it has finished.

Returns:
number of times to repeat this activity

setLoopCount

public void setLoopCount(int loopCount)
Set the number of times the activity should automatically reschedule itself after it has finished.

Parameters:
loopCount - number of times to repeat this activity

getFirstLoop

public boolean getFirstLoop()
Return true if the activity is executing its first loop. Subclasses normally initialize their source state on the first loop.

Returns:
true if executing first loop

setFirstLoop

public void setFirstLoop(boolean firstLoop)
Set if the activity is executing its first loop. Subclasses normally initialize their source state on the first loop. This method will rarely need to be called, unless your are reusing activities.

Parameters:
firstLoop - true if executing first loop

getSlowInSlowOut

public boolean getSlowInSlowOut()
Returns whether this interpolation accelerates and then decelerates as it interpolates.

Returns:
true if accelerations are being applied apply

setSlowInSlowOut

public void setSlowInSlowOut(boolean isSlowInSlowOut)
Sets whether this interpolation accelerates and then decelerates as it interpolates.

Parameters:
isSlowInSlowOut - true if this interpolation inovolves some accelerations

activityStarted

protected void activityStarted()
Called when activity is started. Makes sure target value is set properly for start of activity.

Overrides:
activityStarted in class PActivity

activityStep

protected void activityStep(long elapsedTime)
Called at each step of the activity. Sets the current position taking mode into account.

Overrides:
activityStep in class PActivity
Parameters:
elapsedTime - number of milliseconds since the activity began

activityFinished

protected void activityFinished()
Called whenever the activity finishes. Reschedules it if the value of loopCount is > 0.

Overrides:
activityFinished in class PActivity

terminate

public void terminate()
Stop this activity immediately, and remove it from the activity scheduler. If this activity is currently running then stoppedStepping will be called after it has been removed from the activity scheduler.

Overrides:
terminate in class PActivity

setRelativeTargetValue

public void setRelativeTargetValue(float zeroToOne)
Subclasses should override this method and set the value on their target (the object that they are modifying) accordingly.

Parameters:
zeroToOne - relative completion of task.

computeSlowInSlowOut

public float computeSlowInSlowOut(float zeroToOne)
Computes percent or linear interpolation to apply when taking acceleration into account.

Parameters:
zeroToOne - Percentage of activity completed
Returns:
strength of acceleration

setRelativeTargetValueAdjustingForMode

protected void setRelativeTargetValueAdjustingForMode(float zeroToOne)
Assigns relative target value taking the mode into account.

Parameters:
zeroToOne - Percentage of activity completed


Copyright © 1995-2011 Piccolo2D. All Rights Reserved.