aboutsummaryrefslogtreecommitdiff
path: root/advtrains_signals_ks/models
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains_signals_ks/models')
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr0.obj259
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr30.obj259
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr45.obj259
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr60.obj259
4 files changed, 1036 insertions, 0 deletions
diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr0.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr0.obj
new file mode 100644
index 0000000..2543d14
--- /dev/null
+++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr0.obj
@@ -0,0 +1,259 @@
+# Blender v2.92.0 OBJ File: 'rangierhalttafel.blend'
+# www.blender.org
+mtllib rangierhalttafel.mtl
+o Cube
+v -0.024805 1.055075 -0.274918
+v -0.035079 1.055075 -0.299723
+v -0.000000 1.055075 -0.264644
+v -0.024805 1.055075 -0.324528
+v 0.024805 1.055075 -0.274918
+v -0.000000 1.055075 -0.334802
+v 0.035079 1.055075 -0.299723
+v 0.024805 1.055075 -0.324528
+v 0.024805 1.055075 -0.324528
+v 0.035079 1.055075 -0.299723
+v -0.000000 1.055075 -0.334802
+v 0.024805 1.055075 -0.274918
+v -0.035079 1.055075 -0.299723
+v -0.000000 1.055075 -0.264644
+v -0.024805 1.055075 -0.324528
+v -0.024805 1.055075 -0.274918
+v -0.000000 -0.698893 -0.299723
+v -0.035079 -0.499729 -0.299723
+v -0.024804 -0.499729 -0.274918
+v 0.000000 -0.499729 -0.264644
+v 0.024805 -0.499729 -0.274918
+v 0.035080 -0.499729 -0.299723
+v 0.024805 -0.499729 -0.324528
+v 0.000000 -0.499729 -0.334802
+v -0.024804 -0.499729 -0.324528
+v 0.340021 0.866098 -0.338486
+v 0.340021 0.866098 -0.324528
+v -0.340022 0.866098 -0.338486
+v -0.340022 0.866098 -0.324528
+v -0.333488 0.932433 -0.338486
+v -0.333488 0.932433 -0.324528
+v -0.314139 0.996219 -0.338486
+v -0.314139 0.996219 -0.324528
+v -0.282718 1.055004 -0.338486
+v -0.282718 1.055004 -0.324528
+v -0.240432 1.106529 -0.338486
+v -0.240432 1.106529 -0.324528
+v -0.188906 1.148815 -0.338486
+v -0.188906 1.148815 -0.324528
+v -0.130121 1.180236 -0.338486
+v -0.130121 1.180236 -0.324528
+v -0.066335 1.199586 -0.338486
+v -0.066335 1.199586 -0.324528
+v -0.000000 1.206119 -0.338486
+v -0.000000 1.206119 -0.324528
+v 0.066335 1.199586 -0.338486
+v 0.066335 1.199586 -0.324528
+v 0.130121 1.180236 -0.338486
+v 0.130121 1.180236 -0.324528
+v 0.188906 1.148815 -0.338486
+v 0.188906 1.148815 -0.324528
+v 0.240431 1.106529 -0.338486
+v 0.240431 1.106529 -0.324528
+v 0.282717 1.055003 -0.338486
+v 0.282717 1.055003 -0.324528
+v 0.314139 0.996218 -0.338486
+v 0.314139 0.996218 -0.324528
+v 0.333488 0.932432 -0.338486
+v 0.333488 0.932432 -0.324528
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.009730 0.997467
+vt 0.000000 0.983831
+vt 0.000000 0.967080
+vt 0.009730 0.957025
+vt 0.023490 0.959558
+vt 0.033220 0.973194
+vt 0.033220 0.989946
+vt 0.023490 1.000000
+vt 0.250000 0.984749
+vt 0.250000 0.001193
+vt 0.265954 0.000000
+vt 0.265954 0.983556
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 0.983556
+vt 0.250000 0.000000
+vt 0.265954 0.001193
+vt 0.265954 0.984749
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 0.639500
+vt 0.250000 0.005108
+vt 0.265954 0.000000
+vt 0.265954 0.634392
+vt 0.250000 0.634392
+vt 0.250000 0.000000
+vt 0.265954 0.005108
+vt 0.265954 0.639500
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.258978 0.361919
+vt 0.250000 0.361919
+vt 0.250000 0.331604
+vt 0.258978 0.331604
+vt 0.250000 0.295958
+vt 0.258978 0.295958
+vt 0.250000 0.256351
+vt 0.258978 0.256351
+vt 0.250000 0.214304
+vt 0.258978 0.214304
+vt 0.250000 0.171433
+vt 0.258978 0.171433
+vt 0.250000 0.129386
+vt 0.258978 0.129386
+vt 0.250000 0.089778
+vt 0.258978 0.089778
+vt 0.250000 0.054132
+vt 0.258978 0.054132
+vt 0.250000 0.023818
+vt 0.258978 0.023818
+vt 0.250000 0.000000
+vt 0.258978 0.000000
+vt 0.258977 0.223103
+vt 0.250000 0.223103
+vt 0.250000 0.196398
+vt 0.258977 0.196398
+vt 0.250000 0.163663
+vt 0.258977 0.163663
+vt 0.250000 0.126156
+vt 0.258977 0.126156
+vt 0.218691 0.000000
+vt 0.218691 0.437382
+vt 0.176027 0.433180
+vt 0.135002 0.420735
+vt 0.097193 0.400526
+vt 0.064053 0.373329
+vt 0.036856 0.340189
+vt 0.016647 0.302381
+vt 0.004202 0.261356
+vt 0.000000 0.218691
+vt 0.004202 0.176027
+vt 0.016647 0.135002
+vt 0.036856 0.097193
+vt 0.064053 0.064053
+vt 0.097193 0.036856
+vt 0.135001 0.016647
+vt 0.176026 0.004202
+vt 0.250000 0.085319
+vt 0.258977 0.085319
+vt 0.250000 0.000000
+vt 0.258978 0.000000
+vt 0.258978 0.437382
+vt 0.250000 0.437382
+vt 0.250000 0.042722
+vt 0.258977 0.042722
+vt 0.250000 0.000000
+vt 0.258977 0.000000
+vt 0.218691 0.562618
+vt 0.218691 1.000000
+vt 0.176026 0.995798
+vt 0.135001 0.983353
+vt 0.097193 0.963144
+vt 0.064053 0.935947
+vt 0.036856 0.902807
+vt 0.016647 0.864998
+vt 0.004202 0.823973
+vt 0.000000 0.781309
+vt 0.004202 0.738644
+vt 0.016647 0.697619
+vt 0.036856 0.659811
+vt 0.064053 0.626671
+vt 0.097193 0.599474
+vt 0.135002 0.579265
+vt 0.176027 0.566820
+vn 0.0000 0.0000 1.0000
+vn 0.0000 1.0000 0.0000
+vn 0.9239 0.0000 0.3827
+vn 0.3827 0.0000 0.9239
+vn 0.3827 0.0000 -0.9239
+vn 0.9239 0.0000 -0.3827
+vn -0.3827 -0.0000 0.9239
+vn -0.9239 -0.0000 -0.3827
+vn -0.9239 -0.0000 0.3827
+vn -0.3827 -0.0000 -0.9239
+vn -0.9952 0.0980 0.0000
+vn -0.9569 0.2903 0.0000
+vn -0.8819 0.4714 0.0000
+vn -0.7730 0.6344 0.0000
+vn -0.6344 0.7730 0.0000
+vn -0.4714 0.8819 0.0000
+vn -0.2903 0.9569 0.0000
+vn -0.0980 0.9952 0.0000
+vn 0.0980 0.9952 0.0000
+vn 0.2903 0.9569 0.0000
+vn 0.4714 0.8819 0.0000
+vn 0.6344 0.7730 0.0000
+vn 0.7730 0.6344 0.0000
+vn 0.8819 0.4714 0.0000
+vn -0.0000 -1.0000 0.0000
+vn 0.9569 0.2903 0.0000
+vn 0.9952 0.0980 0.0000
+vn -0.0000 0.0000 -1.0000
+usemtl Material
+s off
+f 8/1/1 6/2/1 11/3/1 9/4/1
+f 2/5/1 16/6/1 1/7/1 13/8/1
+f 12/9/1 10/10/1 7/11/1 5/12/1
+f 6/2/1 4/13/1 15/14/1 11/3/1
+f 16/6/1 14/15/1 3/16/1 1/7/1
+f 10/10/1 8/1/1 9/4/1 7/11/1
+f 4/17/2 2/18/2 16/19/2 14/20/2 12/21/2 10/22/2 8/23/2 6/24/2
+f 5/25/3 21/26/3 22/27/3 7/28/3
+f 4/13/1 2/5/1 13/8/1 15/14/1
+f 14/15/1 12/9/1 5/12/1 3/16/1
+f 3/29/4 20/30/4 21/31/4 5/32/4
+f 9/33/5 23/34/5 24/35/5 11/36/5
+f 7/37/6 22/38/6 23/39/6 9/40/6
+f 1/41/7 19/42/7 20/43/7 3/44/7
+f 15/45/8 25/46/8 18/47/8 13/48/8
+f 13/49/9 18/50/9 19/51/9 1/52/9
+f 11/53/10 24/54/10 25/55/10 15/56/10
+f 28/57/11 29/58/11 31/59/11 30/60/11
+f 30/60/12 31/59/12 33/61/12 32/62/12
+f 32/62/13 33/61/13 35/63/13 34/64/13
+f 34/64/14 35/63/14 37/65/14 36/66/14
+f 36/66/15 37/65/15 39/67/15 38/68/15
+f 38/68/16 39/67/16 41/69/16 40/70/16
+f 40/70/17 41/69/17 43/71/17 42/72/17
+f 42/72/18 43/71/18 45/73/18 44/74/18
+f 44/74/19 45/73/19 47/75/19 46/76/19
+f 46/76/20 47/75/20 49/77/20 48/78/20
+f 48/79/21 49/80/21 51/81/21 50/82/21
+f 50/82/22 51/81/22 53/83/22 52/84/22
+f 52/84/23 53/83/23 55/85/23 54/86/23
+f 29/87/1 27/88/1 59/89/1 57/90/1 55/91/1 53/92/1 51/93/1 49/94/1 47/95/1 45/96/1 43/97/1 41/98/1 39/99/1 37/100/1 35/101/1 33/102/1 31/103/1
+f 54/86/24 55/85/24 57/104/24 56/105/24
+f 26/106/25 27/107/25 29/108/25 28/109/25
+f 56/105/26 57/104/26 59/110/26 58/111/26
+f 58/111/27 59/110/27 27/112/27 26/113/27
+f 26/114/28 28/115/28 30/116/28 32/117/28 34/118/28 36/119/28 38/120/28 40/121/28 42/122/28 44/123/28 46/124/28 48/125/28 50/126/28 52/127/28 54/128/28 56/129/28 58/130/28
diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr30.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr30.obj
new file mode 100644
index 0000000..75611e3
--- /dev/null
+++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr30.obj
@@ -0,0 +1,259 @@
+# Blender v2.92.0 OBJ File: ''
+# www.blender.org
+mtllib advtrains_signals_ks_sign_hfs_smr30.mtl
+o Cube.001
+v 0.183746 1.055075 -0.268647
+v 0.167401 1.055075 -0.289947
+v 0.167401 1.055075 -0.289947
+v 0.183746 1.055075 -0.268647
+v 0.119482 1.055075 -0.277107
+v 0.115977 1.055075 -0.250488
+v 0.115977 1.055075 -0.250488
+v 0.119482 1.055075 -0.277107
+v 0.158941 1.055075 -0.225683
+v 0.180241 1.055075 -0.242028
+v 0.180241 1.055075 -0.242028
+v 0.158941 1.055075 -0.225683
+v 0.140782 1.055075 -0.293452
+v 0.140782 1.055075 -0.293452
+v 0.132322 1.055075 -0.229188
+v 0.132322 1.055075 -0.229188
+v 0.158941 -0.499729 -0.225683
+v 0.180242 -0.499729 -0.242028
+v 0.132322 -0.499729 -0.229188
+v 0.183746 -0.499729 -0.268647
+v 0.167401 -0.499729 -0.289947
+v 0.115978 -0.499729 -0.250488
+v 0.140783 -0.499729 -0.293452
+v 0.119482 -0.499729 -0.277107
+v -0.125225 0.866098 -0.463148
+v -0.132204 0.866098 -0.451060
+v -0.126545 0.932433 -0.447793
+v -0.119566 0.932433 -0.459881
+v -0.109788 0.996219 -0.438119
+v -0.102809 0.996219 -0.450207
+v -0.082577 1.055004 -0.422408
+v -0.075598 1.055004 -0.434496
+v -0.045956 1.106529 -0.401265
+v -0.038977 1.106529 -0.413353
+v -0.001333 1.148815 -0.375502
+v 0.005646 1.148815 -0.387590
+v 0.049576 1.180236 -0.346110
+v 0.056555 1.180236 -0.358198
+v 0.104816 1.199586 -0.314217
+v 0.111795 1.199586 -0.326305
+v 0.162264 1.206119 -0.281049
+v 0.169243 1.206119 -0.293137
+v 0.219712 1.199586 -0.247882
+v 0.226691 1.199586 -0.259970
+v 0.274952 1.180236 -0.215989
+v 0.281931 1.180236 -0.228077
+v 0.325861 1.148815 -0.186596
+v 0.332840 1.148815 -0.198684
+v 0.370483 1.106529 -0.160834
+v 0.377462 1.106529 -0.172922
+v 0.407104 1.055003 -0.139691
+v 0.414083 1.055003 -0.151779
+v 0.456731 0.866098 -0.111039
+v 0.451073 0.932432 -0.114305
+v 0.434316 0.996218 -0.123980
+v 0.441295 0.996218 -0.136068
+v 0.463710 0.866098 -0.123127
+v 0.458052 0.932432 -0.126393
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.009730 0.997467
+vt 0.000000 0.983831
+vt 0.000000 0.967080
+vt 0.009730 0.957025
+vt 0.023490 0.959558
+vt 0.033220 0.973194
+vt 0.033220 0.989946
+vt 0.023490 1.000000
+vt 0.250000 0.984749
+vt 0.250000 0.001193
+vt 0.265954 0.000000
+vt 0.265954 0.983556
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 0.983556
+vt 0.250000 0.000000
+vt 0.265954 0.001193
+vt 0.265954 0.984749
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 0.639500
+vt 0.250000 0.005108
+vt 0.265954 0.000000
+vt 0.265954 0.634392
+vt 0.250000 0.634392
+vt 0.250000 0.000000
+vt 0.265954 0.005108
+vt 0.265954 0.639500
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.258978 0.361919
+vt 0.250000 0.361919
+vt 0.250000 0.331604
+vt 0.258978 0.331604
+vt 0.250000 0.295958
+vt 0.258978 0.295958
+vt 0.250000 0.256351
+vt 0.258978 0.256351
+vt 0.250000 0.214304
+vt 0.258978 0.214304
+vt 0.250000 0.171433
+vt 0.258978 0.171433
+vt 0.250000 0.129386
+vt 0.258978 0.129386
+vt 0.250000 0.089778
+vt 0.258978 0.089778
+vt 0.250000 0.054132
+vt 0.258978 0.054132
+vt 0.250000 0.023818
+vt 0.258978 0.023818
+vt 0.250000 0.000000
+vt 0.258978 0.000000
+vt 0.258977 0.223103
+vt 0.250000 0.223103
+vt 0.250000 0.196398
+vt 0.258977 0.196398
+vt 0.250000 0.163663
+vt 0.258977 0.163663
+vt 0.250000 0.126156
+vt 0.258977 0.126156
+vt 0.218691 0.000000
+vt 0.218691 0.437382
+vt 0.176027 0.433180
+vt 0.135002 0.420735
+vt 0.097193 0.400526
+vt 0.064053 0.373329
+vt 0.036856 0.340189
+vt 0.016647 0.302381
+vt 0.004202 0.261356
+vt 0.000000 0.218691
+vt 0.004202 0.176027
+vt 0.016647 0.135002
+vt 0.036856 0.097193
+vt 0.064053 0.064053
+vt 0.097193 0.036856
+vt 0.135001 0.016647
+vt 0.176026 0.004202
+vt 0.250000 0.085319
+vt 0.258977 0.085319
+vt 0.250000 0.000000
+vt 0.258978 0.000000
+vt 0.258978 0.437382
+vt 0.250000 0.437382
+vt 0.250000 0.042722
+vt 0.258977 0.042722
+vt 0.250000 0.000000
+vt 0.258977 0.000000
+vt 0.218691 0.562618
+vt 0.218691 1.000000
+vt 0.176026 0.995798
+vt 0.135001 0.983353
+vt 0.097193 0.963144
+vt 0.064053 0.935947
+vt 0.036856 0.902807
+vt 0.016647 0.864998
+vt 0.004202 0.823973
+vt 0.000000 0.781309
+vt 0.004202 0.738644
+vt 0.016647 0.697619
+vt 0.036856 0.659811
+vt 0.064053 0.626671
+vt 0.097193 0.599474
+vt 0.135002 0.579265
+vt 0.176027 0.566820
+vn 0.0000 0.0000 1.0000
+vn 0.0000 1.0000 0.0000
+vn 0.6088 0.0000 0.7934
+vn -0.1305 -0.0000 0.9914
+vn 0.7933 0.0000 -0.6088
+vn 0.9914 0.0000 0.1305
+vn -0.7933 -0.0000 0.6088
+vn -0.6088 -0.0000 -0.7934
+vn -0.9914 -0.0000 -0.1305
+vn 0.1305 -0.0000 -0.9914
+vn -0.8619 0.0980 -0.4976
+vn -0.8287 0.2903 -0.4785
+vn -0.7638 0.4714 -0.4410
+vn -0.6694 0.6344 -0.3865
+vn -0.5494 0.7730 -0.3172
+vn -0.4082 0.8819 -0.2357
+vn -0.2514 0.9569 -0.1451
+vn -0.0849 0.9952 -0.0490
+vn 0.0849 0.9952 0.0490
+vn 0.2514 0.9569 0.1451
+vn 0.4082 0.8819 0.2357
+vn 0.5494 0.7730 0.3172
+vn 0.6694 0.6344 0.3865
+vn -0.5000 -0.0000 0.8660
+vn 0.7638 0.4714 0.4410
+vn 0.0000 -1.0000 0.0000
+vn 0.8287 0.2903 0.4785
+vn 0.8619 0.0980 0.4976
+vn 0.5000 0.0000 -0.8660
+usemtl Material.001
+s 1
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 5/5/1 6/6/1 7/7/1 8/8/1
+f 9/9/1 10/10/1 11/11/1 12/12/1
+f 2/2/1 13/13/1 14/14/1 3/3/1
+f 6/6/1 15/15/1 16/16/1 7/7/1
+f 10/10/1 1/1/1 4/4/1 11/11/1
+f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2
+f 12/25/3 17/26/3 18/27/3 11/28/3
+f 13/13/1 5/5/1 8/8/1 14/14/1
+f 15/15/1 9/9/1 12/12/1 16/16/1
+f 16/29/4 19/30/4 17/31/4 12/32/4
+f 4/33/5 20/34/5 21/35/5 3/36/5
+f 11/37/6 18/38/6 20/39/6 4/40/6
+f 7/41/7 22/42/7 19/43/7 16/44/7
+f 14/45/8 23/46/8 24/47/8 8/48/8
+f 8/49/9 24/50/9 22/51/9 7/52/9
+f 3/53/10 21/54/10 23/55/10 14/56/10
+f 25/57/11 26/58/11 27/59/11 28/60/11
+f 28/60/12 27/59/12 29/61/12 30/62/12
+f 30/62/13 29/61/13 31/63/13 32/64/13
+f 32/64/14 31/63/14 33/65/14 34/66/14
+f 34/66/15 33/65/15 35/67/15 36/68/15
+f 36/68/16 35/67/16 37/69/16 38/70/16
+f 38/70/17 37/69/17 39/71/17 40/72/17
+f 40/72/18 39/71/18 41/73/18 42/74/18
+f 42/74/19 41/73/19 43/75/19 44/76/19
+f 44/76/20 43/75/20 45/77/20 46/78/20
+f 46/79/21 45/80/21 47/81/21 48/82/21
+f 48/82/22 47/81/22 49/83/22 50/84/22
+f 50/84/23 49/83/23 51/85/23 52/86/23
+f 26/87/24 53/88/24 54/89/24 55/90/24 51/91/24 49/92/24 47/93/24 45/94/24 43/95/24 41/96/24 39/97/24 37/98/24 35/99/24 33/100/24 31/101/24 29/102/24 27/103/24
+f 52/86/25 51/85/25 55/104/25 56/105/25
+f 57/106/26 53/107/26 26/108/26 25/109/26
+f 56/105/27 55/104/27 54/110/27 58/111/27
+f 58/111/28 54/110/28 53/112/28 57/113/28
+f 57/114/29 25/115/29 28/116/29 30/117/29 32/118/29 34/119/29 36/120/29 38/121/29 40/122/29 42/123/29 44/124/29 46/125/29 48/126/29 50/127/29 52/128/29 56/129/29 58/130/29
diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr45.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr45.obj
new file mode 100644
index 0000000..390a99b
--- /dev/null
+++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr45.obj
@@ -0,0 +1,259 @@
+# Blender v2.92.0 OBJ File: ''
+# www.blender.org
+mtllib advtrains_signals_ks_sign_hfs_smr45.mtl
+o Cube.001
+v 0.247016 1.055075 -0.211936
+v 0.236741 1.055075 -0.236741
+v 0.236741 1.055075 -0.236741
+v 0.247016 1.055075 -0.211936
+v 0.187132 1.055075 -0.236741
+v 0.176857 1.055075 -0.211936
+v 0.176857 1.055075 -0.211936
+v 0.187132 1.055075 -0.236741
+v 0.211936 1.055075 -0.176857
+v 0.236741 1.055075 -0.187132
+v 0.236741 1.055075 -0.187132
+v 0.211936 1.055075 -0.176857
+v 0.211936 1.055075 -0.247016
+v 0.211936 1.055075 -0.247016
+v 0.187132 1.055075 -0.187132
+v 0.187132 1.055075 -0.187132
+v 0.211936 -0.499729 -0.176857
+v 0.236741 -0.499729 -0.187131
+v 0.187132 -0.499729 -0.187132
+v 0.247016 -0.499729 -0.211936
+v 0.236741 -0.499729 -0.236741
+v 0.176857 -0.499729 -0.211935
+v 0.211937 -0.499729 -0.247015
+v 0.187132 -0.499729 -0.236741
+v -0.001086 0.866098 -0.479778
+v -0.010956 0.866098 -0.469908
+v -0.006336 0.932433 -0.465288
+v 0.003534 0.932433 -0.475157
+v 0.007346 0.996219 -0.451606
+v 0.017216 0.996219 -0.461476
+v 0.029564 1.055004 -0.429388
+v 0.039434 1.055004 -0.439258
+v 0.059465 1.106529 -0.399487
+v 0.069335 1.106529 -0.409357
+v 0.095899 1.148815 -0.363053
+v 0.105769 1.148815 -0.372922
+v 0.137466 1.180236 -0.321485
+v 0.147336 1.180236 -0.331355
+v 0.182570 1.199586 -0.276382
+v 0.192440 1.199586 -0.286252
+v 0.229476 1.206119 -0.229476
+v 0.239346 1.206119 -0.239346
+v 0.276382 1.199586 -0.182570
+v 0.286252 1.199586 -0.192440
+v 0.321485 1.180236 -0.137466
+v 0.331355 1.180236 -0.147336
+v 0.363053 1.148815 -0.095899
+v 0.372922 1.148815 -0.105769
+v 0.399486 1.106529 -0.059466
+v 0.409356 1.106529 -0.069335
+v 0.429387 1.055003 -0.029565
+v 0.439257 1.055003 -0.039435
+v 0.469907 0.866098 0.010955
+v 0.465288 0.932432 0.006336
+v 0.451606 0.996218 -0.007346
+v 0.461476 0.996218 -0.017216
+v 0.479777 0.866098 0.001085
+v 0.475157 0.932432 -0.003534
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.009730 0.997467
+vt 0.000000 0.983831
+vt 0.000000 0.967080
+vt 0.009730 0.957025
+vt 0.023490 0.959558
+vt 0.033220 0.973194
+vt 0.033220 0.989946
+vt 0.023490 1.000000
+vt 0.250000 0.984749
+vt 0.250000 0.001193
+vt 0.265954 0.000000
+vt 0.265954 0.983556
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 0.983556
+vt 0.250000 0.000000
+vt 0.265954 0.001193
+vt 0.265954 0.984749
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 0.639500
+vt 0.250000 0.005108
+vt 0.265954 0.000000
+vt 0.265954 0.634392
+vt 0.250000 0.634392
+vt 0.250000 0.000000
+vt 0.265954 0.005108
+vt 0.265954 0.639500
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.258978 0.361919
+vt 0.250000 0.361919
+vt 0.250000 0.331604
+vt 0.258978 0.331604
+vt 0.250000 0.295958
+vt 0.258978 0.295958
+vt 0.250000 0.256351
+vt 0.258978 0.256351
+vt 0.250000 0.214304
+vt 0.258978 0.214304
+vt 0.250000 0.171433
+vt 0.258978 0.171433
+vt 0.250000 0.129386
+vt 0.258978 0.129386
+vt 0.250000 0.089778
+vt 0.258978 0.089778
+vt 0.250000 0.054132
+vt 0.258978 0.054132
+vt 0.250000 0.023818
+vt 0.258978 0.023818
+vt 0.250000 0.000000
+vt 0.258978 0.000000
+vt 0.258977 0.223103
+vt 0.250000 0.223103
+vt 0.250000 0.196398
+vt 0.258977 0.196398
+vt 0.250000 0.163663
+vt 0.258977 0.163663
+vt 0.250000 0.126156
+vt 0.258977 0.126156
+vt 0.218691 0.000000
+vt 0.218691 0.437382
+vt 0.176027 0.433180
+vt 0.135002 0.420735
+vt 0.097193 0.400526
+vt 0.064053 0.373329
+vt 0.036856 0.340189
+vt 0.016647 0.302381
+vt 0.004202 0.261356
+vt 0.000000 0.218691
+vt 0.004202 0.176027
+vt 0.016647 0.135002
+vt 0.036856 0.097193
+vt 0.064053 0.064053
+vt 0.097193 0.036856
+vt 0.135001 0.016647
+vt 0.176026 0.004202
+vt 0.250000 0.085319
+vt 0.258977 0.085319
+vt 0.250000 0.000000
+vt 0.258978 0.000000
+vt 0.258978 0.437382
+vt 0.250000 0.437382
+vt 0.250000 0.042722
+vt 0.258977 0.042722
+vt 0.250000 0.000000
+vt 0.258977 0.000000
+vt 0.218691 0.562618
+vt 0.218691 1.000000
+vt 0.176026 0.995798
+vt 0.135001 0.983353
+vt 0.097193 0.963144
+vt 0.064053 0.935947
+vt 0.036856 0.902807
+vt 0.016647 0.864998
+vt 0.004202 0.823973
+vt 0.000000 0.781309
+vt 0.004202 0.738644
+vt 0.016647 0.697619
+vt 0.036856 0.659811
+vt 0.064053 0.626671
+vt 0.097193 0.599474
+vt 0.135002 0.579265
+vt 0.176027 0.566820
+vn 0.0000 0.0000 1.0000
+vn 0.0000 1.0000 -0.0000
+vn 0.3827 0.0000 0.9239
+vn -0.3827 -0.0000 0.9239
+vn 0.9239 0.0000 -0.3827
+vn 0.9239 0.0000 0.3827
+vn -0.9239 -0.0000 0.3827
+vn -0.3827 -0.0000 -0.9239
+vn -0.9239 -0.0000 -0.3827
+vn 0.3827 -0.0000 -0.9239
+vn -0.7037 0.0980 -0.7037
+vn -0.6767 0.2903 -0.6767
+vn -0.6236 0.4714 -0.6236
+vn -0.5466 0.6344 -0.5466
+vn -0.4486 0.7730 -0.4486
+vn -0.3333 0.8819 -0.3333
+vn -0.2053 0.9569 -0.2053
+vn -0.0693 0.9952 -0.0693
+vn 0.0693 0.9952 0.0693
+vn 0.2053 0.9569 0.2053
+vn 0.3333 0.8819 0.3333
+vn 0.4486 0.7730 0.4486
+vn 0.5466 0.6344 0.5466
+vn -0.7071 0.0000 0.7071
+vn 0.6236 0.4714 0.6236
+vn 0.0000 -1.0000 0.0000
+vn 0.6767 0.2903 0.6767
+vn 0.7037 0.0980 0.7037
+vn 0.7071 0.0000 -0.7071
+usemtl Material.001
+s 1
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 5/5/1 6/6/1 7/7/1 8/8/1
+f 9/9/1 10/10/1 11/11/1 12/12/1
+f 2/2/1 13/13/1 14/14/1 3/3/1
+f 6/6/1 15/15/1 16/16/1 7/7/1
+f 10/10/1 1/1/1 4/4/1 11/11/1
+f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2
+f 12/25/3 17/26/3 18/27/3 11/28/3
+f 13/13/1 5/5/1 8/8/1 14/14/1
+f 15/15/1 9/9/1 12/12/1 16/16/1
+f 16/29/4 19/30/4 17/31/4 12/32/4
+f 4/33/5 20/34/5 21/35/5 3/36/5
+f 11/37/6 18/38/6 20/39/6 4/40/6
+f 7/41/7 22/42/7 19/43/7 16/44/7
+f 14/45/8 23/46/8 24/47/8 8/48/8
+f 8/49/9 24/50/9 22/51/9 7/52/9
+f 3/53/10 21/54/10 23/55/10 14/56/10
+f 25/57/11 26/58/11 27/59/11 28/60/11
+f 28/60/12 27/59/12 29/61/12 30/62/12
+f 30/62/13 29/61/13 31/63/13 32/64/13
+f 32/64/14 31/63/14 33/65/14 34/66/14
+f 34/66/15 33/65/15 35/67/15 36/68/15
+f 36/68/16 35/67/16 37/69/16 38/70/16
+f 38/70/17 37/69/17 39/71/17 40/72/17
+f 40/72/18 39/71/18 41/73/18 42/74/18
+f 42/74/19 41/73/19 43/75/19 44/76/19
+f 44/76/20 43/75/20 45/77/20 46/78/20
+f 46/79/21 45/80/21 47/81/21 48/82/21
+f 48/82/22 47/81/22 49/83/22 50/84/22
+f 50/84/23 49/83/23 51/85/23 52/86/23
+f 26/87/24 53/88/24 54/89/24 55/90/24 51/91/24 49/92/24 47/93/24 45/94/24 43/95/24 41/96/24 39/97/24 37/98/24 35/99/24 33/100/24 31/101/24 29/102/24 27/103/24
+f 52/86/25 51/85/25 55/104/25 56/105/25
+f 57/106/26 53/107/26 26/108/26 25/109/26
+f 56/105/27 55/104/27 54/110/27 58/111/27
+f 58/111/28 54/110/28 53/112/28 57/113/28
+f 57/114/29 25/115/29 28/116/29 30/117/29 32/118/29 34/119/29 36/120/29 38/121/29 40/122/29 42/123/29 44/124/29 46/125/29 48/126/29 50/127/29 52/128/29 56/129/29 58/130/29
diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr60.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr60.obj
new file mode 100644
index 0000000..77d854c
--- /dev/null
+++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr60.obj
@@ -0,0 +1,259 @@
+# Blender v2.92.0 OBJ File: ''
+# www.blender.org
+mtllib advtrains_signals_ks_sign_hfs_smr60.mtl
+o Cube.001
+v 0.293452 1.055075 -0.140782
+v 0.289947 1.055075 -0.167401
+v 0.289947 1.055075 -0.167401
+v 0.293452 1.055075 -0.140782
+v 0.242028 1.055075 -0.180241
+v 0.225683 1.055075 -0.158941
+v 0.225683 1.055075 -0.158941
+v 0.242028 1.055075 -0.180241
+v 0.250488 1.055075 -0.115977
+v 0.277107 1.055075 -0.119482
+v 0.277107 1.055075 -0.119482
+v 0.250488 1.055075 -0.115977
+v 0.268647 1.055075 -0.183746
+v 0.268647 1.055075 -0.183746
+v 0.229188 1.055075 -0.132322
+v 0.229188 1.055075 -0.132322
+v 0.250488 -0.499729 -0.115977
+v 0.277108 -0.499729 -0.119481
+v 0.229188 -0.499729 -0.132322
+v 0.293452 -0.499729 -0.140782
+v 0.289947 -0.499729 -0.167401
+v 0.225684 -0.499729 -0.158940
+v 0.268648 -0.499729 -0.183745
+v 0.242028 -0.499729 -0.180241
+v 0.123126 0.866098 -0.463711
+v 0.111039 0.866098 -0.456732
+v 0.114306 0.932433 -0.451073
+v 0.126393 0.932433 -0.458052
+v 0.123980 0.996219 -0.434316
+v 0.136068 0.996219 -0.441295
+v 0.139690 1.055004 -0.407105
+v 0.151778 1.055004 -0.414084
+v 0.160833 1.106529 -0.370484
+v 0.172921 1.106529 -0.377463
+v 0.186596 1.148815 -0.325861
+v 0.198684 1.148815 -0.332840
+v 0.215989 1.180236 -0.274952
+v 0.228077 1.180236 -0.281931
+v 0.247882 1.199586 -0.219712
+v 0.259970 1.199586 -0.226691
+v 0.281049 1.206119 -0.162264
+v 0.293137 1.206119 -0.169243
+v 0.314217 1.199586 -0.104816
+v 0.326305 1.199586 -0.111795
+v 0.346110 1.180236 -0.049576
+v 0.358198 1.180236 -0.056555
+v 0.375502 1.148815 0.001333
+v 0.387590 1.148815 -0.005646
+v 0.401265 1.106529 0.045955
+v 0.413353 1.106529 0.038976
+v 0.422408 1.055003 0.082576
+v 0.434496 1.055003 0.075597
+v 0.451060 0.866098 0.132203
+v 0.447793 0.932432 0.126545
+v 0.438119 0.996218 0.109788
+v 0.450207 0.996218 0.102809
+v 0.463148 0.866098 0.125224
+v 0.459881 0.932432 0.119566
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.033220 0.437382
+vt 0.009730 0.997467
+vt 0.000000 0.983831
+vt 0.000000 0.967080
+vt 0.009730 0.957025
+vt 0.023490 0.959558
+vt 0.033220 0.973194
+vt 0.033220 0.989946
+vt 0.023490 1.000000
+vt 0.250000 0.984749
+vt 0.250000 0.001193
+vt 0.265954 0.000000
+vt 0.265954 0.983556
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 0.983556
+vt 0.250000 0.000000
+vt 0.265954 0.001193
+vt 0.265954 0.984749
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.250000 0.639500
+vt 0.250000 0.005108
+vt 0.265954 0.000000
+vt 0.265954 0.634392
+vt 0.250000 0.634392
+vt 0.250000 0.000000
+vt 0.265954 0.005108
+vt 0.265954 0.639500
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.265954 0.000000
+vt 0.265954 1.000000
+vt 0.258978 0.361919
+vt 0.250000 0.361919
+vt 0.250000 0.331604
+vt 0.258978 0.331604
+vt 0.250000 0.295958
+vt 0.258978 0.295958
+vt 0.250000 0.256351
+vt 0.258978 0.256351
+vt 0.250000 0.214304
+vt 0.258978 0.214304
+vt 0.250000 0.171433
+vt 0.258978 0.171433
+vt 0.250000 0.129386
+vt 0.258978 0.129386
+vt 0.250000 0.089778
+vt 0.258978 0.089778
+vt 0.250000 0.054132
+vt 0.258978 0.054132
+vt 0.250000 0.023818
+vt 0.258978 0.023818
+vt 0.250000 0.000000
+vt 0.258978 0.000000
+vt 0.258977 0.223103
+vt 0.250000 0.223103
+vt 0.250000 0.196398
+vt 0.258977 0.196398
+vt 0.250000 0.163663
+vt 0.258977 0.163663
+vt 0.250000 0.126156
+vt 0.258977 0.126156
+vt 0.218691 0.000000
+vt 0.218691 0.437382
+vt 0.176027 0.433180
+vt 0.135002 0.420735
+vt 0.097193 0.400526
+vt 0.064053 0.373329
+vt 0.036856 0.340189
+vt 0.016647 0.302381
+vt 0.004202 0.261356
+vt 0.000000 0.218691
+vt 0.004202 0.176027
+vt 0.016647 0.135002
+vt 0.036856 0.097193
+vt 0.064053 0.064053
+vt 0.097193 0.036856
+vt 0.135001 0.016647
+vt 0.176026 0.004202
+vt 0.250000 0.085319
+vt 0.258977 0.085319
+vt 0.250000 0.000000
+vt 0.258978 0.000000
+vt 0.258978 0.437382
+vt 0.250000 0.437382
+vt 0.250000 0.042722
+vt 0.258977 0.042722
+vt 0.250000 0.000000
+vt 0.258977 0.000000
+vt 0.218691 0.562618
+vt 0.218691 1.000000
+vt 0.176026 0.995798
+vt 0.135001 0.983353
+vt 0.097193 0.963144
+vt 0.064053 0.935947
+vt 0.036856 0.902807
+vt 0.016647 0.864998
+vt 0.004202 0.823973
+vt 0.000000 0.781309
+vt 0.004202 0.738644
+vt 0.016647 0.697619
+vt 0.036856 0.659811
+vt 0.064053 0.626671
+vt 0.097193 0.599474
+vt 0.135002 0.579265
+vt 0.176027 0.566820
+vn 0.0000 0.0000 1.0000
+vn 0.0000 1.0000 -0.0000
+vn 0.1305 0.0000 0.9914
+vn -0.6088 -0.0000 0.7933
+vn 0.9914 0.0000 -0.1305
+vn 0.7934 0.0000 0.6088
+vn -0.9914 -0.0000 0.1305
+vn -0.1305 -0.0000 -0.9914
+vn -0.7934 -0.0000 -0.6088
+vn 0.6088 -0.0000 -0.7933
+vn -0.4976 0.0980 -0.8619
+vn -0.4785 0.2903 -0.8287
+vn -0.4410 0.4714 -0.7638
+vn -0.3865 0.6344 -0.6694
+vn -0.3172 0.7730 -0.5494
+vn -0.2357 0.8819 -0.4082
+vn -0.1451 0.9569 -0.2514
+vn -0.0490 0.9952 -0.0849
+vn 0.0490 0.9952 0.0849
+vn 0.1451 0.9569 0.2514
+vn 0.2357 0.8819 0.4082
+vn 0.3172 0.7730 0.5494
+vn 0.3865 0.6344 0.6694
+vn -0.8660 -0.0000 0.5000
+vn 0.4410 0.4714 0.7638
+vn 0.0000 -1.0000 -0.0000
+vn 0.4785 0.2903 0.8287
+vn 0.4976 0.0980 0.8619
+vn 0.8660 -0.0000 -0.5000
+usemtl Material.001
+s 1
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 5/5/1 6/6/1 7/7/1 8/8/1
+f 9/9/1 10/10/1 11/11/1 12/12/1
+f 2/2/1 13/13/1 14/14/1 3/3/1
+f 6/6/1 15/15/1 16/16/1 7/7/1
+f 10/10/1 1/1/1 4/4/1 11/11/1
+f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2
+f 12/25/3 17/26/3 18/27/3 11/28/3
+f 13/13/1 5/5/1 8/8/1 14/14/1
+f 15/15/1 9/9/1 12/12/1 16/16/1
+f 16/29/4 19/30/4 17/31/4 12/32/4
+f 4/33/5 20/34/5 21/35/5 3/36/5
+f 11/37/6 18/38/6 20/39/6 4/40/6
+f 7/41/7 22/42/7 19/43/7 16/44/7
+f 14/45/8 23/46/8 24/47/8 8/48/8
+f 8/49/9 24/50/9 22/51/9 7/52/9
+f 3/53/10 21/54/10 23/55/10 14/56/10
+f 25/57/11 26/58/11 27/59/11 28/60/11
+f 28/60/12 27/59/12 29/61/12 30/62/12
+f 30/62/13 29/61/13 31/63/13 32/64/13
+f 32/64/14 31/63/14 33/65/14 34/66/14
+f 34/66/15 33/65/15 35/67/15 36/68/15
+f 36/68/16 35/67/16 37/69/16 38/70/16
+f 38/70/17 37/69/17 39/71/17 40/72/17
+f 40/72/18 39/71/18 41/73/18 42/74/18
+f 42/74/19 41/73/19 43/75/19 44/76/19
+f 44/76/20 43/75/20 45/77/20 46/78/20
+f 46/79/21 45/80/21 47/81/21 48/82/21
+f 48/82/22 47/81/22 49/83/22 50/84/22
+f 50/84/23 49/83/23 51/85/23 52/86/23
+f 26/87/24 53/88/24 54/89/24 55/90/24 51/91/24 49/92/24 47/93/24 45/94/24 43/95/24 41/96/24 39/97/24 37/98/24 35/99/24 33/100/24 31/101/24 29/102/24 27/103/24
+f 52/86/25 51/85/25 55/104/25 56/105/25
+f 57/106/26 53/107/26 26/108/26 25/109/26
+f 56/105/27 55/104/27 54/110/27 58/111/27
+f 58/111/28 54/110/28 53/112/28 57/113/28
+f 57/114/29 25/115/29 28/116/29 30/117/29 32/118/29 34/119/29 36/120/29 38/121/29 40/122/29 42/123/29 44/124/29 46/125/29 48/126/29 50/127/29 52/128/29 56/129/29 58/130/29
imer (hurt animation) float cameratilt = fabs(fabs(player->hurt_tilt_timer-0.75)-0.75); // Fall bobbing animation float fall_bobbing = 0; if(player->camera_impact >= 1 && m_camera_mode < CAMERA_MODE_THIRD) { if(m_view_bobbing_fall == -1) // Effect took place and has finished player->camera_impact = m_view_bobbing_fall = 0; else if(m_view_bobbing_fall == 0) // Initialize effect m_view_bobbing_fall = 1; // Convert 0 -> 1 to 0 -> 1 -> 0 fall_bobbing = m_view_bobbing_fall < 0.5 ? m_view_bobbing_fall * 2 : -(m_view_bobbing_fall - 0.5) * 2 + 1; // Smoothen and invert the above fall_bobbing = sin(fall_bobbing * 0.5 * M_PI) * -1; // Amplify according to the intensity of the impact fall_bobbing *= (1 - rangelim(50 / player->camera_impact, 0, 1)) * 5; fall_bobbing *= m_cache_fall_bobbing_amount; } // Calculate players eye offset for different camera modes v3f PlayerEyeOffset = player->getEyeOffset(); if (m_camera_mode == CAMERA_MODE_FIRST) PlayerEyeOffset += player->eye_offset_first; else PlayerEyeOffset += player->eye_offset_third; // Set head node transformation m_headnode->setPosition(PlayerEyeOffset+v3f(0,cameratilt*-player->hurt_tilt_strength+fall_bobbing,0)); m_headnode->setRotation(v3f(player->getPitch(), 0, cameratilt*player->hurt_tilt_strength)); m_headnode->updateAbsolutePosition(); // Compute relative camera position and target v3f rel_cam_pos = v3f(0,0,0); v3f rel_cam_target = v3f(0,0,1); v3f rel_cam_up = v3f(0,1,0); if (m_cache_view_bobbing_amount != 0.0f && m_view_bobbing_anim != 0.0f && m_camera_mode < CAMERA_MODE_THIRD) { f32 bobfrac = my_modf(m_view_bobbing_anim * 2); f32 bobdir = (m_view_bobbing_anim < 0.5) ? 1.0 : -1.0; #if 1 f32 bobknob = 1.2; f32 bobtmp = sin(pow(bobfrac, bobknob) * M_PI); //f32 bobtmp2 = cos(pow(bobfrac, bobknob) * M_PI); v3f bobvec = v3f( 0.3 * bobdir * sin(bobfrac * M_PI), -0.28 * bobtmp * bobtmp, 0.); //rel_cam_pos += 0.2 * bobvec; //rel_cam_target += 0.03 * bobvec; //rel_cam_up.rotateXYBy(0.02 * bobdir * bobtmp * M_PI); float f = 1.0; f *= m_cache_view_bobbing_amount; rel_cam_pos += bobvec * f; //rel_cam_target += 0.995 * bobvec * f; rel_cam_target += bobvec * f; rel_cam_target.Z -= 0.005 * bobvec.Z * f; //rel_cam_target.X -= 0.005 * bobvec.X * f; //rel_cam_target.Y -= 0.005 * bobvec.Y * f; rel_cam_up.rotateXYBy(-0.03 * bobdir * bobtmp * M_PI * f); #else f32 angle_deg = 1 * bobdir * sin(bobfrac * M_PI); f32 angle_rad = angle_deg * M_PI / 180; f32 r = 0.05; v3f off = v3f( r * sin(angle_rad), r * (cos(angle_rad) - 1), 0); rel_cam_pos += off; //rel_cam_target += off; rel_cam_up.rotateXYBy(angle_deg); #endif } // Compute absolute camera position and target m_headnode->getAbsoluteTransformation().transformVect(m_camera_position, rel_cam_pos); m_headnode->getAbsoluteTransformation().rotateVect(m_camera_direction, rel_cam_target - rel_cam_pos); v3f abs_cam_up; m_headnode->getAbsoluteTransformation().rotateVect(abs_cam_up, rel_cam_up); // Seperate camera position for calculation v3f my_cp = m_camera_position; // Reposition the camera for third person view if (m_camera_mode > CAMERA_MODE_FIRST) { if (m_camera_mode == CAMERA_MODE_THIRD_FRONT) m_camera_direction *= -1; my_cp.Y += 2; // Calculate new position bool abort = false; for (int i = BS; i <= BS * 2.75; i++) { my_cp.X = m_camera_position.X + m_camera_direction.X * -i; my_cp.Z = m_camera_position.Z + m_camera_direction.Z * -i; if (i > 12) my_cp.Y = m_camera_position.Y + (m_camera_direction.Y * -i); // Prevent camera positioned inside nodes INodeDefManager *nodemgr = m_client->ndef(); MapNode n = m_client->getEnv().getClientMap() .getNodeNoEx(floatToInt(my_cp, BS)); const ContentFeatures& features = nodemgr->get(n); if (features.walkable) { my_cp.X += m_camera_direction.X*-1*-BS/2; my_cp.Z += m_camera_direction.Z*-1*-BS/2; my_cp.Y += m_camera_direction.Y*-1*-BS/2; abort = true; break; } } // If node blocks camera position don't move y to heigh if (abort && my_cp.Y > player_position.Y+BS*2) my_cp.Y = player_position.Y+BS*2; } // Update offset if too far away from the center of the map m_camera_offset.X += CAMERA_OFFSET_STEP* (((s16)(my_cp.X/BS) - m_camera_offset.X)/CAMERA_OFFSET_STEP); m_camera_offset.Y += CAMERA_OFFSET_STEP* (((s16)(my_cp.Y/BS) - m_camera_offset.Y)/CAMERA_OFFSET_STEP); m_camera_offset.Z += CAMERA_OFFSET_STEP* (((s16)(my_cp.Z/BS) - m_camera_offset.Z)/CAMERA_OFFSET_STEP); // Set camera node transformation m_cameranode->setPosition(my_cp-intToFloat(m_camera_offset, BS)); m_cameranode->setUpVector(abs_cam_up); // *100.0 helps in large map coordinates m_cameranode->setTarget(my_cp-intToFloat(m_camera_offset, BS) + 100 * m_camera_direction); // update the camera position in front-view mode to render blocks behind player if (m_camera_mode == CAMERA_MODE_THIRD_FRONT) m_camera_position = my_cp; // Get FOV f32 fov_degrees; if (player->getPlayerControl().zoom && player->getCanZoom()) { fov_degrees = m_cache_zoom_fov; } else { fov_degrees = m_cache_fov; } fov_degrees = rangelim(fov_degrees, 7.0, 160.0); // FOV and aspect ratio const v2u32 &window_size = RenderingEngine::get_instance()->getWindowSize(); m_aspect = (f32) window_size.X / (f32) window_size.Y; m_fov_y = fov_degrees * M_PI / 180.0; // Increase vertical FOV on lower aspect ratios (<16:10) m_fov_y *= MYMAX(1.0, MYMIN(1.4, sqrt(16./10. / m_aspect))); m_fov_x = 2 * atan(m_aspect * tan(0.5 * m_fov_y)); m_cameranode->setAspectRatio(m_aspect); m_cameranode->setFOV(m_fov_y); if (m_arm_inertia) addArmInertia(player->getYaw()); // Position the wielded item //v3f wield_position = v3f(45, -35, 65); v3f wield_position = v3f(m_wieldmesh_offset.X, m_wieldmesh_offset.Y, 65); //v3f wield_rotation = v3f(-100, 120, -100); v3f wield_rotation = v3f(-100, 120, -100); wield_position.Y += fabs(m_wield_change_timer)*320 - 40; if(m_digging_anim < 0.05 || m_digging_anim > 0.5) { f32 frac = 1.0; if(m_digging_anim > 0.5) frac = 2.0 * (m_digging_anim - 0.5); // This value starts from 1 and settles to 0 f32 ratiothing = pow((1.0f - tool_reload_ratio), 0.5f); //f32 ratiothing2 = pow(ratiothing, 0.5f); f32 ratiothing2 = (easeCurve(ratiothing*0.5))*2.0; wield_position.Y -= frac * 25.0 * pow(ratiothing2, 1.7f); //wield_position.Z += frac * 5.0 * ratiothing2; wield_position.X -= frac * 35.0 * pow(ratiothing2, 1.1f); wield_rotation.Y += frac * 70.0 * pow(ratiothing2, 1.4f); //wield_rotation.X -= frac * 15.0 * pow(ratiothing2, 1.4f); //wield_rotation.Z += frac * 15.0 * pow(ratiothing2, 1.0f); } if (m_digging_button != -1) { f32 digfrac = m_digging_anim; wield_position.X -= 50 * sin(pow(digfrac, 0.8f) * M_PI); wield_position.Y += 24 * sin(digfrac * 1.8 * M_PI); wield_position.Z += 25 * 0.5; // Euler angles are PURE EVIL, so why not use quaternions? core::quaternion quat_begin(wield_rotation * core::DEGTORAD); core::quaternion quat_end(v3f(80, 30, 100) * core::DEGTORAD); core::quaternion quat_slerp; quat_slerp.slerp(quat_begin, quat_end, sin(digfrac * M_PI)); quat_slerp.toEuler(wield_rotation); wield_rotation *= core::RADTODEG; } else { f32 bobfrac = my_modf(m_view_bobbing_anim); wield_position.X -= sin(bobfrac*M_PI*2.0) * 3.0; wield_position.Y += sin(my_modf(bobfrac*2.0)*M_PI) * 3.0; } m_wieldnode->setPosition(wield_position); m_wieldnode->setRotation(wield_rotation); m_wieldnode->setColor(player->light_color); // Set render distance updateViewingRange(); // If the player is walking, swimming, or climbing, // view bobbing is enabled and free_move is off, // start (or continue) the view bobbing animation. const v3f &speed = player->getSpeed(); const bool movement_XZ = hypot(speed.X, speed.Z) > BS; const bool movement_Y = fabs(speed.Y) > BS; const bool walking = movement_XZ && player->touching_ground; const bool swimming = (movement_XZ || player->swimming_vertical) && player->in_liquid; const bool climbing = movement_Y && player->is_climbing; if ((walking || swimming || climbing) && (!g_settings->getBool("free_move") || !m_client->checkLocalPrivilege("fly"))) { // Start animation m_view_bobbing_state = 1; m_view_bobbing_speed = MYMIN(speed.getLength(), 70); } else if (m_view_bobbing_state == 1) { // Stop animation m_view_bobbing_state = 2; m_view_bobbing_speed = 60; } } void Camera::updateViewingRange() { f32 viewing_range = g_settings->getFloat("viewing_range"); m_draw_control.wanted_range = viewing_range; if (m_draw_control.range_all) { m_cameranode->setFarValue(100000.0); return; } m_cameranode->setFarValue((viewing_range < 2000) ? 2000 * BS : viewing_range * BS); } void Camera::setDigging(s32 button) { if (m_digging_button == -1) m_digging_button = button; } void Camera::wield(const ItemStack &item) { if (item.name != m_wield_item_next.name || item.metadata != m_wield_item_next.metadata) { m_wield_item_next = item; if (m_wield_change_timer > 0) m_wield_change_timer = -m_wield_change_timer; else if (m_wield_change_timer == 0) m_wield_change_timer = -0.001; } } void Camera::drawWieldedTool(irr::core::matrix4* translation) { // Clear Z buffer so that the wielded tool stay in front of world geometry m_wieldmgr->getVideoDriver()->clearZBuffer(); // Draw the wielded node (in a separate scene manager) scene::ICameraSceneNode* cam = m_wieldmgr->getActiveCamera(); cam->setAspectRatio(m_cameranode->getAspectRatio()); cam->setFOV(72.0*M_PI/180.0); cam->setNearValue(10); cam->setFarValue(1000); if (translation != NULL) { irr::core::matrix4 startMatrix = cam->getAbsoluteTransformation(); irr::core::vector3df focusPoint = (cam->getTarget() - cam->getAbsolutePosition()).setLength(1) + cam->getAbsolutePosition(); irr::core::vector3df camera_pos = (startMatrix * *translation).getTranslation(); cam->setPosition(camera_pos); cam->setTarget(focusPoint); } m_wieldmgr->drawAll(); } void Camera::drawNametags() { core::matrix4 trans = m_cameranode->getProjectionMatrix(); trans *= m_cameranode->getViewMatrix(); for (std::list<Nametag *>::const_iterator i = m_nametags.begin(); i != m_nametags.end(); ++i) { Nametag *nametag = *i; if (nametag->nametag_color.getAlpha() == 0) { // Enforce hiding nametag, // because if freetype is enabled, a grey // shadow can remain. continue; } v3f pos = nametag->parent_node->getAbsolutePosition() + nametag->nametag_pos * BS; f32 transformed_pos[4] = { pos.X, pos.Y, pos.Z, 1.0f }; trans.multiplyWith1x4Matrix(transformed_pos); if (transformed_pos[3] > 0) { std::wstring nametag_colorless = unescape_translate(utf8_to_wide(nametag->nametag_text)); core::dimension2d<u32> textsize = g_fontengine->getFont()->getDimension( nametag_colorless.c_str()); f32 zDiv = transformed_pos[3] == 0.0f ? 1.0f : core::reciprocal(transformed_pos[3]); v2u32 screensize = RenderingEngine::get_video_driver()->getScreenSize(); v2s32 screen_pos; screen_pos.X = screensize.X * (0.5 * transformed_pos[0] * zDiv + 0.5) - textsize.Width / 2; screen_pos.Y = screensize.Y * (0.5 - transformed_pos[1] * zDiv * 0.5) - textsize.Height / 2; core::rect<s32> size(0, 0, textsize.Width, textsize.Height); g_fontengine->getFont()->draw( translate_string(utf8_to_wide(nametag->nametag_text)).c_str(), size + screen_pos, nametag->nametag_color); } } } Nametag *Camera::addNametag(scene::ISceneNode *parent_node, const std::string &nametag_text, video::SColor nametag_color, const v3f &pos) { Nametag *nametag = new Nametag(parent_node, nametag_text, nametag_color, pos); m_nametags.push_back(nametag); return nametag; } void Camera::removeNametag(Nametag *nametag) { m_nametags.remove(nametag); delete nametag; }