1#ifndef NNGN_COLLISION_COLLIDERS_H
2#define NNGN_COLLISION_COLLIDERS_H
9#include "utils/flags.h"
27 Flags<Flag>
flags = {};
40 static void update(std::span<AABBCollider>
s);
49 static void update(std::span<BBCollider>
s);
57 static void update(std::span<SphereCollider>
s);
65 static void update(std::span<PlaneCollider>
s);
70 static constexpr float G = 6.674e-11f;
75 static void update(std::span<GravityCollider>
s);
pos
Definition: lua_audio.cpp:17
v[1]
Definition: math.lua:19
std::chrono::seconds s
Definition: timing.cpp:6
vec2_base< float > vec2
Definition: vec2.h:29
std::uint8_t u8
Definition: def.h:12
Definition: colliders.h:34
vec2 tr
Definition: colliders.h:36
void load(nngn::lua::table_view t)
vec2 rel_bl
Definition: colliders.h:35
vec2 center
Definition: colliders.h:36
static void update(std::span< AABBCollider > s)
vec2 bl
Definition: colliders.h:36
vec2 rel_center
Definition: colliders.h:35
vec2 rel_tr
Definition: colliders.h:35
AABBCollider(vec2 p_bl, vec2 p_tr)
float radius
Definition: colliders.h:37
Definition: colliders.h:44
BBCollider(vec2 p_bl, vec2 p_tr, float p_cos, float p_sin)
Definition: colliders.h:47
float cos
Definition: colliders.h:45
void load(nngn::lua::table_view t)
float sin
Definition: colliders.h:45
static void update(std::span< BBCollider > s)
Definition: colliders.h:15
Type
Definition: colliders.h:16
@ SPHERE
Definition: colliders.h:17
@ PLANE
Definition: colliders.h:17
@ NONE
Definition: colliders.h:17
@ GRAVITY
Definition: colliders.h:17
@ N_TYPES
Definition: colliders.h:17
@ AABB
Definition: colliders.h:17
@ BB
Definition: colliders.h:17
Collider(vec3 p)
Definition: colliders.h:29
float m
Definition: colliders.h:26
Flag
Definition: colliders.h:19
@ SOLID
Definition: colliders.h:22
@ COLLIDING
Definition: colliders.h:20
@ TRIGGER
Definition: colliders.h:21
void load(nngn::lua::table_view t)
vec3 vel
Definition: colliders.h:25
Entity * entity
Definition: colliders.h:24
Flags< Flag > flags
Definition: colliders.h:27
Collider(vec3 p, float p_m)
Definition: colliders.h:30
Definition: colliders.h:69
void load(const nngn::lua::table &t)
GravityCollider()=default
static void update(std::span< GravityCollider > s)
GravityCollider(vec3 p, float p_m, float max_distance)
Definition: colliders.h:73
static constexpr float G
Definition: colliders.h:70
float max_distance2
Definition: colliders.h:71
Definition: colliders.h:61
PlaneCollider(vec3 p, vec4 v)
Definition: colliders.h:64
static void update(std::span< PlaneCollider > s)
void load(nngn::lua::table_view t)
vec4 abcd
Definition: colliders.h:62
Definition: colliders.h:53
float r
Definition: colliders.h:54
void load(nngn::lua::table_view t)
SphereCollider(vec3 p_pos, float p_r)
Definition: colliders.h:56
static void update(std::span< SphereCollider > s)
Non-owning reference to a table on the stack.
Definition: table.h:166
Owning reference to a table on the stack, popped when destroyed.
Definition: table.h:172