OGL Engine 1.2.0-dev
|
Définit les structures de données nécessaires à la création d'un spatial hash. More...
Go to the source code of this file.
Classes | |
struct | Engine::Physics::Cell |
Structure qui définit l'emplacement d'une cellule dans l'espace en 2D. More... | |
struct | Engine::Physics::CellHash |
Le hash d'une cellule donnée. More... |
Namespaces | |
namespace | Engine |
namespace | Engine::Physics |
Typedefs | |
using | Engine::Physics::SpatialHash = std::unordered_map<Cell, std::vector<Engine::EntityID>, CellHash> |
Défiinition du "type" spatialHash => simplement une unordered_map qui lit des entités à une cellule. |
Functions | |
bool | Engine::Physics::operator== (const Cell &a, const Cell &b) |
Surcharge de l'opérateur de test d'égalité pour les cellules. |
Définit les structures de données nécessaires à la création d'un spatial hash.
Le spatial hash peut être utilisé pour partitionner l'espace dans lequel à lieu des résolutions physiques. L'idée c'est qu'on découpe l'espace global en plusieurs cellules plus petites pour faire un premier "jet" sur la détection de collisions.
Les objets qui ne sont pas dans la même cellule ne sont pas comparés lors de la résolution du système physique, on considère qu'ils sont trop éloignés. Ca évite de faire les checks de collisions plus complexes sur des objets éloignés qui ne sont de toute évidence pas en contact.