Référence
ToolTopology
Parcours des voies avec distances et connexions observées.
Contexte d’utilisation
| Module | Package | Source SDK |
|---|---|---|
| Kotlin/Native | nimby | kotlin/src/nimby/ToolTopology.kt |
API publique du SDK 0.9.0-alpha.2. Chaque entrée donne la signature Kotlin et son contrat : sens de la valeur, conditions d’utilisation et effets à connaître. Choisissez les imports du module indiqué ci-dessus.
import nimby.ToolTrackEnd
import nimby.ToolTrackConnection
import nimby.ToolRouteTrack
import nimby.ToolTopology
import nimby.topologyToolTrackEnd
enum class ToolTrackEnd {
A,
B
}Extrémité géométrique d’une voie, indépendante de la direction actuelle d’un train.
ToolTrackEnd.A
AOrigine géométrique : fraction zéro et distance zéro. Un parcours entrant par A continue vers B.
ToolTrackEnd.B
BAutre extrémité : fraction un et distance égale à la longueur. Un parcours entrant par B continue vers A.
ToolTrackConnection
sealed interface ToolTrackConnectionRésultat typé d’un raccordement observé : Join exploitable, Junction à traiter explicitement ou Unknown. Ne choisit aucune branche d’aiguille.
ToolTrackConnection.Unknown
data object Unknown : ToolTrackConnectionRaccord insuffisamment connu, absent, ambigu ou vers une voie sans longueur exploitable. Ne signifie pas fin de voie ; arrêtez le parcours.
ToolTrackConnection.Junction
data object Junction : ToolTrackConnectionUne aiguille occupe cette extrémité. Le SDK ne sélectionne pas de branche ; votre outil doit refuser ou appliquer une politique de route explicite.
ToolTrackConnection.Join
data class Join(val trackId: Long, val entry: ToolTrackEnd) : ToolTrackConnectionRaccord réciproque vers une voie connue avec longueur exploitable. entry identifie l’extrémité d’arrivée sur cette autre voie.
ToolTrackConnection.Join.trackId
val trackId: LongIdentifiant de la voie suivante dans cette topologie, à résoudre avec track(trackId).
ToolTrackConnection.Join.entry
val entry: ToolTrackEndExtrémité par laquelle le parcours entre sur la voie suivante. A implique un parcours vers B, et inversement.
ToolRouteTrack
data class ToolRouteTrack(
val id: Long,
val lengthM: Double,
val a: ToolTrackConnection,
val b: ToolTrackConnection,
val junctionOffsetsM: List<Double>,
)Vue de voie exploitable pour un calcul de distance : longueur connue, raccords typés et positions d’aiguilles. Les aiguilles intérieures doivent aussi être contrôlées.
ToolRouteTrack.id
val id: LongIdentifiant stable dans la copie de topologie ; ne vaut pas autorisation de poser dans l’état actuel du monde.
ToolRouteTrack.lengthM
val lengthM: DoubleLongueur finie strictement positive, en mètres ; les voies sans longueur connue sont exclues de cette vue.
ToolRouteTrack.a
val a: ToolTrackConnectionRaccordement typé à l’extrémité A ; consulter aussi junctionOffsetsM avant d’atteindre cette extrémité.
ToolRouteTrack.b
val b: ToolTrackConnectionRaccordement typé à l’extrémité B ; aucune branche n’est choisie implicitement.
ToolRouteTrack.junctionOffsetsM
val junctionOffsetsM: List<Double>Positions d’aiguilles triées, en mètres depuis A, y compris les raccords abordés en talon. Une liste vide concerne cette copie seulement.
ToolRouteTrack.connection
fun connection(end: ToolTrackEnd): ToolTrackConnectionRetourne a ou b selon l’extrémité demandée, sans relire le réseau et sans choisir de branche.
ToolTopology
class ToolTopologyCopie indexée obtenue par ToolNetwork.topology. Omet voies sans longueur connue et leurs signaux, laissant les raccords inconnus. Réutilisez-la pour le calcul puis relisez avant une mutation ; constructeur réservé au SDK.
ToolTopology.worldId
val worldId: StringIdentité de la partie de la copie d’origine. À comparer au contexte avant toute réutilisation d’un plan.
ToolTopology.generation
val generation: LongGénération de session de la topologie, conservée depuis ToolNetwork.
ToolTopology.tracks
val tracks: List<ToolRouteTrack>Voies de longueur connue avec connexions typées. Pour un parcours court, préférez track(id) à une nouvelle recherche dans toute la liste.
ToolTopology.signals
val signals: List<ToolSignal>Signaux rattachés aux voies exploitables de cette topologie ; ceux des voies omises ne sont pas conservés ici.
ToolTopology.track
fun track(id: Long): ToolRouteTrack?Recherche une voie par identifiant dans la copie ; null si absente ou sans longueur connue. Ne déclenche aucune lecture de la partie.
ToolTopology.signal
fun signal(id: Long): ToolSignal?Recherche un signal conservé dans la copie ; null s’il est absent ou rattaché à une voie omise. Ne prouve pas qu’il a été supprimé en jeu.
topology
fun ToolNetwork.topology(): ToolTopologyValide la copie et prépare ses recherches de distances, aiguilles et raccordements. Refuse identités dupliquées, longueurs, fractions ou directions invalides. Les liens absents ou ambigus deviennent Unknown ; aucune capture supplémentaire.