#pragma once
#include <Redacted3D/types/entity/moby.h>
#include <Redacted3D/engine/engine.h>
#include <glad/glad.h>
#include <J3ML/Geometry.h>

using J3ML::LinearAlgebra::Matrix4x4;
using J3ML::Geometry::Frustum;

class Camera : public Moby {///The base camera class. Entirely stationary.
public:
    Matrix4x4 GetViewMatrix(); ///Returns the current ViewMatrix.
    bool raycast(Entity* entity);
    Frustum getFrustum(); ///Returns the view frustum of the camera.
    void Rotate(float amt, Vector3 axis) { }
    void Translate(Vector3 dir) { }
    void pre_render() override {};
    void render() override;
    void post_render() override;
};