#ifndef HYDRAPHYSICSSYSTEM #define HYDRAPHYSICSSYSTEM #include "../../engine/HydraObject.h" #include "../HydraSystem.h" #include #include #include struct PhysicsVelocity { HydraID entity_id; glm::vec3 velocity; }; class HydraPhysicsSystem : public HydraSystem { public: void Initialise() override; void Shutdown() override; void SetTransform(HydraID entity_id); void SetLinearVelocity(HydraID entity_id, glm::vec3 velocity); void StepPhysics(float delta_t); void InitialiseComponent(HydraID entity_id) override; protected: void DestroyComponent(HydraID entity_id) override; virtual void UpdateSystem(float delta_t_seconds); private: b3WorldId m_world_id; std::queue m_bodies_to_set_transform; std::queue m_bodies_to_set_velocity; }; #endif /* HYDRAPHYSICSSYSTEM */