/*
 * AffineTransform.h
 *
 *  Created on: Nov 10, 2008
 *      Author: alexander
 */

#ifndef AFFINETRANSFORM_H_
#define AFFINETRANSFORM_H_

#include "GBuffer.h"

class AffineTransform {
public:
	static AffineTransform getRotation(double alpha);
	static AffineTransform getShift(double dx, double dy);
	static AffineTransform getScale(double sx, double sy);


	double data[9];


	AffineTransform();

	GBuffer *apply (GBuffer *input);
	GBuffer *apply (GBuffer *input, int newh, int neww);

	AffineTransform multiplyBy(AffineTransform &other);



	virtual ~AffineTransform();
};

#endif /* AFFINETRANSFORM_H_ */
