using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;

namespace Icarus.Graphics.Animation
{
    public interface IFrame
        : 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.
         */
        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.
         */
        bool initialize(Point anchor, Bitmap image);

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