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 Phase3_NetworkSplitter

#include <Phase3_NetworkSplitter.h>

Graphe de collaboration de Phase3_NetworkSplitter:

Fonctions membres publiques

 Phase3_NetworkSplitter ()=delete
 

Fonctions membres publiques statiques

static void run (PipelineContext &ctx, const ParserConfig &config, Logger &logger)
 Exécute la phase 3.
 

Fonctions membres privées statiques

static std::vector< double > collectCutParams (const PipelineContext &ctx, size_t globalIdx, double segLen, double epsilon)
 Collecte, trie et dédoublonne les paramètres de découpe d'un segment.
 
static CoordinateXY interpolateUTM (const CoordinateXY &A, const CoordinateXY &B, double t)
 Interpolation linéaire d'un point UTM sur un segment.
 
static CoordinateLatLon interpolateWGS84 (const CoordinateLatLon &A, const CoordinateLatLon &B, double t)
 Interpolation linéaire d'un point WGS84 sur un segment.
 
static void subdivideLong (const CoordinateXY &A, const CoordinateLatLon &Ageo, const CoordinateXY &B, const CoordinateLatLon &Bgeo, double maxLen, size_t parentIdx, std::vector< AtomicSegment > &out)
 Subdivise un sous-segment si sa longueur dépasse maxLen.
 

Documentation des constructeurs et destructeur

◆ Phase3_NetworkSplitter()

Phase3_NetworkSplitter::Phase3_NetworkSplitter ( )
delete

Documentation des fonctions membres

◆ collectCutParams()

std::vector< double > Phase3_NetworkSplitter::collectCutParams ( const PipelineContext ctx,
size_t  globalIdx,
double  segLen,
double  epsilon 
)
staticprivate

Collecte, trie et dédoublonne les paramètres de découpe d'un segment.

Récupère les t depuis ctx.intersections pour le segment global globalIdx, ajoute les bornes 0.0 et 1.0, trie, dédoublonne, et filtre les micro-gaps.

Paramètres
ctxContexte pipeline.
globalIdxIndex global du segment.
segLenLongueur du segment en mètres UTM.
epsilonTolérance pour le filtrage des micro-segments.
Renvoie
Vecteur trié de paramètres t ∈ [0,1], sans doublons, sans micro-gaps.

◆ interpolateUTM()

CoordinateXY Phase3_NetworkSplitter::interpolateUTM ( const CoordinateXY A,
const CoordinateXY B,
double  t 
)
staticprivate

Interpolation linéaire d'un point UTM sur un segment.

Paramètres
APremier point UTM.
BSecond point UTM.
tParamètre ∈ [0,1].
Renvoie
Point UTM interpolé.

◆ interpolateWGS84()

CoordinateLatLon Phase3_NetworkSplitter::interpolateWGS84 ( const CoordinateLatLon A,
const CoordinateLatLon B,
double  t 
)
staticprivate

Interpolation linéaire d'un point WGS84 sur un segment.

Approximation linéaire valable pour des segments < 10 km.

Paramètres
APremier point WGS84.
BSecond point WGS84.
tParamètre ∈ [0,1].
Renvoie
Point WGS84 interpolé.

◆ run()

void Phase3_NetworkSplitter::run ( PipelineContext ctx,
const ParserConfig config,
Logger logger 
)
static

Exécute la phase 3.

Découpe les segments de ctx.rawNetwork aux intersections de ctx.intersections et aux longueurs max, puis écrit le résultat dans ctx.splitNetwork. Libère ctx.rawNetwork et ctx.intersections en fin d'exécution.

Paramètres
ctxContexte pipeline. Lit rawNetwork + intersections, écrit splitNetwork. Libère rawNetwork + intersections.
configConfiguration — utilise maxSegmentLength et intersectionEpsilon.
loggerRéférence au logger GeoParser.

◆ subdivideLong()

void Phase3_NetworkSplitter::subdivideLong ( const CoordinateXY A,
const CoordinateLatLon Ageo,
const CoordinateXY B,
const CoordinateLatLon Bgeo,
double  maxLen,
size_t  parentIdx,
std::vector< AtomicSegment > &  out 
)
staticprivate

Subdivise un sous-segment si sa longueur dépasse maxLen.

Produit ⌈length / maxLen⌉ portions de longueur égale et les appende à out.

Paramètres
AExtrémité A UTM.
AgeoExtrémité A WGS84.
BExtrémité B UTM.
BgeoExtrémité B WGS84.
maxLenLongueur maximale autorisée (mètres UTM).
parentIdxIndice de la polyligne parente.
outVecteur de sortie — les portions sont appendées.

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