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 de la classe PCCSwitchNode

Nœud PCC issu d'un SwitchBlock. Plus de détails...

#include <PCCSwitchNode.h>

Graphe d'héritage de PCCSwitchNode:
Graphe de collaboration de PCCSwitchNode:

Fonctions membres publiques

 PCCSwitchNode (SwitchBlock *source, Logger &logger)
 Construit un nœud PCC depuis un SwitchBlock.
 
PCCNodeType getNodeType () const override
 Retourne PCCNodeType::SWITCH.
 
SwitchBlockgetSwitchSource () const
 Retourne le SwitchBlock source avec son type concret.
 
PCCEdgegetRootEdge () const
 Retourne l'arête correspondant à la branche root.
 
PCCEdgegetNormalEdge () const
 Retourne l'arête correspondant à la branche normale.
 
PCCEdgegetDeviationEdge () 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.
 
PCCNodeoperator= (const PCCNode &)=delete
 
 PCCNode (PCCNode &&)=default
 Déplacement autorisé — requis par unique_ptr et vector.
 
PCCNodeoperator= (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.
 
ShuntingElementgetSource () const
 Retourne le pointeur non-propriétaire vers le bloc source.
 
const PCCPositiongetPosition () 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

SwitchBlockm_switchSource = nullptr
 
PCCEdgem_rootEdge = nullptr
 
PCCEdgem_normalEdge = nullptr
 
PCCEdgem_deviationEdge = nullptr
 
int m_deviationSide = 1
 

Membres hérités additionnels

- Attributs protégés hérités de PCCNode
std::string m_sourceId
 
ShuntingElementm_source = nullptr
 
PCCPosition m_position
 
std::vector< PCCEdge * > m_edges
 
Loggerm_logger
 

Description détaillée

Nœud PCC issu d'un SwitchBlock.

Documentation des constructeurs et destructeur

◆ PCCSwitchNode()

PCCSwitchNode::PCCSwitchNode ( SwitchBlock source,
Logger logger 
)
explicit

Construit un nœud PCC depuis un SwitchBlock.

Paramètres
sourcePointeur non-propriétaire vers le SwitchBlock. Doit rester valide pendant toute la durée de vie du nœud.
Exceptions
std::invalid_argumentSi source est nullptr.

Documentation des fonctions membres

◆ getDeviationEdge()

PCCEdge * PCCSwitchNode::getDeviationEdge ( ) const
inline

Retourne l'arête correspondant à la branche déviée.

Renvoie
Pointeur non-propriétaire vers l'arête déviation, ou nullptr si PCCGraphBuilder n'a pas encore résolu cette branche.

◆ getDeviationSide()

int PCCSwitchNode::getDeviationSide ( ) const
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.

Renvoie
+1 si la déviation va au nord (y positif, vers le haut), -1 si elle va au sud (y négatif, vers le bas).

◆ getNodeType()

PCCNodeType PCCSwitchNode::getNodeType ( ) const
inlineoverridevirtual

Retourne PCCNodeType::SWITCH.

Renvoie
PCCNodeType::SWITCH.

Implémente PCCNode.

◆ getNormalEdge()

PCCEdge * PCCSwitchNode::getNormalEdge ( ) const
inline

Retourne l'arête correspondant à la branche normale.

Renvoie
Pointeur non-propriétaire vers l'arête normale, ou nullptr si PCCGraphBuilder n'a pas encore résolu cette branche.

◆ getRootEdge()

PCCEdge * PCCSwitchNode::getRootEdge ( ) const
inline

Retourne l'arête correspondant à la branche root.

Renvoie
Pointeur non-propriétaire vers l'arête root, ou nullptr si PCCGraphBuilder n'a pas encore résolu cette branche.

◆ getSwitchSource()

SwitchBlock * PCCSwitchNode::getSwitchSource ( ) const
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.

Renvoie
Pointeur non-propriétaire vers le SwitchBlock source. Jamais nullptr si le nœud a été correctement construit.

◆ setDeviationEdge()

void PCCSwitchNode::setDeviationEdge ( PCCEdge edge)
inline

Enregistre l'arête déviation de ce switch.

Paramètres
edgePointeur non-propriétaire vers l'arête déviation.

◆ setDeviationSide()

void PCCSwitchNode::setDeviationSide ( int  side)
inline

Assigne le côté géographique de la déviation.

Appelé par PCCGraphBuilder après construction du graphe.

Paramètres
side+1 (nord/haut) ou -1 (sud/bas).

◆ setNormalEdge()

void PCCSwitchNode::setNormalEdge ( PCCEdge edge)
inline

Enregistre l'arête normale de ce switch.

Paramètres
edgePointeur non-propriétaire vers l'arête normale.

◆ setRootEdge()

void PCCSwitchNode::setRootEdge ( PCCEdge edge)
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.

Paramètres
edgePointeur non-propriétaire vers l'arête root.

Documentation des données membres

◆ m_deviationEdge

PCCEdge* PCCSwitchNode::m_deviationEdge = nullptr
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.

◆ m_deviationSide

int PCCSwitchNode::m_deviationSide = 1
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é.

◆ m_normalEdge

PCCEdge* PCCSwitchNode::m_normalEdge = nullptr
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.

◆ m_rootEdge

PCCEdge* PCCSwitchNode::m_rootEdge = nullptr
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.

◆ m_switchSource

SwitchBlock* PCCSwitchNode::m_switchSource = nullptr
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.


La documentation de cette classe a été générée à partir des fichiers suivants :