Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
Chargement...
Recherche...
Aucune correspondance
PipelineContext.h
Aller à la documentation de ce fichier.
1
17#pragma once
18
19#include <chrono>
20#include <string>
21#include <vector>
22#include <numeric>
23
24#include "RawNetwork.h"
25#include "IntersectionMap.h"
26#include "SplitNetwork.h"
27#include "TopologyGraph.h"
28#include "ClassifiedNodes.h"
29#include "BlockSet.h"
30
36{
37 std::string name;
38 double durationMs = 0;
39 size_t inputCount = 0;
40 size_t outputCount = 0;
41};
42
51{
52 // =========================================================================
53 // Entrée
54 // =========================================================================
55
57 std::string filePath;
58
59 // =========================================================================
60 // Résultats intermédiaires — un champ par phase
61 // =========================================================================
62
65
68
71
74
77
80
81 // =========================================================================
82 // Instrumentation
83 // =========================================================================
84
86 std::vector<PhaseStats> stats;
87
93 [[nodiscard]] static std::chrono::steady_clock::time_point startTimer()
94 {
95 return std::chrono::steady_clock::now();
96 }
97
106 void endTimer(std::chrono::steady_clock::time_point start,
107 const std::string& name,
108 size_t inputCount = 0,
109 size_t outputCount = 0)
110 {
111 const auto end = std::chrono::steady_clock::now();
112 stats.push_back({
113 name,
114 std::chrono::duration<double, std::milli>(end - start).count(),
115 inputCount,
116 outputCount
117 });
118 }
119};
Structures de données produites par Phase6_BlockExtractor.
Structures de données produites par Phase5_SwitchClassifier.
Structures de données produites par Phase2_GeometricIntersector.
Structures de données produites par Phase1_GeoLoader.
Structures de données produites par Phase3_NetworkSplitter.
Structures de données produites par Phase4_TopologyBuilder.
Conteneur propriétaire des StraightBlock et SwitchBlock.
Definition BlockSet.h:48
Résultat de Phase5_SwitchClassifier.
Definition ClassifiedNodes.h:38
Résultat de Phase2_GeometricIntersector.
Definition IntersectionMap.h:106
Métriques d'une phase du pipeline.
Definition PipelineContext.h:36
size_t inputCount
Nombre d'éléments en entrée.
Definition PipelineContext.h:39
size_t outputCount
Nombre d'éléments produits.
Definition PipelineContext.h:40
double durationMs
Durée d'exécution en millisecondes.
Definition PipelineContext.h:38
std::string name
Nom de la phase.
Definition PipelineContext.h:37
Conteneur central du pipeline GeoParser.
Definition PipelineContext.h:51
std::string filePath
Definition PipelineContext.h:57
static std::chrono::steady_clock::time_point startTimer()
Démarre un chronomètre — à appeler au début d'une phase.
Definition PipelineContext.h:93
void endTimer(std::chrono::steady_clock::time_point start, const std::string &name, size_t inputCount=0, size_t outputCount=0)
Arrête le chronomètre et enregistre les stats de la phase.
Definition PipelineContext.h:106
std::vector< PhaseStats > stats
Definition PipelineContext.h:86
RawNetwork rawNetwork
Definition PipelineContext.h:64
TopologyGraph topoGraph
Definition PipelineContext.h:73
SplitNetwork splitNetwork
Definition PipelineContext.h:70
BlockSet blocks
Definition PipelineContext.h:79
IntersectionData intersections
Definition PipelineContext.h:67
ClassifiedNodes classifiedNodes
Definition PipelineContext.h:76
Résultat de Phase1_GeoLoader — ensemble des polylignes du GeoJSON.
Definition RawNetwork.h:47
Résultat de Phase3_NetworkSplitter — ensemble des segments atomiques.
Definition SplitNetwork.h:79
Résultat de Phase4_TopologyBuilder — graphe planaire complet.
Definition TopologyGraph.h:70