#ifndef MATERIAL_H
#define MATERIAL_H

#include "Vector3D.h"

/**
@class Mater
Класс, описывающий переменные, при помощи которых задается Материал объектов, содержит 2 конструктора,
деструктор, 3 члена данных типа - трехмерный вектор и 6 методов.
*/
class Mater
{
public:
    // diffuse color = ambient color = colour
        /// этот член отвечает за прозрачность материала
        Vector3D Reflectivity;
        /// этот член отвечает за цвет отблика материала
        Vector3D Specular;
        /// этот член отвечает за цвет материала
        Vector3D Colour;

        /// Конструктор
        Mater();
        /// Конструктор копирования
        Mater(Mater &Mat);
        /// Деструктор
        ~Mater();

        /// Метод, устанавливающий прозрачность материала из параметра.
        /// @param  Ref – параметр типа трехмерный вектор(может быть константным)
        void SetRef(const Vector3D Ref);
        /// Метод, устанавливающий цвет отблика из параметра.
        /// @param  Spe – параметр типа трехмерный вектор(может быть константным)
        void SetSpe(const Vector3D Spe);
        /// Метод, устанавливающий цвет из параметра.
        /// @param  Col – параметр типа трехмерный вектор(может быть константным)
        void SetCol(const Vector3D Col);

        /// Метод, позволяющий получить прозрачность материала из объекта.
        /// @return Прозрачность материала типа трехмерный вектор
        Vector3D GetRef();
        /// Метод, позволяющий получить цвет отблика из объекта.
        /// @return Цвет отблика типа трехмерный вектор
        Vector3D GetSpe();
        /// Метод, позволяющий получить цвет из объекта.
        /// @return Цвет типа трехмерный вектор
        Vector3D GetCol();
};

#endif // MATERIAL_H
