mirror of
https://github.com/bailwillharr/engine.git
synced 2024-09-21 13:01:19 +00:00
37 lines
616 B
C++
37 lines
616 B
C++
#pragma once
|
|
|
|
#include "ecs_system.hpp"
|
|
|
|
#include "components/collider.hpp"
|
|
|
|
#include <glm/mat4x4.hpp>
|
|
|
|
namespace engine {
|
|
|
|
class PhysicsSystem : public System {
|
|
|
|
public:
|
|
PhysicsSystem(Scene* scene);
|
|
|
|
void onUpdate(float ts) override;
|
|
|
|
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{};
|
|
|
|
};
|
|
|
|
}
|
|
|