9#include <unordered_map>
20class ConcaveMeshShape;
83 ABody*
CreateBody(glm::vec3 pos, glm::vec3 size,
float mass,
bool isStatic);
84 void SetWorldData(
const std::vector<AVertex>& verts,
const std::vector<AFace>& faces);
86 const std::vector<AEntity*>& entities);
88 void AddTrigger(glm::vec3 pos, glm::vec3 size, std::string name);
97 void OnTrigger(
const std::string& name);
98 void SetBodyMaterial(
ABody* body,
float bounciness,
float friction);
100 static reactphysics3d::Vector3 toRP3D(
const glm::vec3& v);
101 static glm::vec3 toGlm(
const reactphysics3d::Vector3& v);
104 reactphysics3d::PhysicsCommon* m_physicsCommon =
nullptr;
105 reactphysics3d::PhysicsWorld* m_physicsWorld =
nullptr;
109 reactphysics3d::RigidBody* m_worldBody =
nullptr;
110 reactphysics3d::TriangleMesh* m_triangleMesh =
nullptr;
111 reactphysics3d::ConcaveMeshShape* m_meshShape =
nullptr;
114 std::vector<ABody*> m_bodies;
117 std::unordered_map<reactphysics3d::RigidBody*, std::string> m_triggerNames;
120 std::vector<float> m_vbo;
121 std::vector<int> m_ibo;
float dt
Definition Main.cpp:10
#define ANVIL_API
Definition ACore.h:6
The main engine class that manages the application lifecycle, rendering, entities,...
Definition AEngine.h:25
Represents an entity in the game engine with position, rotation, scale and components.
Definition AEntity.h:16
bool IsGrounded(ABody *body)
Definition AnvilPhysics.cpp:294
void AddTrigger(glm::vec3 pos, glm::vec3 size, std::string name)
Definition AnvilPhysics.cpp:308
void SetWorldBrushes(const std::vector< ABSPBrush > &brushes)
Definition AnvilPhysics.h:92
void SetWorldData(const std::vector< AVertex > &verts, const std::vector< AFace > &faces)
Definition AnvilPhysics.cpp:191
RaycastHit CastRay(glm::vec3 origin, glm::vec3 direction, float maxDistance, const std::vector< AEntity * > &entities)
Definition AnvilPhysics.cpp:326
void SetWorldPlanes(const std::vector< APlane > &planes)
Definition AnvilPhysics.h:89
void Update(float dt)
Update the physics simulation.
Definition AnvilPhysics.cpp:244
AnvilPhysics()
Constructor for AnvilPhysics.
Definition AnvilPhysics.cpp:103
ABody * CreateBody(glm::vec3 pos, glm::vec3 size, float mass, bool isStatic)
Definition AnvilPhysics.cpp:146
Definition AnvilPhysics.h:13
Definition AnvilPhysics.h:29
glm::vec3 halfSize
Definition AnvilPhysics.h:35
glm::vec3 position
Definition AnvilPhysics.h:33
float mass
Definition AnvilPhysics.h:37
reactphysics3d::Collider * collider
Definition AnvilPhysics.h:31
bool isStatic
Definition AnvilPhysics.h:39
glm::vec3 velocity
Definition AnvilPhysics.h:34
void * rp3dBody
Definition AnvilPhysics.h:30
glm::quat orientation
Definition AnvilPhysics.h:32
bool onGround
Definition AnvilPhysics.h:40
Definition AnvilPhysics.h:53
glm::vec3 max
Definition AnvilPhysics.h:55
std::string name
Definition AnvilPhysics.h:56
glm::vec3 min
Definition AnvilPhysics.h:54
Definition AnvilPhysics.h:44
AEntity * entity
Definition AnvilPhysics.h:48
float distance
Definition AnvilPhysics.h:46
glm::vec3 point
Definition AnvilPhysics.h:47
bool hit
Definition AnvilPhysics.h:45