No Name Engine
NoNameEngine est un moteur de jeu basé sur un système Entity Component System (ECS) utilisant Vulkan pour le rendu.
Loading...
Searching...
No Matches
NNE::Systems::PhysicsSystem Class Reference
Inheritance diagram for NNE::Systems::PhysicsSystem:
Collaboration diagram for NNE::Systems::PhysicsSystem:

Classes

class  ContactListenerImpl
struct  RaycastHit

Public Member Functions

 PhysicsSystem ()
 Construit le système physique et ses dépendances.
 ~PhysicsSystem ()
 Détruit le système physique et libère les ressources.
void Initialize ()
 Initialise les structures de la bibliothèque Jolt.
void Update (float deltaTime) override
 Met à jour la simulation physique.
void LateUpdate (float deltaTime) override
 Applique les mises à jour tardives de la physique.
void Awake () override
 Prépare le système avant le démarrage.
void Start () override
 Démarre le système physique.
void RegisterComponent (NNE::Component::AComponent *component) override
 Enregistre un composant physique.
void UnregisterComponent (NNE::Component::AComponent *component)
JPH::PhysicsSystem * GetPhysicsSystem ()
 Accède à l'objet PhysicsSystem de Jolt.
void SetLayerCollision (JPH::ObjectLayer layer1, JPH::ObjectLayer layer2, bool shouldCollide)
 Définit si deux couches doivent entrer en collision.
bool LayersShouldCollide (JPH::ObjectLayer layer1, JPH::ObjectLayer layer2) const
 Vérifie si deux couches peuvent entrer en collision.
void RegisterCollider (JPH::BodyID id, NNE::Component::Physics::ColliderComponent *collider)
 Associe un collider à son identifiant physique.
NNE::Component::Physics::ColliderComponentGetCollider (JPH::BodyID id)
 Récupère le collider lié à un identifiant physique.
void UnregisterCollider (JPH::BodyID id)
 Retire un collider du suivi par identifiant.

Static Public Member Functions

static PhysicsSystemGetInstance ()
 Retourne l'instance unique du système physique.
static bool Raycast (glm::vec3 origin, glm::vec3 direction, float distance, RaycastHit &outHit, JPH::ObjectLayer rayLayer=Layers::RAYCAST)

Public Attributes

ContactListenerImpl contactListener

Detailed Description

Definition at line 27 of file PhysicsSystem.h.

Constructor & Destructor Documentation

◆ PhysicsSystem()

NNE::Systems::PhysicsSystem::PhysicsSystem ( )

Construit le système physique et ses dépendances.

Configure les allocations et enregistre les types Jolt.

Definition at line 69 of file PhysicsSystem.cpp.

◆ ~PhysicsSystem()

NNE::Systems::PhysicsSystem::~PhysicsSystem ( )

Détruit le système physique et libère les ressources.

Nettoie les ressources allouées par Jolt.

Definition at line 103 of file PhysicsSystem.cpp.

Member Function Documentation

◆ Awake()

void NNE::Systems::PhysicsSystem::Awake ( )
overridevirtual

Prépare le système avant le démarrage.

Prépare le système physique avant utilisation.

Implements NNE::Systems::ISystem.

Definition at line 162 of file PhysicsSystem.cpp.

◆ GetCollider()

NNE::Component::Physics::ColliderComponent * NNE::Systems::PhysicsSystem::GetCollider ( JPH::BodyID id)

Récupère le collider lié à un identifiant physique.

Definition at line 148 of file PhysicsSystem.cpp.

◆ GetInstance()

PhysicsSystem * NNE::Systems::PhysicsSystem::GetInstance ( )
static

Retourne l'instance unique du système physique.

Definition at line 128 of file PhysicsSystem.cpp.

◆ GetPhysicsSystem()

JPH::PhysicsSystem * NNE::Systems::PhysicsSystem::GetPhysicsSystem ( )

Accède à l'objet PhysicsSystem de Jolt.

Fournit un accès au système physique Jolt.

Definition at line 120 of file PhysicsSystem.cpp.

◆ Initialize()

void NNE::Systems::PhysicsSystem::Initialize ( )

Initialise les structures de la bibliothèque Jolt.

Initialise les structures internes de Jolt Physics.

Definition at line 87 of file PhysicsSystem.cpp.

◆ LateUpdate()

void NNE::Systems::PhysicsSystem::LateUpdate ( float deltaTime)
overridevirtual

Applique les mises à jour tardives de la physique.

Termine les traitements physiques après l'Update principal.

Implements NNE::Systems::ISystem.

Definition at line 220 of file PhysicsSystem.cpp.

◆ LayersShouldCollide()

bool NNE::Systems::PhysicsSystem::LayersShouldCollide ( JPH::ObjectLayer layer1,
JPH::ObjectLayer layer2 ) const

Vérifie si deux couches peuvent entrer en collision.

Definition at line 140 of file PhysicsSystem.cpp.

◆ Raycast()

bool NNE::Systems::PhysicsSystem::Raycast ( glm::vec3 origin,
glm::vec3 direction,
float distance,
RaycastHit & outHit,
JPH::ObjectLayer rayLayer = Layers::RAYCAST )
static

Definition at line 254 of file PhysicsSystem.cpp.

◆ RegisterCollider()

void NNE::Systems::PhysicsSystem::RegisterCollider ( JPH::BodyID id,
NNE::Component::Physics::ColliderComponent * collider )

Associe un collider à son identifiant physique.

Definition at line 144 of file PhysicsSystem.cpp.

◆ RegisterComponent()

void NNE::Systems::PhysicsSystem::RegisterComponent ( NNE::Component::AComponent * component)
overridevirtual

Enregistre un composant physique.

Enregistre les composants physiques pour la simulation.

Reimplemented from NNE::Systems::ISystem.

Definition at line 227 of file PhysicsSystem.cpp.

◆ SetLayerCollision()

void NNE::Systems::PhysicsSystem::SetLayerCollision ( JPH::ObjectLayer layer1,
JPH::ObjectLayer layer2,
bool shouldCollide )

Définit si deux couches doivent entrer en collision.

Definition at line 130 of file PhysicsSystem.cpp.

◆ Start()

void NNE::Systems::PhysicsSystem::Start ( )
overridevirtual

Démarre le système physique.

Implements NNE::Systems::ISystem.

Definition at line 174 of file PhysicsSystem.cpp.

◆ UnregisterCollider()

void NNE::Systems::PhysicsSystem::UnregisterCollider ( JPH::BodyID id)

Retire un collider du suivi par identifiant.

Definition at line 153 of file PhysicsSystem.cpp.

◆ UnregisterComponent()

void NNE::Systems::PhysicsSystem::UnregisterComponent ( NNE::Component::AComponent * component)

Definition at line 239 of file PhysicsSystem.cpp.

◆ Update()

void NNE::Systems::PhysicsSystem::Update ( float deltaTime)
overridevirtual

Met à jour la simulation physique.

Avance la simulation physique et synchronise les entités.

Implements NNE::Systems::ISystem.

Definition at line 181 of file PhysicsSystem.cpp.

Member Data Documentation

◆ contactListener

ContactListenerImpl NNE::Systems::PhysicsSystem::contactListener

Definition at line 162 of file PhysicsSystem.h.


The documentation for this class was generated from the following files: