1
0
Fork 0

File restoration for the FGData and FGAddon dependencies to $FG_ROOT/Models/*.

This follows from the thread:
http://thread.gmane.org/gmane.games.flightgear.devel/81852/focus=81859

All the $FG_ROOT/Models/* files found using a grep command in both FGData and
FGAddon and now missing in FGData were restored to their state at commit f739a7,
the commit prior to the purging of the Models directories.  The command used
was:

grep -rI "Models/3ds\|Models/Agriculture\|Models/StreetFurniture\|Models/Structures\|Models/Sport\|Models/Power\|Models/Misc\|Models/Aircraft\|Models/Airport\|Models/Boundaries\|Models/Communications\|Models/Fauna\|Models/Military\|Models/Transport\|Models/Trees\|Models/Industrial\|Models/Residential"
This commit is contained in:
Edward d'Auvergne 2016-05-09 15:47:14 +02:00
parent 6ba0ba05ee
commit edb2c980ac
75 changed files with 40372 additions and 0 deletions

View file

@ -0,0 +1,232 @@
AC3Db
MATERIAL "ac3dmat13" rgb 0.675 0.675 0.675 amb 0.675 0.675 0.675 emis 0 0 0 spec 0.082 0.082 0.082 shi 5 trans 0
MATERIAL "ac3dmat1" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.102 0.102 0.102 shi 4 trans 0
OBJECT world
kids 6
OBJECT poly
loc 0.00449181 1.69132 -0.00356865
texture "farmhouse1.png"
texrep 1.1 0.675
texoff 0.68 -0.04
numvert 4
9.60858 1.64885 1.32466
9.60858 -1.64885 1.32466
4.42428 1.64885 1.32467
4.42428 -1.64885 1.32468
numsurf 2
SURF 0x0
mat 0
refs 3
1 0.999998 0
2 0.730224 0.672282
3 0.730158 0
SURF 0x0
mat 0
refs 3
2 0.730224 0.672282
1 0.999998 0
0 0.999998 0.672282
kids 0
OBJECT poly
name "roof"
loc 0.00450134 3.14948 -0.00356865
texture "red-farmroof-tiles.png"
texrep 8 4
numvert 10
4.42427 1.79821 -1.73374
9.6086 1.79821 -1.73375
9.60857 0.190672 1.32466
4.42427 0.190672 1.32467
4.42427 0.190672 -5.11182
-9.60859 0.190672 -5.11182
4.42427 -1.79821 5.11182
-9.6086 -1.79578 5.11183
-9.60858 1.79821 -1.73375
9.60858 0.190672 -5.11183
numsurf 8
SURF 0x0
mat 1
refs 3
1 1 0.669582
0 0.72996 0.669581
3 0.730224 0.370431
SURF 0x0
mat 1
refs 3
1 1 0.669582
3 0.730224 0.370431
2 0.999998 0.370432
SURF 0x0
mat 1
refs 3
8 1.09177e-06 0.669582
4 0.729959 0.999999
5 5.21074e-07 0.999999
SURF 0x0
mat 1
refs 3
4 0.729959 0.999999
8 1.09177e-06 0.669582
0 0.72996 0.669581
SURF 0x0
mat 1
refs 3
0 0.72996 0.669581
9 0.999999 1
4 0.729959 0.999999
SURF 0x0
mat 1
refs 3
0 0.72996 0.669581
7 0 0
6 0.730158 1.07288e-06
SURF 0x0
mat 1
refs 3
0 0.72996 0.669581
8 1.09177e-06 0.669582
7 0 0
SURF 0x0
mat 1
refs 3
9 0.999999 1
0 0.72996 0.669581
1 1 0.669582
kids 0
OBJECT poly
name "front"
loc 0.00450134 2.49508 -0.00356865
texture "farmhouse1.png"
texrep 1.1 0.675
texoff -0.67 -0.02
numvert 9
9.60857 0.845083 1.32466
9.60858 0.845083 -5.11183
9.6086 2.4526 -1.73375
9.60857 -2.45261 1.32466
9.60858 -2.45261 -5.11183
4.42427 0.845083 1.32467
4.42427 -1.14379 5.11182
4.42427 -2.45261 5.11181
4.42427 -2.45261 1.32468
numsurf 4
SURF 0x0
mat 0
refs 3
0 0.629568 0.672282
1 0 0.672282
2 0.330418 1
SURF 0x0
mat 0
refs 3
1 0 0.672282
3 0.629568 0
4 0 0
SURF 0x0
mat 0
refs 3
3 0.629568 0
1 0 0.672282
0 0.629568 0.672282
SURF 0x0
mat 0
refs 4
5 0.629569 0.672282
6 0.999999 0.266822
7 0.999998 0
8 0.62957 0
kids 0
OBJECT poly
name "back"
loc 0 0.0426082 0
texture "farmhouse1.png"
texrep 0.6 0.6
texoff -0.07 0.01
numvert 5
-9.6041 1.31109 5.10826
-9.60409 -0.000138044 -5.11539
-9.6041 -0.000138044 5.10825
-9.60409 3.29755 -5.11539
-9.60408 4.90507 -1.73732
numsurf 3
SURF 0x0
mat 0
refs 3
0 1 0.267314
1 1.4925e-06 0
2 0.999999 0
SURF 0x0
mat 0
refs 3
1 1.4925e-06 0
0 1 0.267314
3 1.4925e-06 0.672282
SURF 0x0
mat 0
refs 3
3 1.4925e-06 0.672282
0 1 0.267314
4 0.330418 1
kids 0
OBJECT poly
name "long_side"
loc 0 0.0426082 0
texture "farmhouse1.png"
texrep -1.25 0.6
texoff -0.55 0.53
numvert 6
9.61308 3.29756 -5.1154
-9.60409 -0.000138044 -5.11539
-9.60409 3.29756 -5.11539
4.42877 3.29756 -5.11539
4.42877 -0.000138044 -5.11539
9.61308 -0.000138044 -5.1154
numsurf 4
SURF 0x0
mat 0
refs 3
0 0.999999 0.672282
4 0.729959 0
3 0.729959 0.672282
SURF 0x0
mat 0
refs 3
4 0.729959 0
0 0.999999 0.672282
5 0.999999 0
SURF 0x0
mat 0
refs 3
3 0.729959 0.672282
1 9.18082e-07 0
2 9.18082e-07 0.672282
SURF 0x0
mat 0
refs 3
1 9.18082e-07 0
3 0.729959 0.672282
4 0.729959 0
kids 0
OBJECT poly
name "low_side"
texture "farmhouse1.png"
texoff 0 -0.68
numvert 4
-9.6041 1.3537 5.10826
-9.6041 0.04247 5.10825
4.42877 0.04247 5.10824
4.42877 1.35129 5.10825
numsurf 2
SURF 0x0
mat 0
refs 3
2 0.730158 0
0 3.97008e-07 0.267314
1 0 0
SURF 0x0
mat 0
refs 3
0 3.97008e-07 0.267314
2 0.730158 0
3 0.730159 0.266822
kids 0

View file

@ -0,0 +1,275 @@
AC3Db
MATERIAL "ac3dmat12" rgb 0.267 0.267 0.267 amb 0.267 0.267 0.267 emis 0 0 0 spec 0.071 0.071 0.071 shi 3 trans 0
MATERIAL "ac3dmat13" rgb 0.675 0.675 0.675 amb 0.675 0.675 0.675 emis 0 0 0 spec 0.082 0.082 0.082 shi 5 trans 0
OBJECT world
kids 8
OBJECT poly
loc 1.74577 -0.0270245 0.381531
texture "red-farmroof-tiles.png"
texrep 9 6
numvert 6
5.17163 1.96772 -5.61642
-8.77823 1.96772 -5.61642
5.17163 4.31278 1.9377
5.17164 6.42336 -2.23836
-8.77824 4.31278 1.9377
-8.77822 6.42336 -2.23836
numsurf 4
SURF 0x0
mat 0
refs 3
5 0.999998 0.447184
0 5.46914e-07 2.38419e-07
1 0.999999 0
SURF 0x0
mat 0
refs 3
0 5.46914e-07 2.38419e-07
5 0.999998 0.447184
3 0 0.447184
SURF 0x0
mat 0
refs 3
3 0 0.447184
4 1 1
2 8.20372e-07 0.999999
SURF 0x0
mat 0
refs 3
3 0 0.447184
5 0.999998 0.447184
4 1 1
kids 0
OBJECT poly
loc -0.057519 3.18774 -1.45785
texture "farmhouse3.png"
texrep 0.9 1.1
texoff -0.17 0
numvert 10
6.97492 -1.24705 -3.77706
6.97492 1.09801 3.77708
6.97493 3.20859 -0.398981
-6.97494 -1.24705 -3.77706
-6.97495 1.09801 3.77708
-6.97493 3.20859 -0.398981
-6.97494 -3.19336 -3.77706
6.97492 -3.19336 -3.77706
6.97492 -3.19336 3.77706
-6.97495 -3.19336 3.77706
numsurf 5
SURF 0x0
mat 1
refs 3
3 0 0.304019
4 1 0.670323
5 0.447184 1
SURF 0x0
mat 1
refs 3
4 1 0.670323
6 0 0
9 1 0
SURF 0x0
mat 1
refs 3
6 0 0
4 1 0.670323
3 0 0.304019
SURF 0x0
mat 1
refs 4
2 0.447184 1
1 1 0.670323
8 0.999999 0
7 6.31228e-07 0
SURF 0x0
mat 1
refs 3
7 6.31228e-07 0
0 0 0.304019
2 0.447184 1
kids 0
OBJECT poly
loc -3.0107 2.13246 -1.45784
texture "farmhouse2.png"
texrep 0.8 0.7
texoff 0.01 0.01
numvert 4
4.02176 2.1533 3.77708
-4.02177 2.1533 3.77708
4.02176 -2.13807 3.77706
-4.02177 -2.13807 3.77706
numsurf 2
SURF 0x0
mat 1
refs 3
1 0 1
2 1 0
0 1 1
SURF 0x0
mat 1
refs 3
2 1 0
1 0 1
3 0 0
kids 0
OBJECT poly
loc 0.314594 -0.0270245 2.5863
texture "red-farmroof-tiles.png"
texrep 4.5 6
numvert 6
4.47414 4.31278 2.51813
4.47414 4.31278 -0.26707
-1.54361 4.31278 2.51812
1.78312 6.42336 2.51813
-1.54362 4.31278 -0.26707
1.78312 6.42336 -4.44313
numsurf 4
SURF 0x0
mat 0
refs 3
5 0.999998 0.447184
0 5.46914e-07 2.38419e-07
1 0.999999 0
SURF 0x0
mat 0
refs 3
0 5.46914e-07 2.38419e-07
5 0.999998 0.447184
3 0 0.447184
SURF 0x0
mat 0
refs 3
3 0 0.447184
4 1 1
2 8.20372e-07 0.999999
SURF 0x0
mat 0
refs 3
3 0 0.447184
5 0.999998 0.447184
4 1 1
kids 0
OBJECT poly
loc 1.77983 2.13246 1.70826
texture "farmhouse2.png"
texrep 0.3 0.7
texoff -0.98 -0.34
numvert 8
-3.0089 2.1533 3.39618
-3.00891 2.1533 0.610976
-3.0089 -2.13807 3.39618
-3.00891 -2.13807 0.610955
3.0089 2.1533 3.39618
3.0089 2.1533 0.610976
3.0089 -2.13807 0.610955
3.0089 -2.13807 3.39619
numsurf 4
SURF 0x0
mat 1
refs 3
1 7.53288e-06 1
2 0.999997 0
0 0.999997 1
SURF 0x0
mat 1
refs 3
2 0.999997 0
1 7.53288e-06 1
3 0 0
SURF 0x0
mat 1
refs 3
4 0.999996 1
6 0 0
5 7.53288e-06 1
SURF 0x0
mat 1
refs 3
6 0 0
4 0.999996 1
7 1 0
kids 0
OBJECT poly
loc 0 -0.0017802 0
texture "farmhouse2.png"
texrep 1.8 0.36
texoff 0 0.65
numvert 10
6.9174 1.94248 -5.23489
-7.03246 1.94248 -5.23489
6.9174 1.94248 -5.23491
-7.03246 1.94248 -5.23491
-7.03246 -0.00383311 -5.23491
6.9174 -0.00383312 -5.23491
6.9174 1.94248 -5.2349
-7.03246 1.94248 -5.2349
-7.03246 -0.00383311 -5.2349
6.9174 -0.00383312 -5.2349
numsurf 2
SURF 0x0
mat 1
refs 3
6 0.999999 0.999999
8 1.36729e-07 0
7 1.36729e-07 0.999998
SURF 0x0
mat 1
refs 3
8 1.36729e-07 0
6 0.999999 0.999999
9 1 0.00323452
kids 0
OBJECT poly
loc 0 0.00363288 0
texture "farmhouse3.png"
texrep 0.56 1.1
texoff 0.29 -0.01
numvert 12
4.78874 4.28213 5.10443
-1.22902 4.28213 5.10443
2.09772 6.39271 5.10444
4.78874 4.28213 5.10453
-1.22902 4.28213 5.10453
2.09772 6.3927 5.10453
4.78874 -0.0092462 5.10454
-1.22902 -0.00924619 5.10453
-1.22906 4.28213 5.10444
-1.22906 -0.00924619 5.10444
4.78874 4.28213 5.10444
4.78874 -0.0092462 5.10445
numsurf 2
SURF 0x0
mat 1
refs 3
6 1 0.00217071
3 1 0.671106
5 0.552816 1
SURF 0x0
mat 1
refs 4
5 0.552816 1
4 1.26246e-06 0.671106
7 1.26246e-06 0.00237348
6 1 0.00217071
kids 0
OBJECT poly
name "rect"
loc 5.87975 2.0565 2.3246
texture "farmhouse3.png"
texrep 0.2 0.75
texoff 0.28 -0.01
numvert 4
-1.09101 2.22926 0
1.03766 2.22926 2.38419e-07
1.03766 -2.06212 2.38419e-07
-1.09101 -2.06212 2.38419e-07
numsurf 1
SURF 0x0
mat 1
refs 4
3 0 0
2 1 0
1 1 1
0 0 1
kids 0

View file

@ -0,0 +1,214 @@
AC3Db
MATERIAL "ac3dmat1" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.5 0.5 0.5 shi 10 trans 0
MATERIAL "ac3dmat12" rgb 0.266667 0.266667 0.266667 amb 0.266667 0.266667 0.266667 emis 0 0 0 spec 0.5 0.5 0.5 shi 10 trans 0
MATERIAL "ac3dmat12" rgb 0.267 0.267 0.267 amb 0.267 0.267 0.267 emis 0 0 0 spec 0.071 0.071 0.071 shi 3 trans 0
OBJECT world
kids 6
OBJECT poly
loc 0 -0.00235254 0
texture "black-farmroof-tiles.png"
texrep 3 2
texoff -0.33 0
numvert 4
3.22594 5.05153 -3.45297
6.0399 1.40684 0.723062
0.0220966 1.40684 0.723062
3.22594 4.24301 0.723062
numsurf 2
SURF 0x0
mat 2
refs 3
1 1 0
0 0 1
3 1 0.778165
SURF 0x0
mat 2
refs 3
3 1 0.778165
0 0 1
2 1 0
kids 0
OBJECT poly
loc 1.07069 3.22683 -3.05399
texture "black-farmroof-tiles.png"
texrep 8 3
texoff -0.33 0
numvert 6
6.97494 0.156813 -3.77704
-6.97493 0.156813 -3.77705
6.97494 1.82235 -0.398985
-6.97492 1.82235 -0.398985
6.97493 -1.82235 3.77705
-6.97494 -1.82235 3.77705
numsurf 4
SURF 0x0
mat 1
refs 3
3 1.98256e-06 1
0 1 0.543025
1 1.09383e-06 0.543025
SURF 0x0
mat 1
refs 3
0 1 0.543025
3 1.98256e-06 1
2 1 1
SURF 0x0
mat 1
refs 3
2 1 1
5 5.12732e-07 0
4 0.999999 0
SURF 0x0
mat 1
refs 3
2 1 1
3 1.98256e-06 1
5 5.12732e-07 0
kids 0
OBJECT poly
loc 1.07069 2.1129 -3.05399
texture "farmhouse2.png"
texrep 1 0.8
texoff 0.65 0.02
numvert 11
6.97493 -0.708411 3.77705
-6.97495 -0.708411 3.77705
4.96921 -0.708411 3.77705
-1.0486 -0.708411 3.77705
2.15524 2.12776 3.77705
6.97493 -2.12776 3.77705
-6.97495 -2.12776 3.77705
6.97494 1.27074 -3.77705
-6.97493 1.27074 -3.77705
-6.97493 -2.12776 -3.77705
6.97495 -2.12776 -3.77705
numsurf 5
SURF 0x0
mat 0
refs 3
4 0.654499 1
3 0.424831 0.333531
2 0.856218 0.333531
SURF 0x0
mat 0
refs 3
1 0 0.333531
5 0.999999 0
0 0.999999 0.333531
SURF 0x0
mat 0
refs 3
5 0.999999 0
1 0 0.333531
6 0 0
SURF 0x0
mat 0
refs 3
7 0.999999 0.79861
9 1.16219e-06 0
8 1.16219e-06 0.79861
SURF 0x0
mat 0
refs 3
9 1.16219e-06 0
7 0.999999 0.79861
10 1 0
kids 0
OBJECT poly
texture "farmhouse2.png"
texrep -0.8 1.1
texoff -0.38 -0.02
numvert 13
-5.90423 3.38364 -6.83105
-5.90424 1.40449 0.723065
-5.90423 5.04918 -3.45298
-5.90423 -0.0148602 -6.83105
-5.90424 -0.0148602 0.723065
-5.90424 3.38364 -6.83104
-5.90423 5.04918 -3.45297
-5.90423 5.04917 -3.45297
-5.90425 1.40448 0.72306
-5.90425 1.40449 0.72306
-5.90426 1.40449 0.72306
-5.90426 -0.0148599 0.72306
-5.90424 -0.0148599 -6.83104
numsurf 3
SURF 0x0
mat 1
refs 3
0 0 0.671105
1 1 0.333532
2 0.447184 1
SURF 0x0
mat 1
refs 3
3 0 0
1 1 0.333532
0 0 0.671105
SURF 0x0
mat 1
refs 3
1 1 0.333532
3 0 0
4 1 0.00227113
kids 0
OBJECT poly
name "rect"
loc -4.34613 0.585056 -6.89143e-08
texrep 1 0.8
texoff 0.87 0.03
numvert 4
-0.058713 0.600677 0
0.0587125 0.600677 0
0.0587125 -0.600677 0
-0.058713 -0.600677 0
numsurf 1
SURF 0x20
mat 0
refs 4
3 0 0
2 1 0
1 1 1
0 0 1
kids 0
OBJECT poly
texture "farmhouse2.png"
texoff -0.03 0
numvert 21
8.04563 3.38364 -6.83103
8.04563 5.04918 -3.45297
8.04562 1.40448 0.72306
8.04562 1.40449 0.72306
8.04562 -0.0148599 0.72306
8.04563 3.38364 -6.83104
8.04564 -0.0148599 -6.83104
8.04564 3.38364 -6.83105
8.04564 1.40449 0.723065
8.04564 5.04918 -3.45298
8.04565 -0.0148602 -6.83105
8.04564 -0.0148602 0.723065
8.04563 3.38364 -6.83103
8.04563 5.04918 -3.45297
8.04563 5.04917 -3.45297
8.04562 1.40448 0.72306
8.04563 1.40449 0.72306
8.04562 1.40449 0.72306
8.04562 -0.0148599 0.72306
8.04563 3.38364 -6.83104
8.04564 -0.0148599 -6.83104
numsurf 2
SURF 0x0
mat 1
refs 3
10 7.57474e-07 0.00217071
7 1.26246e-07 0.671105
9 0.447184 1
SURF 0x0
mat 1
refs 4
9 0.447184 1
8 1 0.333532
11 1 0.00227113
10 7.57474e-07 0.00217071
kids 0

View file

@ -0,0 +1,13 @@
<?xml version="1.0"?>
<PropertyList>
<path>F-15-lowpoly.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>14000</max-m>
</animation>
</PropertyList>

52
Models/Aircraft/H-60.xml Normal file
View file

@ -0,0 +1,52 @@
<?xml version="1.0"?>
<PropertyList>
<path>H-60.ac</path>
<!-- 0.00358407 0.645677 0.000336107
-0.00420573 0.79441 0.000321504
-0.0264778 0.643522 -0.00108892
-0.0342676 0.792255 -0.00110352-->
<animation>
<type>rotate</type>
<object-name>Rotor</object-name>
<object-name>Rotor-Shaft</object-name>
<property>/sim/time/elapsed-sec</property>
<factor>1000</factor>
<axis>
<x1-m>-0.0264778</x1-m>
<y1-m>0.0</y1-m>
<z1-m>0.643522</z1-m>
<x2-m>-0.0342676</x2-m>
<y2-m>0.0</y2-m>
<z2-m>0.792255</z2-m>
</axis>
</animation>
<!--9.89369 0.641302 0.0193272
9.89369 0.660408 -0.125795-->
<animation>
<type>rotate</type>
<object-name>Tail-Rotor</object-name>
<property>/sim/time/elapsed-sec</property>
<factor>-1500</factor>
<!-- 9.89736 0.723054 -0.410085
9.89718 0.638745 -0.18482-->
<axis>
<x1-m>9.89369</x1-m>
<y1-m>-0.0193272</y1-m>
<z1-m>0.641302</z1-m>
<x2-m>9.89369</x2-m>
<y2-m>0.125795</y2-m>
<z2-m>0.660408</z2-m>
</axis>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>14000</max-m>
</animation>
</PropertyList>

7732
Models/Aircraft/dauphin.ac Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,44 @@
<?xml version="1.0"?>
<PropertyList>
<path>strobe.ac</path>
<animation>
<type>noshadow</type>
<object-name>strobe</object-name>
</animation>
<animation>
<type>select</type>
<object-name>strobe</object-name>
<condition>
<property>sim/model/lighting/strobe/state</property>
</condition>
</animation>
<animation>
<type>material</type>
<object-name>strobe</object-name>
<threshold>0.001</threshold>
</animation>
<animation>
<type>billboard</type>
<object-name>strobe</object-name>
</animation>
<animation>
<type>scale</type>
<object-name>strobe</object-name>
<property>/sim/time/sun-angle-rad</property>
<offset>-1.4</offset>
<x-min>1</x-min>
<y-min>1</y-min>
<z-min>1</z-min>
<x-factor>12</x-factor>
<y-factor>12</y-factor>
<z-factor>12</z-factor>
</animation>
</PropertyList>

View file

@ -0,0 +1,52 @@
<?xml version="1.0"?>
<PropertyList>
<path>testpilot.ac</path>
<animation>
<type>select</type>
<object-name>glasses</object-name>
<object-name>headset</object-name>
<object-name>Head</object-name>
<object-name>Torso</object-name>
<object-name>Rarm</object-name>
<object-name>Larm</object-name>
<object-name>Rforearm</object-name>
<object-name>Lforearm</object-name>
<object-name>Rhand</object-name>
<object-name>Lhand</object-name>
<object-name>Pelvis</object-name>
<object-name>Rthigh</object-name>
<object-name>Lthigh</object-name>
<object-name>Rcalf</object-name>
<object-name>Lcalf</object-name>
<object-name>Rfoot</object-name>
<object-name>Lfoot</object-name>
<condition>
<not>
<property>sim/current-view/internal</property>
</not>
</condition>
</animation>
<animation>
<type>rotate</type>
<object-name>Head</object-name>
<object-name>headset</object-name>
<object-name>glasses</object-name>
<property>controls/flight/aileron</property>
<factor>30</factor>
<center>
<x-m>0.076</x-m>
<y-m>0</y-m>
<z-m>0.676</z-m>
</center>
<axis>
<x>0.0</x>
<y>0.0</y>
<z>-1.0</z>
</axis>
</animation>
</PropertyList>

View file

@ -0,0 +1,141 @@
<?xml version="1.0"?>
<!--
Version: 2014-03-01
-->
<PropertyList>
<path>towropes.ac</path>
<offsets>
<x-m>0.0</x-m>
<y-m>0.0</y-m>
<z-m>0.0</z-m>
<pitch-deg>0</pitch-deg>
</offsets>
<!-- winch rope -->
<animation>
<type>select</type>
<object-name>winchrope</object-name>
<condition>
<property>sim/hitches/winch/rope/exist</property>
</condition>
</animation>
<animation>
<type>translate</type>
<object-name>parachute_open</object-name>
<object-name>parachute_closed</object-name>
<property>sim/hitches/winch/rope/exist</property>
<factor>-5.</factor>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>select</type>
<object-name>parachute_closed</object-name>
<condition>
<not>
<property>sim/hitches/winch/open</property>
</not>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>parachute_open</object-name>
<condition>
<and>
<property>sim/hitches/winch/rope/exist</property>
<property>sim/hitches/winch/open</property>
</and>
</condition>
</animation>
<animation>
<type>scale</type>
<object-name>winchrope</object-name>
<condition>
<property>sim/hitches/winch/rope/exist</property>
</condition>
<property>sim/hitches/winch/tow/dist</property>
<x-min>0.0</x-min>
<y-min>1.0</y-min> <!-- unscaled model: 4cm diameter -->
<z-min>1.0</z-min>
<x-factor>1</x-factor>
<y-factor>0</y-factor>
<z-factor>0</z-factor>
</animation>
<animation>
<type>scale</type>
<object-name>winchrope</object-name>
<property>sim/hitches/winch/rope/rope-diameter-mm</property>
<x-min>1.0</x-min>
<y-min>0.0</y-min> <!-- unscaled model: 4cm diameter -->
<z-min>0.0</z-min>
<x-factor>0.0</x-factor>
<y-factor>0.025</y-factor>
<z-factor>0.025</z-factor>
</animation>
<animation>
<object-name>winchrope</object-name>
<object-name>parachute_open</object-name>
<object-name>parachute_closed</object-name>
<enable-hot type="bool">false</enable-hot>
</animation>
<!-- towrope -->
<animation>
<type>select</type>
<object-name>towrope</object-name>
<condition>
<property>sim/hitches/aerotow/rope/exist</property>
</condition>
</animation>
<animation>
<type>scale</type>
<object-name>towrope</object-name>
<condition>
<property>sim/hitches/aerotow/rope/exist</property>
</condition>
<property>sim/hitches/aerotow/tow/dist</property>
<x-min>0.0</x-min>
<y-min>1.0</y-min> <!-- unscaled model: 4cm diameter -->
<z-min>1.0</z-min>
<x-factor>1</x-factor>
<y-factor>0</y-factor>
<z-factor>0</z-factor>
</animation>
<animation>
<type>scale</type>
<object-name>towrope</object-name>
<property>sim/hitches/aerotow/rope/rope-diameter-mm</property>
<x-min>1.0</x-min>
<y-min>0.0</y-min> <!-- unscaled model: 4cm diameter -->
<z-min>0.0</z-min>
<x-factor>0.0</x-factor>
<y-factor>0.025</y-factor>
<z-factor>0.025</z-factor>
</animation>
<animation>
<object-name>towrope</object-name>
<enable-hot type="bool">false</enable-hot>
</animation>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<PropertyList>
<path>AutoGate-ba.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-property>sim/rendering/static-lod/bare</max-property>
</animation>
<animation>
<type>textranslate</type>
<object-name>jour</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> -1 </x>
<y> 0 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red> 1.0 </red>
<green> 1.0 </green>
<blue> 1.0 </blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than-equals>
</condition>
<emission>
<red> 0.0 </red>
<green> 0.0 </green>
<blue> 0.0 </blue>
</emission>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<PropertyList>
<path>DockingGate-ba.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-property>sim/rendering/static-lod/bare</max-property>
</animation>
<animation>
<type>textranslate</type>
<object-name>jour</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> -1 </x>
<y> 0 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red> 1.0 </red>
<green> 1.0 </green>
<blue> 1.0 </blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than-equals>
</condition>
<emission>
<red> 0.0 </red>
<green> 0.0 </green>
<blue> 0.0 </blue>
</emission>
</animation>
</PropertyList>

View file

@ -0,0 +1,323 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>generic.ac</path>
<!-- Required -->
<is-animated-jetway type="bool">true</is-animated-jetway>
<!-- Parameters read by the script -->
<rotunda>
<x-m>2.04</x-m>
<y-m>0.04</y-m>
<z-m>3.902</z-m>
</rotunda>
<extend-offset-m>12.254</extend-offset-m>
<entrance-offset-m>2.4</entrance-offset-m>
<min-extend-m>0</min-extend-m>
<max-extend-m>16</max-extend-m>
<!-- Parameters set by the script -->
<toggle-action-script type="string" />
<extend-m type="string" />
<pitch-deg type="string" />
<heading-deg type="string" />
<entrance-heading-deg type="string" />
<hood-deg type="string" />
<gate type="string" />
<!-- Animations -->
<!-- Click action -->
<animation>
<type>pick</type>
<action>
<button>0</button>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<script alias="../../../../toggle-action-script" />
</binding>
</action>
</animation>
<!-- Gate number -->
<text>
<name>Gate number 1</name>
<offsets>
<x-m>13.984</x-m>
<y-m>-0.342</y-m>
<z-m>6.924</z-m>
<heading-deg>45</heading-deg>
</offsets>
<alignment>center-center</alignment>
<axis-alignment>yz-plane</axis-alignment>
<type>literal</type>
<text alias="../../gate" />
<font>helvetica_bold.txf</font>
<character-size>0.5</character-size>
<character-aspect-ratio type="double">-1.3</character-aspect-ratio>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<text>
<name>Gate number 2</name>
<offsets>
<x-m>14.814</x-m>
<y-m>-0.12</y-m>
<z-m>6.924</z-m>
<heading-deg>165</heading-deg>
</offsets>
<alignment>center-center</alignment>
<axis-alignment>yz-plane</axis-alignment>
<type>literal</type>
<text alias="../../gate" />
<font>helvetica_bold.txf</font>
<character-size>0.5</character-size>
<character-aspect-ratio type="double">-1.3</character-aspect-ratio>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<text>
<name>Gate number 3</name>
<offsets>
<x-m>14.207</x-m>
<y-m>0.519</y-m>
<z-m>6.924</z-m>
<heading-deg>-75</heading-deg>
</offsets>
<alignment>center-center</alignment>
<axis-alignment>yz-plane</axis-alignment>
<type>literal</type>
<text alias="../../gate" />
<font>helvetica_bold.txf</font>
<character-size>0.5</character-size>
<character-aspect-ratio type="double">-1.3</character-aspect-ratio>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<animation>
<type>material</type>
<object-name>Gate number 1</object-name>
<object-name>Gate number 2</object-name>
<object-name>Gate number 3</object-name>
<emission>
<red>0.5</red>
<green>0.5</green>
<blue>0.5</blue>
</emission>
</animation>
<!-- Day/night lighting -->
<animation>
<type>material</type>
<object-name>Scissors</object-name>
<object-name>Support</object-name>
<object-name>SupportGirder</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Tunnel4</object-name>
<object-name>Rotunda1</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<object-name>AirlineSign</object-name>
<emission>
<red>0.3</red>
<green>0.3</green>
<blue>0.3</blue>
</emission>
</animation>
<animation>
<type>textranslate</type>
<object-name>Scissors</object-name>
<object-name>Support</object-name>
<object-name>SupportGirder</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Tunnel4</object-name>
<object-name>Rotunda1</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/sim/time/sun-angle-rad</property>
<factor>0.3125</factor>
<step>1.6</step>
<axis>
<x>0</x>
<y>-1</y>
</axis>
</animation>
<!-- Don't let the entrance rotunda interact with aircraft -->
<animation>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<object-name>Rotunda2</object-name>
<enable-hot type="bool">false</enable-hot>
</animation>
<!-- Jetway movement -->
<animation>
<type>translate</type>
<object-name>SupportGirder</object-name>
<expression>
<product>
<tan>
<deg2rad>
<property alias="../../../../../../pitch-deg" />
</deg2rad>
</tan>
<value>7.13</value>
</product>
</expression>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Scissors</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Tunnel4</object-name>
<object-name>AirlineSign</object-name>
<object-name>Support</object-name>
<object-name>SupportGirder</object-name>
<object-name>Rotunda2</object-name>
<object-name>GateSign</object-name>
<object-name>Gate number 1</object-name>
<object-name>Gate number 2</object-name>
<object-name>Gate number 3</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property alias="../../heading-deg" />
<center>
<x-m>2.04</x-m>
<y-m>0.04</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>-1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Scissors</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Tunnel4</object-name>
<object-name>AirlineSign</object-name>
<object-name>Rotunda2</object-name>
<object-name>GateSign</object-name>
<object-name>Gate number 1</object-name>
<object-name>Gate number 2</object-name>
<object-name>Gate number 3</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property alias="../../pitch-deg" />
<center>
<x-m>3.548</x-m>
<y-m>0</y-m>
<z-m>3.945</z-m>
</center>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>Scissors</object-name>
<object-name>Tunnel3</object-name>
<property alias="../../extend-m" />
<factor>0.5</factor>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>scale</type>
<object-name>Scissors</object-name>
<property alias="../../extend-m" />
<x-factor>0.65625</x-factor>
<x-offset>1</x-offset>
<y-factor>0</y-factor>
<y-min>1</y-min>
<z-factor>0</z-factor>
<z-min>1</z-min>
<center>
<x-m>4.469</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
</animation>
<animation>
<type>translate</type>
<object-name>Tunnel4</object-name>
<object-name>AirlineSign</object-name>
<object-name>Support</object-name>
<object-name>SupportGirder</object-name>
<object-name>Rotunda2</object-name>
<object-name>GateSign</object-name>
<object-name>Gate number 1</object-name>
<object-name>Gate number 2</object-name>
<object-name>Gate number 3</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property alias="../../extend-m" />
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property alias="../../entrance-heading-deg" />
<center>
<x-m>14.335</x-m>
<y-m>0.04</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>-1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Hood</object-name>
<property alias="../../hood-deg" />
<center>
<x-m>15.814</x-m>
<y-m>0</y-m>
<z-m>3.902</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,48 @@
<?xml version="1.0"?>
<PropertyList>
<path>jetway-737-ba.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>8000</max-m>
</animation>
<animation>
<type>material</type>
<object-name>Mesh</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<global type="bool">true</global>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
</emission>
<texture>jetwaylit.png</texture>
</animation>
<animation>
<type>material</type>
<object-name>Mesh</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than-equals>
</condition>
<global type="bool">true</global>
<emission>
<red>0</red>
<green>0</green>
<blue>0</blue>
</emission>
<texture>jetway.png</texture>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,48 @@
<?xml version="1.0"?>
<PropertyList>
<path>jetway-747-ba.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>8000</max-m>
</animation>
<animation>
<type>material</type>
<object-name>Mesh</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<global type="bool">true</global>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
</emission>
<texture>jetwaylit.png</texture>
</animation>
<animation>
<type>material</type>
<object-name>Mesh</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than-equals>
</condition>
<global type="bool">true</global>
<emission>
<red>0</red>
<green>0</green>
<blue>0</blue>
</emission>
<texture>jetway.png</texture>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,48 @@
<?xml version="1.0"?>
<PropertyList>
<path>jetway-a320-ba.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>8000</max-m>
</animation>
<animation>
<type>material</type>
<object-name>Mesh</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<global type="bool">true</global>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
</emission>
<texture>jetwaylit.png</texture>
</animation>
<animation>
<type>material</type>
<object-name>Mesh</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than-equals>
</condition>
<global type="bool">true</global>
<emission>
<red>0</red>
<green>0</green>
<blue>0</blue>
</emission>
<texture>jetway.png</texture>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>jetway-ba.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,619 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>jetway-movable-2.ac</path>
<!-- JETWAY 1 -->
<animation>
<type>pick</type>
<object-name>Rotunda1</object-name>
<object-name>Tunnel1Rotunda</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<action>
<button>0</button>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<!-- Nasal pick code for jetway 1 -->
<script><![CDATA[
if (props.globals.getNode("/scenery/airport/jetway[0]/extended") == nil)
{
props.globals.initNode("/scenery/airport/jetway[0]/extended", 0, "BOOL");
setprop("/scenery/airport/jetway[0]/position-norm", 0);
}
if (props.globals.getNode("/scenery/airport/jetway-movable-debug") == nil)
{
props.globals.initNode("/scenery/airport/jetway-movable-debug", 0, "BOOL");
}
# nasal interpolation function - returns a value based on a set interpolation table, like the <interpolate> feature of XML animations
# takes an array with sub-arrays, like
# [[<ind>, <dep>], [<ind>, <dep>]]
var interpolateTable = func(table, value)
{
var newValue = 0;
forindex (i; table)
{
if (value >= table[i][0])
{
if (i + 1 < size(table))
{
newValue = (value - table[i][0]) / (table[i + 1][0] - table[i][0]) * (table[i + 1][1] - table[i][1]) + table[i][1];
}
else
{
newValue = table[i][1];
}
}
}
return newValue;
};
var xtranslate = nil;
var yrotate = nil;
var zrotate = nil;
var hoodrotate = nil;
if (props.globals.getNode("/aircraft/door[0]/x-m") != nil and props.globals.getNode("/aircraft/door[0]/y-m") != nil and props.globals.getNode("/aircraft/door[0]/z-m") != nil)
{
var xm = getprop("/aircraft/door[0]/x-m");
var ym = getprop("/aircraft/door[0]/y-m") - 2.65;
var zm = getprop("/aircraft/door[0]/z-m") - 3.752;
# calculate the extension length using the Pythagorean Theorem (c = sqrt(a^2 + b^2))
xtranslate = math.sqrt(xm * xm + ym * ym) - 19.536;
# calculate the rotation angle along the Y axis
yrotate = math.atan2(zm / xm, 1) * R2D;
# calculate the rotation angle along the Z axis
zrotate = math.atan2(ym / xm, 1) * R2D;
# hood rotation angle is predefined
hoodrotate = getprop("/aircraft/jetway-hood-deg");
}
# old system (legacy support)
elsif (props.globals.getNode("/aircraft/jetway-pos/x-tra") != nil and props.globals.getNode("/aircraft/jetway-pos/y-rot") != nil and props.globals.getNode("/aircraft/jetway-pos/z-rot") != nil and props.globals.getNode("/aircraft/jetway-pos/hood-rot") != nil)
{
# rotation angles and extension lengths are predefined
xtranslate = getprop("/aircraft/jetway-pos/x-tra");
yrotate = getprop("/aircraft/jetway-pos/y-rot");
zrotate = getprop("/aircraft/jetway-pos/z-rot");
hoodrotate = getprop("/aircraft/jetway-pos/hood-rot");
}
var xtranslaterate = 0.5;
var xtranslatetable = [
[0.0, 0.0],
[0.2, 0.5],
[0.6, 0.5],
[0.8, 1.0],
[1.0, 1.0]
];
var yrotaterate = 1;
var yrotatetable = [
[0.0, 0.0],
[0.4, 0.7],
[0.7, 1.0],
[1.0, 1.0]
];
var zrotaterate = 1;
var zrotatetable = [
[0.0, 0.0],
[0.2, 0.0],
[0.6, 0.7],
[0.8, 0.7],
[0.9, 1.0],
[1.0, 1.0]
];
var zentrancerotaterate = 5;
var zentrancerotatetable = [
[0.0, 0.0],
[0.5, 0.0],
[0.6, 0.7],
[0.8, 0.7],
[0.9, 1.0],
[1.0, 1.0]
];
var hoodrotaterate = 1;
var hoodrotatetable = [
[0.0, 0.0],
[0.9, 0.0],
[1,0, 1.0]
];
if (xtranslate != nil and yrotate != nil and zrotate != nil and hoodrotate != nil)
{
var length = math.abs(xtranslate / xtranslaterate) + math.abs(yrotate / yrotaterate) + math.abs(zrotate / zrotaterate) + math.abs(zrotate / zentrancerotaterate) + math.abs(hoodrotate / hoodrotaterate);
if (props.globals.getNode("/scenery/airport/jetway-movable-debug").getBoolValue())
{
print("Animated jetway debug information:");
print("----------------------------------");
print("x-translation-m: " ~ xtranslate);
print("y-rotation-deg: " ~ yrotate);
print("z-rotation-deg: " ~ zrotate);
print("hood-x-rotation-deg: " ~ hoodrotate);
print("");
print("Total animation time: " ~ length ~ " seconds");
}
if (!props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[0]/extended").setBoolValue(1);
interpolate("/scenery/airport/jetway[0]/position-norm",
1, -getprop("/scenery/airport/jetway[0]/position-norm") + 1 * length
);
gui.popupTip("Extending jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[0]/position-norm");
setprop("/scenery/airport/jetway[0]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[0]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[0]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[0]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate) ;
setprop("/scenery/airport/jetway[0]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position < 1 and props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
elsif (props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[0]/extended").setBoolValue(0);
interpolate("/scenery/airport/jetway[0]/position-norm",
0, getprop("/scenery/airport/jetway[0]/position-norm") * length
);
gui.popupTip("Retracting jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[0]/position-norm");
setprop("/scenery/airport/jetway[0]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[0]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[0]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[0]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[0]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position > 0 and !props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
}
else
{
gui.popupTip("Cannot extend jetway: Your aircraft does not define the required positioning information.");
}
]]></script>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1Rotunda</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/z-rotation-deg</property>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/x-translation-m</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/z-entrance-rotation-deg</property>
<center>
<x-m>19.536</x-m>
<y-m>0.081</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>-1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/y-rotation-deg</property>
<center>
<x-m>1.5</x-m>
<y-m>0</y-m>
<z-m>4</z-m>
</center>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/hood-x-rotation-deg</property>
<center>
<x-m>0</x-m>
<y-m>2.019</y-m>
<z-m>3.852</z-m>
</center>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- JETWAY 2 -->
<animation>
<type>pick</type>
<object-name>Rotunda1.001</object-name>
<object-name>Tunnel1Rotunda.001</object-name>
<object-name>Tunnel1.001</object-name>
<object-name>Tunnel2.001</object-name>
<object-name>Tunnel3.001</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<action>
<button>0</button>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<!-- Nasal pick code for jetway 2 -->
<script><![CDATA[
if (props.globals.getNode("/scenery/airport/jetway[1]/extended") == nil)
{
props.globals.initNode("/scenery/airport/jetway[1]/extended", 0, "BOOL");
setprop("/scenery/airport/jetway[1]/position-norm", 0);
}
if (props.globals.getNode("/scenery/airport/jetway-movable-debug") == nil)
{
props.globals.initNode("/scenery/airport/jetway-movable-debug", 0, "BOOL");
}
# nasal interpolation function - returns a value based on a set interpolation table, like the <interpolate> feature of XML animations
# takes an array with sub-arrays, like
# [[<ind>, <dep>], [<ind>, <dep>]]
var interpolateTable = func(table, value)
{
var newValue = 0;
forindex (i; table)
{
if (value >= table[i][0])
{
if (i + 1 < size(table))
{
newValue = (value - table[i][0]) / (table[i + 1][0] - table[i][0]) * (table[i + 1][1] - table[i][1]) + table[i][1];
}
else
{
newValue = table[i][1];
}
}
}
return newValue;
};
var xtranslate = nil;
var yrotate = nil;
var zrotate = nil;
var hoodrotate = nil;
if (props.globals.getNode("/aircraft/door[1]/x-m") != nil and props.globals.getNode("/aircraft/door[1]/y-m") != nil and props.globals.getNode("/aircraft/door[1]/z-m") != nil)
{
var xm = getprop("/aircraft/door[1]/x-m") - 18;
var ym = getprop("/aircraft/door[1]/y-m") + 2.35;
var zm = getprop("/aircraft/door[1]/z-m") - 3.752;
# calculate the extension length using the Pythagorean Theorem (c = sqrt(a^2 + b^2))
xtranslate = math.sqrt(xm * xm + ym * ym) - 11.536;
# calculate the rotation angle along the Y axis
yrotate = math.atan2(zm / xm, 1) * R2D;
# calculate the rotation angle along the Z axis
zrotate = math.atan2(ym / xm, 1) * R2D;
# hood rotation angle is predefined
hoodrotate = getprop("/aircraft/jetway-hood-deg");
}
# old system (legacy support)
elsif (props.globals.getNode("/aircraft/jetway2-pos/x-tra") != nil and props.globals.getNode("/aircraft/jetway2-pos/y-rot") != nil and props.globals.getNode("/aircraft/jetway2-pos/z-rot") != nil and props.globals.getNode("/aircraft/jetway2-pos/hood-rot") != nil)
{
# rotation angles and extension lengths are predefined
xtranslate = getprop("/aircraft/jetway2-pos/x-tra");
yrotate = getprop("/aircraft/jetway2-pos/y-rot");
zrotate = getprop("/aircraft/jetway2-pos/z-rot");
hoodrotate = getprop("/aircraft/jetway2-pos/hood-rot");
}
var xtranslaterate = 0.5;
var xtranslatetable = [
[0.0, 0.0],
[0.6, 0.0],
[0.8, 1.0],
[1.0, 1.0]
];
var yrotaterate = 1;
var yrotatetable = [
[0.0, 0.0],
[0.6, 0.0],
[0.7, 1.0],
[1.0, 1.0]
];
var zrotaterate = 1;
var zrotatetable = [
[0.0, 0.0],
[0.4, 0.7],
[0.6, 1.0],
[1.0, 1.0]
];
var zentrancerotaterate = 5;
var zentrancerotatetable = [
[0.0, 0.0],
[0.5, 0.0],
[0.6, 0.7],
[0.7, 1.0],
[1.0, 1.0]
];
var hoodrotaterate = 1;
var hoodrotatetable = [
[0.0, 0.0],
[0.9, 0.0],
[1,0, 1.0]
];
if (xtranslate != nil and yrotate != nil and zrotate != nil and hoodrotate != nil)
{
var length = math.abs(xtranslate / xtranslaterate) + math.abs(yrotate / yrotaterate) + math.abs(zrotate / zrotaterate) + math.abs(zrotate / zentrancerotaterate) + math.abs(hoodrotate / hoodrotaterate);
if (props.globals.getNode("/scenery/airport/jetway-movable-debug").getBoolValue())
{
print("Animated jetway debug information:");
print("----------------------------------");
print("x-translation-m: " ~ xtranslate);
print("y-rotation-deg: " ~ yrotate);
print("z-rotation-deg: " ~ zrotate);
print("hood-x-rotation-deg: " ~ hoodrotate);
print("");
print("Total animation time: " ~ length ~ " seconds");
}
if (!props.globals.getNode("/scenery/airport/jetway[1]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[1]/extended").setBoolValue(1);
interpolate("/scenery/airport/jetway[1]/position-norm",
1, -getprop("/scenery/airport/jetway[1]/position-norm") + 1 * length
);
gui.popupTip("Extending jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[1]/position-norm");
setprop("/scenery/airport/jetway[1]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[1]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[1]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[1]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate) ;
setprop("/scenery/airport/jetway[1]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position < 1 and props.globals.getNode("/scenery/airport/jetway[1]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
elsif (props.globals.getNode("/scenery/airport/jetway[1]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[1]/extended").setBoolValue(0);
interpolate("/scenery/airport/jetway[1]/position-norm",
0, getprop("/scenery/airport/jetway[1]/position-norm") * length
);
gui.popupTip("Retracting jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[1]/position-norm");
setprop("/scenery/airport/jetway[1]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[1]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[1]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[1]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[1]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position > 0 and !props.globals.getNode("/scenery/airport/jetway[1]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
}
else
{
gui.popupTip("Cannot extend jetway: Your aircraft does not define the required positioning information.");
}
]]></script>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1Rotunda.001</object-name>
<object-name>Tunnel1.001</object-name>
<object-name>Tunnel2.001</object-name>
<object-name>Tunnel3.001</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/z-rotation-deg</property>
<center>
<x-m>18</x-m>
<y-m>-5</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>Tunnel2.001</object-name>
<object-name>Tunnel3.001</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/x-translation-m</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/z-entrance-rotation-deg</property>
<center>
<x-m>29.536</x-m>
<y-m>-5.081</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>-1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1.001</object-name>
<object-name>Tunnel2.001</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/y-rotation-deg</property>
<center>
<x-m>19.5</x-m>
<y-m>0</y-m>
<z-m>4</z-m>
</center>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/hood-x-rotation-deg</property>
<center>
<x-m>0</x-m>
<y-m>-2.982</y-m>
<z-m>3.852</z-m>
</center>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- Night/day lighting -->
<animation>
<type>textranslate</type>
<object-name>Rotunda1</object-name>
<object-name>Rotunda1.001</object-name>
<object-name>Tunnel1Rotunda</object-name>
<object-name>Tunnel1Rotunda.001</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel1.001</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel2.001</object-name>
<object-name>Tunnel3</object-name>
<object-name>Tunnel3.001</object-name>
<object-name>Rotunda2</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Entrance</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood</object-name>
<object-name>Hood.001</object-name>
<property>/sim/time/sun-angle-rad</property>
<factor>0.3125</factor>
<step>1.6</step>
<axis>
<x>1</x>
<y>0</y>
</axis>
</animation>
<!-- Make the ground marker and jetway entrances "non-solid" so that the aircraft does not collide with them -->
<animation>
<object-name>Marker</object-name>
<object-name>Entrance</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood</object-name>
<object-name>Hood.001</object-name>
<enable-hot type="bool">false</enable-hot>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,904 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>jetway-movable-3.ac</path>
<!-- JETWAY 1 -->
<animation>
<type>pick</type>
<object-name>Rotunda1</object-name>
<object-name>Tunnel1Rotunda</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<action>
<button>0</button>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<!-- Nasal pick code for jetway 1 -->
<script><![CDATA[
if (props.globals.getNode("/scenery/airport/jetway[0]/extended") == nil)
{
props.globals.initNode("/scenery/airport/jetway[0]/extended", 0, "BOOL");
setprop("/scenery/airport/jetway[0]/position-norm", 0);
}
if (props.globals.getNode("/scenery/airport/jetway-movable-debug") == nil)
{
props.globals.initNode("/scenery/airport/jetway-movable-debug", 0, "BOOL");
}
# nasal interpolation function - returns a value based on a set interpolation table, like the <interpolate> feature of XML animations
# takes an array with sub-arrays, like
# [[<ind>, <dep>], [<ind>, <dep>]]
var interpolateTable = func(table, value)
{
var newValue = 0;
forindex (i; table)
{
if (value >= table[i][0])
{
if (i + 1 < size(table))
{
newValue = (value - table[i][0]) / (table[i + 1][0] - table[i][0]) * (table[i + 1][1] - table[i][1]) + table[i][1];
}
else
{
newValue = table[i][1];
}
}
}
return newValue;
};
if (props.globals.getNode("/aircraft/door[0]/x-m") != nil and props.globals.getNode("/aircraft/door[0]/y-m") != nil and props.globals.getNode("/aircraft/door[0]/z-m") != nil)
{
var xm = getprop("/aircraft/door[0]/x-m");
var ym = getprop("/aircraft/door[0]/y-m") - 2.65;
var zm = getprop("/aircraft/door[0]/z-m") - 3.752;
# calculate the extension length using the Pythagorean Theorem (c = sqrt(a^2 + b^2))
var xtranslate = math.sqrt(xm * xm + ym * ym) - 19.536;
# calculate the rotation angle along the Y axis
var yrotate = math.atan2(zm / xm, 1) * R2D;
# calculate the rotation angle along the Z axis
var zrotate = math.atan2(ym / xm, 1) * R2D;
# hood rotation angle is predefined
var hoodrotate = getprop("/aircraft/jetway-hood-deg");
}
# old system (legacy support)
elsif (props.globals.getNode("/aircraft/jetway-pos/x-tra") != nil and props.globals.getNode("/aircraft/jetway-pos/y-rot") != nil and props.globals.getNode("/aircraft/jetway-pos/z-rot") != nil and props.globals.getNode("/aircraft/jetway-pos/hood-rot") != nil)
{
# rotation angles and extension lengths are predefined
var xtranslate = getprop("/aircraft/jetway-pos/x-tra");
var yrotate = getprop("/aircraft/jetway-pos/y-rot");
var zrotate = getprop("/aircraft/jetway-pos/z-rot");
var hoodrotate = getprop("/aircraft/jetway-pos/hood-rot");
}
var xtranslaterate = 0.5;
var xtranslatetable = [
[0.0, 0.0],
[0.2, 0.5],
[0.6, 0.5],
[0.8, 1.0],
[1.0, 1.0]
];
var yrotaterate = 1;
var yrotatetable = [
[0.0, 0.0],
[0.4, 0.7],
[0.7, 1.0],
[1.0, 1.0]
];
var zrotaterate = 1;
var zrotatetable = [
[0.0, 0.0],
[0.2, 0.0],
[0.6, 0.7],
[0.8, 0.7],
[0.9, 1.0],
[1.0, 1.0]
];
var zentrancerotaterate = 5;
var zentrancerotatetable = [
[0.0, 0.0],
[0.5, 0.0],
[0.6, 0.7],
[0.8, 0.7],
[0.9, 1.0],
[1.0, 1.0]
];
var hoodrotaterate = 1;
var hoodrotatetable = [
[0.0, 0.0],
[0.9, 0.0],
[1,0, 1.0]
];
if (xtranslate != nil and yrotate != nil and zrotate != nil and hoodrotate != nil)
{
var length = math.abs(xtranslate / xtranslaterate) + math.abs(yrotate / yrotaterate) + math.abs(zrotate / zrotaterate) + math.abs(zrotate / zentrancerotaterate) + math.abs(hoodrotate / hoodrotaterate);
if (props.globals.getNode("/scenery/airport/jetway-movable-debug").getBoolValue())
{
print("Animated jetway debug information:");
print("----------------------------------");
print("x-translation-m: " ~ xtranslate);
print("y-rotation-deg: " ~ yrotate);
print("z-rotation-deg: " ~ zrotate);
print("hood-x-rotation-deg: " ~ hoodrotate);
print("");
print("Total animation time: " ~ length ~ " seconds");
}
if (!props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[0]/extended").setBoolValue(1);
interpolate("/scenery/airport/jetway[0]/position-norm",
1, -getprop("/scenery/airport/jetway[0]/position-norm") + 1 * length
);
gui.popupTip("Extending jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[0]/position-norm");
setprop("/scenery/airport/jetway[0]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[0]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[0]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[0]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate) ;
setprop("/scenery/airport/jetway[0]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position < 1 and props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
elsif (props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[0]/extended").setBoolValue(0);
interpolate("/scenery/airport/jetway[0]/position-norm",
0, getprop("/scenery/airport/jetway[0]/position-norm") * length
);
gui.popupTip("Retracting jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[0]/position-norm");
setprop("/scenery/airport/jetway[0]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[0]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[0]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[0]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[0]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position > 0 and !props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
}
else
{
gui.popupTip("Cannot extend jetway: Your aircraft does not define the required positioning information.");
}
]]></script>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1Rotunda</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/z-rotation-deg</property>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/x-translation-m</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/z-entrance-rotation-deg</property>
<center>
<x-m>19.536</x-m>
<y-m>0.081</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>-1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/y-rotation-deg</property>
<center>
<x-m>1.5</x-m>
<y-m>0</y-m>
<z-m>4</z-m>
</center>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/hood-x-rotation-deg</property>
<center>
<x-m>0</x-m>
<y-m>2.019</y-m>
<z-m>3.852</z-m>
</center>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- JETWAY 2 -->
<animation>
<type>pick</type>
<object-name>Rotunda1.001</object-name>
<object-name>Tunnel1Rotunda.001</object-name>
<object-name>Tunnel1.001</object-name>
<object-name>Tunnel2.001</object-name>
<object-name>Tunnel3.001</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<action>
<button>0</button>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<!-- Nasal pick code for jetway 2 -->
<script><![CDATA[
if (props.globals.getNode("/scenery/airport/jetway[1]/extended") == nil)
{
props.globals.initNode("/scenery/airport/jetway[1]/extended", 0, "BOOL");
setprop("/scenery/airport/jetway[1]/position-norm", 0);
}
if (props.globals.getNode("/scenery/airport/jetway-movable-debug") == nil)
{
props.globals.initNode("/scenery/airport/jetway-movable-debug", 0, "BOOL");
}
# nasal interpolation function - returns a value based on a set interpolation table, like the <interpolate> feature of XML animations
# takes an array with sub-arrays, like
# [[<ind>, <dep>], [<ind>, <dep>]]
var interpolateTable = func(table, value)
{
var newValue = 0;
forindex (i; table)
{
if (value >= table[i][0])
{
if (i + 1 < size(table))
{
newValue = (value - table[i][0]) / (table[i + 1][0] - table[i][0]) * (table[i + 1][1] - table[i][1]) + table[i][1];
}
else
{
newValue = table[i][1];
}
}
}
return newValue;
};
if (props.globals.getNode("/aircraft/door[1]/x-m") != nil and props.globals.getNode("/aircraft/door[1]/y-m") != nil and props.globals.getNode("/aircraft/door[1]/z-m") != nil)
{
var xm = getprop("/aircraft/door[1]/x-m") - 18;
var ym = getprop("/aircraft/door[1]/y-m") + 2.35;
var zm = getprop("/aircraft/door[1]/z-m") - 3.752;
# calculate the extension length using the Pythagorean Theorem (c = sqrt(a^2 + b^2))
var xtranslate = math.sqrt(xm * xm + ym * ym) - 11.536;
# calculate the rotation angle along the Y axis
var yrotate = math.atan2(zm / xm, 1) * R2D;
# calculate the rotation angle along the Z axis
var zrotate = math.atan2(ym / xm, 1) * R2D;
# hood rotation angle is predefined
var hoodrotate = getprop("/aircraft/jetway-hood-deg");
}
# old system (legacy support)
elsif (props.globals.getNode("/aircraft/jetway2-pos/x-tra") != nil and props.globals.getNode("/aircraft/jetway2-pos/y-rot") != nil and props.globals.getNode("/aircraft/jetway2-pos/z-rot") != nil and props.globals.getNode("/aircraft/jetway2-pos/hood-rot") != nil)
{
# rotation angles and extension lengths are predefined
var xtranslate = getprop("/aircraft/jetway2-pos/x-tra");
var yrotate = getprop("/aircraft/jetway2-pos/y-rot");
var zrotate = getprop("/aircraft/jetway2-pos/z-rot");
var hoodrotate = getprop("/aircraft/jetway2-pos/hood-rot");
}
var xtranslaterate = 0.5;
var xtranslatetable = [
[0.0, 0.0],
[0.6, 0.0],
[0.8, 1.0],
[1.0, 1.0]
];
var yrotaterate = 1;
var yrotatetable = [
[0.0, 0.0],
[0.6, 0.0],
[0.7, 1.0],
[1.0, 1.0]
];
var zrotaterate = 1;
var zrotatetable = [
[0.0, 0.0],
[0.4, 0.7],
[0.6, 1.0],
[1.0, 1.0]
];
var zentrancerotaterate = 5;
var zentrancerotatetable = [
[0.0, 0.0],
[0.5, 0.0],
[0.6, 0.7],
[0.7, 1.0],
[1.0, 1.0]
];
var hoodrotaterate = 1;
var hoodrotatetable = [
[0.0, 0.0],
[0.9, 0.0],
[1,0, 1.0]
];
if (xtranslate != nil and yrotate != nil and zrotate != nil and hoodrotate != nil)
{
var length = math.abs(xtranslate / xtranslaterate) + math.abs(yrotate / yrotaterate) + math.abs(zrotate / zrotaterate) + math.abs(zrotate / zentrancerotaterate) + math.abs(hoodrotate / hoodrotaterate);
if (props.globals.getNode("/scenery/airport/jetway-movable-debug").getBoolValue())
{
print("Animated jetway debug information:");
print("----------------------------------");
print("x-translation-m: " ~ xtranslate);
print("y-rotation-deg: " ~ yrotate);
print("z-rotation-deg: " ~ zrotate);
print("hood-x-rotation-deg: " ~ hoodrotate);
print("");
print("Total animation time: " ~ length ~ " seconds");
}
if (!props.globals.getNode("/scenery/airport/jetway[1]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[1]/extended").setBoolValue(1);
interpolate("/scenery/airport/jetway[1]/position-norm",
1, -getprop("/scenery/airport/jetway[1]/position-norm") + 1 * length
);
gui.popupTip("Extending jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[1]/position-norm");
setprop("/scenery/airport/jetway[1]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[1]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[1]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[1]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate) ;
setprop("/scenery/airport/jetway[1]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position < 1 and props.globals.getNode("/scenery/airport/jetway[1]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
elsif (props.globals.getNode("/scenery/airport/jetway[1]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[1]/extended").setBoolValue(0);
interpolate("/scenery/airport/jetway[1]/position-norm",
0, getprop("/scenery/airport/jetway[1]/position-norm") * length
);
gui.popupTip("Retracting jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[1]/position-norm");
setprop("/scenery/airport/jetway[1]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[1]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[1]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[1]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[1]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position > 0 and !props.globals.getNode("/scenery/airport/jetway[1]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
}
else
{
gui.popupTip("Cannot extend jetway: Your aircraft does not define the required positioning information.");
}
]]></script>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1Rotunda.001</object-name>
<object-name>Tunnel1.001</object-name>
<object-name>Tunnel2.001</object-name>
<object-name>Tunnel3.001</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/z-rotation-deg</property>
<center>
<x-m>18</x-m>
<y-m>-5</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>Tunnel2.001</object-name>
<object-name>Tunnel3.001</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/x-translation-m</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/z-entrance-rotation-deg</property>
<center>
<x-m>29.536</x-m>
<y-m>-5.081</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>-1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1.001</object-name>
<object-name>Tunnel2.001</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Entrance.001</object-name>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/y-rotation-deg</property>
<center>
<x-m>19.5</x-m>
<y-m>0</y-m>
<z-m>4</z-m>
</center>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Hood.001</object-name>
<property>/scenery/airport/jetway[1]/hood-x-rotation-deg</property>
<center>
<x-m>0</x-m>
<y-m>-2.982</y-m>
<z-m>3.852</z-m>
</center>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- JETWAY 3 -->
<animation>
<type>pick</type>
<object-name>Rotunda1.002</object-name>
<object-name>Tunnel1Rotunda.002</object-name>
<object-name>Tunnel1.002</object-name>
<object-name>Tunnel2.002</object-name>
<object-name>Tunnel3.002</object-name>
<object-name>Rotunda2.002</object-name>
<object-name>Entrance.002</object-name>
<object-name>Hood.002</object-name>
<action>
<button>0</button>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<!-- Nasal pick code for jetway 3 -->
<script><![CDATA[
if (props.globals.getNode("/scenery/airport/jetway[2]/extended") == nil)
{
props.globals.initNode("/scenery/airport/jetway[2]/extended", 0, "BOOL");
setprop("/scenery/airport/jetway[2]/position-norm", 0);
}
if (props.globals.getNode("/scenery/airport/jetway-movable-debug") == nil)
{
props.globals.initNode("/scenery/airport/jetway-movable-debug", 0, "BOOL");
}
# nasal interpolation function - returns a value based on a set interpolation table, like the <interpolate> feature of XML animations
# takes an array with sub-arrays, like
# [[<ind>, <dep>], [<ind>, <dep>]]
var interpolateTable = func(table, value)
{
var newValue = 0;
forindex (i; table)
{
if (value >= table[i][0])
{
if (i + 1 < size(table))
{
newValue = (value - table[i][0]) / (table[i + 1][0] - table[i][0]) * (table[i + 1][1] - table[i][1]) + table[i][1];
}
else
{
newValue = table[i][1];
}
}
}
return newValue;
};
var xtranslate = nil;
var yrotate = nil;
var zrotate = nil;
var hoodrotate = nil;
if (props.globals.getNode("/aircraft/door[2]/x-m") != nil and props.globals.getNode("/aircraft/door[2]/y-m") != nil and props.globals.getNode("/aircraft/door[2]/z-m") != nil)
{print("DEBUG");
var xm = getprop("/aircraft/door[2]/x-m") - 18;
var ym = getprop("/aircraft/door[2]/y-m") + 7.35;
var zm = getprop("/aircraft/door[2]/z-m") - 5.752;
# calculate the extension length using the Pythagorean Theorem (c = sqrt(a^2 + b^2))
xtranslate = math.sqrt(xm * xm + ym * ym) - 11.536;
# calculate the rotation angle along the Y axis
yrotate = math.atan2(zm / xm, 1) * R2D;
# calculate the rotation angle along the Z axis
zrotate = math.atan2(ym / xm, 1) * R2D;
# hood rotation angle is predefined
hoodrotate = getprop("/aircraft/jetway-hood-deg");
}
# old system (legacy support)
elsif (props.globals.getNode("/aircraft/jetway3-pos/x-tra") != nil and props.globals.getNode("/aircraft/jetway3-pos/y-rot") != nil and props.globals.getNode("/aircraft/jetway3-pos/z-rot") != nil and props.globals.getNode("/aircraft/jetway3-pos/hood-rot") != nil)
{
# rotation angles and extension lengths are predefined
xtranslate = getprop("/aircraft/jetway3-pos/x-tra");
yrotate = getprop("/aircraft/jetway3-pos/y-rot");
zrotate = getprop("/aircraft/jetway3-pos/z-rot");
hoodrotate = getprop("/aircraft/jetway3-pos/hood-rot");
}
var xtranslaterate = 0.5;
var xtranslatetable = [
[0.0, 0.0],
[0.6, 0.0],
[0.8, 1.0],
[1.0, 1.0]
];
var yrotaterate = 1;
var yrotatetable = [
[0.0, 0.0],
[0.6, 0.0],
[0.7, 1.0],
[1.0, 1.0]
];
var zrotaterate = 1;
var zrotatetable = [
[0.0, 0.0],
[0.4, 0.7],
[0.6, 1.0],
[1.0, 1.0]
];
var zentrancerotaterate = 5;
var zentrancerotatetable = [
[0.0, 0.0],
[0.5, 0.0],
[0.6, 0.7],
[0.7, 1.0],
[1.0, 1.0]
];
var hoodrotaterate = 1;
var hoodrotatetable = [
[0.0, 0.0],
[0.9, 0.0],
[1,0, 1.0]
];
if (xtranslate != nil and yrotate != nil and zrotate != nil and hoodrotate != nil)
{
var length = math.abs(xtranslate / xtranslaterate) + math.abs(yrotate / yrotaterate) + math.abs(zrotate / zrotaterate) + math.abs(zrotate / zentrancerotaterate) + math.abs(hoodrotate / hoodrotaterate);
if (props.globals.getNode("/scenery/airport/jetway-movable-debug").getBoolValue())
{
print("Animated jetway debug information:");
print("----------------------------------");
print("x-translation-m: " ~ xtranslate);
print("y-rotation-deg: " ~ yrotate);
print("z-rotation-deg: " ~ zrotate);
print("hood-x-rotation-deg: " ~ hoodrotate);
print("");
print("Total animation time: " ~ length ~ " seconds");
}
if (!props.globals.getNode("/scenery/airport/jetway[2]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[2]/extended").setBoolValue(1);
interpolate("/scenery/airport/jetway[2]/position-norm",
1, -getprop("/scenery/airport/jetway[2]/position-norm") + 1 * length
);
gui.popupTip("Extending jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[2]/position-norm");
setprop("/scenery/airport/jetway[2]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[2]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[2]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[2]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate) ;
setprop("/scenery/airport/jetway[2]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position < 1 and props.globals.getNode("/scenery/airport/jetway[2]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
elsif (props.globals.getNode("/scenery/airport/jetway[2]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[2]/extended").setBoolValue(0);
interpolate("/scenery/airport/jetway[2]/position-norm",
0, getprop("/scenery/airport/jetway[2]/position-norm") * length
);
gui.popupTip("Retracting jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[2]/position-norm");
setprop("/scenery/airport/jetway[2]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[2]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[2]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[2]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[2]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position > 0 and !props.globals.getNode("/scenery/airport/jetway[2]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
}
else
{
gui.popupTip("Cannot extend jetway: Your aircraft does not define the required positioning information.");
}
]]></script>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1Rotunda.002</object-name>
<object-name>Tunnel1.002</object-name>
<object-name>Tunnel2.002</object-name>
<object-name>Tunnel3.002</object-name>
<object-name>Rotunda2.002</object-name>
<object-name>Entrance.002</object-name>
<object-name>Hood.002</object-name>
<property>/scenery/airport/jetway[2]/z-rotation-deg</property>
<center>
<x-m>18</x-m>
<y-m>-10</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>Tunnel2.002</object-name>
<object-name>Tunnel3.002</object-name>
<object-name>Rotunda2.002</object-name>
<object-name>Entrance.002</object-name>
<object-name>Hood.002</object-name>
<property>/scenery/airport/jetway[2]/x-translation-m</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Entrance.002</object-name>
<object-name>Hood.002</object-name>
<property>/scenery/airport/jetway[2]/z-entrance-rotation-deg</property>
<center>
<x-m>34.536</x-m>
<y-m>-10.081</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>-1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1.002</object-name>
<object-name>Tunnel2.002</object-name>
<object-name>Rotunda2.002</object-name>
<object-name>Entrance.002</object-name>
<object-name>Hood.002</object-name>
<property>/scenery/airport/jetway[2]/y-rotation-deg</property>
<center>
<x-m>19.5</x-m>
<y-m>0</y-m>
<z-m>6</z-m>
</center>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Hood.002</object-name>
<property>/scenery/airport/jetway[2]/hood-x-rotation-deg</property>
<center>
<x-m>0</x-m>
<y-m>-7.892</y-m>
<z-m>5.852</z-m>
</center>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- Night/day lighting -->
<animation>
<type>textranslate</type>
<object-name>Rotunda1</object-name>
<object-name>Rotunda1.001</object-name>
<object-name>Rotunda1.002</object-name>
<object-name>Tunnel1Rotunda</object-name>
<object-name>Tunnel1Rotunda.001</object-name>
<object-name>Tunnel1Rotunda.002</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel1.001</object-name>
<object-name>Tunnel1.002</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel2.001</object-name>
<object-name>Tunnel2.002</object-name>
<object-name>Tunnel3</object-name>
<object-name>Tunnel3.001</object-name>
<object-name>Tunnel3.002</object-name>
<object-name>Rotunda2</object-name>
<object-name>Rotunda2.001</object-name>
<object-name>Rotunda2.002</object-name>
<object-name>Entrance</object-name>
<object-name>Entrance.001</object-name>
<object-name>Entrance.002</object-name>
<object-name>Hood</object-name>
<object-name>Hood.001</object-name>
<object-name>Hood.002</object-name>
<property>/sim/time/sun-angle-rad</property>
<factor>0.3125</factor>
<step>1.6</step>
<axis>
<x>1</x>
<y>0</y>
</axis>
</animation>
<!-- Make the ground marker and jetway entrances "non-solid" so that the aircraft does not collide with them -->
<animation>
<object-name>Marker</object-name>
<object-name>Entrance</object-name>
<object-name>Entrance.001</object-name>
<object-name>Entrance.002</object-name>
<object-name>Hood</object-name>
<object-name>Hood.001</object-name>
<object-name>Hood.002</object-name>
<enable-hot type="bool">false</enable-hot>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,323 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>jetway-movable.ac</path>
<animation>
<type>pick</type>
<object-name>Rotunda1</object-name>
<object-name>Tunnel1Rotunda</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<action>
<button>0</button>
<repeatable type="bool">false</repeatable>
<binding>
<command>nasal</command>
<!-- Nasal pick code -->
<script><![CDATA[
if (props.globals.getNode("/scenery/airport/jetway[0]/extended") == nil)
{
props.globals.initNode("/scenery/airport/jetway[0]/extended", 0, "BOOL");
setprop("/scenery/airport/jetway[0]/position-norm", 0);
}
if (props.globals.getNode("/scenery/airport/jetway-movable-debug") == nil)
{
props.globals.initNode("/scenery/airport/jetway-movable-debug", 0, "BOOL");
}
# nasal interpolation function - returns a value based on a set interpolation table, like the <interpolate> feature of XML animations
# takes an array with sub-arrays, like
# [[<ind>, <dep>], [<ind>, <dep>]]
var interpolateTable = func(table, value)
{
var newValue = 0;
forindex (i; table)
{
if (value >= table[i][0])
{
if (i + 1 < size(table))
{
newValue = (value - table[i][0]) / (table[i + 1][0] - table[i][0]) * (table[i + 1][1] - table[i][1]) + table[i][1];
}
else
{
newValue = table[i][1];
}
}
}
return newValue;
};
var xtranslate = nil;
var yrotate = nil;
var zrotate = nil;
var hoodrotate = nil;
if (props.globals.getNode("/aircraft/door[0]/x-m") != nil and props.globals.getNode("/aircraft/door[0]/y-m") != nil and props.globals.getNode("/aircraft/door[0]/z-m") != nil)
{
var xm = getprop("/aircraft/door[0]/x-m");
var ym = getprop("/aircraft/door[0]/y-m") - 2.65;
var zm = getprop("/aircraft/door[0]/z-m") - 3.752;
# calculate the extension length using the Pythagorean Theorem (c = sqrt(a^2 + b^2))
xtranslate = math.sqrt(xm * xm + ym * ym) - 19.536;
# calculate the rotation angle along the Y axis
yrotate = math.atan2(zm / xm, 1) * R2D;
# calculate the rotation angle along the Z axis
zrotate = math.atan2(ym / xm, 1) * R2D;
# hood rotation angle is predefined
hoodrotate = getprop("/aircraft/jetway-hood-deg");
}
# old system (legacy support)
elsif (props.globals.getNode("/aircraft/jetway-pos/x-tra") != nil and props.globals.getNode("/aircraft/jetway-pos/y-rot") != nil and props.globals.getNode("/aircraft/jetway-pos/z-rot") != nil and props.globals.getNode("/aircraft/jetway-pos/hood-rot") != nil)
{
# rotation angles and extension lengths are predefined
var xtranslate = getprop("/aircraft/jetway-pos/x-tra");
var yrotate = getprop("/aircraft/jetway-pos/y-rot");
var zrotate = getprop("/aircraft/jetway-pos/z-rot");
var hoodrotate = getprop("/aircraft/jetway-pos/hood-rot");
}
var xtranslaterate = 0.5;
var xtranslatetable = [
[0.0, 0.0],
[0.2, 0.5],
[0.6, 0.5],
[0.8, 1.0],
[1.0, 1.0]
];
var yrotaterate = 1;
var yrotatetable = [
[0.0, 0.0],
[0.4, 0.7],
[0.7, 1.0],
[1.0, 1.0]
];
var zrotaterate = 1;
var zrotatetable = [
[0.0, 0.0],
[0.2, 0.0],
[0.6, 0.7],
[0.8, 0.7],
[0.9, 1.0],
[1.0, 1.0]
];
var zentrancerotaterate = 5;
var zentrancerotatetable = [
[0.0, 0.0],
[0.5, 0.0],
[0.6, 0.7],
[0.8, 0.7],
[0.9, 1.0],
[1.0, 1.0]
];
var hoodrotaterate = 1;
var hoodrotatetable = [
[0.0, 0.0],
[0.9, 0.0],
[1,0, 1.0]
];
if (xtranslate != nil and yrotate != nil and zrotate != nil and hoodrotate != nil)
{
var length = math.abs(xtranslate / xtranslaterate) + math.abs(yrotate / yrotaterate) + math.abs(zrotate / zrotaterate) + math.abs(zrotate / zentrancerotaterate) + math.abs(hoodrotate / hoodrotaterate);
if (props.globals.getNode("/scenery/airport/jetway-movable-debug").getBoolValue())
{
print("Animated jetway debug information:");
print("----------------------------------");
print("x-translation-m: " ~ xtranslate);
print("y-rotation-deg: " ~ yrotate);
print("z-rotation-deg: " ~ zrotate);
print("hood-x-rotation-deg: " ~ hoodrotate);
print("");
print("Total animation time: " ~ length ~ " seconds");
}
if (!props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[0]/extended").setBoolValue(1);
interpolate("/scenery/airport/jetway[0]/position-norm",
1, -getprop("/scenery/airport/jetway[0]/position-norm") + 1 * length
);
gui.popupTip("Extending jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[0]/position-norm");
setprop("/scenery/airport/jetway[0]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[0]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[0]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[0]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate) ;
setprop("/scenery/airport/jetway[0]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position < 1 and props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
elsif (props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
props.globals.getNode("/scenery/airport/jetway[0]/extended").setBoolValue(0);
interpolate("/scenery/airport/jetway[0]/position-norm",
0, getprop("/scenery/airport/jetway[0]/position-norm") * length
);
gui.popupTip("Retracting jetway.");
var loop = func
{
var position = getprop("/scenery/airport/jetway[0]/position-norm");
setprop("/scenery/airport/jetway[0]/x-translation-m", interpolateTable(xtranslatetable, position) * xtranslate);
setprop("/scenery/airport/jetway[0]/y-rotation-deg", interpolateTable(yrotatetable, position) * yrotate);
setprop("/scenery/airport/jetway[0]/z-rotation-deg", interpolateTable(zrotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[0]/z-entrance-rotation-deg", interpolateTable(zentrancerotatetable, position) * zrotate);
setprop("/scenery/airport/jetway[0]/hood-x-rotation-deg", interpolateTable(hoodrotatetable, position) * hoodrotate);
if (position > 0 and !props.globals.getNode("/scenery/airport/jetway[0]/extended").getBoolValue())
{
settimer(loop, 0);
}
};
loop();
}
}
else
{
gui.popupTip("Cannot extend jetway: Your aircraft does not define the required positioning information.");
}
]]></script>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1Rotunda</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/z-rotation-deg</property>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/x-translation-m</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/z-entrance-rotation-deg</property>
<center>
<x-m>19.536</x-m>
<y-m>0.081</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>-1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/y-rotation-deg</property>
<center>
<x-m>1.5</x-m>
<y-m>0</y-m>
<z-m>4</z-m>
</center>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>Hood</object-name>
<property>/scenery/airport/jetway[0]/hood-x-rotation-deg</property>
<center>
<x-m>0</x-m>
<y-m>2.019</y-m>
<z-m>3.852</z-m>
</center>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- Night/day lighting -->
<animation>
<type>textranslate</type>
<object-name>Rotunda1</object-name>
<object-name>Tunnel1Rotunda</object-name>
<object-name>Tunnel1</object-name>
<object-name>Tunnel2</object-name>
<object-name>Tunnel3</object-name>
<object-name>Rotunda2</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<property>/sim/time/sun-angle-rad</property>
<factor>0.3125</factor>
<step>1.6</step>
<axis>
<x>1</x>
<y>0</y>
</axis>
</animation>
<!-- Make the ground marker and jetway entrance "non-solid" so that the aircraft does not collide with them -->
<animation>
<object-name>Marker</object-name>
<object-name>Entrance</object-name>
<object-name>Hood</object-name>
<enable-hot type="bool">false</enable-hot>
</animation>
</PropertyList>

View file

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<PropertyList>
<path>jetway-ba.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-property>sim/rendering/static-lod/bare</max-property>
</animation>
<animation>
<type>textranslate</type>
<object-name>jour</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> -1 </x>
<y> 0 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red> 1.0 </red>
<green> 1.0 </green>
<blue> 1.0 </blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than-equals>
</condition>
<emission>
<red> 0.0 </red>
<green> 0.0 </green>
<blue> 0.0 </blue>
</emission>
</animation>
</PropertyList>

View file

@ -0,0 +1,198 @@
<?xml version="1.0"?>
<PropertyList>
<path>Douglas.ac</path>
<!-- Trucks models and artworks courtesy of XPGoodWay Team
(http://www.xpgoodwayteam.org/site_xpushback/) -->
<!-- switch to night/day textures -->
<animation>
<type>textranslate</type>
<property>/sim/time/sun-angle-rad</property>
<step>1.60</step>
<factor>0.318471338</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>material</type>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.60</value>
</greater-than>
</condition>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
</emission>
</animation>
<animation>
<type>material</type>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.60</value>
</less-than-equals>
</condition>
<emission>
<red>0</red>
<green>0</green>
<blue>0</blue>
</emission>
</animation>
<animation>
<type>select</type>
<condition>
<property>sim/model/pushback/enabled</property>
<property>gear/gear[0]/wow</property>
</condition>
</animation>
<animation>
<type>rotate</type>
<condition>
<greater-than>
<property>sim/model/pushback/position-norm</property>
<value>0.99</value>
</greater-than>
</condition>
<property>gear/gear[0]/steering-norm</property>
<factor>-70</factor>
<center>
<x-m>3</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- change heading of the pushback when driving the arc -->
<animation>
<type>rotate</type>
<property>sim/model/pushback/position-norm</property>
<factor>-90</factor>
<offset-deg>90</offset-deg>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- compensate for gear compression -->
<animation>
<type>translate</type>
<property>gear/gear[0]/compression-ft</property>
<factor>0.3048</factor>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- precalculated sin and asin to move the pushback on a 90deg arc, 25m radius -->
<animation>
<type>translate</type>
<property>sim/model/pushback/position-norm</property>
<interpolation>
<entry><ind>1.000000</ind><dep>0.000000</dep></entry>
<entry><ind>0.950000</ind><dep>1.961477</dep></entry>
<entry><ind>0.900000</ind><dep>3.910862</dep></entry>
<entry><ind>0.850000</ind><dep>5.836134</dep></entry>
<entry><ind>0.800000</ind><dep>7.725425</dep></entry>
<entry><ind>0.750000</ind><dep>9.567086</dep></entry>
<entry><ind>0.700000</ind><dep>11.349763</dep></entry>
<entry><ind>0.650000</ind><dep>13.062464</dep></entry>
<entry><ind>0.600000</ind><dep>14.694631</dep></entry>
<entry><ind>0.550000</ind><dep>16.236201</dep></entry>
<entry><ind>0.500000</ind><dep>17.677670</dep></entry>
<entry><ind>0.450000</ind><dep>19.010149</dep></entry>
<entry><ind>0.400000</ind><dep>20.225425</dep></entry>
<entry><ind>0.350000</ind><dep>21.316004</dep></entry>
<entry><ind>0.300000</ind><dep>22.275163</dep></entry>
<entry><ind>0.250000</ind><dep>23.096988</dep></entry>
<entry><ind>0.200000</ind><dep>23.776413</dep></entry>
<entry><ind>0.150000</ind><dep>24.309248</dep></entry>
<entry><ind>0.100000</ind><dep>24.692209</dep></entry>
<entry><ind>0.050000</ind><dep>24.922933</dep></entry>
<entry><ind>0.000000</ind><dep>25.000000</dep></entry>
</interpolation>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>translate</type>
<property>sim/model/pushback/position-norm</property>
<interpolation>
<entry><ind>1.000000</ind><dep>0.000000</dep></entry>
<entry><ind>0.950000</ind><dep>0.077067</dep></entry>
<entry><ind>0.900000</ind><dep>0.307791</dep></entry>
<entry><ind>0.850000</ind><dep>0.690752</dep></entry>
<entry><ind>0.800000</ind><dep>1.223587</dep></entry>
<entry><ind>0.750000</ind><dep>1.903012</dep></entry>
<entry><ind>0.700000</ind><dep>2.724837</dep></entry>
<entry><ind>0.650000</ind><dep>3.683996</dep></entry>
<entry><ind>0.600000</ind><dep>4.774575</dep></entry>
<entry><ind>0.550000</ind><dep>5.989851</dep></entry>
<entry><ind>0.500000</ind><dep>7.322330</dep></entry>
<entry><ind>0.450000</ind><dep>8.763799</dep></entry>
<entry><ind>0.400000</ind><dep>10.305369</dep></entry>
<entry><ind>0.350000</ind><dep>11.937536</dep></entry>
<entry><ind>0.300000</ind><dep>13.650238</dep></entry>
<entry><ind>0.250000</ind><dep>15.432914</dep></entry>
<entry><ind>0.200000</ind><dep>17.274575</dep></entry>
<entry><ind>0.150000</ind><dep>19.163866</dep></entry>
<entry><ind>0.100000</ind><dep>21.089138</dep></entry>
<entry><ind>0.050000</ind><dep>23.038523</dep></entry>
<entry><ind>0.000000</ind><dep>25.000000</dep></entry>
</interpolation>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<!-- compensate for pitch of aircraft, keep pushback level -->
<animation>
<type>rotate</type>
<property>orientation/pitch-deg</property>
<factor>-1</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
</PropertyList>

View file

@ -0,0 +1,198 @@
<?xml version="1.0"?>
<PropertyList>
<path>Forklift.ac</path>
<!-- Trucks models and artworks courtesy of XPGoodWay Team
(http://www.xpgoodwayteam.org/site_xpushback/) -->
<!-- switch to night/day textures -->
<animation>
<type>textranslate</type>
<property>/sim/time/sun-angle-rad</property>
<step>1.60</step>
<factor>0.318471338</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>material</type>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.60</value>
</greater-than>
</condition>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
</emission>
</animation>
<animation>
<type>material</type>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.60</value>
</less-than-equals>
</condition>
<emission>
<red>0</red>
<green>0</green>
<blue>0</blue>
</emission>
</animation>
<animation>
<type>select</type>
<condition>
<property>sim/model/pushback/enabled</property>
<property>gear/gear[0]/wow</property>
</condition>
</animation>
<animation>
<type>rotate</type>
<condition>
<greater-than>
<property>sim/model/pushback/position-norm</property>
<value>0.99</value>
</greater-than>
</condition>
<property>gear/gear[0]/steering-norm</property>
<factor>-70</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- change heading of the pushback when driving the arc -->
<animation>
<type>rotate</type>
<property>sim/model/pushback/position-norm</property>
<factor>-90</factor>
<offset-deg>90</offset-deg>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- compensate for gear compression -->
<animation>
<type>translate</type>
<property>gear/gear[0]/compression-ft</property>
<factor>0.3048</factor>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- precalculated sin and asin to move the pushback on a 90deg arc, 25m radius -->
<animation>
<type>translate</type>
<property>sim/model/pushback/position-norm</property>
<interpolation>
<entry><ind>1.000000</ind><dep>0.000000</dep></entry>
<entry><ind>0.950000</ind><dep>1.961477</dep></entry>
<entry><ind>0.900000</ind><dep>3.910862</dep></entry>
<entry><ind>0.850000</ind><dep>5.836134</dep></entry>
<entry><ind>0.800000</ind><dep>7.725425</dep></entry>
<entry><ind>0.750000</ind><dep>9.567086</dep></entry>
<entry><ind>0.700000</ind><dep>11.349763</dep></entry>
<entry><ind>0.650000</ind><dep>13.062464</dep></entry>
<entry><ind>0.600000</ind><dep>14.694631</dep></entry>
<entry><ind>0.550000</ind><dep>16.236201</dep></entry>
<entry><ind>0.500000</ind><dep>17.677670</dep></entry>
<entry><ind>0.450000</ind><dep>19.010149</dep></entry>
<entry><ind>0.400000</ind><dep>20.225425</dep></entry>
<entry><ind>0.350000</ind><dep>21.316004</dep></entry>
<entry><ind>0.300000</ind><dep>22.275163</dep></entry>
<entry><ind>0.250000</ind><dep>23.096988</dep></entry>
<entry><ind>0.200000</ind><dep>23.776413</dep></entry>
<entry><ind>0.150000</ind><dep>24.309248</dep></entry>
<entry><ind>0.100000</ind><dep>24.692209</dep></entry>
<entry><ind>0.050000</ind><dep>24.922933</dep></entry>
<entry><ind>0.000000</ind><dep>25.000000</dep></entry>
</interpolation>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>translate</type>
<property>sim/model/pushback/position-norm</property>
<interpolation>
<entry><ind>1.000000</ind><dep>0.000000</dep></entry>
<entry><ind>0.950000</ind><dep>0.077067</dep></entry>
<entry><ind>0.900000</ind><dep>0.307791</dep></entry>
<entry><ind>0.850000</ind><dep>0.690752</dep></entry>
<entry><ind>0.800000</ind><dep>1.223587</dep></entry>
<entry><ind>0.750000</ind><dep>1.903012</dep></entry>
<entry><ind>0.700000</ind><dep>2.724837</dep></entry>
<entry><ind>0.650000</ind><dep>3.683996</dep></entry>
<entry><ind>0.600000</ind><dep>4.774575</dep></entry>
<entry><ind>0.550000</ind><dep>5.989851</dep></entry>
<entry><ind>0.500000</ind><dep>7.322330</dep></entry>
<entry><ind>0.450000</ind><dep>8.763799</dep></entry>
<entry><ind>0.400000</ind><dep>10.305369</dep></entry>
<entry><ind>0.350000</ind><dep>11.937536</dep></entry>
<entry><ind>0.300000</ind><dep>13.650238</dep></entry>
<entry><ind>0.250000</ind><dep>15.432914</dep></entry>
<entry><ind>0.200000</ind><dep>17.274575</dep></entry>
<entry><ind>0.150000</ind><dep>19.163866</dep></entry>
<entry><ind>0.100000</ind><dep>21.089138</dep></entry>
<entry><ind>0.050000</ind><dep>23.038523</dep></entry>
<entry><ind>0.000000</ind><dep>25.000000</dep></entry>
</interpolation>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<!-- compensate for pitch of aircraft, keep pushback level -->
<animation>
<type>rotate</type>
<property>orientation/pitch-deg</property>
<factor>-1</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
</PropertyList>

View file

@ -0,0 +1,34 @@
<?xml version="1.0"?>
<PropertyList>
<path>Goldhofert-warning-light.ac</path>
<animation>
<type>rotate</type>
<object-name>Light</object-name>
<property>/sim/time/elapsed-sec</property>
<factor>-270.0</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>noshadow</type>
<object-name>Light</object-name>
</animation>
<animation>
<type>alpha-test</type>
<alpha-factor>0.01</alpha-factor>
</animation>
</PropertyList>

View file

@ -0,0 +1,278 @@
<?xml version="1.0"?>
<PropertyList>
<path>Goldhofert.ac</path>
<!-- Trucks models and artworks courtesy of XPGoodWay Team
(http://www.xpgoodwayteam.org/site_xpushback/) -->
<model>
<path>Models/Airport/Pushback/Goldhofert-warning-light.xml</path>
<offsets>
<x-m>-2.908</x-m>
<y-m>0.260</y-m>
<z-m>1.326</z-m>
<heading-deg>0</heading-deg>
</offsets>
</model>
<model>
<path>Models/Airport/Pushback/Goldhofert-warning-light.xml</path>
<offsets>
<x-m>-1.781</x-m>
<y-m>0.260</y-m>
<z-m>1.326</z-m>
<heading-deg>90</heading-deg>
</offsets>
</model>
<!-- switch to night/day textures -->
<animation>
<type>textranslate</type>
<object-name>Mesh</object-name>
<object-name>Mesh.001</object-name>
<object-name>Mesh.002</object-name>
<object-name>Mesh.003</object-name>
<object-name>wheelfl</object-name>
<object-name>wheelfr</object-name>
<object-name>wheelrl</object-name>
<object-name>wheelrr</object-name>
<property>/sim/time/sun-angle-rad</property>
<step>1.60 </step>
<factor>0.318471338</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>Mesh</object-name>
<object-name>Mesh.001</object-name>
<object-name>Mesh.002</object-name>
<object-name>Mesh.003</object-name>
<object-name>wheelfl</object-name>
<object-name>wheelfr</object-name>
<object-name>wheelrl</object-name>
<object-name>wheelrr</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.60</value>
</greater-than>
</condition>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>Mesh</object-name>
<object-name>Mesh.001</object-name>
<object-name>Mesh.002</object-name>
<object-name>Mesh.003</object-name>
<object-name>wheelfl</object-name>
<object-name>wheelfr</object-name>
<object-name>wheelrl</object-name>
<object-name>wheelrr</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.60</value>
</less-than-equals>
</condition>
<emission>
<red>0</red>
<green>0</green>
<blue>0</blue>
</emission>
</animation>
<animation>
<type>spin</type>
<object-name>wheelfl</object-name>
<object-name>wheelfr</object-name>
<property>velocities/uBody-fps</property>
<factor>-4.973</factor>
<center>
<x-m>-2.8976</x-m>
<y-m>0</y-m>
<z-m>0.5809</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>spin</type>
<object-name>wheelrl</object-name>
<object-name>wheelrr</object-name>
<property>velocities/uBody-fps</property>
<factor>-4.973</factor>
<center>
<x-m>2.0501</x-m>
<y-m>0</y-m>
<z-m>0.5735</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>select</type>
<condition>
<property>sim/model/pushback/enabled</property>
<property>gear/gear[0]/wow</property>
</condition>
</animation>
<animation>
<type>rotate</type>
<condition>
<greater-than>
<property>sim/model/pushback/position-norm</property>
<value>0.99</value>
</greater-than>
</condition>
<property>gear/gear[0]/steering-norm</property>
<factor>-70</factor>
<center>
<x-m>3</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- change heading of the pushback when driving the arc -->
<animation>
<type>rotate</type>
<property>sim/model/pushback/position-norm</property>
<factor>-90</factor>
<offset-deg>90</offset-deg>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- compensate for gear compression -->
<animation>
<type>translate</type>
<property>gear/gear[0]/compression-ft</property>
<factor>0.3048</factor>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- precalculated sin and asin to move the pushback on a 90deg arc, 25m radius -->
<animation>
<type>translate</type>
<property>sim/model/pushback/position-norm</property>
<interpolation>
<entry><ind>1.000000</ind><dep>0.000000</dep></entry>
<entry><ind>0.950000</ind><dep>1.961477</dep></entry>
<entry><ind>0.900000</ind><dep>3.910862</dep></entry>
<entry><ind>0.850000</ind><dep>5.836134</dep></entry>
<entry><ind>0.800000</ind><dep>7.725425</dep></entry>
<entry><ind>0.750000</ind><dep>9.567086</dep></entry>
<entry><ind>0.700000</ind><dep>11.349763</dep></entry>
<entry><ind>0.650000</ind><dep>13.062464</dep></entry>
<entry><ind>0.600000</ind><dep>14.694631</dep></entry>
<entry><ind>0.550000</ind><dep>16.236201</dep></entry>
<entry><ind>0.500000</ind><dep>17.677670</dep></entry>
<entry><ind>0.450000</ind><dep>19.010149</dep></entry>
<entry><ind>0.400000</ind><dep>20.225425</dep></entry>
<entry><ind>0.350000</ind><dep>21.316004</dep></entry>
<entry><ind>0.300000</ind><dep>22.275163</dep></entry>
<entry><ind>0.250000</ind><dep>23.096988</dep></entry>
<entry><ind>0.200000</ind><dep>23.776413</dep></entry>
<entry><ind>0.150000</ind><dep>24.309248</dep></entry>
<entry><ind>0.100000</ind><dep>24.692209</dep></entry>
<entry><ind>0.050000</ind><dep>24.922933</dep></entry>
<entry><ind>0.000000</ind><dep>25.000000</dep></entry>
</interpolation>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>translate</type>
<property>sim/model/pushback/position-norm</property>
<interpolation>
<entry><ind>1.000000</ind><dep>0.000000</dep></entry>
<entry><ind>0.950000</ind><dep>0.077067</dep></entry>
<entry><ind>0.900000</ind><dep>0.307791</dep></entry>
<entry><ind>0.850000</ind><dep>0.690752</dep></entry>
<entry><ind>0.800000</ind><dep>1.223587</dep></entry>
<entry><ind>0.750000</ind><dep>1.903012</dep></entry>
<entry><ind>0.700000</ind><dep>2.724837</dep></entry>
<entry><ind>0.650000</ind><dep>3.683996</dep></entry>
<entry><ind>0.600000</ind><dep>4.774575</dep></entry>
<entry><ind>0.550000</ind><dep>5.989851</dep></entry>
<entry><ind>0.500000</ind><dep>7.322330</dep></entry>
<entry><ind>0.450000</ind><dep>8.763799</dep></entry>
<entry><ind>0.400000</ind><dep>10.305369</dep></entry>
<entry><ind>0.350000</ind><dep>11.937536</dep></entry>
<entry><ind>0.300000</ind><dep>13.650238</dep></entry>
<entry><ind>0.250000</ind><dep>15.432914</dep></entry>
<entry><ind>0.200000</ind><dep>17.274575</dep></entry>
<entry><ind>0.150000</ind><dep>19.163866</dep></entry>
<entry><ind>0.100000</ind><dep>21.089138</dep></entry>
<entry><ind>0.050000</ind><dep>23.038523</dep></entry>
<entry><ind>0.000000</ind><dep>25.000000</dep></entry>
</interpolation>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<!-- compensate for pitch of aircraft, keep pushback level -->
<animation>
<type>rotate</type>
<property>orientation/pitch-deg</property>
<factor>-1</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
</PropertyList>

View file

@ -0,0 +1,499 @@
<?xml version="1.0"?>
<PropertyList>
<path>Military.ac</path>
<!-- Trucks models and artworks courtesy of XPGoodWay Team
(http://www.xpgoodwayteam.org/site_xpushback/) -->
<animation>
<type>select</type>
<condition>
<property>sim/model/pushback/enabled</property>
<property>gear/gear[0]/wow</property>
</condition>
</animation>
<!-- switch to night/day textures -->
<animation>
<type>textranslate</type>
<object-name>BacklightLOff</object-name>
<object-name>BacklightROff</object-name>
<object-name>BacklightLOn</object-name>
<object-name>BacklightROn</object-name>
<object-name>Mesh</object-name>
<object-name>Towbar</object-name>
<object-name>TowbarWheelL</object-name>
<object-name>TowbarWheelR</object-name>
<object-name>WheelLB</object-name>
<object-name>WheelLC</object-name>
<object-name>WheelLF</object-name>
<object-name>WheelRB</object-name>
<object-name>WheelRC</object-name>
<object-name>WheelRF</object-name>
<property>/sim/time/sun-angle-rad</property>
<step>1.60 </step>
<factor>0.318471338</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>BacklightLOff</object-name>
<object-name>BacklightROff</object-name>
<object-name>BacklightLOn</object-name>
<object-name>BacklightROn</object-name>
<object-name>Mesh</object-name>
<object-name>Towbar</object-name>
<object-name>TowbarWheelL</object-name>
<object-name>TowbarWheelR</object-name>
<object-name>WheelLB</object-name>
<object-name>WheelLC</object-name>
<object-name>WheelLF</object-name>
<object-name>WheelRB</object-name>
<object-name>WheelRC</object-name>
<object-name>WheelRF</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.60</value>
</greater-than>
</condition>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>BacklightLOff</object-name>
<object-name>BacklightROff</object-name>
<object-name>BacklightLOn</object-name>
<object-name>BacklightROn</object-name>
<object-name>Mesh</object-name>
<object-name>Towbar</object-name>
<object-name>TowbarWheelL</object-name>
<object-name>TowbarWheelR</object-name>
<object-name>WheelLB</object-name>
<object-name>WheelLC</object-name>
<object-name>WheelLF</object-name>
<object-name>WheelRB</object-name>
<object-name>WheelRC</object-name>
<object-name>WheelRF</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.60</value>
</less-than-equals>
</condition>
<emission>
<red>0</red>
<green>0</green>
<blue>0</blue>
</emission>
</animation> <!-- compensate for pitch of aircraft, keep pushback level -->
<animation>
<type>rotate</type>
<property>orientation/pitch-deg</property>
<factor>-1</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
<!-- compensate for roll of aircraft, keep pushback level -->
<animation>
<type>rotate</type>
<property>orientation/roll-deg</property>
<factor>1</factor>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>timed</type>
<object-name>BacklightOn</object-name>
<object-name>BacklightOff</object-name>
<use-personality type="bool">true</use-personality>
<branch-duration-sec>0.8</branch-duration-sec>
<branch-duration-sec>0.2</branch-duration-sec>
</animation>
<animation>
<type>rotate</type>
<object-name>Towbar</object-name>
<object-name>TowbarWheelL</object-name>
<object-name>TowbarWheelR</object-name>
<object-name>BacklightLOff</object-name>
<object-name>BacklightROff</object-name>
<object-name>BacklightLOn</object-name>
<object-name>BacklightROn</object-name>
<object-name>Mesh</object-name>
<object-name>Mesh.001</object-name>
<object-name>WheelLB</object-name>
<object-name>WheelLC</object-name>
<object-name>WheelLF</object-name>
<object-name>WheelRB</object-name>
<object-name>WheelRC</object-name>
<object-name>WheelRF</object-name>
<object-name>haze</object-name>
<condition>
<greater-than>
<property>sim/model/pushback/position-norm</property>
<value>0.99</value>
</greater-than>
</condition>
<property>gear/gear[0]/steering-norm</property>
<factor>-35</factor>
<center>
<x-m>0.00</x-m>
<y-m>0.00</y-m>
<z-m>0.00</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>BacklightLOff</object-name>
<object-name>BacklightROff</object-name>
<object-name>BacklightLOn</object-name>
<object-name>BacklightROn</object-name>
<object-name>Mesh</object-name>
<object-name>Mesh.001</object-name>
<object-name>WheelLB</object-name>
<object-name>WheelLC</object-name>
<object-name>WheelLF</object-name>
<object-name>WheelRB</object-name>
<object-name>WheelRC</object-name>
<object-name>WheelRF</object-name>
<object-name>haze</object-name>
<condition>
<greater-than>
<property>sim/model/pushback/position-norm</property>
<value>0.99</value>
</greater-than>
</condition>
<property>gear/gear[0]/steering-norm</property>
<factor>-35</factor>
<center>
<x-m>-4.37</x-m>
<y-m>0.00</y-m>
<z-m>0.00</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<animation>
<type>spin</type>
<object-name>WheelLF</object-name>
<object-name>WheelRF</object-name>
<property>velocities/uBody-fps</property>
<factor>-5.292</factor>
<center>
<x-m>-9.81971</x-m>
<y-m>0</y-m>
<z-m>0.546382</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>spin</type>
<object-name>WheelLC</object-name>
<object-name>WheelRC</object-name>
<property>velocities/uBody-fps</property>
<factor>-5.292</factor>
<center>
<x-m>-6.41481</x-m>
<y-m>0</y-m>
<z-m>0.546382</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>spin</type>
<object-name>WheelLB</object-name>
<object-name>WheelRB</object-name>
<property>velocities/uBody-fps</property>
<factor>-5.292</factor>
<center>
<x-m>-5.22756</x-m>
<y-m>0</y-m>
<z-m>0.546382</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>spin</type>
<object-name>TowbarWheelL</object-name>
<object-name>TowbarWheelR</object-name>
<property>velocities/uBody-fps</property>
<factor>-16.17</factor>
<center>
<x-m>-1.87996</x-m>
<y-m>0</y-m>
<z-m>0.190432</z-m>
</center>
<axis>
<x>0</x>
<y>1</y>
<z>0</z>
</axis>
</animation>
<!-- change heading of the pushback when driving the arc -->
<animation>
<type>rotate</type>
<property>sim/model/pushback/position-norm</property>
<factor>-90</factor>
<offset-deg>90</offset-deg>
<center>
<x-m>-7.3</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- compensate for gear compression --> <animation>
<type>translate</type>
<property>gear/gear[0]/compression-ft</property>
<factor>0.3048</factor>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
<!-- precalculated sin and asin to move the pushback on a 90deg arc, 25m radius -->
<animation>
<type>translate</type>
<property>sim/model/pushback/position-norm</property>
<interpolation>
<entry><ind>1.000000</ind><dep>0.000000</dep></entry>
<entry><ind>0.950000</ind><dep>1.961477</dep></entry>
<entry><ind>0.900000</ind><dep>3.910862</dep></entry>
<entry><ind>0.850000</ind><dep>5.836134</dep></entry>
<entry><ind>0.800000</ind><dep>7.725425</dep></entry>
<entry><ind>0.750000</ind><dep>9.567086</dep></entry>
<entry><ind>0.700000</ind><dep>11.349763</dep></entry>
<entry><ind>0.650000</ind><dep>13.062464</dep></entry>
<entry><ind>0.600000</ind><dep>14.694631</dep></entry>
<entry><ind>0.550000</ind><dep>16.236201</dep></entry>
<entry><ind>0.500000</ind><dep>17.677670</dep></entry>
<entry><ind>0.450000</ind><dep>19.010149</dep></entry>
<entry><ind>0.400000</ind><dep>20.225425</dep></entry>
<entry><ind>0.350000</ind><dep>21.316004</dep></entry>
<entry><ind>0.300000</ind><dep>22.275163</dep></entry>
<entry><ind>0.250000</ind><dep>23.096988</dep></entry>
<entry><ind>0.200000</ind><dep>23.776413</dep></entry>
<entry><ind>0.150000</ind><dep>24.309248</dep></entry>
<entry><ind>0.100000</ind><dep>24.692209</dep></entry>
<entry><ind>0.050000</ind><dep>24.922933</dep></entry>
<entry><ind>0.000000</ind><dep>25.000000</dep></entry>
</interpolation>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>translate</type>
<property>sim/model/pushback/position-norm</property>
<interpolation>
<entry><ind>1.000000</ind><dep>0.000000</dep></entry>
<entry><ind>0.950000</ind><dep>0.077067</dep></entry>
<entry><ind>0.900000</ind><dep>0.307791</dep></entry>
<entry><ind>0.850000</ind><dep>0.690752</dep></entry>
<entry><ind>0.800000</ind><dep>1.223587</dep></entry>
<entry><ind>0.750000</ind><dep>1.903012</dep></entry>
<entry><ind>0.700000</ind><dep>2.724837</dep></entry>
<entry><ind>0.650000</ind><dep>3.683996</dep></entry>
<entry><ind>0.600000</ind><dep>4.774575</dep></entry>
<entry><ind>0.550000</ind><dep>5.989851</dep></entry>
<entry><ind>0.500000</ind><dep>7.322330</dep></entry>
<entry><ind>0.450000</ind><dep>8.763799</dep></entry>
<entry><ind>0.400000</ind><dep>10.305369</dep></entry>
<entry><ind>0.350000</ind><dep>11.937536</dep></entry>
<entry><ind>0.300000</ind><dep>13.650238</dep></entry>
<entry><ind>0.250000</ind><dep>15.432914</dep></entry>
<entry><ind>0.200000</ind><dep>17.274575</dep></entry>
<entry><ind>0.150000</ind><dep>19.163866</dep></entry>
<entry><ind>0.100000</ind><dep>21.089138</dep></entry>
<entry><ind>0.050000</ind><dep>23.038523</dep></entry>
<entry><ind>0.000000</ind><dep>25.000000</dep></entry>
</interpolation>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
<particlesystem>
<type>normal</type>
<name>haze</name>
<texture>Military-smoke.png</texture>
<emissive>false</emissive>
<lighting>true</lighting>
<offsets>
<x-m>-7.97326</x-m>
<y-m>0.924717</y-m>
<z-m>2.94923</z-m>
</offsets>
<attach>world</attach>
<placer>
<type>point</type>
</placer>
<shooter>
<theta-min-deg>0</theta-min-deg>
<theta-max-deg>0</theta-max-deg>
<phi-min-deg>0</phi-min-deg>
<phi-max-deg>0</phi-max-deg>
<speed-mps>
<property>/sim/model/pushback/force</property>
<factor>0.005</factor>
<offset-m>5</offset-m>
<spread>0</spread>
<min-m>1</min-m>
<max-m>20</max-m>
</speed-mps>
<rotation-speed>
<x-max-deg-sec>0</x-max-deg-sec>
<x-min-deg-sec>0</x-min-deg-sec>
<y-max-deg-sec>0</y-max-deg-sec>
<y-min-deg-sec>0</y-min-deg-sec>
<z-max-deg-sec>0</z-max-deg-sec>
<z-min-deg-sec>0</z-min-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<property>/sim/model/pushback/force</property>
<factor>0.005</factor>
<offset-m>5</offset-m>
<spread>0</spread>
<min-m>5</min-m>
<max-m>20</max-m>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red>
<value>1.0</value>
</red>
<green>
<value>1.0</value>
</green>
<blue>
<value>1.0</value>
</blue>
<alpha>
<value>0.20</value>
</alpha>
</color>
<size>
<value>0.1</value>
</size>
</start>
<end>
<color>
<red>
<value>0.0</value>
</red>
<green>
<value>0.0</value>
</green>
<blue>
<value>0.0</value>
</blue>
<alpha>
<value>1.000</value>
</alpha>
</color>
<size>
<value>3</value>
</size>
</end>
<life-sec>
<value>3.0</value>
</life-sec>
<mass-kg>0.05</mass-kg>
<radius-m>0.3</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity>true</gravity>
<wind>true</wind>
</program>
</particlesystem>
</PropertyList>

File diff suppressed because it is too large Load diff

13
Models/Airport/ils.xml Normal file
View file

@ -0,0 +1,13 @@
<?xml version="1.0"?>
<PropertyList>
<path>ils.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>8000</max-m>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<PropertyList>
<path>supacat_winch.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>10000</max-m>
</animation>
<animation>
<type>spin</type>
<object-name>drums</object-name>
<property>sim/hitches/winch/winch/rel-speed</property>
<factor>36</factor>
<axis>
<x>0</x>
<y>-1</y>
<z>0</z>
</axis>
</animation>
</PropertyList>

115
Models/Airport/windsock.xml Normal file
View file

@ -0,0 +1,115 @@
<?xml version="1.0"?>
<PropertyList>
<path>windsock.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>2000</max-m>
</animation>
<animation>
<type>rotate</type>
<object-name>wf4</object-name>
<object-name>wf8</object-name>
<object-name>wf12</object-name>
<object-name>wf16</object-name>
<property>/environment/wind-from-heading-deg</property>
<offset-deg>-90</offset-deg>
<factor>-1</factor>
<axis>
<x>0.0</x>
<y>0.0</y>
<z>1.0</z>
</axis>
<center>
<x-m>0.0</x-m>
<y-m>0.0</y-m>
<z-m>0.0</z-m>
</center>
</animation>
<animation>
<type>rotate</type>
<object-name>wf4</object-name>
<object-name>wf8</object-name>
<object-name>wf12</object-name>
<object-name>wf16</object-name>
<property>/environment/wind-speed-kt</property>
<factor>1.67</factor>
<min-deg>0</min-deg>
<max-deg>25</max-deg>
<axis>
<x>1.0</x>
<y>0.0</y>
<z>0.0</z>
</axis>
<center>
<x-m>0.0</x-m>
<y-m>0.42</y-m>
<z-m>8.0</z-m>
</center>
</animation>
<animation>
<type>rotate</type>
<object-name>wf8</object-name>
<object-name>wf12</object-name>
<object-name>wf16</object-name>
<property>/environment/wind-speed-kt</property>
<factor>1.67</factor>
<min-deg>0</min-deg>
<max-deg>25</max-deg>
<axis>
<x>1.0</x>
<y>0.0</y>
<z>0.0</z>
</axis>
<center>
<x-m>0.0</x-m>
<y-m>1.92</y-m>
<z-m>8.61</z-m>
</center>
</animation>
<animation>
<type>rotate</type>
<object-name>wf12</object-name>
<object-name>wf16</object-name>
<property>/environment/wind-speed-kt</property>
<factor>1.67</factor>
<min-deg>0</min-deg>
<max-deg>25</max-deg>
<axis>
<x>1.0</x>
<y>0.0</y>
<z>0.0</z>
</axis>
<center>
<x-m>0.0</x-m>
<y-m>2.5</y-m>
<z-m>7.68</z-m>
</center>
</animation>
<animation>
<type>rotate</type>
<object-name>wf16</object-name>
<property>/environment/wind-speed-kt</property>
<min-deg>0</min-deg>
<max-deg>15</max-deg>
<axis>
<x>1.0</x>
<y>0.0</y>
<z>0.0</z>
</axis>
<center>
<x-m>0.0</x-m>
<y-m>2.64</y-m>
<z-m>6.59</z-m>
</center>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial100x70.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial100x90.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial10x20.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>20000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial110x185.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial120x90.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial130x95.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial150x115.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial35x55.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,46 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial50x100.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
<animation>
<type>textranslate</type>
<object-name>Industrial50x100_new</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> 0 </x>
<y> -1 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>Industrial50x100_new</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red>0.81</red>
<green>0.81</green>
<blue>0.81</blue>
</emission>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial50x75.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial55x35.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial60x50.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial70x60.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial70x75.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>Industrial85x160.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>25000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,14 @@
<?xml version="1.0"?>
<PropertyList>
<path>humvee-pickup-odrab-low-poly.ac</path>
<animation>
<type>range</type>
<object-name>humvee-pickup</object-name>
<min-m>0</min-m>
<max-m>8000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,87 @@
<?xml version="1.0"?>
<PropertyList>
<path>coolingtower.ac</path>
<particlesystem>
<name>steam</name>
<texture>smoke.rgb</texture>
<emissive>false</emissive>
<lighting>true</lighting>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>120</z-m>
</offsets>
<attach>local</attach>
<placer>
<type>sector</type>
<radius-min-m>1</radius-min-m>
<radius-max-m>15</radius-max-m>
</placer>
<shooter>
<speed-mps>
<value>5</value>
<spread>5</spread>
</speed-mps>
</shooter>
<counter>
<particles-per-sec>
<value>2</value>
<spread>2</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red><value>0.7</value></red>
<green><value>0.7</value></green>
<blue><value>0.7</value></blue>
<alpha><value>1</value></alpha>
</color>
<size>
<value>20</value>
<spread>10</spread>
</size>
</start>
<end>
<color>
<red><value>1</value></red>
<green><value>1</value></green>
<blue><value>1</value></blue>
<alpha><value>0.25</value></alpha>
</color>
<size>
<value>100</value>
<spread>100</spread>
</size>
</end>
<life-sec>
<value>20</value>
</life-sec>
<mass-kg>64000</mass-kg>
<radius-m>50</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity>true</gravity>
<wind>true</wind>
</program>
</particlesystem>
</PropertyList>

View file

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>110Bus.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>20000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,78 @@
<?xml version="1.0"?>
<PropertyList>
<path>ICE3firstcar.ac</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<pitch-deg>0</pitch-deg>
</offsets>
<animation>
<type>select</type>
<object-name>marker</object-name>
</animation>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>20000</max-m>
</animation>
<animation>
<type>textranslate</type>
<object-name>Plane</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> -1 </x>
<y> 0 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>Plane</object-name>
<condition>
<less-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than>
</condition>
<emission>
<red> 0.0</red>
<green> 0.0 </green>
<blue> 0.0 </blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>Plane</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red> 1.0</red>
<green>1.0 </green>
<blue> 1.0 </blue>
</emission>
</animation>
</PropertyList>

View file

@ -0,0 +1,79 @@
<?xml version="1.0"?>
<PropertyList>
<path>ICE3firstcar.ac</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<heading-deg>180</heading-deg>
</offsets>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>select</type>
<object-name>marker</object-name>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>5000</max-m>
</animation>
<animation>
<type>textranslate</type>
<object-name>Plane</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> -1 </x>
<y> 0 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>Plane</object-name>
<condition>
<less-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than>
</condition>
<emission>
<red> 0.0</red>
<green> 0.0 </green>
<blue> 0.0 </blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>Plane</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red> 1.0</red>
<green>1.0 </green>
<blue> 1.0 </blue>
</emission>
</animation>
</PropertyList>

View file

@ -0,0 +1,74 @@
<?xml version="1.0"?>
<PropertyList>
<path>ICE3middlecar.ac</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<pitch-deg>0</pitch-deg>
</offsets>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>5000</max-m>
</animation>
<animation>
<type>textranslate</type>
<object-name>Cube.001</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> -1 </x>
<y> 0 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>Cube.001</object-name>
<condition>
<less-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than>
</condition>
<emission>
<red> 0.0</red>
<green> 0.0 </green>
<blue> 0.0 </blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>Cube.001</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red> 1.0</red>
<green> 1.0 </green>
<blue> 1.0 </blue>
</emission>
</animation>
</PropertyList>

View file

@ -0,0 +1,75 @@
<?xml version="1.0"?>
<PropertyList>
<path>ICE3middlecar2.ac</path>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<pitch-deg>0</pitch-deg>
</offsets>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>5000</max-m>
</animation>
<animation>
<type>textranslate</type>
<object-name>Cube.001_1</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> -1 </x>
<y> 0 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>Cube.001_1</object-name>
<condition>
<less-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than>
</condition>
<emission>
<red> 0.0</red>
<green> 0.0 </green>
<blue> 0.0 </blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>Cube.001_1</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red> 1.0</red>
<green> 1.0 </green>
<blue> 1.0 </blue>
</emission>
</animation>
</PropertyList>

View file

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<PropertyList>
<path>KSFO_AirTrain.ac</path>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>20000</max-m>
</animation>
</PropertyList>

View file

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<PropertyList>
<path>Class_66.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-property>sim/rendering/static-lod/bare</max-property>
</animation>
<!--<animation>
<type>textranslate</type>
<object-name>jour</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> -1 </x>
<y> 0 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red> 1.0 </red>
<green> 1.0 </green>
<blue> 1.0 </blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than-equals>
</condition>
<emission>
<red> 0.0 </red>
<green> 0.0 </green>
<blue> 0.0 </blue>
</emission>
</animation>-->
</PropertyList>

View file

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<PropertyList>
<path>lner-teak-brake-coach.ac</path>
<animation>
<object>coach-brake</object>
<type>range</type>
<min-m>0</min-m>
<max-m>10000</max-m>
</animation>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<heading-deg>180</heading-deg>
</offsets>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
</PropertyList>

View file

@ -0,0 +1,24 @@
<?xml version="1.0"?>
<PropertyList>
<path>lner-teak-brake-coach.ac</path>
<animation>
<object>coach-brake</object>
<type>range</type>
<min-m>0</min-m>
<max-m>10000</max-m>
</animation>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
</PropertyList>

View file

@ -0,0 +1,24 @@
<?xml version="1.0"?>
<PropertyList>
<path>lner-teak-first-class-coach.ac</path>
<animation>
<object>coach-brake</object>
<type>range</type>
<min-m>0</min-m>
<max-m>10000</max-m>
</animation>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
</PropertyList>

View file

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<PropertyList>
<path>diesel_T153.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-property>sim/rendering/static-lod/bare</max-property>
</animation>
<!--<animation>
<type>textranslate</type>
<object-name>jour</object-name>
<property>/sim/time/sun-angle-rad</property>
<step> 1.57 </step>
<factor>0.318471338</factor>
<center>
<x-m> 0 </x-m>
<y-m> 0 </y-m>
<z-m> 0 </z-m>
</center>
<axis>
<x> -1 </x>
<y> 0 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<greater-than>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</greater-than>
</condition>
<emission>
<red> 1.0 </red>
<green> 1.0 </green>
<blue> 1.0 </blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>jour</object-name>
<condition>
<less-than-equals>
<property>/sim/time/sun-angle-rad</property>
<value>1.57</value>
</less-than-equals>
</condition>
<emission>
<red> 0.0 </red>
<green> 0.0 </green>
<blue> 0.0 </blue>
</emission>
</animation>-->
</PropertyList>

View file

@ -0,0 +1,48 @@
<?xml version="1.0"?>
<PropertyList>
<path>locomotive-A4.ac</path>
<!--<model>
<path>Models/Transport/tender-A4.xml</path>
<offsets>
<x-m>10.5609</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
</model>-->
<animation>
<object>locomotive</object>
<type>range</type>
<min-m>0</min-m>
<max-m>10000</max-m>
</animation>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<!-- *** Effects *** -->
<model>
<path>Models/Generic/Effects/train-steam.xml</path>
<name>train-steam-1</name>
<offsets>
<x-m>-4.10378</x-m>
<y-m>0</y-m>
<z-m>4.02378</z-m>
<heading-deg>0</heading-deg>
</offsets>
</model>
</PropertyList>

View file

@ -0,0 +1,18 @@
<?xml version="1.0"?>
<PropertyList>
<path>tender-A4.ac</path>
<animation>
<object>tender</object>
<type>range</type>
<min-m>0</min-m>
<max-m>10000</max-m>
</animation>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
</PropertyList>

View file

@ -0,0 +1,14 @@
<?xml version="1.0"?>
<PropertyList>
<path>wagon-ore.ac</path>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-property>sim/rendering/static-lod/bare</max-property>
</animation>
</PropertyList>