engine/include/systems/collisions.hpp

37 lines
616 B
C++
Raw Normal View History

2023-01-18 14:42:09 +00:00
#pragma once
#include "ecs_system.hpp"
2023-02-02 17:32:19 +00:00
#include "components/collider.hpp"
#include <glm/mat4x4.hpp>
2023-01-18 14:42:09 +00:00
namespace engine {
class PhysicsSystem : public System {
public:
PhysicsSystem(Scene* scene);
void onUpdate(float ts) override;
2023-02-02 17:32:19 +00:00
void onComponentInsert(uint32_t entity) override;
private:
// dyanmic arrays to avoid realloc on every frame
struct CollisionInfo {
uint32_t entity;
AABB aabb;
// output
bool isMaybeColliding; // broad phase
bool isColliding; // narrow phase
};
std::vector<CollisionInfo> m_staticInfos{};
std::vector<CollisionInfo> m_dynamicInfos{};
2023-01-18 14:42:09 +00:00
};
}