|
Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
|
Nœud PCC issu d'un SwitchBlock. Plus de détails...
#include <PCCSwitchNode.h>
Fonctions membres publiques | |
| PCCSwitchNode (SwitchBlock *source, Logger &logger) | |
| Construit un nœud PCC depuis un SwitchBlock. | |
| PCCNodeType | getNodeType () const override |
Retourne PCCNodeType::SWITCH. | |
| SwitchBlock * | getSwitchSource () const |
| Retourne le SwitchBlock source avec son type concret. | |
| PCCEdge * | getRootEdge () const |
| Retourne l'arête correspondant à la branche root. | |
| PCCEdge * | getNormalEdge () const |
| Retourne l'arête correspondant à la branche normale. | |
| PCCEdge * | getDeviationEdge () const |
| Retourne l'arête correspondant à la branche déviée. | |
| void | setRootEdge (PCCEdge *edge) |
| Enregistre l'arête root de ce switch. | |
| void | setNormalEdge (PCCEdge *edge) |
| Enregistre l'arête normale de ce switch. | |
| void | setDeviationEdge (PCCEdge *edge) |
| Enregistre l'arête déviation de ce switch. | |
| int | getDeviationSide () const |
| Retourne le côté géographique de la branche déviée. | |
| void | setDeviationSide (int side) |
| Assigne le côté géographique de la déviation. | |
Fonctions membres publiques hérités de PCCNode | |
| PCCNode (std::string sourceId, ShuntingElement *source, Logger &logger) | |
| Construit un nœud PCC à partir d'un bloc source. | |
| PCCNode (const PCCNode &)=delete | |
| Interdit la copie — slicing et aliasing du pointeur source. | |
| PCCNode & | operator= (const PCCNode &)=delete |
| PCCNode (PCCNode &&)=default | |
| Déplacement autorisé — requis par unique_ptr et vector. | |
| PCCNode & | operator= (PCCNode &&)=default |
| virtual | ~PCCNode ()=default |
| Destructeur virtuel — obligatoire pour le delete via pointeur de base. | |
| const std::string & | getSourceId () const |
| Retourne l'identifiant du bloc source. | |
| ShuntingElement * | getSource () const |
| Retourne le pointeur non-propriétaire vers le bloc source. | |
| const PCCPosition & | getPosition () const |
| Retourne la position logique du nœud dans le schéma PCC. | |
| const std::vector< PCCEdge * > & | getEdges () const |
| Retourne la liste des arêtes adjacentes (non-propriétaires). | |
| void | setPosition (PCCPosition position) |
| Assigne la position logique calculée par PCCLayout. | |
| void | addEdge (PCCEdge *edge) |
| Enregistre une arête adjacente (pointeur non-propriétaire). | |
| bool | isCrossover () const |
| void | setCrossover (bool v) |
Attributs privés | |
| SwitchBlock * | m_switchSource = nullptr |
| PCCEdge * | m_rootEdge = nullptr |
| PCCEdge * | m_normalEdge = nullptr |
| PCCEdge * | m_deviationEdge = nullptr |
| int | m_deviationSide = 1 |
Membres hérités additionnels | |
Attributs protégés hérités de PCCNode | |
| std::string | m_sourceId |
| ShuntingElement * | m_source = nullptr |
| PCCPosition | m_position |
| std::vector< PCCEdge * > | m_edges |
| Logger & | m_logger |
Nœud PCC issu d'un SwitchBlock.
|
explicit |
Construit un nœud PCC depuis un SwitchBlock.
| source | Pointeur non-propriétaire vers le SwitchBlock. Doit rester valide pendant toute la durée de vie du nœud. |
| std::invalid_argument | Si source est nullptr. |
|
inline |
Retourne l'arête correspondant à la branche déviée.
nullptr si PCCGraphBuilder n'a pas encore résolu cette branche.
|
inline |
Retourne le côté géographique de la branche déviée.
Calculé par PCCGraphBuilder::computeDeviationSides à partir des coordonnées GPS du switch et de sa branche déviation.
|
inlineoverridevirtual |
|
inline |
Retourne l'arête correspondant à la branche normale.
nullptr si PCCGraphBuilder n'a pas encore résolu cette branche.
|
inline |
Retourne l'arête correspondant à la branche root.
nullptr si PCCGraphBuilder n'a pas encore résolu cette branche.
|
inline |
Retourne le SwitchBlock source avec son type concret.
Donne accès direct à SwitchBlock::getActiveBranch, SwitchBlock::isOriented et SwitchBlock::getState sans cast dynamique à l'appelant.
|
inline |
Enregistre l'arête déviation de ce switch.
| edge | Pointeur non-propriétaire vers l'arête déviation. |
|
inline |
Assigne le côté géographique de la déviation.
Appelé par PCCGraphBuilder après construction du graphe.
| side | +1 (nord/haut) ou -1 (sud/bas). |
|
inline |
Enregistre l'arête normale de ce switch.
| edge | Pointeur non-propriétaire vers l'arête normale. |
|
inline |
Enregistre l'arête root de ce switch.
Appelé par PCCGraphBuilder après création de l'arête dans PCCGraph. Ne prend pas ownership.
| edge | Pointeur non-propriétaire vers l'arête root. |
|
private |
Arête non-propriétaire vers la branche déviée. Nullptr tant que PCCGraphBuilder n'a pas résolu la branche. Propriété de PCCGraph — ne pas delete.
|
private |
Côté géographique de la déviation : +1 = nord/haut, -1 = sud/bas. Calculé par PCCGraphBuilder::computeDeviationSides à partir de la comparaison latitude déviation vs latitude switch. Défaut +1 si non calculé.
|
private |
Arête non-propriétaire vers la branche normale. Nullptr tant que PCCGraphBuilder n'a pas résolu la branche. Propriété de PCCGraph — ne pas delete.
|
private |
Arête non-propriétaire vers la branche root. Nullptr tant que PCCGraphBuilder n'a pas résolu la branche. Propriété de PCCGraph — ne pas delete.
|
private |
Pointeur typé non-propriétaire vers le SwitchBlock source. Redondant avec PCCNode::m_source — évite les casts dynamiques. Propriété de TopologyRepository — ne pas delete.