Program Listing for File Camera.hpp

Return to documentation for file (include/ari/en/3d/Camera.hpp)

#pragma once

#include "Node3D.hpp"
#include "../../math/Matrix.hpp"

namespace ari
{
    class ARI_API Camera: public Node3D
    {
    public:

        Camera() : Up(0.0f, 1.0f, 0.0f), _isActive(false) { }

        virtual ~Camera() = default;

        Vector3 Target,
            Up,
            Right;
        Matrix _view,
            _proj;
        bool _isActive;

        void Rotate(float _angle, const Vector3& _axis);

        void RotateByMouse(int _x, int _y, float _speed);

        void MoveBF(const float& _speed);

        void MoveLR(const float& _speed);

        void MoveUD(const float& _speed);

    protected:

        float           m_fCurRotX  = 0.0f, // Current Rotation X
                        m_fLastRotX = 0.0f; // Last Rotation X

    }; // Camera

} // ari