package visual.dynamic.sampled;

import java.awt.Graphics;

/**
 * The requirements of all operations on frames of sampled dyanmic
 * content (individual and multiple-frame operations)
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
public interface FrameOp
{

    /**
     * Get the index of the first frame of this FrameOp
     *
     * @return  The index of the first frame
     */
    public abstract int getFirstFrame();

    
    /**
     * Get the index of the last frame of this FrameOp
     *
     * @return  The index of the last frame
     */
     public abstract int getLastFrame();


    /**
     * Apply the post-rendering portion of
     * this Transition
     *
     * @param g      The rendering engine
     * @param frame  The current frame number
     */
    public abstract void postRendering(Graphics g, int frame);


    /**
     * Apply the pre-rendering portion of
     * this Transition
     *
     * @param g      The rendering engine
     * @param frame  The current frame number
     */
    public abstract void preRendering(Graphics g, int frame);

}
