12#include <glm/gtc/constants.hpp>
30inline bool overlapsAABB(glm::vec3 aPos, glm::vec3 aHalf, glm::vec3 bPos, glm::vec3 bHalf)
32 return std::abs(aPos.x - bPos.x) <= (aHalf.x + bHalf.x) && std::abs(aPos.y - bPos.y) <= (aHalf.y + bHalf.y) &&
33 std::abs(aPos.z - bPos.z) <= (aHalf.z + bHalf.z);
39 const float cp = std::cos(pitch);
40 return glm::normalize(glm::vec3{
50 const glm::vec3 toPickup = pickupPos - eye;
51 const float distSq = glm::dot(toPickup, toPickup);
54 return glm::dot(viewFwd, glm::normalize(toPickup)) >=
k_pickupMinDot;
Client-only input sampling system — split into two halves so mouse look can run every iterate() (smoo...
Definition DebugUI.hpp:15
constexpr float k_pickupRange
Maximum distance (units) at which a player can press F to pick up.
Definition PickupGeometry.hpp:18
glm::vec3 viewForward(float yaw, float pitch)
Forward direction implied by a player's yaw + pitch.
Definition PickupGeometry.hpp:37
constexpr float k_pickupMaxAngleDeg
Half-angle (degrees) of the look cone for press-F pickup.
Definition PickupGeometry.hpp:24
bool overlapsAABB(glm::vec3 aPos, glm::vec3 aHalf, glm::vec3 bPos, glm::vec3 bHalf)
Test whether two axis-aligned bounding boxes overlap.
Definition PickupGeometry.hpp:30
const glm::vec3 k_weaponPickupHalfExtents
Shared pickup collision half-extents for weapon spawners and dropped weapons.
Definition PickupGeometry.hpp:21
const float k_pickupMinDot
Pre-computed cosine of the look cone half-angle.
Definition PickupGeometry.hpp:27
bool isPlayerLookingAtPickup(glm::vec3 eye, glm::vec3 viewFwd, glm::vec3 pickupPos)
True if the eye is within range of pickupPos and viewFwd points within the look cone.
Definition PickupGeometry.hpp:48