#ifndef _TFIGURE2D_H
#define _TFIGURE2D_H
//-------------------------------------------------------
#include "Functions.h"
#include "TSquare2D.h"
#include <vector>
//-------------------------------------------------------
enum ESimpleFigures
{
	ESimpleFigures_Square,	// квадрат
	ESimpleFigures_LetterI,	// палка - буква I
	ESimpleFigures_LetterS,	// буква S
	ESimpleFigures_LetterZ,	// буква Z
	ESimpleFigures_LetterL,	// буква L
	ESimpleFigures_LetterJ,	// буква J
	ESimpleFigures_LetterT,	// буква T
	ESimpleFigures_Quantity
};
//-------------------------------------------------------
class TFigure2D
{
private:
	void SetSettingsTovvRect(const TRectF &drawingRect, const TColor4 &enabledColor, const TColor4 &disabledColor, const bool &exist);
protected:
	ESimpleFigures _simpleFigure;
	std::vector< std::vector<TSquare> > _vvRect;	// прямоугольник, в который фигура вписывается при любом повороте
	uint _rotate;
	uint _maxRotate;
	uint _width;
	uint _height;
	int _deltaWidth;	// требуемое приращение фигуре при попытке поворота по ширине
	std::vector<ITexture*> _vTextures;
public:
	TFigure2D();
	TFigure2D(const ESimpleFigures &simpleFigure, const TRectF &drawingRect, const TColor4 &enabledColor, const TColor4 &disabledColor,
			const std::vector<ITexture*> &vTextures);
	~TFigure2D();
	void Rotate(bool Clockwise);

	void SetPoint(const TPoint2 &point);
	void SetRect(const TRectF &rect);

	std::vector< std::vector<TSquare> > GetMaskRect() const;

	void Draw(IRender2D *pRender2D);

	uint GetWidth() const;
	uint GetHeight() const;
	int GetDeltaWidth() const;



};







//-------------------------------------------------------
#endif