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 du fichier Phase6_BlockExtractor.h

Phase 6 du pipeline — extraction des blocs ferroviaires. Plus de détails...

Graphe des dépendances par inclusion de Phase6_BlockExtractor.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Classes

class  Phase6_BlockExtractor
 

Description détaillée

Phase 6 du pipeline — extraction des blocs ferroviaires.

Algorithme
  1. Les StraightBlock sont extraits en premier par DFS entre nœuds frontières. La déduplication repose sur les indices d'arêtes (usedEdges) et non plus sur la clé de paire de nœuds, ce qui permet de créer deux straights distincts entre les mêmes deux switches dans les configurations crossover (voie double).
  2. Si un straight assemblé dépasse config.maxSegmentLength, il est subdivisé en N sous-blocs chaînés via prev/next.
  3. Les index directionnels (straightByDirectedPair, multi-valués) permettent à extractSwitches de résoudre le sous-bloc adjacent à chaque switch, en sélectionnant à chaque branche la première entrée non encore utilisée.
  4. Un SwitchBlock par nœud NodeClass::SWITCH.
Crossover — correction v2
L'ancienne déduplication par pairKey(startNode, endNode) empêchait la création d'un second straight entre les mêmes deux nœuds frontières. La nouvelle déduplication marque les arêtes (startEdge et lastEdge) comme « utilisées », ce qui permet plusieurs straights entre la même paire de switches tout en évitant les doublons directionnel A→B / B→A.
Note
Classe entièrement statique — instanciation interdite.