#ifndef RAY_H
#define RAY_H

#include "Vector3D.h"

/**
@class Ray
Класс, описывающий переменные, при помощи которых строится Луч в алгоритме рей-трейсинга,
содержит 3 конструктора, деструктор, 2 члена данных типа - трехмерный вектор и 2 метода.
*/
class Ray
{
public:
        /// этот член - точка испускания луча
        Vector3D Start;
        /// этот член - направление луча
        Vector3D Direction;

        /// Конструктор
        Ray();
        /// Конструктор преобразования двух трехмерных векторов в объект типа луч
        Ray(Vector3D &Start0, Vector3D &Look);
        /// Деструктор
        ~Ray();

        /// Метод, позволяющий получить длину направления луча из объекта.
        /// @return Длина Направления луча вещеставенного типа
        float GetDirLen();
        /// Метод, позволяющий получить направление луча из объекта.
        /// @return Направление луча типа трехмерный вектор
        Vector3D GetDir();
};


#endif // RAY_H
