org.eclipse.nebula.effects.stw
Class Transition

java.lang.Object
  extended by org.eclipse.nebula.effects.stw.Transition
Direct Known Subclasses:
CubicRotationTransition, FadeTransition, SlideTransition

public abstract class Transition
extends java.lang.Object

An abstract class handling the basic actions required for whatever transition effect. These actions are like the transition loop.

To implement a new transition effect, this class should be extended by the new transition class and only the three methods initTransition(Image, Image, GC, double) , stepTransition(long, Image, Image, GC, double) and endTransition(Image, Image, GC, double) must be implemented.

The transition loop:

 xitionImgGC.drawImage(from, 0, 0);
 initTransition(from, to, xitionImgGC, direction);
 render(xitionImgGC);
 while(t <= T) {
   if(t <= T) {
     stepTransition(t, from, to, xitionImgGC, direction);
   } else {
     xitionImgGC.drawImage(to, 0, 0);
     endTransition(from, to, xitionImgGC, direction);
   }
   render(xitionImgGC);
   t += dt;
 }
 
The initTransition method initializes the transition variables and draws the initial/first frame of the transition effect at time 0. The stepTransition method calculates the new transition variables values based on the time parameter t and draws the transition effect at time instance t. Finally, the endTransition method finalizes the transition and draws the last frame at instance T.

Author:
Ahmed Mahran (ahmahran@gmail.com)

Field Summary
static long DEFAULT_FPS
          The default fps (frames per second) is 60
static long DEFAULT_T
          The default transition time is 1000 ms
static double DIR_DOWN
          The Down direction, 270 degrees
static double DIR_LEFT
          The Left direction, 180 degrees
static double DIR_RIGHT
          The Right direction, 0 degrees
static double DIR_UP
          The Up direction, 90 degrees
 
Constructor Summary
Transition(TransitionManager transitionManager)
          This constructor is similar to new Transition(transitionManager, DEFAULT_FPS, DEFAULT_T)
Transition(TransitionManager transitionManager, long fps, long T)
          Constructs a new transition object
 
Method Summary
 long getFPS()
          Returns the maximum number of frames per second
 double getTotalTransitionTime()
          Returns the total time of the transition effect in millisecond
 void setFPS(long fps)
          Sets the maximum fps (number of frames per second) for the transition.
 void setTotalTransitionTime(long T)
          Sets the total time of the transition effect in milliseconds.
 void start(org.eclipse.swt.graphics.Image from, org.eclipse.swt.graphics.Image to, org.eclipse.swt.graphics.GC gc, double direction)
          Starts the transition from the from image to the to image drawing the effect on the graphics context object gc.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_FPS

public static final long DEFAULT_FPS
The default fps (frames per second) is 60

See Also:
Constant Field Values

DEFAULT_T

public static final long DEFAULT_T
The default transition time is 1000 ms

See Also:
Constant Field Values

DIR_RIGHT

public static final double DIR_RIGHT
The Right direction, 0 degrees

See Also:
Constant Field Values

DIR_UP

public static final double DIR_UP
The Up direction, 90 degrees

See Also:
Constant Field Values

DIR_LEFT

public static final double DIR_LEFT
The Left direction, 180 degrees

See Also:
Constant Field Values

DIR_DOWN

public static final double DIR_DOWN
The Down direction, 270 degrees

See Also:
Constant Field Values
Constructor Detail

Transition

public Transition(TransitionManager transitionManager,
                  long fps,
                  long T)
Constructs a new transition object

Parameters:
transitionManager - the transition manager to be used to manage transitions
fps - number of frames per second
T - the total time the transition effect will take

Transition

public Transition(TransitionManager transitionManager)
This constructor is similar to new Transition(transitionManager, DEFAULT_FPS, DEFAULT_T)

Parameters:
transitionManager - the transition manager to be used to manage transitions
Method Detail

setFPS

public final void setFPS(long fps)
Sets the maximum fps (number of frames per second) for the transition. The actual number of frames displayed will vary depending on the current workload on the machine.

Parameters:
fps - maximum number of frames per second

getFPS

public final long getFPS()
Returns the maximum number of frames per second

Returns:
the maximum number of frames per second

setTotalTransitionTime

public final void setTotalTransitionTime(long T)
Sets the total time of the transition effect in milliseconds.

Parameters:
T - total time of the transition effect in milliseconds

getTotalTransitionTime

public final double getTotalTransitionTime()
Returns the total time of the transition effect in millisecond

Returns:
the total time of the transition effect in millisecond

start

public final void start(org.eclipse.swt.graphics.Image from,
                        org.eclipse.swt.graphics.Image to,
                        org.eclipse.swt.graphics.GC gc,
                        double direction)
Starts the transition from the from image to the to image drawing the effect on the graphics context object gc. The direction parameter determines the direction of the transition in degrees starting from 0 as the right direction and increasing in counter clock wise direction.

Parameters:
from - is the image to start the transition from
to - is the image to end the transition to
gc - is the GC object to draw the transition on
direction - determines the direction of the transition in degrees