Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
Chargement...
Recherche...
Aucune correspondance
PCCSwitchNode.h
Aller à la documentation de ce fichier.
1
16#pragma once
17
18#include "PCCNode.h"
20
25class PCCSwitchNode : public PCCNode
26{
27public:
28
29 // =========================================================================
30 // Construction
31 // =========================================================================
32
41 explicit PCCSwitchNode(SwitchBlock* source, Logger& logger);
42
43 // =========================================================================
44 // Interface PCCNode
45 // =========================================================================
46
52 [[nodiscard]] PCCNodeType getNodeType() const override { return PCCNodeType::SWITCH; }
53
54 // =========================================================================
55 // Accesseur typé
56 // =========================================================================
57
68 [[nodiscard]] SwitchBlock* getSwitchSource() const { return m_switchSource; }
69
70 // =========================================================================
71 // Arêtes de branche — accès direct O(1)
72 // =========================================================================
73
80 [[nodiscard]] PCCEdge* getRootEdge() const { return m_rootEdge; }
81
88 [[nodiscard]] PCCEdge* getNormalEdge() const { return m_normalEdge; }
89
96 [[nodiscard]] PCCEdge* getDeviationEdge() const { return m_deviationEdge; }
97
98 // =========================================================================
99 // Mutations — appelées uniquement par PCCGraphBuilder
100 // =========================================================================
101
110 void setRootEdge(PCCEdge* edge) { m_rootEdge = edge; }
111
117 void setNormalEdge(PCCEdge* edge) { m_normalEdge = edge; }
118
125
126 // =========================================================================
127 // Côté géographique de la déviation
128 // =========================================================================
129
139 [[nodiscard]] int getDeviationSide() const { return m_deviationSide; }
140
148 void setDeviationSide(int side) { m_deviationSide = side; }
149
150private:
151
158
164 PCCEdge* m_rootEdge = nullptr;
165
172
179
187};
Nœud abstrait du graphe PCC représentant un bloc ferroviaire.
PCCNodeType
Type d'un nœud PCC — miroir de ElementType.
Definition PCCNode.h:40
Modèle de domaine d'un aiguillage ferroviaire à 3 branches.
Journaliseur associé à un moteur nommé.
Definition Logger.h:99
Connexion orientée entre deux PCCNode du PCCGraph.
Definition PCCEdge.h:50
Nœud abstrait du graphe PCC.
Definition PCCNode.h:70
Nœud PCC issu d'un SwitchBlock.
Definition PCCSwitchNode.h:26
PCCEdge * m_normalEdge
Definition PCCSwitchNode.h:171
SwitchBlock * getSwitchSource() const
Retourne le SwitchBlock source avec son type concret.
Definition PCCSwitchNode.h:68
void setDeviationSide(int side)
Assigne le côté géographique de la déviation.
Definition PCCSwitchNode.h:148
SwitchBlock * m_switchSource
Definition PCCSwitchNode.h:157
PCCEdge * getNormalEdge() const
Retourne l'arête correspondant à la branche normale.
Definition PCCSwitchNode.h:88
void setDeviationEdge(PCCEdge *edge)
Enregistre l'arête déviation de ce switch.
Definition PCCSwitchNode.h:124
int m_deviationSide
Definition PCCSwitchNode.h:186
PCCEdge * getDeviationEdge() const
Retourne l'arête correspondant à la branche déviée.
Definition PCCSwitchNode.h:96
void setNormalEdge(PCCEdge *edge)
Enregistre l'arête normale de ce switch.
Definition PCCSwitchNode.h:117
PCCEdge * m_rootEdge
Definition PCCSwitchNode.h:164
void setRootEdge(PCCEdge *edge)
Enregistre l'arête root de ce switch.
Definition PCCSwitchNode.h:110
PCCNodeType getNodeType() const override
Retourne PCCNodeType::SWITCH.
Definition PCCSwitchNode.h:52
int getDeviationSide() const
Retourne le côté géographique de la branche déviée.
Definition PCCSwitchNode.h:139
PCCEdge * getRootEdge() const
Retourne l'arête correspondant à la branche root.
Definition PCCSwitchNode.h:80
PCCEdge * m_deviationEdge
Definition PCCSwitchNode.h:178
Definition SwitchBlock.h:41