#ifndef RAYTRACER_H
#define RAYTRACER_H

#include "aliases.h"
#include "scene/scene.h"
#include "vector/vec.h"
#include "window/window.h"

typedef struct {
  f32 t1;
  f32 t2;
} solutions_t;

typedef struct {
  f32 closest_t;
  const sphere_t *closest_sphere;
} intersection_t;

colour_t trace_ray(vec3f_t origin, vec3f_t direction, f32 t_min, f32 t_max,
                   const scene_t *scene, colour_t default_colour,
                   u32 recursion_depth);

#endif // !RAYTRACER_H