Erlaubtes Eingabeformat für die Umwandlung in X3D
-------------------------------------------------

Module schreiben Geometrie-Informationen in Textdateien, die vom GUI
konkateniert werden. Das Programm sortiap wandelt diese Information u.a.
in X3D. Hier wird beschrieben, welche Eingaben sortiap lesen kann.

Kommententare beginnen mit # , alle Zeichen ab dem Doppelkreuz in einer
Zeile werden ignoriert.
Für die Definition von Eigenschaften kann man Zeilen der Form
DEF key=value
einfügen. key ist alles nach "DEF " und vor "=" und sollte ein Name sein, 
der in den folgenden Zeilen durch value ersetzt wird, wobei value alle 
abdruckbaren Zeichen hinter dem gefundenen "=" umfasst.

Alle geometrischen Elemente werden in Textzeilen erwartet. Sie haben die Form
<element> {<floatvalue>} [<description>[:<material>]]

Eine Textzeile beginnt also mit der Elementbezeichnung <element> , gefolgt von bis zu 15 Gleitpunktzahlen.
Danach kann eine textuelle Beschreibung des Elements <description> folgen, 
und schließlich eine Materialangabe <material>.
Wenn <description> mit einem Unterstrich endet, wird sie im X3D-File ignoriert, ansonsten
kann sie am Ort des Elements ausgegeben werden.
Wenn <material> angegeben ist, wird zunächst eine Ersetzung versucht. In jedem Fall
sollte eine X3D-Beschreibung wie z.B. 
<Material diffuseColor='.1 .1 .9' emissiveColor='.33 .33 .1' transparency='.1'/>
herauskommen.
(Beispiel:
Sphere 13 0 0 .5  Kugel_:<Material diffuseColor='.1 .1 .9' emissiveColor='.33 .33 .1' transparency='.1'/>
hat den gleichen Effekt wie
DEF blue=<Material diffuseColor='.1 .1 .9' emissiveColor='.33 .33 .1' transparency='.1'/>
Sphere 13 0 0 .5  Kugel_:blue
und weil die Beschreibung mit _ endet, wird sie in der X3D Szene ignoriert.
Die Kugel wird bläulich, Farbreihenfolge Rot Grün Blau 1 .1 .9, und wenig durchsichtig .1
aussehen.
)

Die Parameter werden in Meter bzw. Grad erwartet, wenn nicht anders vermerkt.
Die Eingabe in VITESS Koordinaten wird in X3D Koordinaten gewandelt.

Die Anzahl der Parameter ist abhängig von <element>:

Line
1 x  2 y  3 z             1. Endpunkt
4 x  5 y  6 z             2. Endpunkt

Triangle                  Dreieck, gegeben durch 3 Punkte
1 x  2 y  3 z             1. Punkt
3 x  4 y  5 z             2. Punkt
6 x  7 y  8 z             3. Punkt

Für alle weiteren sind die ersten 3 Parameter gleich
1 x  2 y  3 z            Mittelpunkt des Elements

Sphere                   Kugel
4  radius

Bei den übrigen sind die ersten 6 Parameter gleichbedeutend
4 dirx  5 diry  6 dirz    die Richtung des Symmetrieachse, normalisiert

Angaben zu Länge, Höhe, Breite verstehen sich immer symmetrisch zum Mittelpunkt,
z.B. ist die Ausdehnung in X-Richtung [x - length/2, x + length/2]

Rectangle
7 width   8 height       Breite (y) und Höhe des Rechtecks
9 angle                  Drehwinkel

OpenRectangle            Rechteck mit ausgeschnittenem inneren Rechteck
7 width   8 height       Breite und Höhe des Rechtecks
9 width   10 height      Breite und Höhe des inneren Rechtecks

Circle                   Kreissektor, zwischen den Winkeln alpha und beta
7 radius  8 alpha  9 beta

Cuboid                   Quader, alle 6 Außenflächen sind Teil des Elements
7 length  8 width  9 height
10 angle                 Drehwinkel 

Cylinder                 Zylinder, Boden und Deckel sind Teil des Elements                         
7 length  8 radius 

Hull                     Hülle eines rechteckigen Trichters, ohne Boden und Deckel
7 length  8 entry width  9 exit width  10 entry height  11 exit height
12 angle                 Drehwinkel

((((     vielleicht einmal
Hull6                     Hülle eines sechseckigen Trichters, ohne Boden und Deckel
7 length
8 1.entry width 9 2.entry width  10 entry height 
11 1.exit width  12 2.exit height  13 exit height
14 angle                 Drehwinkel 

Hull8                     Hülle eines achteckigen Trichters, ohne Boden und Deckel
7 length
8 1.entry width  9 2.entry width  10 1.entry height 11 2. entry height
12 1.exit width 13 2.exit width 14 1.exit height 15 2.exit height
16 angle                 Drehwinkel 
)))))

HollowCylinder           zylindrische Hülle
7 length  8 radius  9 inner radius        der innere Radius wird als Anteilszahl aus (0,1) erwartet

Ellipsoid                 Ellipsoid mit offenen Enden in der Längsachse
7 length  8 width  9 height
10 xlow  11 xhigh         ein geschlossenes Ellipsoid ginge von -1 bis 1, hier werden -1 < xlow < xhigh < 1 erwartet

CylSlice                  Ausschnitt einer Zylinderhülle, z.B. für Detektoren
7 height 8 radius
9 dirang  10 openang      das Recheck wird in Richtung dirang mit einem Öffnungswinkel openang erwartet
