Constructeur statique du PCCGraph depuis TopologyRepository.
Plus de détails...
#include <PCCGraphBuilder.h>
|
| | PCCGraphBuilder ()=delete |
| | Interdit l'instanciation — classe utilitaire statique.
|
| |
Constructeur statique du PCCGraph depuis TopologyRepository.
◆ PCCGraphBuilder()
| PCCGraphBuilder::PCCGraphBuilder |
( |
| ) |
|
|
delete |
Interdit l'instanciation — classe utilitaire statique.
◆ build()
Construit le PCCGraph depuis le contenu de TopologyRepository.
Appelle successivement buildNodes puis buildEdges. Le graphe est d'abord vidé via PCCGraph::clear avant construction.
Si TopologyRepository est vide (parsing non encore effectué), le graphe reste vide après l'appel — aucune exception n'est levée.
- Paramètres
-
| graph | Référence au graphe à construire. Modifié en place. Le graphe est vidé avant construction. |
| logger | Référence au logger HMI fourni par PCCPanel. |
◆ buildEdges()
Passe 2 — résout les connexions et crée les arêtes.
Parcourt les switches orientés pour créer les arêtes ROOT / NORMAL / DEVIATION. Parcourt ensuite les straights pour créer les arêtes STRAIGHT entre blocs adjacents, avec dédoublonnage via une clé canonique (voir makeEdgeKey).
Les nœuds introuvables dans l'index (bloc non parsé ou connexion invalide) sont ignorés silencieusement — un warning est loggé si un Logger est disponible.
- Paramètres
-
| graph | Graphe en cours de construction. |
| topo | Données topologiques issues de TopologyRepository. |
| logger | Référence au logger HMI. |
◆ buildNodes()
◆ computeDeviationSides()
Calcule le côté géographique de la déviation pour chaque switch.
Compare la latitude du premier point de la branche déviation avec la latitude du switch. Si la déviation va au nord (latitude plus élevée), le côté est +1 (vers le haut). Sinon -1 (vers le bas).
- Paramètres
-
| graph | Graphe construit (nœuds et arêtes câblées). |
| topo | Données topologiques avec coordonnées GPS. |
| logger | Référence au logger HMI. |
◆ makeEdgeKey()
| std::string PCCGraphBuilder::makeEdgeKey |
( |
const std::string & |
idA, |
|
|
const std::string & |
idB |
|
) |
| |
|
staticprivate |
Construit une clé canonique pour une paire de blocs.
La clé est indépendante de l'ordre des paramètres : makeEdgeKey("s/0", "sw/3") == makeEdgeKey("sw/3", "s/0"). Utilisée pour le dédoublonnage des arêtes STRAIGHT.
- Paramètres
-
| idA | Identifiant du premier bloc. |
| idB | Identifiant du second bloc. |
- Renvoie
- Chaîne de la forme
"min|max" — toujours identique quelle que soit l'ordre des paramètres.
◆ tagCrossovers()
La documentation de cette classe a été générée à partir des fichiers suivants :