Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
Chargement...
Recherche...
Aucune correspondance
IntersectionMap.h
Aller à la documentation de ce fichier.
1
8#pragma once
9
10#include <unordered_map>
11#include <vector>
12
14
23{
24 size_t polylineIndex = 0;
25 size_t pointIndex = 0;
26
27 bool operator==(const SegmentId& o) const
28 {
30 && pointIndex == o.pointIndex;
31 }
32};
33
47{
49 double t = 0;
50 double u = 0;
52};
53
61{
62 int col = 0;
63 int row = 0;
64
65 bool operator==(const GridCell& o) const
66 {
67 return col == o.col && row == o.row;
68 }
69};
70
78{
79 size_t operator()(const GridCell& c) const
80 {
81 // Décalage pour gérer les indices négatifs
82 const size_t a = static_cast<size_t>(c.col + 10000);
83 const size_t b = static_cast<size_t>(c.row + 10000);
84 return (a + b) * (a + b + 1) / 2 + b;
85 }
86};
87
94using SpatialGrid = std::unordered_map<GridCell,
95 std::vector<SegmentId>,
97
106{
111 std::unordered_map<size_t, std::vector<IntersectionPoint>> intersections;
112
115
117 double cellSize = 500.0;
118
121
123 void clear()
124 {
125 intersections.clear();
126 grid.clear();
128 }
129};
Représentation d'une coordonnée plane en mètres (système métrique UTM).
std::unordered_map< GridCell, std::vector< SegmentId >, GridCellHash > SpatialGrid
Grille spatiale : cellule UTM → liste des segments la traversant.
Definition IntersectionMap.h:96
Coordonnée plane en mètres dans un système métrique (UTM ou similaire).
Definition CoordinateXY.h:23
Fonction de hachage pour GridCell — Cantor pairing.
Definition IntersectionMap.h:78
size_t operator()(const GridCell &c) const
Definition IntersectionMap.h:79
Clé de cellule de la grille spatiale de binning.
Definition IntersectionMap.h:61
int col
Indice de colonne (axe X UTM).
Definition IntersectionMap.h:62
bool operator==(const GridCell &o) const
Definition IntersectionMap.h:65
int row
Indice de ligne (axe Y UTM).
Definition IntersectionMap.h:63
Résultat de Phase2_GeometricIntersector.
Definition IntersectionMap.h:106
double cellSize
Definition IntersectionMap.h:117
size_t totalIntersections
Definition IntersectionMap.h:120
std::unordered_map< size_t, std::vector< IntersectionPoint > > intersections
Definition IntersectionMap.h:111
SpatialGrid grid
Definition IntersectionMap.h:114
void clear()
Vide les données — libère la mémoire après Phase 3.
Definition IntersectionMap.h:123
Point d'intersection entre deux segments, avec paramètres de position.
Definition IntersectionMap.h:47
SegmentId other
Identifiant du segment croisé.
Definition IntersectionMap.h:51
CoordinateXY point
Coordonnées UTM du point d'intersection.
Definition IntersectionMap.h:48
double u
Position relative sur le segment croisé (0..1).
Definition IntersectionMap.h:50
double t
Position relative sur le segment source (0..1).
Definition IntersectionMap.h:49
Identifiant unique d'un segment dans le RawNetwork.
Definition IntersectionMap.h:23
bool operator==(const SegmentId &o) const
Definition IntersectionMap.h:27
size_t pointIndex
Indice du premier point du segment.
Definition IntersectionMap.h:25
size_t polylineIndex
Indice dans RawNetwork::polylines.
Definition IntersectionMap.h:24