#pragma once

#include "basic.h"
#include <glm/glm.hpp>
#include "render_data.h"

struct Camera {
  Vector3 world_position = Vector3(0.5f, 0.25f, 1.0f);
  Vector3 view_direction = Vector3(0.0f, 0.0f, 0.0f);
  Vector3 world_up_vector = Vector3(0.0f, 1.0f, 0.0f);
  Vector3 right_direction = Vector3(0.0f, 0.0f, 0.0f);
  Vector3 up_direction = Vector3(0.0f, 0.0f, 0.0f);
};

Matrix4 get_camera_view_matrix(Camera *camera, Render_Data *render_data);

