Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
Chargement...
Recherche...
Aucune correspondance
Phase6_BlockExtractor.h
Aller à la documentation de ce fichier.
1
27
#pragma once
28
29
#include "
PipelineContext.h
"
30
#include "
Engine/Core/Config/ParserConfig.h
"
31
#include "
Engine/Core/Logger/Logger.h
"
32
33
class
Phase6_BlockExtractor
34
{
35
public
:
36
52
static
void
run
(
PipelineContext
& ctx,
53
const
ParserConfig
& config,
54
Logger
& logger);
55
56
Phase6_BlockExtractor
() =
delete
;
57
58
private
:
59
76
static
void
extractStraights
(
PipelineContext
& ctx,
77
const
ParserConfig
& config,
78
Logger
& logger);
79
98
static
void
extractSwitches
(
PipelineContext
& ctx,
Logger
& logger);
99
123
static
void
registerStraight
(
PipelineContext
& ctx,
124
const
std::vector<CoordinateXY>& ptsUTM,
125
const
std::vector<CoordinateLatLon>& ptsWGS84,
126
size_t
nodeA,
127
size_t
nodeB,
128
const
std::string& baseId,
129
double
maxLen,
130
const
BlockEndpoint
& epA,
131
const
BlockEndpoint
& epB);
132
134
static
bool
isFrontier
(
const
PipelineContext
& ctx,
size_t
nodeId);
135
137
static
void
appendSegment
(std::vector<CoordinateXY>& ptsUTM,
138
std::vector<CoordinateLatLon>& ptsWGS84,
139
const
AtomicSegment
& seg,
140
bool
reversed);
141
147
static
size_t
directedKey
(
size_t
from,
size_t
to)
148
{
149
return
from * 1'000'000ULL + to;
150
}
151
157
static
size_t
pairKey
(
size_t
idA,
size_t
idB)
158
{
159
const
size_t
a = std::min(idA, idB);
160
const
size_t
b = std::max(idA, idB);
161
return
(a + b) * (a + b + 1) / 2 + b;
162
}
163
165
static
double
computeLength
(
const
std::vector<CoordinateXY>& pts);
166
};
Logger.h
Système de journalisation à 5 niveaux de trace, un fichier par moteur.
ParserConfig.h
Paramètres de configuration du pipeline GeoParser.
PipelineContext.h
Conteneur central des données inter-phases du pipeline GeoParser.
Logger
Journaliseur associé à un moteur nommé.
Definition
Logger.h:99
Phase6_BlockExtractor
Definition
Phase6_BlockExtractor.h:34
Phase6_BlockExtractor::directedKey
static size_t directedKey(size_t from, size_t to)
Clé directionnelle : from * 1'000'000 + to.
Definition
Phase6_BlockExtractor.h:147
Phase6_BlockExtractor::registerStraight
static void registerStraight(PipelineContext &ctx, const std::vector< CoordinateXY > &ptsUTM, const std::vector< CoordinateLatLon > &ptsWGS84, size_t nodeA, size_t nodeB, const std::string &baseId, double maxLen, const BlockEndpoint &epA, const BlockEndpoint &epB)
Crée un ou plusieurs StraightBlock depuis la géométrie assemblée.
Definition
Phase6_BlockExtractor.cpp:183
Phase6_BlockExtractor::Phase6_BlockExtractor
Phase6_BlockExtractor()=delete
Phase6_BlockExtractor::computeLength
static double computeLength(const std::vector< CoordinateXY > &pts)
Calcule la longueur UTM d'une polyligne.
Definition
Phase6_BlockExtractor.cpp:440
Phase6_BlockExtractor::run
static void run(PipelineContext &ctx, const ParserConfig &config, Logger &logger)
Exécute la phase 6.
Definition
Phase6_BlockExtractor.cpp:42
Phase6_BlockExtractor::extractStraights
static void extractStraights(PipelineContext &ctx, const ParserConfig &config, Logger &logger)
Extrait les StraightBlocks par DFS entre nœuds frontières.
Definition
Phase6_BlockExtractor.cpp:76
Phase6_BlockExtractor::extractSwitches
static void extractSwitches(PipelineContext &ctx, Logger &logger)
Extrait les SwitchBlocks et résout leurs endpoints.
Definition
Phase6_BlockExtractor.cpp:319
Phase6_BlockExtractor::isFrontier
static bool isFrontier(const PipelineContext &ctx, size_t nodeId)
Nœud non-STRAIGHT → frontière.
Definition
Phase6_BlockExtractor.cpp:410
Phase6_BlockExtractor::pairKey
static size_t pairKey(size_t idA, size_t idB)
Clé canonique Cantor(min, max) — indépendante de l'ordre.
Definition
Phase6_BlockExtractor.h:157
Phase6_BlockExtractor::appendSegment
static void appendSegment(std::vector< CoordinateXY > &ptsUTM, std::vector< CoordinateLatLon > &ptsWGS84, const AtomicSegment &seg, bool reversed)
Ajoute les points d'un AtomicSegment à la géométrie accumulée.
Definition
Phase6_BlockExtractor.cpp:416
AtomicSegment
Segment atomique entre deux nœuds topologiques potentiels.
Definition
SplitNetwork.h:29
BlockEndpoint
Extrémité d'un bloc — nœud frontière + ID du bloc voisin.
Definition
BlockSet.h:35
ParserConfig
Configuration complète du pipeline GeoParser — POD sans logique.
Definition
ParserConfig.h:16
PipelineContext
Conteneur central du pipeline GeoParser.
Definition
PipelineContext.h:51
SimulateurFerroviaire
Modules
GeoParser
Pipeline
Phase6_BlockExtractor.h
Généré par
1.9.8