JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
test_swept_collision.cpp File Reference

Tests unitaires du balayage AABB continu (sweepAabb) contre une grille de tuiles. More...

#include <gtest/gtest.h>
#include "Core/Levels/TileMap.h"
#include "Core/Levels/TileType.h"
#include "Core/Math/Vector2.h"
#include "Core/Physics/Aabb.h"
#include "Core/Physics/SweptCollision.h"

Functions

 TEST (SweptCollisionTest, TrajetLibre)
 Sans obstacle, la boîte parcourt tout son déplacement, sans contact.
 TEST (SweptCollisionTest, ButeeHorizontale)
 Un mur à droite stoppe le mouvement horizontal, la boîte s'arrête au ras du mur.
 TEST (SweptCollisionTest, ButeeVerticale)
 Un sol stoppe la chute : la boîte se pose dessus, normale vers le haut (appui au sol).
 TEST (SweptCollisionTest, NonTunneling)
 Cœur de la décision de cadrage : un pas plus grand qu'une tuile ne traverse pas le mur.
 TEST (SweptCollisionTest, GlissementLeLongDuMur)
 Glissement : en butant contre un mur vertical, la boîte continue de descendre le long du mur.
 TEST (SweptCollisionTest, ButeeGauche)
 Un mur à gauche stoppe le déplacement vers la gauche, bord gauche collé au mur.
 TEST (SweptCollisionTest, ButeePlafond)
 Un plafond stoppe la montée, bord haut collé sous le plafond.
 TEST (SweptCollisionTest, MarcheSurLeSolSansBlocageHorizontal)
 En marchant le long d'un sol, la boîte n'est pas bloquée horizontalement par ce sol (peau).

Detailed Description

Tests unitaires du balayage AABB continu (sweepAabb) contre une grille de tuiles.

Function Documentation

◆ TEST() [1/8]

TEST ( SweptCollisionTest ,
ButeeGauche  )

Un mur à gauche stoppe le déplacement vers la gauche, bord gauche collé au mur.

Cas de test : Balayage : butée horizontale (mur à gauche)
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Majeur
Etapes :
1. Mur solide à gauche.
2. Balayer la boîte vers la gauche.
Resultat attendu : La boîte s'arrête au ras du mur (bord gauche = bord droit du mur) ; normale opposée.

◆ TEST() [2/8]

TEST ( SweptCollisionTest ,
ButeeHorizontale  )

Un mur à droite stoppe le mouvement horizontal, la boîte s'arrête au ras du mur.

Cas de test : Balayage : butée horizontale (mur à droite)
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Bloquant
Etapes :
1. Placer un mur solide à droite.
2. Balayer la boîte vers la droite.
Resultat attendu : La boîte s'arrête au ras du mur (bord droit = bord du mur) ; normale horizontale.

◆ TEST() [3/8]

TEST ( SweptCollisionTest ,
ButeePlafond  )

Un plafond stoppe la montée, bord haut collé sous le plafond.

Cas de test : Balayage : butée verticale (plafond)
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Majeur
Etapes :
1. Plafond solide au-dessus.
2. Balayer la boîte vers le haut.
Resultat attendu : La boîte s'arrête sous le plafond (bord haut = bas du plafond) ; normale vers le bas.

◆ TEST() [4/8]

TEST ( SweptCollisionTest ,
ButeeVerticale  )

Un sol stoppe la chute : la boîte se pose dessus, normale vers le haut (appui au sol).

Cas de test : Balayage : butée verticale (sol)
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Bloquant
Etapes :
1. Placer un sol solide en dessous.
2. Balayer la boîte vers le bas.
Resultat attendu : La boîte se pose sur le sol (bord bas = haut du sol) ; normale vers le haut.

◆ TEST() [5/8]

TEST ( SweptCollisionTest ,
GlissementLeLongDuMur  )

Glissement : en butant contre un mur vertical, la boîte continue de descendre le long du mur.

Cas de test : Balayage : glissement le long d'un mur
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Bloquant
Etapes :
1. Mur vertical à droite.
2. Balayer d'un déplacement diagonal (droite + bas).
Resultat attendu : Bloquée en X (au ras du mur), mais la descente complète en Y a lieu (glissement).

◆ TEST() [6/8]

TEST ( SweptCollisionTest ,
MarcheSurLeSolSansBlocageHorizontal  )

En marchant le long d'un sol, la boîte n'est pas bloquée horizontalement par ce sol (peau).

Cas de test : Balayage : marcher sur un sol sans blocage horizontal
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Majeur
Etapes :
1. Sol continu ; boîte posée dessus.
2. Balayer horizontalement le long du sol.
Resultat attendu : Aucun blocage : la « peau » perpendiculaire évite de confondre marcher sur / buter contre.

◆ TEST() [7/8]

TEST ( SweptCollisionTest ,
NonTunneling  )

Cœur de la décision de cadrage : un pas plus grand qu'une tuile ne traverse pas le mur.

Cas de test : Balayage : non-tunneling à vitesse élevée
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Bloquant
Etapes :
1. Mur à 5 tuiles.
2. Balayer d'un déplacement de 10 (≫ une tuile) vers le mur.
Resultat attendu : La boîte s'arrête au ras du mur ; elle ne le traverse pas (garantie continue).

◆ TEST() [8/8]

TEST ( SweptCollisionTest ,
TrajetLibre  )

Sans obstacle, la boîte parcourt tout son déplacement, sans contact.

Cas de test : Balayage : trajet libre
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Majeur
Etapes :
1. Grille sans tuile solide.
2. Balayer une boîte 1×1 d'un déplacement (3, 2).
Resultat attendu : Aucun contact ; la boîte atteint exactement la position visée.