-module(spatial@internal@ffi). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/spatial/internal/ffi.gleam"). -export([box_intersects/4, box_contains_point/3, sphere_intersects/4, distance_squared/2, distance/2, compute_bounds/1, merge_bounds/4]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC(false). -file("src/spatial/internal/ffi.gleam", 23). ?DOC(false). -spec box_intersects( vec@vec3:vec3(float()), vec@vec3:vec3(float()), vec@vec3:vec3(float()), vec@vec3:vec3(float()) ) -> boolean(). box_intersects(Min_a, Max_a, Min_b, Max_b) -> spatial_ffi:box_intersects(Min_a, Max_a, Min_b, Max_b). -file("src/spatial/internal/ffi.gleam", 50). ?DOC(false). -spec box_contains_point( vec@vec3:vec3(float()), vec@vec3:vec3(float()), vec@vec3:vec3(float()) ) -> boolean(). box_contains_point(Min, Max, Point) -> spatial_ffi:box_contains_point(Min, Max, Point). -file("src/spatial/internal/ffi.gleam", 75). ?DOC(false). -spec sphere_intersects( vec@vec3:vec3(float()), float(), vec@vec3:vec3(float()), float() ) -> boolean(). sphere_intersects(Center_a, Radius_a, Center_b, Radius_b) -> spatial_ffi:sphere_intersects(Center_a, Radius_a, Center_b, Radius_b). -file("src/spatial/internal/ffi.gleam", 102). ?DOC(false). -spec distance_squared(vec@vec3:vec3(float()), vec@vec3:vec3(float())) -> float(). distance_squared(A, B) -> spatial_ffi:distance_squared(A, B). -file("src/spatial/internal/ffi.gleam", 115). ?DOC(false). -spec distance(vec@vec3:vec3(float()), vec@vec3:vec3(float())) -> float(). distance(A, B) -> spatial_ffi:distance(A, B). -file("src/spatial/internal/ffi.gleam", 131). ?DOC(false). -spec compute_bounds(list(vec@vec3:vec3(float()))) -> {vec@vec3:vec3(float()), vec@vec3:vec3(float())}. compute_bounds(Positions) -> spatial_ffi:compute_bounds(Positions). -file("src/spatial/internal/ffi.gleam", 162). ?DOC(false). -spec merge_bounds( vec@vec3:vec3(float()), vec@vec3:vec3(float()), vec@vec3:vec3(float()), vec@vec3:vec3(float()) ) -> {vec@vec3:vec3(float()), vec@vec3:vec3(float())}. merge_bounds(Min_a, Max_a, Min_b, Max_b) -> spatial_ffi:merge_bounds(Min_a, Max_a, Min_b, Max_b).