package Icarus.Graphics.Animation;

import System.Drawing.*;

/**
 * The implementors of this interface are frames that can be rendered
 * on screen.
 * 
 * @author $Author: asskoala $
 * @version $Revision: 1.1 $ $Date: 2005/12/11 21:07:21 $
 */
public interface IFrame extends IRenderable
{
	/**
	 * Returns the anchor point of the frame. The anchor point is
	 * essentially a coordinate in the frame such that when the
	 * frame is rendered at some point on the screen, the point in
	 * the frame referenced by the anchor is actually the one put
	 * in that screen position - not necessarily the top-left
	 * corner of the frame.
	 */
	public Point getAnchorPoint();

	/**
	 * Initializes the frame using the anchor point and bitmap
	 * passed in, and returns true if the initialization went
	 * through successfully, and false if it did not.
	 */
	public boolean initialize(Point anchor, Bitmap image);

	/**
	 * Returns a bitmap showing the contents of the frame. This is for saving a frame to a file.
	 */
	public Bitmap getFrameImage();
}
