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 StraightBlock

#include <StraightBlock.h>

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

Classes

struct  StraightNeighbours
 Voisins topologiques résolus (pointeurs non-propriétaires). Plus de détails...
 

Fonctions membres publiques

 StraightBlock ()=default
 Constructeur par défaut.
 
std::string getId () const override
 Retourne l'identifiant unique de l'élément (ex. "sw/3", "s/12").
 
ElementType getType () const override
 Retourne le type de l'élément.
 
ShuntingState getState () const override
 Retourne l'état opérationnel courant de l'élément.
 
void setState (ShuntingState state)
 
const std::vector< CoordinateLatLon > & getPointsWGS84 () const
 Polyligne WGS-84 ordonnée. Premier point = extrémité A. Dernier point = extrémité B.
 
const std::vector< CoordinateXY > & getPointsUTM () const
 Polyligne projetée en UTM (x = est, y = nord, mètres). Même taille et même index que getPointsWGS84(). Vide si non renseigné par le pipeline v2.
 
std::vector< CoordinateXY > & getPointsUTMRef ()
 Référence modifiable sur la polyligne UTM. Utilisée par Phase7_SwitchProcessor::trimStraightOverlaps().
 
double getLengthMeters () const
 Longueur géodésique Haversine en mètres (depuis pointsWGS84). Mise à jour par setPointsWGS84().
 
double getLengthUTM () const
 Longueur euclidienne en mètres depuis les coordonnées UTM. Retourne 0 si pointsUTM est vide ou contient moins de 2 points.
 
const std::vector< std::string > & getNeighbourIds () const
 Identifiants des blocs adjacents (StraightBlock ou SwitchBlock). Triés lexicographiquement — addNeighbourId() maintient l'ordre.
 
const StraightNeighboursgetNeighbours () const
 Retourne les voisins résolus. nullptr si non encore initialisé.
 
std::string toString () const
 Représentation textuelle pour le débogage.
 
void setId (std::string id)
 Assigne l'identifiant du bloc. Appelé par Phase6_BlockExtractor lors de la création du bloc.
 
void setPointsWGS84 (std::vector< CoordinateLatLon > points)
 Remplace la polyligne WGS84 et recalcule la longueur géodésique.
 
void setPointsUTM (std::vector< CoordinateXY > points)
 Assigne la polyligne UTM.
 
void addNeighbourId (const std::string &id)
 Ajoute un voisin en maintenant l'ordre lexicographique. Pas de doublon.
 
void replaceNeighbourId (const std::string &oldId, const std::string &newId)
 Remplace un ID de voisin par un autre. Utilisé lors de l'absorption du segment de liaison double switch.
 
void setNeighbourPrev (ShuntingElement *elem)
 Assigne le voisin côté extrémité A.
 
void setNeighbourNext (ShuntingElement *elem)
 Assigne le voisin côté extrémité B.
 
void setNeighbourPointers (StraightNeighbours neighbours)
 Enregistre les pointeurs prev/next en une seule opération.
 
- Fonctions membres publiques hérités de ShuntingElement
 ShuntingElement ()=default
 
virtual ~ShuntingElement ()=default
 
 ShuntingElement (ShuntingElement &&)=default
 
ShuntingElementoperator= (ShuntingElement &&)=default
 
bool isFree () const
 Retourne true si l'élément est libre.
 
bool isOccupied () const
 Retourne true si l'élément est occupé.
 
bool isInactive () const
 Retourne true si l'élément est hors service.
 
- Fonctions membres publiques hérités de Element
 Element ()=default
 
virtual ~Element ()=default
 
 Element (const Element &)=delete
 Interdit la copie — risque de slicing.
 
Elementoperator= (const Element &)=delete
 
 Element (Element &&)=default
 Déplacement autorisé — requis par le pipeline de construction.
 
Elementoperator= (Element &&)=default
 

Fonctions membres privées

double computeGeodesicLength () const
 Calcule la longueur géodésique totale depuis m_pointsWGS84. Somme des distances Haversine entre chaque paire de points consécutifs.
 

Attributs privés

std::vector< CoordinateLatLonm_pointsWGS84
 
std::vector< CoordinateXYm_pointsUTM
 
std::vector< std::string > m_neighbourIds
 
StraightNeighbours m_neighbours
 
double m_lengthMeters = 0.0
 
ShuntingState m_state = ShuntingState::FREE
 

Membres hérités additionnels

- Attributs protégés hérités de ShuntingElement
ShuntingState m_state = ShuntingState::FREE
 
- Attributs protégés hérités de Element
std::string m_id
 id de l'element
 
- Attributs protégés statiques hérités de Element
static Logger m_logger
 Logger statique partagé par TOUS les éléments interactifs.
 

Documentation des constructeurs et destructeur

◆ StraightBlock()

StraightBlock::StraightBlock ( )
default

Constructeur par défaut.

Le pipeline v2 (Phase6_BlockExtractor) crée les blocs via ce constructeur puis renseigne la géométrie et la topologie via les setters dédiés. Le constructeur paramétré v1 a été supprimé — il n'est plus appelé.

Documentation des fonctions membres

◆ addNeighbourId()

void StraightBlock::addNeighbourId ( const std::string &  id)

Ajoute un voisin en maintenant l'ordre lexicographique. Pas de doublon.

◆ computeGeodesicLength()

double StraightBlock::computeGeodesicLength ( ) const
private

Calcule la longueur géodésique totale depuis m_pointsWGS84. Somme des distances Haversine entre chaque paire de points consécutifs.

◆ getId()

std::string StraightBlock::getId ( ) const
inlineoverridevirtual

Retourne l'identifiant unique de l'élément (ex. "sw/3", "s/12").

