10#include "../core/MathUtils.h"
11#include "../core/Ray.h"
59 bool bFlyMode =
false);
77 static float lerp(
float a,
float b,
float t) {
return a + (b - a) * t; }
Axis-Aligned Bounding Box for collision detection. Defined by a Minimum and Maximum point in 3D space...
Definition AABB.h:12
Orchestrates infinite world generation, active chunk tracking, and multi-threaded data loading.
Definition ChunkManager.h:33
Static utility class handling AABB collisions, velocity integration, and DDA raycasting.
Definition PhysicsSystem.h:47
static void Update(RigidBody &objRigidBody, float fDeltaTime, const ChunkManager &objChunkManager, bool bFlyMode=false)
Updates physics (Gravity, Friction, Velocity).
Definition PhysicsSystem.cpp:16
static bool checkCollision(const AABB &objAABB, const ChunkManager &objChunkManager)
Definition PhysicsSystem.cpp:88
static float lerp(float a, float b, float t)
Definition PhysicsSystem.h:77
static RayHit RayCast(const Core::Ray &objRay, float fMaxDistance, const ChunkManager &objChunkManager)
Performs a DDA Raycast to find the first block hit.
Definition PhysicsSystem.cpp:120
Represents a ray in 3D space defined by an origin and a direction. Used for raycasting and picking.
Definition Ray.h:11
A 3-component vector structure (x, y, z) with standard math operations.
Definition MathUtils.h:11
Encapsulates the result of a raycast query against the voxel world.
Definition PhysicsSystem.h:35
float m_fDistance
Definition PhysicsSystem.h:38
Core::Vec3 m_objNormal
Definition PhysicsSystem.h:37
int m_iBlocKZ
Definition PhysicsSystem.h:39
bool m_bHit
Definition PhysicsSystem.h:40
int m_iBlocKX
Definition PhysicsSystem.h:39
int m_iBlocKY
Definition PhysicsSystem.h:39
Core::Vec3 m_objHitPoint
Definition PhysicsSystem.h:36
Represents a physical object subject to gravity and collision in the voxel world.
Definition PhysicsSystem.h:20
AABB GetAABB(const Core::Vec3 &newPos) const
Definition PhysicsSystem.h:26
Core::Vec3 m_ObjVelocity
Definition PhysicsSystem.h:22
Core::Vec3 m_ObjPos
Definition PhysicsSystem.h:21
Core::Vec3 m_ObjSize
Definition PhysicsSystem.h:23
bool m_bIsGrounded
Definition PhysicsSystem.h:24