typedef struct RigidBodies RigidBodies;
typedef struct Camera Camera;
+typedef struct Platforms Platforms;
+typedef struct LineStream LineStream;
typedef size_t RigidBodyId;
RigidBodies *create_rigid_bodies(size_t capacity);
void destroy_rigid_bodies(RigidBodies *rigid_bodies);
+int rigid_bodies_collide(RigidBodies *rigid_bodies,
+ const Platforms *platforms);
+
int rigid_bodies_update(RigidBodies *rigid_bodies,
+ RigidBodyId id,
float delta_time);
int rigid_bodies_render(RigidBodies *rigid_bodies,
+ RigidBodyId id,
+ Color color,
Camera *camera);
RigidBodyId rigid_bodies_add(RigidBodies *rigid_bodies,
- Rect rect,
- Color color);
+ Rect rect);
+void rigid_bodies_remove(RigidBodies *rigid_bodies,
+ RigidBodyId id);
Rect rigid_bodies_hitbox(const RigidBodies *rigid_bodies,
RigidBodyId id);
RigidBodyId id,
Vec force);
+void rigid_bodies_apply_omniforce(RigidBodies *rigid_bodies,
+ Vec force);
+
void rigid_bodies_transform_velocity(RigidBodies *rigid_bodies,
RigidBodyId id,
mat3x3 trans_mat);
RigidBodyId id,
Vec v);
+void rigid_bodies_disable(RigidBodies *rigid_bodies,
+ RigidBodyId id,
+ bool disabled);
#endif // RIGID_BODIES_H_