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

Tests unitaires du balayage AABB continu contre une boîte fixe unique (sweepAabbVsAabb, EX-GP-005) — collision des blocs à taille réduite. More...

#include <gtest/gtest.h>
#include "Core/Math/Vector2.h"
#include "Core/Physics/Aabb.h"
#include "Core/Physics/AabbVsAabb.h"

Functions

 TEST (AabbVsAabbTest, TrajetLibreLoinDeLObstacle)
 Sans chevauchement possible, la boîte parcourt tout son déplacement, sans contact.
 TEST (AabbVsAabbTest, ButeeHorizontaleContreUnObstacleReduit)
 Un obstacle réduit stoppe le mouvement horizontal exactement à son bord, sans pénétration.
 TEST (AabbVsAabbTest, ButeeVerticaleSurUnObstacleReduit)
 Un obstacle réduit stoppe la chute exactement à son sommet, sans pénétration.
 TEST (AabbVsAabbTest, EspaceAutourDeLObstacleReduitEstFranchissable)
 Le personnage peut passer dans l'espace laissé libre autour d'un obstacle réduit, sans être bloqué par la case entière qui le contient (EX-GP-005).
 TEST (AabbVsAabbTest, GlissementDiagonalLeLongDUnObstacleReduit)
 Glissement le long d'un obstacle réduit : bloqué en X, le mouvement vertical continue normalement (même ressenti qu'un mur classique, sweepAabb).
 TEST (AabbVsAabbTest, DeplacementNulNeBougeRien)
 Sans déplacement sur un axe, la position de cet axe reste inchangée (pas d'effet de bord).

Detailed Description

Tests unitaires du balayage AABB continu contre une boîte fixe unique (sweepAabbVsAabb, EX-GP-005) — collision des blocs à taille réduite.

Function Documentation

◆ TEST() [1/6]

TEST ( AabbVsAabbTest ,
ButeeHorizontaleContreUnObstacleReduit  )

Un obstacle réduit stoppe le mouvement horizontal exactement à son bord, sans pénétration.

Cas de test : Balayage boîte-boîte : butée horizontale contre un obstacle réduit
Categorie : Unitaire · Physique · Balayage AABB vs AABB
Criticite : Bloquant
Etapes :
1. Placer un obstacle réduit (0,5×0,5) centré en (2, 1).
2. Balayer une boîte 1×1 vers la droite, alignée verticalement avec l'obstacle.
Resultat attendu : La boîte s'arrête au ras du bord de l'obstacle (bord droit = bord gauche de l'obstacle = 2,25), jamais au-delà ; normale horizontale.

◆ TEST() [2/6]

TEST ( AabbVsAabbTest ,
ButeeVerticaleSurUnObstacleReduit  )

Un obstacle réduit stoppe la chute exactement à son sommet, sans pénétration.

Cas de test : Balayage boîte-boîte : butée verticale (dessus d'un obstacle réduit)
Categorie : Unitaire · Physique · Balayage AABB vs AABB
Criticite : Bloquant
Etapes :
1. Placer un obstacle réduit centré en (2, 1).
2. Balayer une boîte 1×1 en chute verticale au-dessus.
Resultat attendu : La boîte se pose exactement sur le dessus de l'obstacle (bord bas = bord haut de l'obstacle = 1,25) ; normale vers le haut (appui).

◆ TEST() [3/6]

TEST ( AabbVsAabbTest ,
DeplacementNulNeBougeRien  )

Sans déplacement sur un axe, la position de cet axe reste inchangée (pas d'effet de bord).

Cas de test : Balayage boîte-boîte : déplacement nul sur un axe le laisse inchangé
Categorie : Unitaire · Physique · Balayage AABB vs AABB
Criticite : Mineur
Etapes :
1. Placer un obstacle réduit.
2. Balayer avec un déplacement nul sur les deux axes.
Resultat attendu : Position inchangée, aucun contact signalé.

◆ TEST() [4/6]

TEST ( AabbVsAabbTest ,
EspaceAutourDeLObstacleReduitEstFranchissable  )

Le personnage peut passer dans l'espace laissé libre autour d'un obstacle réduit, sans être bloqué par la case entière qui le contient (EX-GP-005).

Cas de test : Balayage boîte-boîte : le vide autour d'un obstacle réduit reste franchissable
Categorie : Unitaire · Physique · Balayage AABB vs AABB
Criticite : Majeur
Etapes :
1. Placer un obstacle réduit centré en (2, 1) (marge de 0,25 de chaque côté).
2. Balayer une boîte étroite qui passe dans cette marge, sans jamais chevaucher l'obstacle.
Resultat attendu : Aucun contact : la marge autour de l'obstacle réduit est bien franchissable.

◆ TEST() [5/6]

TEST ( AabbVsAabbTest ,
GlissementDiagonalLeLongDUnObstacleReduit  )

Glissement le long d'un obstacle réduit : bloqué en X, le mouvement vertical continue normalement (même ressenti qu'un mur classique, sweepAabb).

Cas de test : Balayage boîte-boîte : glissement diagonal contre un obstacle réduit
Categorie : Unitaire · Physique · Balayage AABB vs AABB
Criticite : Majeur
Etapes :
1. Placer un obstacle réduit centré en (2, 1).
2. Balayer une boîte en diagonale (droite + bas), bloquée en X par l'obstacle mais pas en Y.
Resultat attendu : Composante X arrêtée au bord de l'obstacle ; composante Y appliquée intégralement (pas de blocage croisé entre les deux axes).

◆ TEST() [6/6]

TEST ( AabbVsAabbTest ,
TrajetLibreLoinDeLObstacle  )

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

Cas de test : Balayage boîte-boîte : trajet libre, loin de l'obstacle
Categorie : Unitaire · Physique · Balayage AABB vs AABB
Criticite : Majeur
Etapes :
1. Placer un obstacle réduit en (2, 1).
2. Balayer une boîte 1×1 partie de loin, dont le trajet ne le croise pas.
Resultat attendu : Aucun contact ; la boîte atteint exactement la position visée.