OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
Engine::Physics::Rigidbody Struct Reference

La structure rigidbody contient de quoi simuler l'existance d'un corps physique dans le moteur de jeu. More...

#include <rigidbody.hpp>

Inheritance diagram for Engine::Physics::Rigidbody:
Engine::ECS::Component

Public Member Functions

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.
Public Member Functions inherited from Engine::ECS::Component
 Component ()=default
void SetEntity (Entity e)
 Attache l'entité au component.
EntityGetEntity () const
 Renvoie l'entité attachée.
RegistryGetRegistry () const
 Renvoie le registre actuel.
Scene::SceneGetScene () const
 Renvoie la scène en cours.
AppGetApp () const
 Renvoie l'instance d'application.

Public Attributes

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.
Public Attributes inherited from Engine::ECS::Component
bool enabled = true

Detailed Description

La structure rigidbody contient de quoi simuler l'existance d'un corps physique dans le moteur de jeu.

Member Function Documentation

◆ AddForce() [1/2]

void Engine::Physics::Rigidbody::AddForce ( const glm::vec2 & force)

Ajouter une force en 2D sur le rigidbody.

Parameters
forceLa force physique à appliquer

◆ AddForce() [2/2]

void Engine::Physics::Rigidbody::AddForce ( const glm::vec3 & force)

Ajouter une force en 3D sur le rigidbody.

Parameters
force

◆ AddImpulse() [1/2]

void Engine::Physics::Rigidbody::AddImpulse ( const glm::vec2 & impulsion)

Ajouter une impulsion en 2D sur le rigidbody.

Parameters
impulsionLa impulsion physique à appliquer

◆ AddImpulse() [2/2]

void Engine::Physics::Rigidbody::AddImpulse ( const glm::vec3 & impulsion)

Ajouter une impulsion en 3D sur le rigidbody.

Parameters
impulsion

Member Data Documentation

◆ 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: