//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2008)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: quad.hpp
//      Краткое описание: стандартный объект - квад
//

#ifndef DSE_RS_MODEL_SIMPLE_MODEL_QUAD_HPP
#define DSE_RS_MODEL_SIMPLE_MODEL_QUAD_HPP

#include <Darkstar/Resource System/Model/static_model.hpp>

namespace rs
{
	class Quad
	{
	private:
		shared_ptr<StaticModel> quad_model;
		float lx, ly, size;

		void _create(const float lx, const float ly, const float size, const shared_ptr<gs::Effect>& effect);
	public:
		Quad(const shared_ptr<gs::Effect>& effect);
		Quad(const float size, const shared_ptr<gs::Effect>& effect);
		Quad(const float lx, const float ly, const float size, const shared_ptr<gs::Effect>& effect);
		~Quad();

		Quad& operator=(const Quad& new_quad);

		const shared_ptr<StaticModel>& getModel() const;
		void setShaderMaterialConstants(const shared_ptr<gs::Effect>& new_effect, const std::string& technique_name);
		void setCurTechniqueName(const std::string& tech_name);
		void addMaterialTexture(const std::string& texture_name, const shared_ptr<BaseTexture>& texture);
		float getLX() const;
		float getLY() const;
		float getSize() const;
	};
};

#endif