AireEngine
A 3D Open-World Game Engine
Loading...
Searching...
No Matches
rigidbodyHandler.h
1#pragma once
2#include <vector>
3#include "rigidbody.h"
4#include "rbCuboid.h"
5#include "rbSphere.h"
6#include "../res-management/terrain.h"
7#include "boundingVolume.h"
8#include <glm/glm.hpp>
9
10namespace Aire {
11
14 private:
15 // Make static pointer to the single instance of the class
16 static RigidbodyHandler* instance;
17
18 // Constructor
20
21 Terrain* terrain = nullptr;
22 BoundingVolume* boundingVolume = nullptr;
23
24 public:
25 // Delete the copy constructor
27
31 // Check if instance already exists and create one if not
32 if (instance == NULL) {
33 instance = new RigidbodyHandler();
34 }
35 // Return the pointer to the instance
36 return instance;
37 }
38
42
48
57 glm::vec3 pos = glm::vec3(0, 0, 0), glm::mat3 rot = glm::mat3(1.0));
58
65 glm::vec3 pos = glm::vec3(0, 0.1, 0), glm::mat3 rot = glm::mat3(1.0));
66
69 void deleteRigidbody(int aRbIndex);
70
73 void updateAll();
74
80
86
92
99
100 bool PlayerSphereCollision();
101
102 // Number of rigidbodies
103 int numRigidbodies;
104
105 // Vectors of all rigidbodies
106 std::vector<RbCuboid> boxes;
107 std::vector<RbSphere> balls;
108
109 std::vector<Rigidbody*> rigidbodies;
110
111 };
112}
Definition boundingVolume.h:10
Definition hashSet.h:18
A singleton class used to handle all rigid bodies in the scene.
Definition rigidbodyHandler.h:13
bool BoxSphereCollision(Rigidbody *rb1, Rigidbody *rb2)
Definition rigidbodyHandler.cpp:202
bool SphereSphereCollision(Rigidbody *rb1, Rigidbody *rb2)
Definition rigidbodyHandler.cpp:162
void deleteRigidbody(int aRbIndex)
Definition rigidbodyHandler.cpp:42
static RigidbodyHandler * getInstance()
Definition rigidbodyHandler.h:30
void setTerrain(Terrain *aTerrain)
Definition rigidbodyHandler.cpp:16
Rigidbody * createRigidbodyBall(float aRadius, glm::vec3 pos=glm::vec3(0, 0.1, 0), glm::mat3 rot=glm::mat3(1.0))
Definition rigidbodyHandler.cpp:33
void setBoundingVolume(BoundingVolume *aBV)
A function to set the bounding volume for the scene.
Definition rigidbodyHandler.cpp:20
bool BoxBoxCollision(Rigidbody *rb1, Rigidbody *rb2)
Definition rigidbodyHandler.cpp:185
bool SphereBoxCollision(Rigidbody *rb1, Rigidbody *rb2)
Definition rigidbodyHandler.cpp:227
void updateAll()
Definition rigidbodyHandler.cpp:88
Rigidbody * createRigidbodyBox(float aWidth, float aHeight, float aDepth, glm::vec3 pos=glm::vec3(0, 0, 0), glm::mat3 rot=glm::mat3(1.0))
Definition rigidbodyHandler.cpp:24
Definition rigidbody.h:8
A class that represents a terrain object.
Definition terrain.h:28