Ergänzungen zu den XML-Dateiformaten: Unterschied zwischen den Versionen
K (typo) |
(→Anschluss-Attribut des StrElement-Knotens: +Beispiel) |
||
Zeile 24: | Zeile 24: | ||
Es handelt sich um eine 16-Bit-Zahl. In den unteren 8 Bits ist die Richtung der (maximal 8) Nachfolgerelemente in Normrichtung (blau) gespeichert, beginnend mit dem niedrigsten Bit für den ersten Nachfolger. In den oberen 8 Bits ist die Richtung der (maximal 8) Nachfolgerelemente in Gegenrichtung (grün) gespeichert. Ein Bit 1 an der entsprechenden Stelle bedeutet, dass der Nachfolger in ''Gegen''richtung liegt. | Es handelt sich um eine 16-Bit-Zahl. In den unteren 8 Bits ist die Richtung der (maximal 8) Nachfolgerelemente in Normrichtung (blau) gespeichert, beginnend mit dem niedrigsten Bit für den ersten Nachfolger. In den oberen 8 Bits ist die Richtung der (maximal 8) Nachfolgerelemente in Gegenrichtung (grün) gespeichert. Ein Bit 1 an der entsprechenden Stelle bedeutet, dass der Nachfolger in ''Gegen''richtung liegt. | ||
Pseudocode | ==== Beispiel ==== | ||
{| class="wikitable" | |||
|- class="hintergrundfarbe6" | |||
! Situation (<code>grünes Ende ====> blaues Ende</code>) | |||
! Anschluss-Wert des mittleren Elements | |||
|- | |||
| <code>====> '''====>''' ====></code> | |||
| 256 = 2<sup>8</sup> | |||
|- | |||
| <code>====> '''====>''' <====</code> | |||
| 257 = 2<sup>8</sup> + 2<sup>1</sup> | |||
|- | |||
| <code><==== '''====>''' ====></code> | |||
| 0 | |||
|- | |||
| <code><==== '''====>''' <====</code> | |||
| 1 = 2<sup>1</sup> | |||
|- | |||
|} | |||
==== Pseudocode ==== | |||
Um für ein Element-Richtungs-Tupel <code>(Element, Richtung)</code> die Richtung des <code>i</code>-ten Nachfolgers zu bestimmen, wobei <code>i</code> von 0 indiziert ist: | |||
<pre> | <pre> |
Version vom 18. Januar 2016, 18:24 Uhr
Hier werden Hinweise zu den XML-Dateiformaten gesammelt, die nicht selbsterklärend sind.
Allgemeines
- Bei Ganzzahl- und Fließkommazahl-Attributen kann der Wert
0
bzw.0.0
kodiert werden, indem das Attribut vollständig weggelassen wird. In den von Zusi geschriebenen Dateien ist das überall so. Quelle - Programmseitig generierte XML-Dateien, die UTF-8-kodiert sind, sollten eine Byte Order Mark (
0xEF,0xBB,0xBF
) am Anfang enthalten, damit Texteditoren sie zuverlässig als UTF-8 erkennen, siehe UTF-8 Byte Order Mark setzen.
Strecke (.st3)
Zuordnung Norm/Gegen ↔ blau/grün
In der Programmoberfläche werden ausschließlich die Bezeichnungen "blaue und grüne Richtung" verwendet. Diese entsprechen Norm- bzw. Gegenrichtung im Dateiformat. Merkhilfe: grün = Gegenrichtung.
Nr
-Attribut NachNorm[Modul]
und NachGegen[Modul]
-Knoten im StrElement
-Knoten
Bei NachNorm
und NachGegen
handelt es sich um die Nummer eines Streckenelements im selben Modul.
Bei NachNormModul
und NachGegenModul
handelt es sich um die Nummer eines Referenzpunkts im durch den Datei
-Kindknoten angegebenen Modul.
Anschluss
-Attribut des StrElement
-Knotens
Dieses Attribut kodiert auf effiziente Weise die Richtung der Nachfolgerelemente des eigenen Moduls. Bei Nachfolgern in anderen Modulen wird die Richtung stattdessen durch die Richtung des Referenzpunkts bestimmt.
Es handelt sich um eine 16-Bit-Zahl. In den unteren 8 Bits ist die Richtung der (maximal 8) Nachfolgerelemente in Normrichtung (blau) gespeichert, beginnend mit dem niedrigsten Bit für den ersten Nachfolger. In den oberen 8 Bits ist die Richtung der (maximal 8) Nachfolgerelemente in Gegenrichtung (grün) gespeichert. Ein Bit 1 an der entsprechenden Stelle bedeutet, dass der Nachfolger in Gegenrichtung liegt.
Beispiel
Situation (grünes Ende ====> blaues Ende )
|
Anschluss-Wert des mittleren Elements |
---|---|
====> ====> ====>
|
256 = 28 |
====> ====> <====
|
257 = 28 + 21 |
<==== ====> ====>
|
0 |
<==== ====> <====
|
1 = 21 |
Pseudocode
Um für ein Element-Richtungs-Tupel (Element, Richtung)
die Richtung des i
-ten Nachfolgers zu bestimmen, wobei i
von 0 indiziert ist:
anschluss_shift := i + (if richtung == GEGEN then 8 else 0) nachfolger_richtung := if (anschluss >> anschluss_shift) & 1 == 0 then NORM else GEGEN
FahrstrWeichenlage
-Attribut des FahrstrWeiche
-Knotens
Dieses Attribut ist, anders als viele andere Werte in Streckendateien, 1-indiziert.
Landschaft (.ls3)
Farbwerte bei Subset
-Knoten
Für Farbangaben gibt es aus historischen Gründen zwei Formate.
- BGR: Die Farbe wird als String "0AABBGGRR" kodiert.
- RGB: Die Farbe wird als String "AARRGGBB" kodiert.
RR/GG/BB/AA steht für die zweistellige Hexadezimalrepräsentation des Rot-/Grün-/Blau-/Alpha-Farbanteils als Zahl zwischen 0 und 255.
Neu geschriebene Dateien sollen das RGB-Format verwenden. Das BGR-Format begegnet einem beim Parsen bestehender Dateien des Öfteren. Zur Unterscheidung verwenden die beiden Formate unterschiedliche Attributnamen:
Format | Diffuse | Ambient | Emit (Nachtfarbe) |
---|---|---|---|
BGR | C | CA | E |
RGB | Cd | Ca | Ce |