Implémente Element.

◆ getLengthMeters()

double StraightBlock::getLengthMeters ( ) const
inline

Longueur géodésique Haversine en mètres (depuis pointsWGS84). Mise à jour par setPointsWGS84().

◆ getLengthUTM()

double StraightBlock::getLengthUTM ( ) const

Longueur euclidienne en mètres depuis les coordonnées UTM. Retourne 0 si pointsUTM est vide ou contient moins de 2 points.

◆ getNeighbourIds()

const std::vector< std::string > & StraightBlock::getNeighbourIds ( ) const
inline

Identifiants des blocs adjacents (StraightBlock ou SwitchBlock). Triés lexicographiquement — addNeighbourId() maintient l'ordre.

◆ getNeighbours()

const StraightNeighbours & StraightBlock::getNeighbours ( ) const
inline

Retourne les voisins résolus. nullptr si non encore initialisé.

◆ getPointsUTM()

const std::vector< CoordinateXY > & StraightBlock::getPointsUTM ( ) const
inline

Polyligne projetée en UTM (x = est, y = nord, mètres). Même taille et même index que getPointsWGS84(). Vide si non renseigné par le pipeline v2.

◆ getPointsUTMRef()

std::vector< CoordinateXY > & StraightBlock::getPointsUTMRef ( )
inline

Référence modifiable sur la polyligne UTM. Utilisée par Phase7_SwitchProcessor::trimStraightOverlaps().

◆ getPointsWGS84()

const std::vector< CoordinateLatLon > & StraightBlock::getPointsWGS84 ( ) const
inline

Polyligne WGS-84 ordonnée. Premier point = extrémité A. Dernier point = extrémité B.

◆ getState()

ShuntingState StraightBlock::getState ( ) const
inlineoverridevirtual

Retourne l'état opérationnel courant de l'élément.

Renvoie
ShuntingState::FREE – libre, opérationnel. ShuntingState::OCCUPIED – occupé par un véhicule. ShuntingState::INACTIVE – hors service (panne / maintenance).

Implémente ShuntingElement.

◆ getType()

ElementType StraightBlock::getType ( ) const
inlineoverridevirtual

Retourne le type de l'élément.

Renvoie
ElementType::SWITCH ou ElementType::STRAIGHT.

Implémente Element.

◆ replaceNeighbourId()

void StraightBlock::replaceNeighbourId ( const std::string &  oldId,
const std::string &  newId 
)

Remplace un ID de voisin par un autre. Utilisé lors de l'absorption du segment de liaison double switch.

◆ setId()

void StraightBlock::setId ( std::string  id)
inline

Assigne l'identifiant du bloc. Appelé par Phase6_BlockExtractor lors de la création du bloc.

Paramètres
idIdentifiant unique (ex. "s/0").

◆ setNeighbourNext()

void StraightBlock::setNeighbourNext ( ShuntingElement elem)
inline

Assigne le voisin côté extrémité B.

Paramètres
elemPointeur non-propriétaire. nullptr si terminus.

◆ setNeighbourPointers()

void StraightBlock::setNeighbourPointers ( StraightNeighbours  neighbours)

Enregistre les pointeurs prev/next en une seule opération.

Paramètres
neighboursStruct contenant les deux extrémités résolues.

◆ setNeighbourPrev()

void StraightBlock::setNeighbourPrev ( ShuntingElement elem)
inline

Assigne le voisin côté extrémité A.

Paramètres
elemPointeur non-propriétaire. nullptr si terminus.

◆ setPointsUTM()

void StraightBlock::setPointsUTM ( std::vector< CoordinateXY points)
inline

Assigne la polyligne UTM.

Paramètres
pointsPoints projetés en UTM (même taille que pointsWGS84).

◆ setPointsWGS84()

void StraightBlock::setPointsWGS84 ( std::vector< CoordinateLatLon points)

Remplace la polyligne WGS84 et recalcule la longueur géodésique.

Paramètres
pointsPolyligne WGS-84 ordonnée (≥ 2 points).

◆ setState()

void StraightBlock::setState ( ShuntingState  state)
inline

◆ toString()

std::string StraightBlock::toString ( ) const

Représentation textuelle pour le débogage.

Documentation des données membres

◆ m_lengthMeters

double StraightBlock::m_lengthMeters = 0.0
private

Longueur géodésique totale en mètres (Haversine sur m_pointsWGS84). Mise à jour automatiquement par setPointsWGS84().

◆ m_neighbourIds

std::vector<std::string> StraightBlock::m_neighbourIds
private

IDs des blocs adjacents (StraightBlock ou SwitchBlock). Trié lexicographiquement — addNeighbourId() maintient l'invariant.

◆ m_neighbours

StraightNeighbours StraightBlock::m_neighbours
private

Pointeurs non-propriétaires vers les blocs adjacents. Renseignés par Phase9_RepositoryTransfer::resolve(). Propriété de TopologyRepository — ne pas delete.

◆ m_pointsUTM

std::vector<CoordinateXY> StraightBlock::m_pointsUTM
private

Polyligne UTM (x = est, y = nord, mètres). Même taille et même index que m_pointsWGS84. Renseigné par le pipeline v2 (Phase6_BlockExtractor).

◆ m_pointsWGS84

std::vector<CoordinateLatLon> StraightBlock::m_pointsWGS84
private

Polyligne WGS-84 ordonnée (latitude, longitude). Premier point = extrémité A. Dernier point = extrémité B. Modifiable via setPointsWGS84() — recalcule automatiquement m_lengthMeters.

◆ m_state

ShuntingState StraightBlock::m_state = ShuntingState::FREE
private

État opérationnel courant.


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