#ifndef _fencer_physics_world_h
#define _fencer_physics_world_h

#include "physics_entity.h"
#include "collision.h"

extern void physics_world_init();
extern void physics_world_clean();

extern void physics_world_add_entity(PhysicsEntity entity);
extern void physics_world_remove_entity(PhysicsEntity entity);

extern void physics_world_tick();

extern List physics_world_query_all(PhysicsQuery query, RigidBody* ignore);
extern List physics_world_box_query_all(Vector centre, Vector extents, PhysicsMask mask, RigidBody* ignore);
extern Collider* physics_world_query(PhysicsQuery query, RigidBody* ignore);
extern Collider* physics_world_box_query(Vector centre, Vector extents, PhysicsMask mask, RigidBody* ignore);

#endif // !_fencer_physics_world_h