Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
Chargement...
Recherche...
Aucune correspondance
TCORenderer.h
Aller à la documentation de ce fichier.
1
18#pragma once
19
20#include "framework.h"
24
26{
27public:
28
39 {
40 int minX = 0;
41 int maxX = 0;
42 int minY = 0;
43 int maxY = 0;
44 int width = 0;
45 int height = 0;
46 int cellWidth = 1;
47 int cellHeight = 1;
48 int marginX = 0;
49 int centerY = 0;
50
51 // --- Constantes dérivées de cellWidth — précalculées une fois ---
52
54 int halfGap = 0;
55
60 int stub = 0;
61
66 int inactiveGap = 0;
67 };
68
80 static Projection computeProjection(const RECT& rect,
81 const PCCGraph& graph,
82 Logger& logger);
83
100 static void draw(HDC hdc, const RECT& rect,
101 const PCCGraph& graph,
102 const Projection& proj,
103 Logger& logger,
104 bool fillBackground = true);
105
106 TCORenderer() = delete;
107
108private:
109
117 static POINT project(int logicalX, int logicalY, const Projection& proj);
118
126 static void drawNodes(HDC hdc, const Projection& proj,
127 const PCCGraph& graph, Logger& logger);
128
135 static void drawStraightBlock(HDC hdc, const Projection& proj,
136 const PCCNode* node, Logger& logger);
137
148 static void drawSwitchBlock(HDC hdc, const Projection& proj,
149 const PCCSwitchNode* sw, Logger& logger);
150
156 static COLORREF stateToColor(ShuntingState state);
157};
Système de journalisation à 5 niveaux de trace, un fichier par moteur.
Conteneur propriétaire du graphe PCC.
Nœud PCC représentant un SwitchBlock.
ShuntingState
État opérationnel d'un élément de shuntage.
Definition ShuntingElement.h:18
Journaliseur associé à un moteur nommé.
Definition Logger.h:99
Conteneur propriétaire du graphe PCC — nœuds, arêtes et index.
Definition PCCGraph.h:50
Nœud abstrait du graphe PCC.
Definition PCCNode.h:70
Nœud PCC issu d'un SwitchBlock.
Definition PCCSwitchNode.h:26
Definition TCORenderer.h:26
TCORenderer()=delete
static void draw(HDC hdc, const RECT &rect, const PCCGraph &graph, const Projection &proj, Logger &logger, bool fillBackground=true)
Point d'entrée du rendu — remplit le fond puis dessine tous les nœuds.
Definition TCORenderer.cpp:100
static void drawNodes(HDC hdc, const Projection &proj, const PCCGraph &graph, Logger &logger)
Dessine tous les nœuds du graphe avec la projection fournie.
Definition TCORenderer.cpp:197
static COLORREF stateToColor(ShuntingState state)
Retourne la couleur GDI correspondant à un état ShuntingState.
Definition TCORenderer.cpp:467
static Projection computeProjection(const RECT &rect, const PCCGraph &graph, Logger &logger)
Calcule la projection logique → écran depuis le graphe et la RECT.
Definition TCORenderer.cpp:134
static void drawSwitchBlock(HDC hdc, const Projection &proj, const PCCSwitchNode *sw, Logger &logger)
Dessine un nœud SwitchBlock (root + normal + déviation).
Definition TCORenderer.cpp:286
static POINT project(int logicalX, int logicalY, const Projection &proj)
Projette une position logique (x, y) en coordonnées écran.
Definition TCORenderer.cpp:184
static void drawStraightBlock(HDC hdc, const Projection &proj, const PCCNode *node, Logger &logger)
Dessine un nœud StraightBlock (trait horizontal avec gap).
Definition TCORenderer.cpp:248
Paramètres de projection logique → écran.
Definition TCORenderer.h:39
int halfGap
Definition TCORenderer.h:54
int inactiveGap
Definition TCORenderer.h:66
int maxY
Definition TCORenderer.h:43
int cellHeight
Definition TCORenderer.h:47
int cellWidth
Definition TCORenderer.h:46
int maxX
Definition TCORenderer.h:41
int stub
Definition TCORenderer.h:60
int marginX
Definition TCORenderer.h:48
int height
Definition TCORenderer.h:45
int minX
Definition TCORenderer.h:40
int width
Definition TCORenderer.h:44
int centerY
Definition TCORenderer.h:49
int minY
Definition TCORenderer.h:42