Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
Chargement...
Recherche...
Aucune correspondance
Référence de la classe PCCGraphBuilder

Constructeur statique du PCCGraph depuis TopologyRepository. Plus de détails...

#include <PCCGraphBuilder.h>

Graphe de collaboration de PCCGraphBuilder:

Fonctions membres publiques

 PCCGraphBuilder ()=delete
 Interdit l'instanciation — classe utilitaire statique.
 

Fonctions membres publiques statiques

static void build (PCCGraph &graph, Logger &logger)
 Construit le PCCGraph depuis le contenu de TopologyRepository.
 

Fonctions membres privées statiques

static void buildNodes (PCCGraph &graph, const TopologyData &topo, Logger &logger)
 Passe 1 — crée un nœud PCC pour chaque bloc de la topologie.
 
static void buildEdges (PCCGraph &graph, const TopologyData &topo, Logger &logger)
 Passe 2 — résout les connexions et crée les arêtes.
 
static std::string makeEdgeKey (const std::string &idA, const std::string &idB)
 Construit une clé canonique pour une paire de blocs.
 
static void tagCrossovers (PCCGraph &graph, const TopologyData &topo, Logger &logger)
 
static void computeDeviationSides (PCCGraph &graph, const TopologyData &topo, Logger &logger)
 Calcule le côté géographique de la déviation pour chaque switch.
 

Description détaillée

Constructeur statique du PCCGraph depuis TopologyRepository.

Documentation des constructeurs et destructeur

◆ PCCGraphBuilder()

PCCGraphBuilder::PCCGraphBuilder ( )
delete

Interdit l'instanciation — classe utilitaire statique.

Documentation des fonctions membres

◆ build()

void PCCGraphBuilder::build ( PCCGraph graph,
Logger logger 
)
static

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
graphRéférence au graphe à construire. Modifié en place. Le graphe est vidé avant construction.
loggerRéférence au logger HMI fourni par PCCPanel.

◆ buildEdges()

void PCCGraphBuilder::buildEdges ( PCCGraph graph,
const TopologyData topo,
Logger logger 
)
staticprivate

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
graphGraphe en cours de construction.
topoDonnées topologiques issues de TopologyRepository.
loggerRéférence au logger HMI.

◆ buildNodes()

void PCCGraphBuilder::buildNodes ( PCCGraph graph,
const TopologyData topo,
Logger logger 
)
staticprivate

Passe 1 — crée un nœud PCC pour chaque bloc de la topologie.

Parcourt TopologyData::straights et TopologyData::switches et appelle PCCGraph::addStraightNode / PCCGraph::addSwitchNode pour chaque bloc. L'index est complet à la fin de cette passe.

Paramètres
graphGraphe en cours de construction.
topoDonnées topologiques issues de TopologyRepository.
loggerRéférence au logger HMI.

◆ computeDeviationSides()

void PCCGraphBuilder::computeDeviationSides ( PCCGraph graph,
const TopologyData topo,
Logger logger 
)
staticprivate

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
graphGraphe construit (nœuds et arêtes câblées).
topoDonnées topologiques avec coordonnées GPS.
loggerRé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
idAIdentifiant du premier bloc.
idBIdentifiant du second bloc.
Renvoie
Chaîne de la forme "min|max" — toujours identique quelle que soit l'ordre des paramètres.

◆ tagCrossovers()

void PCCGraphBuilder::tagCrossovers ( PCCGraph graph,
const TopologyData topo,
Logger logger 
)
staticprivate

La documentation de cette classe a été générée à partir des fichiers suivants :