#pragma once #include "geometry.h" #include "maths_types.h" // 'system' means that it gets called per frame typedef struct physics_settings { f32 gravity_strength; } physics_settings; enum collider_type { cuboid_collider, sphere_collider, }; /** @brief generic collider structure */ typedef struct physics_collider { u64 id; // ? Replace with handle? enum collider_type shape; union collider_data { cuboid cuboid; sphere sphere; } geometry; transform transform; u8 layer; bool on_ground; } physics_collider; // What else do I need? // intersection methods typedef struct physics_world { physics_settings settings; } physics_world; physics_world physics_init(physics_settings settings); void physics_shutdown(physics_world* phys_world); /** @brief perform one or more simulation steps */ void physics_system_update(physics_world* phys_world, f64 deltatime);