Files
HydraV3/HydraEngine/source/ecs/systems/HydraPhysicsSystem.h
T
2026-08-25 22:10:54 +01:00

38 lines
964 B
C++

#ifndef HYDRAPHYSICSSYSTEM
#define HYDRAPHYSICSSYSTEM
#include "../../engine/HydraObject.h"
#include "../HydraSystem.h"
#include <GLMIncludes.h>
#include <queue>
#include <box3d/box3d.h>
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<HydraID> m_bodies_to_set_transform;
std::queue<PhysicsVelocity> m_bodies_to_set_velocity;
};
#endif /* HYDRAPHYSICSSYSTEM */