#ifndef _ANIMATION_OBJECT
#define _ANIMATION_OBJECT

#include "Animation.h"

struct AO_CheckerPattern {
	u32 squareSize;
	color colorA;
	color colorB;
};

ARGB AO_CheckerPattern(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv);

struct AO_Square {
	u32 width;
	u32 height;
	color color;
};

ARGB AO_Square(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv);

struct AO_Circle {
	double radius;
	color color;
};

ARGB AO_Circle(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv);

struct AO_Image {
	RGBImage img;
	double zoom;
	bool noRepeat;
};

ARGB AO_Image(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv);

struct AO_Line {
	double a;
	double b;
	double c;
	double width;
	color color;
};

ARGB AO_Line(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv);

struct AO_HorSegment {
	i32 left;
	i32 right;
	double width;
	color color;
};

ARGB AO_HorSegment(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv);

#endif /* _ANIMATION_OBJECT */
