/** * @param Qg $qg */ public static function reindexQg(Qg $qg) { /** @var Hexa $oldPosition */ if (isset(self::$indexParQg[$qg->getId()])) { $oldPosition = self::$indexParQg[$qg->getId()]; } else { $oldPosition = null; } if (!is_null($oldPosition) && isset(self::$indexParHexa[$oldPosition->getId()][$qg->getId()])) { unset(self::$indexParHexa[$oldPosition->getId()][$qg->getId()]); } if (!$qg->isEfface()) { self::$indexParQg[$qg->getId()] = $qg->getPosition(); if (!isset(self::$indexParHexa[$qg->getPosition()->getId()])) { self::$indexParHexa[$qg->getPosition()->getId()] = new QgCollection(); } if (!isset(self::$indexParHexa[$qg->getPosition()->getId()][$qg->getId()])) { self::$indexParHexa[$qg->getPosition()->getId()][$qg->getId()] = $qg; } } /* * Zones d'interception */ if (in_array($qg->getIdTypeMission(), Missions::missionsInterception())) { foreach ($qg->getPosition()->getCouronnePleine(Missions::$types[Missions::INTERCEPTION]['tailleZone']) as $hexa) { if (!isset(self::$indexIntercepteurs[$hexa->getId()])) { self::$indexIntercepteurs[$hexa->getId()] = new QgCollection(); } self::$indexIntercepteurs[$hexa->getId()]->ajout($qg); } } }