#pragma once #include "boid-playground.hpp" struct RayHitResult { float hit = -1; // Vector2 line1; // not used // Vector2 line2; // not used }; static float get_intersect_point(Vector2 ray_origin, Vector2 ray_dir, Vector2 line1, Vector2 line2); static void set_nearest_hit(RayHitResult *nearest_hit, float hit, Vector2 line1, Vector2 line2); static void get_intersect_with_polygon(RayHitResult *result, Vector2 ray_origin, Vector2 ray_dir, Vector2 *points, int point_count); static void get_intersect_with_obstacles(RayHitResult *result, Vector2 ray_origin, Vector2 ray_dir, std::vector *obstacles); void get_intersect_with_world(RayHitResult *result, Vector2 ray_origin, Vector2 ray_dir, World *world);