|
Simulateur Ferroviaire
Reconstruction et visualisation d'un réseau ferroviaire à partir de données GeoJSON — Win32 / WebView2 / Leaflet
|
Nœud PCC issu d'un StraightBlock. Plus de détails...
#include <PCCStraightNode.h>
Fonctions membres publiques | |
| PCCStraightNode (StraightBlock *source, Logger &logger) | |
| Construit un nœud PCC depuis un StraightBlock. | |
| PCCNodeType | getNodeType () const override |
Retourne PCCNodeType::STRAIGHT. | |
| StraightBlock * | getStraightSource () 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. | |
| 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 | |
| StraightBlock * | m_straightSource = nullptr |
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 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.
|
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.
| source | Pointeur non-propriétaire vers le StraightBlock. Doit rester valide pendant toute la durée de vie du nœud. |
| std::invalid_argument | Si source est nullptr. |
|
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.
Implémente PCCNode.
|
inline |
Retourne le StraightBlock source avec son type concret.
Donne accès direct à StraightBlock::getLengthMeters et aux coordonnées sans cast dynamique à l'appelant.
|
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.