#ifndef F_INTERPOLATE
#define F_INTERPOLATE

#include "FrameCallback.h"
#include "../FrameRender/P_TransformCenter.h"
#include "../FrameRender/P_TransformRotate.h"

typedef void (*f_interpolate)(void* value, const void* start, const void* end, double progress);

typedef struct Interpolate {
	f_interpolate interpolate;
	void* value;
	const void* startValue;
	const void* endValue;
} Interpolate;

FrameCallback* Interpolate_setup(Interpolate obj);

void Interpolate_TransformCenter(TransformCenter* value, const TransformCenter* start, const TransformCenter* end, double progress);
void Interpolate_TransformRotate(TransformRotate* value, const TransformRotate* start, const TransformRotate* end, double progress);

#endif /* F_INTERPOLATE */
