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 PCCStraightNode

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

#include <PCCStraightNode.h>

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

Fonctions membres publiques

 PCCStraightNode (StraightBlock *source, Logger &logger)
 Construit un nœud PCC depuis un StraightBlock.
 
PCCNodeType getNodeType () const override
 Retourne PCCNodeType::STRAIGHT.
 
StraightBlockgetStraightSource () const
 Retourne le StraightBlock source avec son type concret.
 
- 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

StraightBlockm_straightSource = nullptr
 

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 StraightBlock.

La relation "est-un" est exposée publiquement (héritage public) : un PCCStraightNode EST-UN PCCNode au sens du Liskov Substitution Principle — il peut être utilisé partout où un PCCNode* est attendu.

Documentation des constructeurs et destructeur

◆ PCCStraightNode()

PCCStraightNode::PCCStraightNode ( StraightBlock source,
Logger logger 
)
explicit

Construit un nœud PCC depuis un StraightBlock.

Le mot-clé explicit interdit la conversion implicite : PCCStraightNode n = ptr; est une erreur de compilation.

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

Documentation des fonctions membres

◆ getNodeType()

PCCNodeType PCCStraightNode::getNodeType ( ) const
inlineoverridevirtual

Retourne PCCNodeType::STRAIGHT.

Le mot-clé override demande au compilateur de vérifier que cette méthode surcharge bien une virtuelle de PCCNode. Sans override, une faute de frappe créerait une nouvelle méthode sans warning.

Renvoie
PCCNodeType::STRAIGHT.

Implémente PCCNode.

◆ getStraightSource()

StraightBlock * PCCStraightNode::getStraightSource ( ) const
inline

Retourne le StraightBlock source avec son type concret.

Donne accès direct à StraightBlock::getLengthMeters et aux coordonnées sans cast dynamique à l'appelant.

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

Documentation des données membres

◆ m_straightSource

StraightBlock* PCCStraightNode::m_straightSource = nullptr
private

Pointeur typé non-propriétaire vers le StraightBlock 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 :