OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
spatialhash.hpp File Reference

Définit les structures de données nécessaires à la création d'un spatial hash. More...

#include <bitset>
#include <vector>
#include <unordered_map>
#include "../defs.hpp"

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.

Detailed Description

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.