#pragma once bool IntersectSegmentCircle(Vector2D p0, Vector2D p1, Vector2D pos, float rad); bool IntersectSegmentAabb(Vector2D p0, Vector2D p1, Vector2D _min, Vector2D _max); bool IntersectAabbCircle(Vector2D a_min, Vector2D a_max, Vector2D b_pos, float b_rad); bool IntersectAabbAabb(Vector2D a_min, Vector2D a_max, Vector2D b_min, Vector2D b_max); bool IntersectCircleCircle(Vector2D a_pos, float a_rad, Vector2D b_pos, float b_rad); bool CircleContainCircle(Vector2D a_pos, float a_rad, Vector2D b_pos, float b_rad); bool CalcCircleAabbSafePoint(Vector2D a_pos, float a_rad, Vector2D b_min, Vector2D b_max, Vector2D& new_pos); bool CalcCircleCircleSafePoint(Vector2D a_pos, float a_rad, Vector2D b_pos, float b_rad, Vector2D& new_pos); bool CalcAabbAabbSafePoint(Vector2D a_min, Vector2D a_max, Vector2D b_min, Vector2D b_max, Vector2D& new_pos); bool CalcAabbCircleSafePoint(Vector2D a_min, Vector2D a_max, Vector2D b_pos, float b_rad, Vector2D& new_pos); void TestGlm();