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 du fichier PCCPanel.h

Panneau PCC superposé togglable, affiché par-dessus la carte Leaflet. Plus de détails...

#include "framework.h"
#include "TCORenderer.h"
#include "Engine/Core/Logger/Logger.h"
#include "Modules/PCC/PCCGraph.h"
#include <algorithm>
Graphe des dépendances par inclusion de PCCPanel.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Classes

class  PCCPanel
 

Description détaillée

Panneau PCC superposé togglable, affiché par-dessus la carte Leaflet.

La classe PCCPanel implémente un panneau enfant Win32 (WS_CHILD) qui se superpose au WebViewPanel sans l'affecter. Il est affiché ou masqué via toggle (typiquement branché sur F2 dans MainWindow).

Le rendu du schéma TCO est entièrement délégué à TCORenderer, appelé dans WM_PAINT. PCCPanel ne contient aucune logique de dessin.

Cache de projection (optimisation v2)
La projection logique → écran (TCORenderer::Projection) est mise en cache dans m_cachedProj. Elle est recalculée uniquement si la fenêtre a été redimensionnée (m_lastRect changé) ou si le graphe a été reconstruit (m_projDirty = true dans Rebuild).
Navigation (zoom / pan) — v3
La vue est pilotée par trois scalaires : m_zoom, m_panX, m_panY. Ils sont appliqués via SetWorldTransform sur le HDC dans onPaint, après remplissage du fond en espace écran mais avant l'appel à TCORenderer.
  • Zoom : Ctrl+Molette, centré sur la position courante de la souris. La formule conserve le point sous le curseur fixe :
    ratio = newZoom / oldZoom
    newPanX = cursorX - (cursorX - panX) * ratio
  • Pan : glisser-déposer bouton gauche (drag & drop). SetCapture / ReleaseCapture garantissent la capture hors fenêtre.
  • Reset : double-clic gauche remet zoom = 1, pan = (0, 0).
Cycle de vie
  1. create — enregistre la classe Win32 et crée la fenêtre enfant.
  2. toggle — alterne visibilité.
  3. resize — appelé sur WM_SIZE du parent pour couvrir toute la zone cliente.
  4. refresh — invalide le rectangle pour forcer un WM_PAINT.
Patron de conception – WndProc statique
Identique à MainWindow : this est stocké dans GWLP_USERDATA lors de WM_NCCREATE, permettant à windowProc de dispatcher vers handleMessage.
Note
Une seule instance est prévue, créée et possédée par MainWindow.