#ifndef CORE_VIEW_H
#define CORE_VIEW_H

#include "math/Matrix.h"

namespace Core {
    class View final {
        Matrix view;
        Vector3 right;
        Vector3 up;
        Vector3 back;

    public:
        void updateDirections(float lengthAngle, float widthAngle);
        void updateDirections(const Quaternion& q);
        const Matrix& updateMatrix(const Vector3& pos);

        Vector3 getUp() const;
        Vector3 getDown() const;
        Vector3 getLeft() const;
        Vector3 getRight() const;
        Vector3 getFront() const;
        Vector3 getBack() const;
    };
}

#endif