La structure rigidbody contient de quoi simuler l'existance d'un corps physique dans le moteur de jeu.
More...
#include <rigidbody.hpp>
|
void | AddForce (const glm::vec2 &force) |
| Ajouter une force en 2D sur le rigidbody.
|
void | AddForce (const glm::vec3 &force) |
| Ajouter une force en 3D sur le rigidbody.
|
void | AddImpulse (const glm::vec2 &impulsion) |
| Ajouter une impulsion en 2D sur le rigidbody.
|
void | AddImpulse (const glm::vec3 &impulsion) |
| Ajouter une impulsion en 3D sur le rigidbody.
|
| Component ()=default |
void | SetEntity (Entity e) |
| Attache l'entité au component.
|
Entity & | GetEntity () const |
| Renvoie l'entité attachée.
|
Registry & | GetRegistry () const |
| Renvoie le registre actuel.
|
Scene::Scene & | GetScene () const |
| Renvoie la scène en cours.
|
App & | GetApp () const |
| Renvoie l'instance d'application.
|
|
glm::vec3 | velocity = {0.0f, 0.0f, 0.0f} |
| La vélocité actuelle de l'objet sur 3 axes (dérivation en +position)
|
glm::vec3 | acceleration = {0.0f, 0.0f, 0.0f} |
| L'accélération de l'objet, remise à zéro à chaque frame (dérivation en +vélocité)
|
float | mass = 1.0f |
| La masse de l'objet, peut servir pour les rapports de force entre deux objets lors de collisions.
|
float | restitution = 0.5f |
| coefficient pour gérer la restitution sur la normale lors des rebonds (0 ne rebondit pas, 1 restitue 100% de la force)
|
float | friction = 0.2f |
| Coefficient qui permet de décider le ralentissement tangentiel en cas de collision / rebond (0, ne ralentit pas : 1, freine instant)
|
bool | isAffectedByGravity = true |
| Si vrai => L'objet doit être soumis à la gravité des systèmes physiques.
|
bool | isKinematic = false |
| Si vrai => Ignore les collisions et forces des systèmes physiques (utile pour gérer à la main tout en gardant la détection de collisiosn)
|
bool | freezePositionX = false |
| Si vrai => Empêche les mouvements automatiques sur l'axe X.
|
bool | freezePositionY = false |
| Si vrai => Empêche les mouvements automatiques sur l'axe Y.
|
bool | freezePositionZ = false |
| Si vrai => Empêche les mouvements automatiques sur l'axe Z.
|
bool | isBounceable = false |
| Si vrai => L'objet rebondit en cas de contact physique avec un autre collider.
|
bool | isSleeping = false |
| Si vrai => L'objet est ignoré par le système physique.
|
float | sleepTimer = 0.0f |
| temps passé en étant immobile. Au dela d'un certain seuil, le rigidbody passe en mode "sleep" pour économiser des ressources
|
bool | onGround = false |
| Si vrai => Inidque que l'objet est posé à même le sol (ne chute pas)
|
bool | onWall = false |
| Si vrai => Indique que l'objet est posé contre un mur.
|
bool | enabled = true |
La structure rigidbody contient de quoi simuler l'existance d'un corps physique dans le moteur de jeu.
◆ AddForce() [1/2]
void Engine::Physics::Rigidbody::AddForce |
( |
const glm::vec2 & | force | ) |
|
Ajouter une force en 2D sur le rigidbody.
- Parameters
-
force | La force physique à appliquer |
◆ AddForce() [2/2]
void Engine::Physics::Rigidbody::AddForce |
( |
const glm::vec3 & | force | ) |
|
Ajouter une force en 3D sur le rigidbody.
- Parameters
-
◆ AddImpulse() [1/2]
void Engine::Physics::Rigidbody::AddImpulse |
( |
const glm::vec2 & | impulsion | ) |
|
Ajouter une impulsion en 2D sur le rigidbody.
- Parameters
-
impulsion | La impulsion physique à appliquer |
◆ AddImpulse() [2/2]
void Engine::Physics::Rigidbody::AddImpulse |
( |
const glm::vec3 & | impulsion | ) |
|
Ajouter une impulsion en 3D sur le rigidbody.
- Parameters
-
◆ acceleration
glm::vec3 Engine::Physics::Rigidbody::acceleration = {0.0f, 0.0f, 0.0f} |
L'accélération de l'objet, remise à zéro à chaque frame (dérivation en +vélocité)
◆ freezePositionX
bool Engine::Physics::Rigidbody::freezePositionX = false |
Si vrai => Empêche les mouvements automatiques sur l'axe X.
◆ freezePositionY
bool Engine::Physics::Rigidbody::freezePositionY = false |
Si vrai => Empêche les mouvements automatiques sur l'axe Y.
◆ freezePositionZ
bool Engine::Physics::Rigidbody::freezePositionZ = false |
Si vrai => Empêche les mouvements automatiques sur l'axe Z.
◆ friction
float Engine::Physics::Rigidbody::friction = 0.2f |
Coefficient qui permet de décider le ralentissement tangentiel en cas de collision / rebond (0, ne ralentit pas : 1, freine instant)
◆ isAffectedByGravity
bool Engine::Physics::Rigidbody::isAffectedByGravity = true |
Si vrai => L'objet doit être soumis à la gravité des systèmes physiques.
◆ isBounceable
bool Engine::Physics::Rigidbody::isBounceable = false |
Si vrai => L'objet rebondit en cas de contact physique avec un autre collider.
◆ isKinematic
bool Engine::Physics::Rigidbody::isKinematic = false |
Si vrai => Ignore les collisions et forces des systèmes physiques (utile pour gérer à la main tout en gardant la détection de collisiosn)
◆ isSleeping
bool Engine::Physics::Rigidbody::isSleeping = false |
Si vrai => L'objet est ignoré par le système physique.
◆ mass
float Engine::Physics::Rigidbody::mass = 1.0f |
La masse de l'objet, peut servir pour les rapports de force entre deux objets lors de collisions.
◆ onGround
bool Engine::Physics::Rigidbody::onGround = false |
Si vrai => Inidque que l'objet est posé à même le sol (ne chute pas)
◆ onWall
bool Engine::Physics::Rigidbody::onWall = false |
Si vrai => Indique que l'objet est posé contre un mur.
◆ restitution
float Engine::Physics::Rigidbody::restitution = 0.5f |
coefficient pour gérer la restitution sur la normale lors des rebonds (0 ne rebondit pas, 1 restitue 100% de la force)
◆ sleepTimer
float Engine::Physics::Rigidbody::sleepTimer = 0.0f |
temps passé en étant immobile. Au dela d'un certain seuil, le rigidbody passe en mode "sleep" pour économiser des ressources
◆ velocity
glm::vec3 Engine::Physics::Rigidbody::velocity = {0.0f, 0.0f, 0.0f} |
La vélocité actuelle de l'objet sur 3 axes (dérivation en +position)
The documentation for this struct was generated from the following files: