-
Notifications
You must be signed in to change notification settings - Fork 0
/
rover.cpp
4603 lines (4421 loc) · 248 KB
/
rover.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
//
// Created by anchi on 28/07/2021.
//
#include "rover.h"
#include "Scene.h"
void defineRover( Drawable &rover )
{
Drawable spokes4;
spokes4.setSmoothing(true);
spokes4.setMaterial(materials["metal"]);
spokes4.addVertex(array3f(-0.196796, 0.046995, -0.210784));
spokes4.addVertex(array3f(-0.19744, 0.042925, -0.210784));
spokes4.addVertex(array3f(-0.199311, 0.039254, -0.210784));
spokes4.addVertex(array3f(-0.202224, 0.03634, -0.210784));
spokes4.addVertex(array3f(-0.205896, 0.034469, -0.210784));
spokes4.addVertex(array3f(-0.209966, 0.033825, -0.210784));
spokes4.addVertex(array3f(-0.214035, 0.034469, -0.210784));
spokes4.addVertex(array3f(-0.217707, 0.03634, -0.210784));
spokes4.addVertex(array3f(-0.22062, 0.039254, -0.210784));
spokes4.addVertex(array3f(-0.222491, 0.042925, -0.210784));
spokes4.addVertex(array3f(-0.223136, 0.046995, -0.210784));
spokes4.addVertex(array3f(-0.222491, 0.051064, -0.210784));
spokes4.addVertex(array3f(-0.22062, 0.054736, -0.210784));
spokes4.addVertex(array3f(-0.217707, 0.057649, -0.210784));
spokes4.addVertex(array3f(-0.214035, 0.05952, -0.210784));
spokes4.addVertex(array3f(-0.209966, 0.060165, -0.210784));
spokes4.addVertex(array3f(-0.205896, 0.05952, -0.210784));
spokes4.addVertex(array3f(-0.202224, 0.057649, -0.210784));
spokes4.addVertex(array3f(-0.199311, 0.054736, -0.210784));
spokes4.addVertex(array3f(-0.19744, 0.051064, -0.210784));
spokes4.addVertex(array3f(-0.196796, 0.046995, -0.249238));
spokes4.addVertex(array3f(-0.19744, 0.042925, -0.249238));
spokes4.addVertex(array3f(-0.199311, 0.039254, -0.249238));
spokes4.addVertex(array3f(-0.202224, 0.03634, -0.249238));
spokes4.addVertex(array3f(-0.205896, 0.034469, -0.249238));
spokes4.addVertex(array3f(-0.209966, 0.033825, -0.249238));
spokes4.addVertex(array3f(-0.214035, 0.034469, -0.249238));
spokes4.addVertex(array3f(-0.217707, 0.03634, -0.249238));
spokes4.addVertex(array3f(-0.22062, 0.039254, -0.249238));
spokes4.addVertex(array3f(-0.222491, 0.042925, -0.249238));
spokes4.addVertex(array3f(-0.223136, 0.046995, -0.249238));
spokes4.addVertex(array3f(-0.222491, 0.051064, -0.249238));
spokes4.addVertex(array3f(-0.22062, 0.054736, -0.249238));
spokes4.addVertex(array3f(-0.217707, 0.057649, -0.249238));
spokes4.addVertex(array3f(-0.214035, 0.05952, -0.249238));
spokes4.addVertex(array3f(-0.209966, 0.060165, -0.249238));
spokes4.addVertex(array3f(-0.205896, 0.05952, -0.249238));
spokes4.addVertex(array3f(-0.202224, 0.057649, -0.249238));
spokes4.addVertex(array3f(-0.199311, 0.054736, -0.249238));
spokes4.addVertex(array3f(-0.19744, 0.051064, -0.249238));
spokes4.addVertex(array3f(-0.199311, 0.039254, -0.23642));
spokes4.addVertex(array3f(-0.199311, 0.039254, -0.223602));
spokes4.addVertex(array3f(-0.19744, 0.042925, -0.23642));
spokes4.addVertex(array3f(-0.19744, 0.042925, -0.223602));
spokes4.addVertex(array3f(-0.202224, 0.03634, -0.223602));
spokes4.addVertex(array3f(-0.202224, 0.03634, -0.23642));
spokes4.addVertex(array3f(-0.205896, 0.034469, -0.223602));
spokes4.addVertex(array3f(-0.205896, 0.034469, -0.23642));
spokes4.addVertex(array3f(-0.214035, 0.034469, -0.223602));
spokes4.addVertex(array3f(-0.214035, 0.034469, -0.23642));
spokes4.addVertex(array3f(-0.217707, 0.03634, -0.223602));
spokes4.addVertex(array3f(-0.217707, 0.03634, -0.23642));
spokes4.addVertex(array3f(-0.22062, 0.039254, -0.223602));
spokes4.addVertex(array3f(-0.22062, 0.039254, -0.23642));
spokes4.addVertex(array3f(-0.222491, 0.042925, -0.223602));
spokes4.addVertex(array3f(-0.222491, 0.042925, -0.23642));
spokes4.addVertex(array3f(-0.222491, 0.051064, -0.223602));
spokes4.addVertex(array3f(-0.222491, 0.051064, -0.23642));
spokes4.addVertex(array3f(-0.22062, 0.054736, -0.223602));
spokes4.addVertex(array3f(-0.22062, 0.054736, -0.23642));
spokes4.addVertex(array3f(-0.217707, 0.057649, -0.223602));
spokes4.addVertex(array3f(-0.217707, 0.057649, -0.23642));
spokes4.addVertex(array3f(-0.214035, 0.05952, -0.223602));
spokes4.addVertex(array3f(-0.214035, 0.05952, -0.23642));
spokes4.addVertex(array3f(-0.205896, 0.05952, -0.223602));
spokes4.addVertex(array3f(-0.205896, 0.05952, -0.23642));
spokes4.addVertex(array3f(-0.202224, 0.057649, -0.223602));
spokes4.addVertex(array3f(-0.202224, 0.057649, -0.23642));
spokes4.addVertex(array3f(-0.199311, 0.054736, -0.223602));
spokes4.addVertex(array3f(-0.199311, 0.054736, -0.23642));
spokes4.addVertex(array3f(-0.19744, 0.051064, -0.223602));
spokes4.addVertex(array3f(-0.19744, 0.051064, -0.23642));
spokes4.addVertex(array3f(-0.209966, 0.033825, -0.223602));
spokes4.addVertex(array3f(-0.209966, 0.033825, -0.23642));
spokes4.addVertex(array3f(-0.209966, 0.060165, -0.223602));
spokes4.addVertex(array3f(-0.209966, 0.060165, -0.23642));
spokes4.addVertex(array3f(-0.199311, 0.039254, -0.223602));
spokes4.addVertex(array3f(-0.199311, 0.039254, -0.23642));
spokes4.addVertex(array3f(-0.19744, 0.042925, -0.223602));
spokes4.addVertex(array3f(-0.19744, 0.042925, -0.23642));
spokes4.addVertex(array3f(-0.202224, 0.03634, -0.223602));
spokes4.addVertex(array3f(-0.202224, 0.03634, -0.23642));
spokes4.addVertex(array3f(-0.205896, 0.034469, -0.223602));
spokes4.addVertex(array3f(-0.205896, 0.034469, -0.23642));
spokes4.addVertex(array3f(-0.214035, 0.034469, -0.223602));
spokes4.addVertex(array3f(-0.214035, 0.034469, -0.23642));
spokes4.addVertex(array3f(-0.217707, 0.03634, -0.223602));
spokes4.addVertex(array3f(-0.217707, 0.03634, -0.23642));
spokes4.addVertex(array3f(-0.22062, 0.039254, -0.223602));
spokes4.addVertex(array3f(-0.22062, 0.039254, -0.23642));
spokes4.addVertex(array3f(-0.222491, 0.042925, -0.223602));
spokes4.addVertex(array3f(-0.222491, 0.042925, -0.23642));
spokes4.addVertex(array3f(-0.222491, 0.051064, -0.223602));
spokes4.addVertex(array3f(-0.222491, 0.051064, -0.23642));
spokes4.addVertex(array3f(-0.22062, 0.054736, -0.223602));
spokes4.addVertex(array3f(-0.22062, 0.054736, -0.23642));
spokes4.addVertex(array3f(-0.217707, 0.057649, -0.223602));
spokes4.addVertex(array3f(-0.217707, 0.057649, -0.23642));
spokes4.addVertex(array3f(-0.214035, 0.05952, -0.223602));
spokes4.addVertex(array3f(-0.214035, 0.05952, -0.23642));
spokes4.addVertex(array3f(-0.205896, 0.05952, -0.223602));
spokes4.addVertex(array3f(-0.205896, 0.05952, -0.23642));
spokes4.addVertex(array3f(-0.202224, 0.057649, -0.223602));
spokes4.addVertex(array3f(-0.202224, 0.057649, -0.23642));
spokes4.addVertex(array3f(-0.199311, 0.054736, -0.223602));
spokes4.addVertex(array3f(-0.199311, 0.054736, -0.23642));
spokes4.addVertex(array3f(-0.19744, 0.051064, -0.223602));
spokes4.addVertex(array3f(-0.19744, 0.051064, -0.23642));
spokes4.addVertex(array3f(-0.209966, 0.033825, -0.223602));
spokes4.addVertex(array3f(-0.209966, 0.033825, -0.23642));
spokes4.addVertex(array3f(-0.209966, 0.060165, -0.223602));
spokes4.addVertex(array3f(-0.209966, 0.060165, -0.23642));
spokes4.addVertex(array3f(-0.214035, 0.085239, -0.223602));
spokes4.addVertex(array3f(-0.214035, 0.085239, -0.23642));
spokes4.addVertex(array3f(-0.205896, 0.085239, -0.223602));
spokes4.addVertex(array3f(-0.205896, 0.085239, -0.23642));
spokes4.addVertex(array3f(-0.209966, 0.085884, -0.223602));
spokes4.addVertex(array3f(-0.209966, 0.085884, -0.23642));
spokes4.addVertex(array3f(-0.205896, 0.00875, -0.223602));
spokes4.addVertex(array3f(-0.205896, 0.00875, -0.23642));
spokes4.addVertex(array3f(-0.214035, 0.00875, -0.223602));
spokes4.addVertex(array3f(-0.214035, 0.00875, -0.23642));
spokes4.addVertex(array3f(-0.209966, 0.008105, -0.223602));
spokes4.addVertex(array3f(-0.209966, 0.008105, -0.23642));
spokes4.addVertex(array3f(-0.243298, 0.066182, -0.223602));
spokes4.addVertex(array3f(-0.243298, 0.066182, -0.23642));
spokes4.addVertex(array3f(-0.241428, 0.069853, -0.223602));
spokes4.addVertex(array3f(-0.241428, 0.069853, -0.23642));
spokes4.addVertex(array3f(-0.238514, 0.072767, -0.223602));
spokes4.addVertex(array3f(-0.238514, 0.072767, -0.23642));
spokes4.addVertex(array3f(-0.238514, 0.021223, -0.223602));
spokes4.addVertex(array3f(-0.238514, 0.021223, -0.23642));
spokes4.addVertex(array3f(-0.241428, 0.024136, -0.223602));
spokes4.addVertex(array3f(-0.241428, 0.024136, -0.23642));
spokes4.addVertex(array3f(-0.243298, 0.027808, -0.223602));
spokes4.addVertex(array3f(-0.243298, 0.027808, -0.23642));
spokes4.addVertex(array3f(-0.181417, 0.072767, -0.223602));
spokes4.addVertex(array3f(-0.181417, 0.072767, -0.23642));
spokes4.addVertex(array3f(-0.178504, 0.069853, -0.223602));
spokes4.addVertex(array3f(-0.178504, 0.069853, -0.23642));
spokes4.addVertex(array3f(-0.176633, 0.066182, -0.223602));
spokes4.addVertex(array3f(-0.176633, 0.066182, -0.23642));
spokes4.addVertex(array3f(-0.178504, 0.024136, -0.223602));
spokes4.addVertex(array3f(-0.178504, 0.024136, -0.23642));
spokes4.addVertex(array3f(-0.176633, 0.027808, -0.223602));
spokes4.addVertex(array3f(-0.176633, 0.027808, -0.23642));
spokes4.addVertex(array3f(-0.181417, 0.021223, -0.223602));
spokes4.addVertex(array3f(-0.181417, 0.021223, -0.23642));
spokes4.addNormal(array3f(0.7391, 0.0, -0.6735));
spokes4.addNormal(array3f(0.703, -0.2284, -0.6735));
spokes4.addNormal(array3f(0.598, -0.4345, -0.6735));
spokes4.addNormal(array3f(0.4345, -0.598, -0.6735));
spokes4.addNormal(array3f(0.2284, -0.703, -0.6735));
spokes4.addNormal(array3f(0.0, -0.7391, -0.6735));
spokes4.addNormal(array3f(-0.2284, -0.703, -0.6735));
spokes4.addNormal(array3f(-0.4345, -0.598, -0.6735));
spokes4.addNormal(array3f(-0.598, -0.4345, -0.6735));
spokes4.addNormal(array3f(-0.703, -0.2284, -0.6735));
spokes4.addNormal(array3f(-0.7391, 0.0, -0.6735));
spokes4.addNormal(array3f(-0.703, 0.2284, -0.6735));
spokes4.addNormal(array3f(-0.598, 0.4345, -0.6735));
spokes4.addNormal(array3f(-0.4345, 0.598, -0.6735));
spokes4.addNormal(array3f(-0.2284, 0.703, -0.6735));
spokes4.addNormal(array3f(0.0, 0.7391, -0.6735));
spokes4.addNormal(array3f(0.2284, 0.703, -0.6735));
spokes4.addNormal(array3f(0.4345, 0.598, -0.6735));
spokes4.addNormal(array3f(0.598, 0.4345, -0.6735));
spokes4.addNormal(array3f(0.703, 0.2284, -0.6735));
spokes4.addNormal(array3f(0.7391, 0.0, 0.6735));
spokes4.addNormal(array3f(0.703, 0.2284, 0.6735));
spokes4.addNormal(array3f(0.598, 0.4345, 0.6735));
spokes4.addNormal(array3f(0.4345, 0.598, 0.6735));
spokes4.addNormal(array3f(0.2284, 0.703, 0.6735));
spokes4.addNormal(array3f(0.0, 0.7391, 0.6735));
spokes4.addNormal(array3f(-0.2284, 0.703, 0.6735));
spokes4.addNormal(array3f(-0.4345, 0.598, 0.6735));
spokes4.addNormal(array3f(-0.598, 0.4345, 0.6735));
spokes4.addNormal(array3f(-0.703, 0.2284, 0.6735));
spokes4.addNormal(array3f(-0.7391, 0.0, 0.6735));
spokes4.addNormal(array3f(-0.703, -0.2284, 0.6735));
spokes4.addNormal(array3f(-0.598, -0.4345, 0.6735));
spokes4.addNormal(array3f(-0.4345, -0.598, 0.6735));
spokes4.addNormal(array3f(-0.2284, -0.703, 0.6735));
spokes4.addNormal(array3f(0.0, -0.7391, 0.6735));
spokes4.addNormal(array3f(0.2284, -0.703, 0.6735));
spokes4.addNormal(array3f(0.4345, -0.598, 0.6735));
spokes4.addNormal(array3f(0.598, -0.4345, 0.6735));
spokes4.addNormal(array3f(0.703, -0.2284, 0.6735));
spokes4.addNormal(array3f(0.5685, -0.413, 0.7114));
spokes4.addNormal(array3f(0.801, -0.2143, 0.5589));
spokes4.addNormal(array3f(0.4513, -0.6956, 0.5589));
spokes4.addNormal(array3f(-0.2974, -0.774, 0.5589));
spokes4.addNormal(array3f(-0.4513, -0.6956, 0.5589));
spokes4.addNormal(array3f(-0.5685, -0.413, 0.7114));
spokes4.addNormal(array3f(-0.801, -0.2143, 0.5589));
spokes4.addNormal(array3f(-0.801, 0.2143, 0.5589));
spokes4.addNormal(array3f(-0.5685, 0.413, 0.7114));
spokes4.addNormal(array3f(-0.4513, 0.6956, 0.5589));
spokes4.addNormal(array3f(-0.2974, 0.774, 0.5589));
spokes4.addNormal(array3f(0.0, 0.0, 1.0));
spokes4.addNormal(array3f(0.3954, 0.5442, 0.7399));
spokes4.addNormal(array3f(0.3954, 0.5442, -0.7399));
spokes4.addNormal(array3f(0.0, 0.0, -1.0));
spokes4.addNormal(array3f(-0.3954, -0.5442, -0.7399));
spokes4.addNormal(array3f(-0.3954, -0.5442, 0.7399));
spokes4.addNormal(array3f(0.5685, 0.413, 0.7114));
spokes4.addNormal(array3f(0.4513, 0.6956, 0.5589));
spokes4.addNormal(array3f(0.801, 0.2143, 0.5589));
spokes4.addNormal(array3f(0.2975, 0.774, 0.5589));
spokes4.addNormal(array3f(0.1916, 0.2637, 0.9454));
spokes4.addNormal(array3f(0.0, 0.7027, 0.7114));
spokes4.addNormal(array3f(0.0, -0.7027, 0.7114));
spokes4.addNormal(array3f(0.2975, -0.774, 0.5589));
spokes4.addNormal(array3f(0.6727, 0.0, 0.7399));
spokes4.addNormal(array3f(0.326, 0.0, 0.9454));
spokes4.addNormal(array3f(0.1916, -0.2637, 0.9454));
spokes4.addNormal(array3f(0.3954, -0.5442, 0.7399));
spokes4.addNormal(array3f(-0.6727, 0.0, 0.7399));
spokes4.addNormal(array3f(-0.326, 0.0, 0.9454));
spokes4.addNormal(array3f(-0.1916, 0.2637, 0.9454));
spokes4.addNormal(array3f(-0.3954, 0.5442, 0.7399));
spokes4.addNormal(array3f(-0.6727, 0.0, -0.7399));
spokes4.addNormal(array3f(-0.1916, -0.2637, 0.9454));
spokes4.addNormal(array3f(0.3954, -0.5442, -0.7399));
spokes4.addNormal(array3f(-0.3954, 0.5442, -0.7399));
spokes4.addNormal(array3f(0.6727, 0.0, -0.7399));
spokes4.addFacevn({{20, 0}, {21, 1}, {22, 2}, {23, 3}, {24, 4}, {25, 5}, {26, 6}, {27, 7}, {28, 8}, {29, 9}, {30, 10}, {31, 11}, {32, 12}, {33, 13}, {34, 14}, {35, 15}, {36, 16}, {37, 17}, {38, 18}, {39, 19}});
spokes4.addFacevn({{0, 20}, {19, 21}, {18, 22}, {17, 23}, {16, 24}, {15, 25}, {14, 26}, {13, 27}, {12, 28}, {11, 29}, {10, 30}, {9, 31}, {8, 32}, {7, 33}, {6, 34}, {5, 35}, {4, 36}, {3, 37}, {2, 38}, {1, 39}});
spokes4.addFacevn({{41, 40}, {43, 41}, {1, 39}, {2, 38}});
spokes4.addFacevn({{44, 42}, {41, 40}, {2, 38}, {3, 37}});
spokes4.addFacevn({{49, 43}, {48, 43}, {6, 34}, {7, 33}, {50, 44}, {51, 44}, {27, 7}, {26, 6}});
spokes4.addFacevn({{52, 45}, {50, 44}, {7, 33}, {8, 32}});
spokes4.addFacevn({{54, 46}, {52, 45}, {8, 32}, {9, 31}});
spokes4.addFacevn({{30, 10}, {10, 30}, {11, 29}, {56, 47}, {57, 47}, {31, 11}});
spokes4.addFacevn({{58, 48}, {56, 47}, {11, 29}, {12, 28}});
spokes4.addFacevn({{60, 49}, {58, 48}, {12, 28}, {13, 27}});
spokes4.addFacevn({{61, 49}, {60, 49}, {13, 27}, {14, 26}, {62, 50}, {63, 50}, {34, 14}, {33, 13}});
spokes4.addFacevn({{77, 51}, {79, 52}, {145, 53}, {143, 54}, {147, 55}, {81, 56}});
spokes4.addFacevn({{68, 57}, {66, 58}, {17, 23}, {18, 22}});
spokes4.addFacevn({{70, 59}, {68, 57}, {18, 22}, {19, 21}});
spokes4.addFacevn({{65, 60}, {64, 60}, {16, 24}, {17, 23}, {66, 58}, {67, 58}, {37, 17}, {36, 16}});
spokes4.addFacevn({{42, 41}, {43, 41}, {78, 61}, {79, 52}});
spokes4.addFacevn({{15, 25}, {74, 62}, {62, 50}, {14, 26}});
spokes4.addFacevn({{49, 43}, {26, 6}, {25, 5}, {73, 63}});
spokes4.addFacevn({{73, 63}, {25, 5}, {24, 4}, {47, 64}});
spokes4.addFacevn({{65, 60}, {36, 16}, {35, 15}, {75, 62}});
spokes4.addFacevn({{75, 62}, {35, 15}, {34, 14}, {63, 50}});
spokes4.addFacevn({{16, 24}, {64, 60}, {74, 62}, {15, 25}});
spokes4.addFacevn({{65, 60}, {75, 62}, {111, 51}, {101, 65}});
spokes4.addFacevn({{5, 35}, {72, 63}, {46, 64}, {4, 36}});
spokes4.addFacevn({{64, 60}, {65, 60}, {101, 65}, {100, 66}});
spokes4.addFacevn({{6, 34}, {48, 43}, {72, 63}, {5, 35}});
spokes4.addFacevn({{50, 44}, {52, 45}, {88, 51}, {86, 67}});
spokes4.addFacevn({{71, 59}, {70, 59}, {19, 21}, {0, 20}, {20, 0}, {39, 19}});
spokes4.addFacevn({{39, 19}, {38, 18}, {69, 57}, {71, 59}});
spokes4.addFacevn({{74, 62}, {64, 60}, {100, 66}, {110, 51}});
spokes4.addFacevn({{38, 18}, {37, 17}, {67, 58}, {69, 57}});
spokes4.addFacevn({{53, 45}, {51, 44}, {87, 68}, {89, 51}});
spokes4.addFacevn({{0, 20}, {1, 39}, {43, 41}, {42, 41}, {21, 1}, {20, 0}});
spokes4.addFacevn({{33, 13}, {32, 12}, {59, 48}, {61, 49}});
spokes4.addFacevn({{75, 62}, {63, 50}, {99, 69}, {111, 51}});
spokes4.addFacevn({{32, 12}, {31, 11}, {57, 47}, {59, 48}});
spokes4.addFacevn({{63, 50}, {62, 50}, {98, 70}, {99, 69}});
spokes4.addFacevn({{55, 46}, {54, 46}, {9, 31}, {10, 30}, {30, 10}, {29, 9}});
spokes4.addFacevn({{29, 9}, {28, 8}, {53, 45}, {55, 46}});
spokes4.addFacevn({{52, 45}, {54, 46}, {90, 71}, {88, 51}});
spokes4.addFacevn({{28, 8}, {27, 7}, {51, 44}, {53, 45}});
spokes4.addFacevn({{62, 50}, {74, 62}, {110, 51}, {98, 70}});
spokes4.addFacevn({{23, 3}, {22, 2}, {40, 40}, {45, 42}});
spokes4.addFacevn({{51, 44}, {50, 44}, {86, 67}, {87, 68}});
spokes4.addFacevn({{22, 2}, {21, 1}, {42, 41}, {40, 40}});
spokes4.addFacevn({{66, 58}, {68, 57}, {104, 51}, {102, 71}});
spokes4.addFacevn({{45, 42}, {44, 42}, {3, 37}, {4, 36}, {46, 64}, {47, 64}, {24, 4}, {23, 3}});
spokes4.addFacevn({{102, 71}, {104, 51}, {106, 67}, {140, 68}, {138, 51}, {136, 72}});
spokes4.addFacevn({{99, 69}, {98, 70}, {112, 69}, {113, 73}});
spokes4.addFacevn({{88, 51}, {90, 71}, {134, 72}, {132, 51}, {130, 68}, {86, 67}});
spokes4.addFacevn({{76, 51}, {80, 74}, {146, 56}, {142, 51}, {144, 52}, {78, 61}});
spokes4.addFacevn({{108, 51}, {84, 70}, {120, 69}, {122, 51}, {118, 65}, {82, 66}});
spokes4.addFacevn({{87, 68}, {86, 67}, {130, 68}, {131, 75}});
spokes4.addFacevn({{90, 71}, {91, 72}, {135, 76}, {134, 72}});
spokes4.addFacevn({{107, 68}, {105, 51}, {103, 72}, {137, 76}, {139, 54}, {141, 75}});
spokes4.addFacevn({{54, 46}, {55, 46}, {91, 72}, {90, 71}});
spokes4.addFacevn({{46, 64}, {72, 63}, {108, 51}, {82, 66}});
spokes4.addFacevn({{67, 58}, {66, 58}, {102, 71}, {103, 72}});
spokes4.addFacevn({{61, 49}, {59, 48}, {95, 51}, {97, 52}});
spokes4.addFacevn({{73, 63}, {47, 64}, {83, 65}, {109, 51}});
spokes4.addFacevn({{58, 48}, {60, 49}, {96, 61}, {94, 51}});
spokes4.addFacevn({{72, 63}, {48, 43}, {84, 70}, {108, 51}});
spokes4.addFacevn({{59, 48}, {57, 47}, {93, 56}, {95, 51}});
spokes4.addFacevn({{49, 43}, {73, 63}, {109, 51}, {85, 69}});
spokes4.addFacevn({{45, 42}, {40, 40}, {77, 51}, {81, 56}});
spokes4.addFacevn({{44, 42}, {45, 42}, {81, 56}, {80, 74}});
spokes4.addFacevn({{56, 47}, {58, 48}, {94, 51}, {92, 74}});
spokes4.addFacevn({{57, 47}, {56, 47}, {92, 74}, {93, 56}});
spokes4.addFacevn({{41, 40}, {44, 42}, {80, 74}, {76, 51}});
spokes4.addFacevn({{70, 59}, {71, 59}, {107, 68}, {106, 67}});
spokes4.addFacevn({{40, 40}, {42, 41}, {79, 52}, {77, 51}});
spokes4.addFacevn({{47, 64}, {46, 64}, {82, 66}, {83, 65}});
spokes4.addFacevn({{71, 59}, {69, 57}, {105, 51}, {107, 68}});
spokes4.addFacevn({{43, 41}, {41, 40}, {76, 51}, {78, 61}});
spokes4.addFacevn({{68, 57}, {70, 59}, {106, 67}, {104, 51}});
spokes4.addFacevn({{48, 43}, {49, 43}, {85, 69}, {84, 70}});
spokes4.addFacevn({{60, 49}, {61, 49}, {97, 52}, {96, 61}});
spokes4.addFacevn({{69, 57}, {67, 58}, {103, 72}, {105, 51}});
spokes4.addFacevn({{55, 46}, {53, 45}, {89, 51}, {91, 72}});
spokes4.addFacevn({{100, 66}, {101, 65}, {115, 77}, {114, 65}});
spokes4.addFacevn({{91, 72}, {89, 51}, {87, 68}, {131, 75}, {133, 54}, {135, 76}});
spokes4.addFacevn({{83, 65}, {82, 66}, {118, 65}, {119, 77}});
spokes4.addFacevn({{84, 70}, {85, 69}, {121, 73}, {120, 69}});
spokes4.addFacevn({{109, 51}, {83, 65}, {119, 77}, {123, 54}, {121, 73}, {85, 69}});
spokes4.addFacevn({{96, 61}, {97, 52}, {129, 53}, {128, 52}});
spokes4.addFacevn({{93, 56}, {92, 74}, {124, 56}, {125, 55}});
spokes4.addFacevn({{97, 52}, {95, 51}, {93, 56}, {125, 55}, {127, 54}, {129, 53}});
spokes4.addFacevn({{98, 70}, {110, 51}, {100, 66}, {114, 65}, {116, 51}, {112, 69}});
spokes4.addFacevn({{111, 51}, {99, 69}, {113, 73}, {117, 54}, {115, 77}, {101, 65}});
spokes4.addFacevn({{106, 67}, {107, 68}, {141, 75}, {140, 68}});
spokes4.addFacevn({{103, 72}, {102, 71}, {136, 72}, {137, 76}});
spokes4.addFacevn({{79, 52}, {78, 61}, {144, 52}, {145, 53}});
spokes4.addFacevn({{92, 74}, {94, 51}, {96, 61}, {128, 52}, {126, 51}, {124, 56}});
spokes4.addFacevn({{80, 74}, {81, 56}, {147, 55}, {146, 56}});
Drawable tyre4;
tyre4.setSmoothing(true);
tyre4.setMaterial(materials["tyres"]);
tyre4.addVertex(array3f(-0.162971, 0.046995, -0.249238));
tyre4.addVertex(array3f(-0.162971, 0.046995, -0.210784));
tyre4.addVertex(array3f(-0.165271, 0.032473, -0.249238));
tyre4.addVertex(array3f(-0.165271, 0.032473, -0.210784));
tyre4.addVertex(array3f(-0.171946, 0.019372, -0.249238));
tyre4.addVertex(array3f(-0.171946, 0.019372, -0.210784));
tyre4.addVertex(array3f(-0.182343, 0.008975, -0.249238));
tyre4.addVertex(array3f(-0.182343, 0.008975, -0.210784));
tyre4.addVertex(array3f(-0.195443, 0.0023, -0.249238));
tyre4.addVertex(array3f(-0.195443, 0.0023, -0.210784));
tyre4.addVertex(array3f(-0.209966, 0.0, -0.249238));
tyre4.addVertex(array3f(-0.209966, 0.0, -0.210784));
tyre4.addVertex(array3f(-0.224488, 0.0023, -0.249238));
tyre4.addVertex(array3f(-0.224488, 0.0023, -0.210784));
tyre4.addVertex(array3f(-0.237588, 0.008975, -0.249238));
tyre4.addVertex(array3f(-0.237588, 0.008975, -0.210784));
tyre4.addVertex(array3f(-0.247985, 0.019372, -0.249238));
tyre4.addVertex(array3f(-0.247985, 0.019372, -0.210784));
tyre4.addVertex(array3f(-0.25466, 0.032473, -0.249238));
tyre4.addVertex(array3f(-0.25466, 0.032473, -0.210784));
tyre4.addVertex(array3f(-0.25696, 0.046995, -0.249238));
tyre4.addVertex(array3f(-0.25696, 0.046995, -0.210784));
tyre4.addVertex(array3f(-0.25466, 0.061517, -0.249238));
tyre4.addVertex(array3f(-0.25466, 0.061517, -0.210784));
tyre4.addVertex(array3f(-0.247985, 0.074618, -0.249238));
tyre4.addVertex(array3f(-0.247985, 0.074618, -0.210784));
tyre4.addVertex(array3f(-0.237588, 0.085014, -0.249238));
tyre4.addVertex(array3f(-0.237588, 0.085014, -0.210784));
tyre4.addVertex(array3f(-0.224488, 0.091689, -0.249238));
tyre4.addVertex(array3f(-0.224488, 0.091689, -0.210784));
tyre4.addVertex(array3f(-0.209966, 0.09399, -0.249238));
tyre4.addVertex(array3f(-0.209966, 0.09399, -0.210784));
tyre4.addVertex(array3f(-0.195443, 0.091689, -0.249238));
tyre4.addVertex(array3f(-0.195443, 0.091689, -0.210784));
tyre4.addVertex(array3f(-0.182343, 0.085014, -0.249238));
tyre4.addVertex(array3f(-0.182343, 0.085014, -0.210784));
tyre4.addVertex(array3f(-0.171946, 0.074618, -0.249238));
tyre4.addVertex(array3f(-0.171946, 0.074618, -0.210784));
tyre4.addVertex(array3f(-0.165271, 0.061517, -0.249238));
tyre4.addVertex(array3f(-0.165271, 0.061517, -0.210784));
tyre4.addVertex(array3f(-0.171076, 0.046995, -0.249238));
tyre4.addVertex(array3f(-0.17298, 0.034977, -0.249238));
tyre4.addVertex(array3f(-0.178504, 0.024136, -0.249238));
tyre4.addVertex(array3f(-0.187107, 0.015533, -0.249238));
tyre4.addVertex(array3f(-0.197948, 0.010009, -0.249238));
tyre4.addVertex(array3f(-0.209966, 0.008106, -0.249238));
tyre4.addVertex(array3f(-0.221983, 0.010009, -0.249238));
tyre4.addVertex(array3f(-0.232824, 0.015533, -0.249238));
tyre4.addVertex(array3f(-0.241428, 0.024136, -0.249238));
tyre4.addVertex(array3f(-0.246952, 0.034977, -0.249238));
tyre4.addVertex(array3f(-0.248855, 0.046995, -0.249238));
tyre4.addVertex(array3f(-0.246951, 0.059012, -0.249238));
tyre4.addVertex(array3f(-0.241428, 0.069853, -0.249238));
tyre4.addVertex(array3f(-0.232824, 0.078457, -0.249238));
tyre4.addVertex(array3f(-0.221983, 0.083981, -0.249238));
tyre4.addVertex(array3f(-0.209966, 0.085884, -0.249238));
tyre4.addVertex(array3f(-0.197948, 0.083981, -0.249238));
tyre4.addVertex(array3f(-0.187107, 0.078457, -0.249238));
tyre4.addVertex(array3f(-0.178504, 0.069853, -0.249238));
tyre4.addVertex(array3f(-0.17298, 0.059012, -0.249238));
tyre4.addVertex(array3f(-0.171076, 0.046995, -0.210784));
tyre4.addVertex(array3f(-0.17298, 0.034977, -0.210784));
tyre4.addVertex(array3f(-0.178504, 0.024136, -0.210784));
tyre4.addVertex(array3f(-0.187107, 0.015533, -0.210784));
tyre4.addVertex(array3f(-0.197948, 0.010009, -0.210784));
tyre4.addVertex(array3f(-0.209966, 0.008106, -0.210784));
tyre4.addVertex(array3f(-0.221983, 0.010009, -0.210784));
tyre4.addVertex(array3f(-0.232824, 0.015533, -0.210784));
tyre4.addVertex(array3f(-0.241428, 0.024136, -0.210784));
tyre4.addVertex(array3f(-0.246952, 0.034977, -0.210784));
tyre4.addVertex(array3f(-0.248855, 0.046995, -0.210784));
tyre4.addVertex(array3f(-0.246952, 0.059012, -0.210784));
tyre4.addVertex(array3f(-0.241428, 0.069853, -0.210784));
tyre4.addVertex(array3f(-0.232824, 0.078457, -0.210784));
tyre4.addVertex(array3f(-0.221983, 0.083981, -0.210784));
tyre4.addVertex(array3f(-0.209966, 0.085884, -0.210784));
tyre4.addVertex(array3f(-0.197948, 0.083981, -0.210784));
tyre4.addVertex(array3f(-0.187107, 0.078457, -0.210784));
tyre4.addVertex(array3f(-0.178504, 0.069853, -0.210784));
tyre4.addVertex(array3f(-0.17298, 0.059012, -0.210784));
tyre4.addVertex(array3f(-0.172986, 0.034983, -0.210784));
tyre4.addVertex(array3f(-0.171083, 0.046999, -0.210784));
tyre4.addVertex(array3f(-0.178509, 0.024144, -0.210784));
tyre4.addVertex(array3f(-0.187111, 0.015541, -0.210784));
tyre4.addVertex(array3f(-0.197951, 0.010018, -0.210784));
tyre4.addVertex(array3f(-0.209967, 0.008115, -0.210784));
tyre4.addVertex(array3f(-0.221983, 0.010018, -0.210784));
tyre4.addVertex(array3f(-0.232823, 0.015541, -0.210784));
tyre4.addVertex(array3f(-0.241425, 0.024144, -0.210784));
tyre4.addVertex(array3f(-0.246948, 0.034983, -0.210784));
tyre4.addVertex(array3f(-0.248852, 0.046999, -0.210784));
tyre4.addVertex(array3f(-0.246948, 0.059015, -0.210784));
tyre4.addVertex(array3f(-0.241425, 0.069855, -0.210784));
tyre4.addVertex(array3f(-0.232823, 0.078458, -0.210784));
tyre4.addVertex(array3f(-0.221983, 0.083981, -0.210784));
tyre4.addVertex(array3f(-0.209967, 0.085884, -0.210784));
tyre4.addVertex(array3f(-0.197951, 0.083981, -0.210784));
tyre4.addVertex(array3f(-0.187111, 0.078457, -0.210784));
tyre4.addVertex(array3f(-0.178509, 0.069855, -0.210784));
tyre4.addVertex(array3f(-0.172986, 0.059015, -0.210784));
tyre4.addNormal(array3f(0.7391, 0.0, -0.6735));
tyre4.addNormal(array3f(0.7391, 0.0, 0.6735));
tyre4.addNormal(array3f(0.703, -0.2284, 0.6735));
tyre4.addNormal(array3f(0.703, -0.2284, -0.6735));
tyre4.addNormal(array3f(0.598, -0.4345, 0.6735));
tyre4.addNormal(array3f(0.598, -0.4345, -0.6735));
tyre4.addNormal(array3f(0.4345, -0.598, 0.6735));
tyre4.addNormal(array3f(0.4345, -0.598, -0.6735));
tyre4.addNormal(array3f(0.2284, -0.703, 0.6735));
tyre4.addNormal(array3f(0.2284, -0.703, -0.6735));
tyre4.addNormal(array3f(0.0, -0.7391, 0.6735));
tyre4.addNormal(array3f(0.0, -0.7391, -0.6735));
tyre4.addNormal(array3f(-0.2284, -0.703, 0.6735));
tyre4.addNormal(array3f(-0.2284, -0.703, -0.6735));
tyre4.addNormal(array3f(-0.4345, -0.598, 0.6735));
tyre4.addNormal(array3f(-0.4345, -0.598, -0.6735));
tyre4.addNormal(array3f(-0.598, -0.4345, 0.6735));
tyre4.addNormal(array3f(-0.598, -0.4345, -0.6735));
tyre4.addNormal(array3f(-0.703, -0.2284, 0.6735));
tyre4.addNormal(array3f(-0.703, -0.2284, -0.6735));
tyre4.addNormal(array3f(-0.7391, 0.0, 0.6735));
tyre4.addNormal(array3f(-0.7391, 0.0, -0.6735));
tyre4.addNormal(array3f(-0.703, 0.2284, 0.6735));
tyre4.addNormal(array3f(-0.703, 0.2284, -0.6735));
tyre4.addNormal(array3f(-0.598, 0.4345, 0.6735));
tyre4.addNormal(array3f(-0.598, 0.4345, -0.6735));
tyre4.addNormal(array3f(-0.4345, 0.598, 0.6735));
tyre4.addNormal(array3f(-0.4345, 0.598, -0.6735));
tyre4.addNormal(array3f(-0.2284, 0.703, 0.6735));
tyre4.addNormal(array3f(-0.2284, 0.703, -0.6735));
tyre4.addNormal(array3f(0.0, 0.7391, 0.6735));
tyre4.addNormal(array3f(0.0, 0.7391, -0.6735));
tyre4.addNormal(array3f(0.2284, 0.703, 0.6735));
tyre4.addNormal(array3f(0.2284, 0.703, -0.6735));
tyre4.addNormal(array3f(0.4345, 0.598, 0.6735));
tyre4.addNormal(array3f(0.4345, 0.598, -0.6735));
tyre4.addNormal(array3f(0.598, 0.4345, 0.6735));
tyre4.addNormal(array3f(0.598, 0.4345, -0.6735));
tyre4.addNormal(array3f(0.703, 0.2284, 0.6735));
tyre4.addNormal(array3f(0.703, 0.2284, -0.6735));
tyre4.addNormal(array3f(-0.6354, 0.2064, -0.744));
tyre4.addNormal(array3f(-0.6681, 0.0, -0.744));
tyre4.addNormal(array3f(-0.5405, 0.3927, -0.744));
tyre4.addNormal(array3f(-0.3927, 0.5405, -0.744));
tyre4.addNormal(array3f(-0.2064, 0.6354, -0.744));
tyre4.addNormal(array3f(0.0, 0.6681, -0.744));
tyre4.addNormal(array3f(0.2064, 0.6354, -0.744));
tyre4.addNormal(array3f(0.3927, 0.5405, -0.744));
tyre4.addNormal(array3f(0.5405, 0.3927, -0.7441));
tyre4.addNormal(array3f(0.6354, 0.2064, -0.744));
tyre4.addNormal(array3f(0.6681, 0.0, -0.744));
tyre4.addNormal(array3f(0.6354, -0.2064, -0.744));
tyre4.addNormal(array3f(0.5405, -0.3927, -0.744));
tyre4.addNormal(array3f(0.3927, -0.5405, -0.744));
tyre4.addNormal(array3f(0.2064, -0.6354, -0.744));
tyre4.addNormal(array3f(0.0, -0.6681, -0.744));
tyre4.addNormal(array3f(-0.2064, -0.6354, -0.744));
tyre4.addNormal(array3f(-0.3927, -0.5405, -0.744));
tyre4.addNormal(array3f(-0.5405, -0.3927, -0.744));
tyre4.addNormal(array3f(-0.6354, -0.2064, -0.744));
tyre4.addNormal(array3f(-0.951, 0.309, 0.0));
tyre4.addNormal(array3f(-1.0, 0.0, 0.0));
tyre4.addNormal(array3f(-0.809, 0.5878, 0.0));
tyre4.addNormal(array3f(-0.5878, 0.809, 0.0));
tyre4.addNormal(array3f(-0.309, 0.951, 0.0));
tyre4.addNormal(array3f(0.0, 1.0, 0.0));
tyre4.addNormal(array3f(0.309, 0.951, 0.0));
tyre4.addNormal(array3f(0.5878, 0.809, 0.0));
tyre4.addNormal(array3f(0.809, 0.5878, 0.0));
tyre4.addNormal(array3f(0.951, 0.309, 0.0));
tyre4.addNormal(array3f(1.0, 0.0, 0.0));
tyre4.addNormal(array3f(0.951, -0.309, 0.0));
tyre4.addNormal(array3f(0.809, -0.5878, 0.0));
tyre4.addNormal(array3f(0.5878, -0.809, 0.0));
tyre4.addNormal(array3f(0.309, -0.951, 0.0));
tyre4.addNormal(array3f(0.0, -1.0, 0.0));
tyre4.addNormal(array3f(-0.309, -0.951, 0.0));
tyre4.addNormal(array3f(-0.5878, -0.809, 0.0));
tyre4.addNormal(array3f(-0.809, -0.5878, 0.0));
tyre4.addNormal(array3f(-0.951, -0.309, 0.0));
tyre4.addNormal(array3f(0.0, 0.0, 1.0));
tyre4.addFacevn({{0, 0}, {1, 1}, {3, 2}, {2, 3}});
tyre4.addFacevn({{2, 3}, {3, 2}, {5, 4}, {4, 5}});
tyre4.addFacevn({{4, 5}, {5, 4}, {7, 6}, {6, 7}});
tyre4.addFacevn({{6, 7}, {7, 6}, {9, 8}, {8, 9}});
tyre4.addFacevn({{8, 9}, {9, 8}, {11, 10}, {10, 11}});
tyre4.addFacevn({{10, 11}, {11, 10}, {13, 12}, {12, 13}});
tyre4.addFacevn({{12, 13}, {13, 12}, {15, 14}, {14, 15}});
tyre4.addFacevn({{14, 15}, {15, 14}, {17, 16}, {16, 17}});
tyre4.addFacevn({{16, 17}, {17, 16}, {19, 18}, {18, 19}});
tyre4.addFacevn({{18, 19}, {19, 18}, {21, 20}, {20, 21}});
tyre4.addFacevn({{20, 21}, {21, 20}, {23, 22}, {22, 23}});
tyre4.addFacevn({{22, 23}, {23, 22}, {25, 24}, {24, 25}});
tyre4.addFacevn({{24, 25}, {25, 24}, {27, 26}, {26, 27}});
tyre4.addFacevn({{26, 27}, {27, 26}, {29, 28}, {28, 29}});
tyre4.addFacevn({{28, 29}, {29, 28}, {31, 30}, {30, 31}});
tyre4.addFacevn({{30, 31}, {31, 30}, {33, 32}, {32, 33}});
tyre4.addFacevn({{32, 33}, {33, 32}, {35, 34}, {34, 35}});
tyre4.addFacevn({{34, 35}, {35, 34}, {37, 36}, {36, 37}});
tyre4.addFacevn({{36, 37}, {37, 36}, {39, 38}, {38, 39}});
tyre4.addFacevn({{38, 39}, {39, 38}, {1, 1}, {0, 0}});
tyre4.addFacevn({{41, 40}, {40, 41}, {0, 0}, {2, 3}});
tyre4.addFacevn({{42, 42}, {41, 40}, {2, 3}, {4, 5}});
tyre4.addFacevn({{43, 43}, {42, 42}, {4, 5}, {6, 7}});
tyre4.addFacevn({{44, 44}, {43, 43}, {6, 7}, {8, 9}});
tyre4.addFacevn({{45, 45}, {44, 44}, {8, 9}, {10, 11}});
tyre4.addFacevn({{46, 46}, {45, 45}, {10, 11}, {12, 13}});
tyre4.addFacevn({{47, 47}, {46, 46}, {12, 13}, {14, 15}});
tyre4.addFacevn({{48, 48}, {47, 47}, {14, 15}, {16, 17}});
tyre4.addFacevn({{49, 49}, {48, 48}, {16, 17}, {18, 19}});
tyre4.addFacevn({{50, 50}, {49, 49}, {18, 19}, {20, 21}});
tyre4.addFacevn({{51, 51}, {50, 50}, {20, 21}, {22, 23}});
tyre4.addFacevn({{52, 52}, {51, 51}, {22, 23}, {24, 25}});
tyre4.addFacevn({{53, 53}, {52, 52}, {24, 25}, {26, 27}});
tyre4.addFacevn({{54, 54}, {53, 53}, {26, 27}, {28, 29}});
tyre4.addFacevn({{55, 55}, {54, 54}, {28, 29}, {30, 31}});
tyre4.addFacevn({{56, 56}, {55, 55}, {30, 31}, {32, 33}});
tyre4.addFacevn({{57, 57}, {56, 56}, {32, 33}, {34, 35}});
tyre4.addFacevn({{58, 58}, {57, 57}, {34, 35}, {36, 37}});
tyre4.addFacevn({{59, 59}, {58, 58}, {36, 37}, {38, 39}});
tyre4.addFacevn({{40, 41}, {59, 59}, {38, 39}, {0, 0}});
tyre4.addFacevn({{61, 60}, {60, 61}, {40, 41}, {41, 40}});
tyre4.addFacevn({{62, 62}, {61, 60}, {41, 40}, {42, 42}});
tyre4.addFacevn({{63, 63}, {62, 62}, {42, 42}, {43, 43}});
tyre4.addFacevn({{64, 64}, {63, 63}, {43, 43}, {44, 44}});
tyre4.addFacevn({{65, 65}, {64, 64}, {44, 44}, {45, 45}});
tyre4.addFacevn({{66, 66}, {65, 65}, {45, 45}, {46, 46}});
tyre4.addFacevn({{67, 67}, {66, 66}, {46, 46}, {47, 47}});
tyre4.addFacevn({{68, 68}, {67, 67}, {47, 47}, {48, 48}});
tyre4.addFacevn({{69, 69}, {68, 68}, {48, 48}, {49, 49}});
tyre4.addFacevn({{70, 70}, {69, 69}, {49, 49}, {50, 50}});
tyre4.addFacevn({{71, 71}, {70, 70}, {50, 50}, {51, 51}});
tyre4.addFacevn({{72, 72}, {71, 71}, {51, 51}, {52, 52}});
tyre4.addFacevn({{73, 73}, {72, 72}, {52, 52}, {53, 53}});
tyre4.addFacevn({{74, 74}, {73, 73}, {53, 53}, {54, 54}});
tyre4.addFacevn({{75, 75}, {74, 74}, {54, 54}, {55, 55}});
tyre4.addFacevn({{76, 76}, {75, 75}, {55, 55}, {56, 56}});
tyre4.addFacevn({{77, 77}, {76, 76}, {56, 56}, {57, 57}});
tyre4.addFacevn({{78, 78}, {77, 77}, {57, 57}, {58, 58}});
tyre4.addFacevn({{79, 79}, {78, 78}, {58, 58}, {59, 59}});
tyre4.addFacevn({{60, 61}, {79, 79}, {59, 59}, {40, 41}});
tyre4.addFacevn({{81, 80}, {80, 80}, {3, 2}, {1, 1}});
tyre4.addFacevn({{80, 80}, {82, 80}, {5, 4}, {3, 2}});
tyre4.addFacevn({{82, 80}, {83, 80}, {7, 6}, {5, 4}});
tyre4.addFacevn({{83, 80}, {84, 80}, {9, 8}, {7, 6}});
tyre4.addFacevn({{84, 80}, {85, 80}, {11, 10}, {9, 8}});
tyre4.addFacevn({{85, 80}, {86, 80}, {13, 12}, {11, 10}});
tyre4.addFacevn({{86, 80}, {87, 80}, {15, 14}, {13, 12}});
tyre4.addFacevn({{87, 80}, {88, 80}, {17, 16}, {15, 14}});
tyre4.addFacevn({{88, 80}, {89, 80}, {19, 18}, {17, 16}});
tyre4.addFacevn({{89, 80}, {90, 80}, {21, 20}, {19, 18}});
tyre4.addFacevn({{90, 80}, {91, 80}, {23, 22}, {21, 20}});
tyre4.addFacevn({{91, 80}, {92, 80}, {25, 24}, {23, 22}});
tyre4.addFacevn({{92, 80}, {93, 80}, {27, 26}, {25, 24}});
tyre4.addFacevn({{93, 80}, {94, 80}, {29, 28}, {27, 26}});
tyre4.addFacevn({{94, 80}, {95, 80}, {31, 30}, {29, 28}});
tyre4.addFacevn({{95, 80}, {96, 80}, {33, 32}, {31, 30}});
tyre4.addFacevn({{96, 80}, {97, 80}, {35, 34}, {33, 32}});
tyre4.addFacevn({{97, 80}, {98, 80}, {37, 36}, {35, 34}});
tyre4.addFacevn({{98, 80}, {99, 80}, {39, 38}, {37, 36}});
tyre4.addFacevn({{99, 80}, {81, 80}, {1, 1}, {39, 38}});
Drawable spokes5;
spokes5.setSmoothing(true);
spokes5.setMaterial(materials["metal"]);
spokes5.addVertex(array3f(0.019239, 0.046995, -0.210784));
spokes5.addVertex(array3f(0.018594, 0.042925, -0.210784));
spokes5.addVertex(array3f(0.016724, 0.039254, -0.210784));
spokes5.addVertex(array3f(0.01381, 0.03634, -0.210784));
spokes5.addVertex(array3f(0.010139, 0.034469, -0.210784));
spokes5.addVertex(array3f(0.006069, 0.033825, -0.210784));
spokes5.addVertex(array3f(0.001999, 0.034469, -0.210784));
spokes5.addVertex(array3f(-0.001672, 0.03634, -0.210784));
spokes5.addVertex(array3f(-0.004586, 0.039254, -0.210784));
spokes5.addVertex(array3f(-0.006457, 0.042925, -0.210784));
spokes5.addVertex(array3f(-0.007101, 0.046995, -0.210784));
spokes5.addVertex(array3f(-0.006457, 0.051065, -0.210784));
spokes5.addVertex(array3f(-0.004586, 0.054736, -0.210784));
spokes5.addVertex(array3f(-0.001672, 0.05765, -0.210784));
spokes5.addVertex(array3f(0.001999, 0.05952, -0.210784));
spokes5.addVertex(array3f(0.006069, 0.060165, -0.210784));
spokes5.addVertex(array3f(0.010139, 0.05952, -0.210784));
spokes5.addVertex(array3f(0.01381, 0.05765, -0.210784));
spokes5.addVertex(array3f(0.016724, 0.054736, -0.210784));
spokes5.addVertex(array3f(0.018594, 0.051065, -0.210784));
spokes5.addVertex(array3f(0.019239, 0.046995, -0.249238));
spokes5.addVertex(array3f(0.018594, 0.042925, -0.249238));
spokes5.addVertex(array3f(0.016724, 0.039254, -0.249238));
spokes5.addVertex(array3f(0.01381, 0.03634, -0.249238));
spokes5.addVertex(array3f(0.010139, 0.034469, -0.249238));
spokes5.addVertex(array3f(0.006069, 0.033825, -0.249238));
spokes5.addVertex(array3f(0.001999, 0.034469, -0.249238));
spokes5.addVertex(array3f(-0.001672, 0.03634, -0.249238));
spokes5.addVertex(array3f(-0.004586, 0.039254, -0.249238));
spokes5.addVertex(array3f(-0.006457, 0.042925, -0.249238));
spokes5.addVertex(array3f(-0.007101, 0.046995, -0.249238));
spokes5.addVertex(array3f(-0.006457, 0.051065, -0.249238));
spokes5.addVertex(array3f(-0.004586, 0.054736, -0.249238));
spokes5.addVertex(array3f(-0.001672, 0.05765, -0.249238));
spokes5.addVertex(array3f(0.001999, 0.05952, -0.249238));
spokes5.addVertex(array3f(0.006069, 0.060165, -0.249238));
spokes5.addVertex(array3f(0.010139, 0.05952, -0.249238));
spokes5.addVertex(array3f(0.01381, 0.05765, -0.249238));
spokes5.addVertex(array3f(0.016724, 0.054736, -0.249238));
spokes5.addVertex(array3f(0.018594, 0.051065, -0.249238));
spokes5.addVertex(array3f(0.016724, 0.039254, -0.23642));
spokes5.addVertex(array3f(0.016724, 0.039254, -0.223602));
spokes5.addVertex(array3f(0.018594, 0.042925, -0.23642));
spokes5.addVertex(array3f(0.018594, 0.042925, -0.223602));
spokes5.addVertex(array3f(0.01381, 0.03634, -0.223602));
spokes5.addVertex(array3f(0.01381, 0.03634, -0.23642));
spokes5.addVertex(array3f(0.010139, 0.034469, -0.223602));
spokes5.addVertex(array3f(0.010139, 0.034469, -0.23642));
spokes5.addVertex(array3f(0.001999, 0.034469, -0.223602));
spokes5.addVertex(array3f(0.001999, 0.034469, -0.23642));
spokes5.addVertex(array3f(-0.001672, 0.03634, -0.223602));
spokes5.addVertex(array3f(-0.001672, 0.03634, -0.23642));
spokes5.addVertex(array3f(-0.004586, 0.039254, -0.223602));
spokes5.addVertex(array3f(-0.004586, 0.039254, -0.23642));
spokes5.addVertex(array3f(-0.006457, 0.042925, -0.223602));
spokes5.addVertex(array3f(-0.006457, 0.042925, -0.23642));
spokes5.addVertex(array3f(-0.006457, 0.051065, -0.223602));
spokes5.addVertex(array3f(-0.006457, 0.051065, -0.23642));
spokes5.addVertex(array3f(-0.004586, 0.054736, -0.223602));
spokes5.addVertex(array3f(-0.004586, 0.054736, -0.23642));
spokes5.addVertex(array3f(-0.001672, 0.05765, -0.223602));
spokes5.addVertex(array3f(-0.001672, 0.05765, -0.23642));
spokes5.addVertex(array3f(0.001999, 0.05952, -0.223602));
spokes5.addVertex(array3f(0.001999, 0.05952, -0.23642));
spokes5.addVertex(array3f(0.010139, 0.05952, -0.223602));
spokes5.addVertex(array3f(0.010139, 0.05952, -0.23642));
spokes5.addVertex(array3f(0.01381, 0.05765, -0.223602));
spokes5.addVertex(array3f(0.01381, 0.05765, -0.23642));
spokes5.addVertex(array3f(0.016724, 0.054736, -0.223602));
spokes5.addVertex(array3f(0.016724, 0.054736, -0.23642));
spokes5.addVertex(array3f(0.018594, 0.051065, -0.223602));
spokes5.addVertex(array3f(0.018594, 0.051065, -0.23642));
spokes5.addVertex(array3f(0.006069, 0.033825, -0.223602));
spokes5.addVertex(array3f(0.006069, 0.033825, -0.23642));
spokes5.addVertex(array3f(0.006069, 0.060165, -0.223602));
spokes5.addVertex(array3f(0.006069, 0.060165, -0.23642));
spokes5.addVertex(array3f(0.016724, 0.039254, -0.223602));
spokes5.addVertex(array3f(0.016724, 0.039254, -0.23642));
spokes5.addVertex(array3f(0.018594, 0.042925, -0.223602));
spokes5.addVertex(array3f(0.018594, 0.042925, -0.23642));
spokes5.addVertex(array3f(0.01381, 0.03634, -0.223602));
spokes5.addVertex(array3f(0.01381, 0.03634, -0.23642));
spokes5.addVertex(array3f(0.010139, 0.034469, -0.223602));
spokes5.addVertex(array3f(0.010139, 0.034469, -0.23642));
spokes5.addVertex(array3f(0.001999, 0.034469, -0.223602));
spokes5.addVertex(array3f(0.001999, 0.034469, -0.23642));
spokes5.addVertex(array3f(-0.001672, 0.03634, -0.223602));
spokes5.addVertex(array3f(-0.001672, 0.03634, -0.23642));
spokes5.addVertex(array3f(-0.004586, 0.039254, -0.223602));
spokes5.addVertex(array3f(-0.004586, 0.039254, -0.23642));
spokes5.addVertex(array3f(-0.006457, 0.042925, -0.223602));
spokes5.addVertex(array3f(-0.006457, 0.042925, -0.23642));
spokes5.addVertex(array3f(-0.006457, 0.051065, -0.223602));
spokes5.addVertex(array3f(-0.006457, 0.051065, -0.23642));
spokes5.addVertex(array3f(-0.004586, 0.054736, -0.223602));
spokes5.addVertex(array3f(-0.004586, 0.054736, -0.23642));
spokes5.addVertex(array3f(-0.001672, 0.05765, -0.223602));
spokes5.addVertex(array3f(-0.001672, 0.05765, -0.23642));
spokes5.addVertex(array3f(0.001999, 0.05952, -0.223602));
spokes5.addVertex(array3f(0.001999, 0.05952, -0.23642));
spokes5.addVertex(array3f(0.010139, 0.05952, -0.223602));
spokes5.addVertex(array3f(0.010139, 0.05952, -0.23642));
spokes5.addVertex(array3f(0.01381, 0.05765, -0.223602));
spokes5.addVertex(array3f(0.01381, 0.05765, -0.23642));
spokes5.addVertex(array3f(0.016724, 0.054736, -0.223602));
spokes5.addVertex(array3f(0.016724, 0.054736, -0.23642));
spokes5.addVertex(array3f(0.018594, 0.051065, -0.223602));
spokes5.addVertex(array3f(0.018594, 0.051065, -0.23642));
spokes5.addVertex(array3f(0.006069, 0.033825, -0.223602));
spokes5.addVertex(array3f(0.006069, 0.033825, -0.23642));
spokes5.addVertex(array3f(0.006069, 0.060165, -0.223602));
spokes5.addVertex(array3f(0.006069, 0.060165, -0.23642));
spokes5.addVertex(array3f(0.001999, 0.085239, -0.223602));
spokes5.addVertex(array3f(0.001999, 0.085239, -0.23642));
spokes5.addVertex(array3f(0.010139, 0.085239, -0.223602));
spokes5.addVertex(array3f(0.010139, 0.085239, -0.23642));
spokes5.addVertex(array3f(0.006069, 0.085884, -0.223602));
spokes5.addVertex(array3f(0.006069, 0.085884, -0.23642));
spokes5.addVertex(array3f(0.010139, 0.00875, -0.223602));
spokes5.addVertex(array3f(0.010139, 0.00875, -0.23642));
spokes5.addVertex(array3f(0.001999, 0.00875, -0.223602));
spokes5.addVertex(array3f(0.001999, 0.00875, -0.23642));
spokes5.addVertex(array3f(0.006069, 0.008106, -0.223602));
spokes5.addVertex(array3f(0.006069, 0.008106, -0.23642));
spokes5.addVertex(array3f(-0.027264, 0.066182, -0.223602));
spokes5.addVertex(array3f(-0.027264, 0.066182, -0.23642));
spokes5.addVertex(array3f(-0.025393, 0.069853, -0.223602));
spokes5.addVertex(array3f(-0.025393, 0.069853, -0.23642));
spokes5.addVertex(array3f(-0.02248, 0.072767, -0.223602));
spokes5.addVertex(array3f(-0.02248, 0.072767, -0.23642));
spokes5.addVertex(array3f(-0.02248, 0.021223, -0.223602));
spokes5.addVertex(array3f(-0.02248, 0.021223, -0.23642));
spokes5.addVertex(array3f(-0.025393, 0.024136, -0.223602));
spokes5.addVertex(array3f(-0.025393, 0.024136, -0.23642));
spokes5.addVertex(array3f(-0.027264, 0.027808, -0.223602));
spokes5.addVertex(array3f(-0.027264, 0.027808, -0.23642));
spokes5.addVertex(array3f(0.034617, 0.072767, -0.223602));
spokes5.addVertex(array3f(0.034617, 0.072767, -0.23642));
spokes5.addVertex(array3f(0.037531, 0.069853, -0.223602));
spokes5.addVertex(array3f(0.037531, 0.069853, -0.23642));
spokes5.addVertex(array3f(0.039402, 0.066182, -0.223602));
spokes5.addVertex(array3f(0.039402, 0.066182, -0.23642));
spokes5.addVertex(array3f(0.037531, 0.024136, -0.223602));
spokes5.addVertex(array3f(0.037531, 0.024136, -0.23642));
spokes5.addVertex(array3f(0.039402, 0.027808, -0.223602));
spokes5.addVertex(array3f(0.039402, 0.027808, -0.23642));
spokes5.addVertex(array3f(0.034617, 0.021223, -0.223602));
spokes5.addVertex(array3f(0.034617, 0.021223, -0.23642));
spokes5.addNormal(array3f(0.7391, 0.0, -0.6735));
spokes5.addNormal(array3f(0.703, -0.2284, -0.6735));
spokes5.addNormal(array3f(0.598, -0.4345, -0.6735));
spokes5.addNormal(array3f(0.4345, -0.598, -0.6735));
spokes5.addNormal(array3f(0.2284, -0.703, -0.6735));
spokes5.addNormal(array3f(0.0, -0.7391, -0.6735));
spokes5.addNormal(array3f(-0.2284, -0.703, -0.6735));
spokes5.addNormal(array3f(-0.4345, -0.598, -0.6735));
spokes5.addNormal(array3f(-0.598, -0.4345, -0.6735));
spokes5.addNormal(array3f(-0.703, -0.2284, -0.6735));
spokes5.addNormal(array3f(-0.7391, 0.0, -0.6735));
spokes5.addNormal(array3f(-0.703, 0.2284, -0.6735));
spokes5.addNormal(array3f(-0.598, 0.4345, -0.6735));
spokes5.addNormal(array3f(-0.4345, 0.598, -0.6735));
spokes5.addNormal(array3f(-0.2284, 0.703, -0.6735));
spokes5.addNormal(array3f(0.0, 0.7391, -0.6735));
spokes5.addNormal(array3f(0.2284, 0.703, -0.6735));
spokes5.addNormal(array3f(0.4345, 0.598, -0.6735));
spokes5.addNormal(array3f(0.598, 0.4345, -0.6735));
spokes5.addNormal(array3f(0.703, 0.2284, -0.6735));
spokes5.addNormal(array3f(0.7391, 0.0, 0.6735));
spokes5.addNormal(array3f(0.703, 0.2284, 0.6735));
spokes5.addNormal(array3f(0.598, 0.4345, 0.6735));
spokes5.addNormal(array3f(0.4345, 0.598, 0.6735));
spokes5.addNormal(array3f(0.2284, 0.703, 0.6735));
spokes5.addNormal(array3f(0.0, 0.7391, 0.6735));
spokes5.addNormal(array3f(-0.2284, 0.703, 0.6735));
spokes5.addNormal(array3f(-0.4345, 0.598, 0.6735));
spokes5.addNormal(array3f(-0.598, 0.4345, 0.6735));
spokes5.addNormal(array3f(-0.703, 0.2284, 0.6735));
spokes5.addNormal(array3f(-0.7391, 0.0, 0.6735));
spokes5.addNormal(array3f(-0.703, -0.2284, 0.6735));
spokes5.addNormal(array3f(-0.598, -0.4345, 0.6735));
spokes5.addNormal(array3f(-0.4345, -0.598, 0.6735));
spokes5.addNormal(array3f(-0.2284, -0.703, 0.6735));
spokes5.addNormal(array3f(0.0, -0.7391, 0.6735));
spokes5.addNormal(array3f(0.2284, -0.703, 0.6735));
spokes5.addNormal(array3f(0.4345, -0.598, 0.6735));
spokes5.addNormal(array3f(0.598, -0.4345, 0.6735));
spokes5.addNormal(array3f(0.703, -0.2284, 0.6735));
spokes5.addNormal(array3f(0.5685, -0.413, 0.7114));
spokes5.addNormal(array3f(0.801, -0.2143, 0.5589));
spokes5.addNormal(array3f(0.4513, -0.6956, 0.5589));
spokes5.addNormal(array3f(-0.2975, -0.774, 0.5589));
spokes5.addNormal(array3f(-0.4513, -0.6956, 0.5589));
spokes5.addNormal(array3f(-0.5685, -0.413, 0.7114));
spokes5.addNormal(array3f(-0.801, -0.2143, 0.5589));
spokes5.addNormal(array3f(-0.801, 0.2143, 0.5589));
spokes5.addNormal(array3f(-0.5685, 0.413, 0.7114));
spokes5.addNormal(array3f(-0.4513, 0.6956, 0.5589));
spokes5.addNormal(array3f(-0.2974, 0.774, 0.5589));
spokes5.addNormal(array3f(0.0, 0.0, 1.0));
spokes5.addNormal(array3f(0.3954, 0.5442, 0.7399));
spokes5.addNormal(array3f(0.3954, 0.5442, -0.7399));
spokes5.addNormal(array3f(0.0, 0.0, -1.0));
spokes5.addNormal(array3f(-0.3954, -0.5442, -0.7399));
spokes5.addNormal(array3f(-0.3954, -0.5442, 0.7399));
spokes5.addNormal(array3f(0.5685, 0.413, 0.7114));
spokes5.addNormal(array3f(0.4513, 0.6956, 0.5589));
spokes5.addNormal(array3f(0.801, 0.2143, 0.5589));
spokes5.addNormal(array3f(0.2975, 0.774, 0.5589));
spokes5.addNormal(array3f(0.1916, 0.2637, 0.9454));
spokes5.addNormal(array3f(0.0, 0.7027, 0.7114));
spokes5.addNormal(array3f(0.0, -0.7027, 0.7114));
spokes5.addNormal(array3f(0.2975, -0.774, 0.5589));
spokes5.addNormal(array3f(0.6727, 0.0, 0.7399));
spokes5.addNormal(array3f(0.326, 0.0, 0.9454));
spokes5.addNormal(array3f(0.1916, -0.2637, 0.9454));
spokes5.addNormal(array3f(0.3954, -0.5442, 0.7399));
spokes5.addNormal(array3f(-0.6727, 0.0, 0.7399));
spokes5.addNormal(array3f(-0.326, 0.0, 0.9454));
spokes5.addNormal(array3f(-0.1916, 0.2637, 0.9454));
spokes5.addNormal(array3f(-0.3954, 0.5442, 0.7399));
spokes5.addNormal(array3f(-0.6727, 0.0, -0.7399));
spokes5.addNormal(array3f(-0.1916, -0.2637, 0.9454));
spokes5.addNormal(array3f(0.3954, -0.5442, -0.7399));
spokes5.addNormal(array3f(-0.3954, 0.5442, -0.7399));
spokes5.addNormal(array3f(0.6727, 0.0, -0.7399));
spokes5.addFacevn({{20, 0}, {21, 1}, {22, 2}, {23, 3}, {24, 4}, {25, 5}, {26, 6}, {27, 7}, {28, 8}, {29, 9}, {30, 10}, {31, 11}, {32, 12}, {33, 13}, {34, 14}, {35, 15}, {36, 16}, {37, 17}, {38, 18}, {39, 19}});
spokes5.addFacevn({{0, 20}, {19, 21}, {18, 22}, {17, 23}, {16, 24}, {15, 25}, {14, 26}, {13, 27}, {12, 28}, {11, 29}, {10, 30}, {9, 31}, {8, 32}, {7, 33}, {6, 34}, {5, 35}, {4, 36}, {3, 37}, {2, 38}, {1, 39}});
spokes5.addFacevn({{41, 40}, {43, 41}, {1, 39}, {2, 38}});
spokes5.addFacevn({{44, 42}, {41, 40}, {2, 38}, {3, 37}});
spokes5.addFacevn({{49, 43}, {48, 43}, {6, 34}, {7, 33}, {50, 44}, {51, 44}, {27, 7}, {26, 6}});
spokes5.addFacevn({{52, 45}, {50, 44}, {7, 33}, {8, 32}});
spokes5.addFacevn({{54, 46}, {52, 45}, {8, 32}, {9, 31}});
spokes5.addFacevn({{30, 10}, {10, 30}, {11, 29}, {56, 47}, {57, 47}, {31, 11}});
spokes5.addFacevn({{58, 48}, {56, 47}, {11, 29}, {12, 28}});
spokes5.addFacevn({{60, 49}, {58, 48}, {12, 28}, {13, 27}});
spokes5.addFacevn({{61, 49}, {60, 49}, {13, 27}, {14, 26}, {62, 50}, {63, 50}, {34, 14}, {33, 13}});
spokes5.addFacevn({{77, 51}, {79, 52}, {145, 53}, {143, 54}, {147, 55}, {81, 56}});
spokes5.addFacevn({{68, 57}, {66, 58}, {17, 23}, {18, 22}});
spokes5.addFacevn({{70, 59}, {68, 57}, {18, 22}, {19, 21}});
spokes5.addFacevn({{65, 60}, {64, 60}, {16, 24}, {17, 23}, {66, 58}, {67, 58}, {37, 17}, {36, 16}});
spokes5.addFacevn({{42, 41}, {43, 41}, {78, 61}, {79, 52}});
spokes5.addFacevn({{15, 25}, {74, 62}, {62, 50}, {14, 26}});
spokes5.addFacevn({{49, 43}, {26, 6}, {25, 5}, {73, 63}});
spokes5.addFacevn({{73, 63}, {25, 5}, {24, 4}, {47, 64}});
spokes5.addFacevn({{65, 60}, {36, 16}, {35, 15}, {75, 62}});
spokes5.addFacevn({{75, 62}, {35, 15}, {34, 14}, {63, 50}});
spokes5.addFacevn({{16, 24}, {64, 60}, {74, 62}, {15, 25}});
spokes5.addFacevn({{65, 60}, {75, 62}, {111, 51}, {101, 65}});
spokes5.addFacevn({{5, 35}, {72, 63}, {46, 64}, {4, 36}});
spokes5.addFacevn({{64, 60}, {65, 60}, {101, 65}, {100, 66}});
spokes5.addFacevn({{6, 34}, {48, 43}, {72, 63}, {5, 35}});
spokes5.addFacevn({{50, 44}, {52, 45}, {88, 51}, {86, 67}});
spokes5.addFacevn({{71, 59}, {70, 59}, {19, 21}, {0, 20}, {20, 0}, {39, 19}});
spokes5.addFacevn({{39, 19}, {38, 18}, {69, 57}, {71, 59}});
spokes5.addFacevn({{74, 62}, {64, 60}, {100, 66}, {110, 51}});
spokes5.addFacevn({{38, 18}, {37, 17}, {67, 58}, {69, 57}});
spokes5.addFacevn({{53, 45}, {51, 44}, {87, 68}, {89, 51}});
spokes5.addFacevn({{0, 20}, {1, 39}, {43, 41}, {42, 41}, {21, 1}, {20, 0}});
spokes5.addFacevn({{33, 13}, {32, 12}, {59, 48}, {61, 49}});
spokes5.addFacevn({{75, 62}, {63, 50}, {99, 69}, {111, 51}});
spokes5.addFacevn({{32, 12}, {31, 11}, {57, 47}, {59, 48}});
spokes5.addFacevn({{63, 50}, {62, 50}, {98, 70}, {99, 69}});
spokes5.addFacevn({{55, 46}, {54, 46}, {9, 31}, {10, 30}, {30, 10}, {29, 9}});
spokes5.addFacevn({{29, 9}, {28, 8}, {53, 45}, {55, 46}});
spokes5.addFacevn({{52, 45}, {54, 46}, {90, 71}, {88, 51}});
spokes5.addFacevn({{28, 8}, {27, 7}, {51, 44}, {53, 45}});
spokes5.addFacevn({{62, 50}, {74, 62}, {110, 51}, {98, 70}});
spokes5.addFacevn({{23, 3}, {22, 2}, {40, 40}, {45, 42}});
spokes5.addFacevn({{51, 44}, {50, 44}, {86, 67}, {87, 68}});
spokes5.addFacevn({{22, 2}, {21, 1}, {42, 41}, {40, 40}});
spokes5.addFacevn({{66, 58}, {68, 57}, {104, 51}, {102, 71}});
spokes5.addFacevn({{45, 42}, {44, 42}, {3, 37}, {4, 36}, {46, 64}, {47, 64}, {24, 4}, {23, 3}});
spokes5.addFacevn({{102, 71}, {104, 51}, {106, 67}, {140, 68}, {138, 51}, {136, 72}});
spokes5.addFacevn({{99, 69}, {98, 70}, {112, 69}, {113, 73}});
spokes5.addFacevn({{88, 51}, {90, 71}, {134, 72}, {132, 51}, {130, 68}, {86, 67}});
spokes5.addFacevn({{76, 51}, {80, 74}, {146, 56}, {142, 51}, {144, 52}, {78, 61}});
spokes5.addFacevn({{108, 51}, {84, 70}, {120, 69}, {122, 51}, {118, 65}, {82, 66}});
spokes5.addFacevn({{87, 68}, {86, 67}, {130, 68}, {131, 75}});
spokes5.addFacevn({{90, 71}, {91, 72}, {135, 76}, {134, 72}});
spokes5.addFacevn({{107, 68}, {105, 51}, {103, 72}, {137, 76}, {139, 54}, {141, 75}});
spokes5.addFacevn({{54, 46}, {55, 46}, {91, 72}, {90, 71}});
spokes5.addFacevn({{46, 64}, {72, 63}, {108, 51}, {82, 66}});
spokes5.addFacevn({{67, 58}, {66, 58}, {102, 71}, {103, 72}});
spokes5.addFacevn({{61, 49}, {59, 48}, {95, 51}, {97, 52}});
spokes5.addFacevn({{73, 63}, {47, 64}, {83, 65}, {109, 51}});
spokes5.addFacevn({{58, 48}, {60, 49}, {96, 61}, {94, 51}});
spokes5.addFacevn({{72, 63}, {48, 43}, {84, 70}, {108, 51}});
spokes5.addFacevn({{59, 48}, {57, 47}, {93, 56}, {95, 51}});
spokes5.addFacevn({{49, 43}, {73, 63}, {109, 51}, {85, 69}});
spokes5.addFacevn({{45, 42}, {40, 40}, {77, 51}, {81, 56}});
spokes5.addFacevn({{44, 42}, {45, 42}, {81, 56}, {80, 74}});
spokes5.addFacevn({{56, 47}, {58, 48}, {94, 51}, {92, 74}});
spokes5.addFacevn({{57, 47}, {56, 47}, {92, 74}, {93, 56}});
spokes5.addFacevn({{41, 40}, {44, 42}, {80, 74}, {76, 51}});
spokes5.addFacevn({{70, 59}, {71, 59}, {107, 68}, {106, 67}});
spokes5.addFacevn({{40, 40}, {42, 41}, {79, 52}, {77, 51}});
spokes5.addFacevn({{47, 64}, {46, 64}, {82, 66}, {83, 65}});
spokes5.addFacevn({{71, 59}, {69, 57}, {105, 51}, {107, 68}});
spokes5.addFacevn({{43, 41}, {41, 40}, {76, 51}, {78, 61}});
spokes5.addFacevn({{68, 57}, {70, 59}, {106, 67}, {104, 51}});
spokes5.addFacevn({{48, 43}, {49, 43}, {85, 69}, {84, 70}});
spokes5.addFacevn({{60, 49}, {61, 49}, {97, 52}, {96, 61}});
spokes5.addFacevn({{69, 57}, {67, 58}, {103, 72}, {105, 51}});
spokes5.addFacevn({{55, 46}, {53, 45}, {89, 51}, {91, 72}});
spokes5.addFacevn({{100, 66}, {101, 65}, {115, 77}, {114, 65}});
spokes5.addFacevn({{91, 72}, {89, 51}, {87, 68}, {131, 75}, {133, 54}, {135, 76}});
spokes5.addFacevn({{83, 65}, {82, 66}, {118, 65}, {119, 77}});
spokes5.addFacevn({{84, 70}, {85, 69}, {121, 73}, {120, 69}});
spokes5.addFacevn({{109, 51}, {83, 65}, {119, 77}, {123, 54}, {121, 73}, {85, 69}});
spokes5.addFacevn({{96, 61}, {97, 52}, {129, 53}, {128, 52}});
spokes5.addFacevn({{93, 56}, {92, 74}, {124, 56}, {125, 55}});
spokes5.addFacevn({{97, 52}, {95, 51}, {93, 56}, {125, 55}, {127, 54}, {129, 53}});
spokes5.addFacevn({{98, 70}, {110, 51}, {100, 66}, {114, 65}, {116, 51}, {112, 69}});
spokes5.addFacevn({{111, 51}, {99, 69}, {113, 73}, {117, 54}, {115, 77}, {101, 65}});
spokes5.addFacevn({{106, 67}, {107, 68}, {141, 75}, {140, 68}});
spokes5.addFacevn({{103, 72}, {102, 71}, {136, 72}, {137, 76}});
spokes5.addFacevn({{79, 52}, {78, 61}, {144, 52}, {145, 53}});
spokes5.addFacevn({{92, 74}, {94, 51}, {96, 61}, {128, 52}, {126, 51}, {124, 56}});
spokes5.addFacevn({{80, 74}, {81, 56}, {147, 55}, {146, 56}});
Drawable tyre5;
tyre5.setSmoothing(true);
tyre5.setMaterial(materials["tyres"]);
tyre5.addVertex(array3f(0.053064, 0.046995, -0.249238));
tyre5.addVertex(array3f(0.053064, 0.046995, -0.210784));
tyre5.addVertex(array3f(0.050763, 0.032473, -0.249238));
tyre5.addVertex(array3f(0.050763, 0.032473, -0.210784));
tyre5.addVertex(array3f(0.044088, 0.019372, -0.249238));
tyre5.addVertex(array3f(0.044088, 0.019372, -0.210784));
tyre5.addVertex(array3f(0.033692, 0.008975, -0.249238));
tyre5.addVertex(array3f(0.033692, 0.008975, -0.210784));
tyre5.addVertex(array3f(0.020591, 0.0023, -0.249238));
tyre5.addVertex(array3f(0.020591, 0.0023, -0.210784));
tyre5.addVertex(array3f(0.006069, 0.0, -0.249238));
tyre5.addVertex(array3f(0.006069, 0.0, -0.210784));
tyre5.addVertex(array3f(-0.008453, 0.0023, -0.249238));
tyre5.addVertex(array3f(-0.008453, 0.0023, -0.210784));
tyre5.addVertex(array3f(-0.021554, 0.008975, -0.249238));
tyre5.addVertex(array3f(-0.021554, 0.008975, -0.210784));
tyre5.addVertex(array3f(-0.031951, 0.019372, -0.249238));
tyre5.addVertex(array3f(-0.031951, 0.019372, -0.210784));
tyre5.addVertex(array3f(-0.038626, 0.032473, -0.249238));
tyre5.addVertex(array3f(-0.038626, 0.032473, -0.210784));
tyre5.addVertex(array3f(-0.040926, 0.046995, -0.249238));
tyre5.addVertex(array3f(-0.040926, 0.046995, -0.210784));
tyre5.addVertex(array3f(-0.038626, 0.061517, -0.249238));
tyre5.addVertex(array3f(-0.038626, 0.061517, -0.210784));
tyre5.addVertex(array3f(-0.031951, 0.074618, -0.249238));
tyre5.addVertex(array3f(-0.031951, 0.074618, -0.210784));
tyre5.addVertex(array3f(-0.021554, 0.085014, -0.249238));
tyre5.addVertex(array3f(-0.021554, 0.085014, -0.210784));
tyre5.addVertex(array3f(-0.008453, 0.091689, -0.249238));
tyre5.addVertex(array3f(-0.008453, 0.091689, -0.210784));
tyre5.addVertex(array3f(0.006069, 0.09399, -0.249238));
tyre5.addVertex(array3f(0.006069, 0.09399, -0.210784));
tyre5.addVertex(array3f(0.020591, 0.091689, -0.249238));
tyre5.addVertex(array3f(0.020591, 0.091689, -0.210784));
tyre5.addVertex(array3f(0.033692, 0.085014, -0.249238));
tyre5.addVertex(array3f(0.033692, 0.085014, -0.210784));
tyre5.addVertex(array3f(0.044088, 0.074618, -0.249238));
tyre5.addVertex(array3f(0.044088, 0.074618, -0.210784));
tyre5.addVertex(array3f(0.050764, 0.061517, -0.249238));
tyre5.addVertex(array3f(0.050763, 0.061517, -0.210784));
tyre5.addVertex(array3f(0.044958, 0.046995, -0.249238));
tyre5.addVertex(array3f(0.043055, 0.034977, -0.249238));
tyre5.addVertex(array3f(0.037531, 0.024136, -0.249238));
tyre5.addVertex(array3f(0.028927, 0.015533, -0.249238));
tyre5.addVertex(array3f(0.018086, 0.010009, -0.249238));
tyre5.addVertex(array3f(0.006069, 0.008106, -0.249238));
tyre5.addVertex(array3f(-0.005949, 0.010009, -0.249238));
tyre5.addVertex(array3f(-0.01679, 0.015533, -0.249238));
tyre5.addVertex(array3f(-0.025393, 0.024136, -0.249238));
tyre5.addVertex(array3f(-0.030917, 0.034977, -0.249238));
tyre5.addVertex(array3f(-0.03282, 0.046995, -0.249238));
tyre5.addVertex(array3f(-0.030917, 0.059012, -0.249238));
tyre5.addVertex(array3f(-0.025393, 0.069853, -0.249238));
tyre5.addVertex(array3f(-0.01679, 0.078457, -0.249238));
tyre5.addVertex(array3f(-0.005949, 0.083981, -0.249238));
tyre5.addVertex(array3f(0.006069, 0.085884, -0.249238));
tyre5.addVertex(array3f(0.018086, 0.083981, -0.249238));
tyre5.addVertex(array3f(0.028927, 0.078457, -0.249238));
tyre5.addVertex(array3f(0.037531, 0.069853, -0.249238));
tyre5.addVertex(array3f(0.043055, 0.059012, -0.249238));
tyre5.addVertex(array3f(0.044958, 0.046995, -0.210784));