PGR Copakond OpenGL Engine - Bowling
Loading...
Searching...
No Matches
rigidBody.h
Go to the documentation of this file.
1#ifndef PGR_SEM_COPAKOND_RIGIDBODY_H
2#define PGR_SEM_COPAKOND_RIGIDBODY_H
3#include "collisionBox.h"
4
5namespace copakond {
7 class RigidBody : public CollisionBox {
8 private:
9 glm::vec3 _velocity = glm::vec3(0.0f, 0.0f, 0.0f);
10 glm::vec3 _gravity = glm::vec3(0.0f, -9.81f, 0.0f); // Earth gravity
11 float _airFriction = 0.1f;
12 bool _isOnFloor = false;
13
14 public:
15 RigidBody(const glm::vec3 &position = glm::vec3(0.0f), const glm::vec3 &rotation = glm::vec3(0.0f),
16 const glm::vec3 &scale = glm::vec3(1.0f), bool debug = false);
17
23 void physics_process(float deltaTime, const std::vector<CollisionShape*>& allColliders);
24 glm::vec3& velocity() { return _velocity; }
25 glm::vec3& gravity() { return _gravity; }
26 void setAirFriction(float airFriction);
27 float getAirFriction() const { return _airFriction; }
28
29 bool isOnFloor() const { return _isOnFloor; }
30 };
31}
32
33#endif //PGR_SEM_COPAKOND_RIGIDBODY_H
CollisionBox(const glm::vec3 &position=glm::vec3(0.0f), const glm::vec3 &rotation=glm::vec3(0.0f), const glm::vec3 &scale=glm::vec3(1.0f), bool visible=false)
Definition collisionBox.cpp:4
glm::vec3 & rotation()
Definition geometry.h:61
glm::vec3 & scale()
Definition geometry.h:62
glm::vec3 & position()
Definition geometry.h:60
bool isOnFloor() const
Definition rigidBody.h:29
glm::vec3 & velocity()
Definition rigidBody.h:24
float getAirFriction() const
Definition rigidBody.h:27
RigidBody(const glm::vec3 &position=glm::vec3(0.0f), const glm::vec3 &rotation=glm::vec3(0.0f), const glm::vec3 &scale=glm::vec3(1.0f), bool debug=false)
Definition rigidBody.cpp:4
glm::vec3 & gravity()
Definition rigidBody.h:25
void setAirFriction(float airFriction)
void physics_process(float deltaTime, const std::vector< CollisionShape * > &allColliders)
Integrates velocity/gravity and resolves collisions iteratively across axes.
Definition rigidBody.cpp:15
PGR Semestral work with sample scenes and bowling. doxygen was generated with a help of LLM.
Definition bezier.cpp:3