group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
CollisionEvents.hpp
Go to the documentation of this file.
1
11
12#pragma once
13
15
16#include <cstdint>
17#include <entt/entt.hpp>
18#include <glm/vec3.hpp>
19#include <span>
20
21namespace physics::events
22{
23
25enum class TriggerEventType : uint8_t
26{
30};
31
35{
36 entt::entity trigger{entt::null};
37 entt::entity entity{entt::null};
39};
40
45void beginTick() noexcept;
46
49void pushTriggerEvent(const TriggerEvent& e) noexcept;
50
53[[nodiscard]] std::span<const TriggerEvent> triggerEvents() noexcept;
54
55} // namespace physics::events
Shared ECS registry type alias for the game engine.
Definition CollisionEvents.cpp:10
std::span< const TriggerEvent > triggerEvents() noexcept
Read-only snapshot of all events emitted since beginTick().
Definition CollisionEvents.cpp:68
void pushTriggerEvent(const TriggerEvent &e) noexcept
Append a trigger event to the current tick's queue.
Definition CollisionEvents.cpp:63
void beginTick() noexcept
Start a fresh per-tick event window.
Definition CollisionEvents.cpp:50
TriggerEventType
Kind of contact event.
Definition CollisionEvents.hpp:26
@ Stay
Overlap persists across ticks (emitted every tick during overlap).
Definition CollisionEvents.hpp:28
@ Enter
Entity overlapped a trigger this tick that wasn't overlapping last tick.
Definition CollisionEvents.hpp:27
@ Exit
Overlap ended this tick.
Definition CollisionEvents.hpp:29
One trigger-overlap event.
Definition CollisionEvents.hpp:35
TriggerEventType type
Definition CollisionEvents.hpp:38
entt::entity entity
The non-trigger entity overlapping it.
Definition CollisionEvents.hpp:37
entt::entity trigger
The TriggerVolume entity.
Definition CollisionEvents.hpp:36