Skip to main content

boxddd_sys/
ffi.rs

1#![allow(clippy::approx_constant)]
2#![allow(clippy::too_many_arguments)]
3#![allow(clippy::unreadable_literal)]
4#![allow(rustdoc::bare_urls)]
5#![allow(rustdoc::broken_intra_doc_links)]
6
7#[cfg(boxddd_sys_wasm_provider)]
8include!(concat!(env!("OUT_DIR"), "/wasm_provider_bindings.rs"));
9
10#[cfg(boxddd_sys_wasm_provider)]
11#[link(wasm_import_module = "box3d-sys-v0")]
12unsafe extern "C" {
13    pub fn boxddd_provider_debug_install_world_def(def: *mut b3WorldDef, token: u32);
14    pub fn boxddd_provider_debug_init_draw(draw: *mut b3DebugDraw, token: u32);
15    pub fn boxddd_provider_debug_take_error(token: u32) -> i32;
16    pub fn boxddd_provider_query_take_error(token: u32) -> i32;
17    pub fn boxddd_provider_world_overlap_aabb(
18        world_id: b3WorldId,
19        aabb: b3AABB,
20        filter: b3QueryFilter,
21        token: u32,
22    ) -> b3TreeStats;
23    pub fn boxddd_provider_world_cast_ray(
24        world_id: b3WorldId,
25        origin: b3Pos,
26        translation: b3Vec3,
27        filter: b3QueryFilter,
28        token: u32,
29    ) -> b3TreeStats;
30}
31
32#[cfg(all(
33    not(boxddd_sys_wasm_provider),
34    feature = "double-precision",
35    has_pregenerated,
36    not(force_bindgen)
37))]
38include!("bindings_pregenerated_double.rs");
39
40#[cfg(all(
41    not(boxddd_sys_wasm_provider),
42    not(feature = "double-precision"),
43    has_pregenerated,
44    not(force_bindgen)
45))]
46include!("bindings_pregenerated.rs");
47
48#[cfg(all(
49    not(boxddd_sys_wasm_provider),
50    any(force_bindgen, not(has_pregenerated))
51))]
52include!(concat!(env!("OUT_DIR"), "/bindings.rs"));