1 #ifndef RIGID_BODIES_H_
2 #define RIGID_BODIES_H_
4 #include "math/mat3x3.h"
6 typedef struct RigidBodies RigidBodies;
7 typedef struct Platforms Platforms;
8 typedef struct LineStream LineStream;
10 typedef size_t RigidBodyId;
12 RigidBodies *create_rigid_bodies(size_t capacity);
13 void destroy_rigid_bodies(RigidBodies *rigid_bodies);
15 int rigid_bodies_collide(RigidBodies *rigid_bodies,
16 const Platforms *platforms);
18 int rigid_bodies_update(RigidBodies *rigid_bodies,
22 int rigid_bodies_render(RigidBodies *rigid_bodies,
25 const Camera *camera);
26 RigidBodyId rigid_bodies_add(RigidBodies *rigid_bodies,
28 void rigid_bodies_remove(RigidBodies *rigid_bodies,
31 Rect rigid_bodies_hitbox(const RigidBodies *rigid_bodies,
34 void rigid_bodies_move(RigidBodies *rigid_bodies,
38 int rigid_bodies_touches_ground(const RigidBodies *rigid_bodies,
41 void rigid_bodies_apply_force(RigidBodies * rigid_bodies,
45 void rigid_bodies_apply_omniforce(RigidBodies *rigid_bodies,
48 void rigid_bodies_transform_velocity(RigidBodies *rigid_bodies,
52 void rigid_bodies_teleport_to(RigidBodies *rigid_bodies,
56 void rigid_bodies_damper(RigidBodies *rigid_bodies,
60 void rigid_bodies_disable(RigidBodies *rigid_bodies,
64 #endif // RIGID_BODIES_H_