Comme pour la classe odfaeg::graphic::Entity, pour définir son propre type de gestionnaire d'entité, il faut hériter d'une classe,
et cette classe se nomme odfaeg::graphic::SceneManager.
Il y a également plusieurs méthodes à redéfinir, que voici :
std::vector getEntities(std::string expression) : Retourne toutes les entités de tel(s) type(s)
Par exemple, manager.getEntities("E_WALL") retournera toutes les entités de type (ou appartenant au groupe d'entités) "E_WALL".
void checkVisibleEntities() : Recherche toutes les entités visibles pour chaque composant de rendu. (celles qui se trouvent
dans le champ de vision de la caméra)

std::vector getVisibleEntities (std::string expression) : renvoie tout les entités visible de tel(s) type(s).
std::vector getEntitiesInBox (physic::BoundingBox rect, std::string expression) : Retourne toutes les entités de
tel(s) type(s) se trouvant dans la boîte englobante passée en paramètre.
bool collide (Entity* entity) : Recherche si une entité est en collision avec une autre entité.
bool collide (Entity* entity, math::Vec3f position) : Recherche si une entité est en collision lorsqu'elle
se trouve à la position passée en paramètre.

bool collide (Entity* entity, math::Ray ray) : Recherche si une entité est en collision avec une autre entité
si on la déplace suivant le rayon passé en paramètre.
void generate_map(std::vector tGrounds, std::vector tWalls, math::Vec2f tileSize, physic::BoundingBox& zone)
: génère une map (sol + contours) aléatroirement, de taille spécifiée; tGrounds sont les tiles du sol,
tWalls sont les murs du contours (coins et bords), les tiles du sols sont choisies aléatoirement,
tileSize est la taille d'un carré du terrain,
zone est la boîte englobante du terrain.
void moveEntity(Entity *entity, float x, float y, float z) :
Déplace l'entité passée en paramètre.

bool addEntity(Entity *entity)
Ajoute une entités dans le gestionnaire, si une entité identique s'y trouve déjà, alors, la méthode retourne faux.
BaseChangementMatrix getBaseChangementMatrix() :
Renvoie la matrice de changement de base, celle-ci permet de passer des coordonnées 2D en coordonnée 2D isométrique
par exemple.

std::vector getPath(Entity* entity, math::Vec2f finalPos)
Retourne le chemin à parcourir par une entité pour atteindre la position passé en paramètre.
(N'oubliez pas de prendre en compte les collisions)
std::vector getCasesMap()
Retourne toutes les cases de la grille virtuelle contenant les entités.

bool removeEntity(Entity* entity) : Supprime l'entité (sans la supprimer de la mémoire)
bool deleteEntity(Entity* entity) : Supprime l'entité de la mémoire.
Entity* getEntity(int id) : retourne l'entité d'id passé en paramètre.