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

namespace math
{
	inline XYZ::XYZ()
	{
		X = Y = Z = 0;
	};

	inline XYZ::XYZ(const float x, const float y, const float z)
	{
		X = x;
		Y = y;
		Z = z;
	};

	inline XYZ::XYZ(const Vect3& v)
	{
		vec = v;
	};

	inline XYZ::XYZ(const XYZ& color)
	{
		vec = color.vec;
	};

	inline XYZ::~XYZ()
	{

	};

	inline const XYZ& XYZ::operator *=(const XYZ& color)
	{
		X *= color.X;
		Y *= color.Y;
		Z *= color.Z;
		return *this;
	};

	inline const XYZ& XYZ::operator *=(const float f)
	{
		vec *= f;
		return *this;
	};

	inline const XYZ& XYZ::operator+=(const XYZ& color)
	{
		vec += color.vec;
		return *this;
	};

	inline XYZ XYZ::operator *(const XYZ& color) const 
	{
		return XYZ(math::Vect3(X*color.X, Y*color.Y, Z*color.Z));
	};

	inline XYZ XYZ::operator *(const float f) const
	{
		return XYZ(vec * f);
	};

	inline XYZ XYZ::operator +(const XYZ& color) const
	{
		return XYZ(vec + color.vec);
	};
};

