1
0

add reactive buttons on emulator

This commit is contained in:
Rokas Puzonas 2023-11-11 03:00:28 +02:00
parent cdfd81fc91
commit 06308d0433
27 changed files with 4596 additions and 4203 deletions

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_0_Cube.016
v 0.014723 -0.269111 0.000030
v 0.007211 -0.275835 -0.008838
v 0.002723 -0.281111 0.000030
v 0.007552 -0.271081 -0.002568
v 0.005498 -0.272263 -0.001463
v 0.004037 -0.274596 -0.002568
v 0.006237 -0.272626 0.000030
v 0.116830 -0.281111 0.000030
v 0.112341 -0.275835 -0.008838
v 0.104830 -0.269111 0.000030
v 0.115515 -0.274596 -0.002568
v 0.114055 -0.272263 -0.001463
v 0.112000 -0.271081 -0.002568
v 0.113315 -0.272626 0.000030
v 0.002723 -0.371066 0.000030
v 0.007211 -0.376341 -0.008838
v 0.014723 -0.383066 0.000030
v 0.004037 -0.377581 -0.002568
v 0.005498 -0.379914 -0.001463
v 0.007552 -0.381096 -0.002568
v 0.006237 -0.379551 0.000030
v 0.014600 -0.286904 -0.023436
v 0.031089 -0.293628 -0.032304
v 0.019089 -0.305628 -0.032304
v 0.021289 -0.291659 -0.029706
v 0.020353 -0.294516 -0.030811
v 0.022604 -0.297143 -0.032304
v 0.017774 -0.295174 -0.029706
v 0.104952 -0.286904 -0.023436
v 0.100463 -0.305628 -0.032304
v 0.088463 -0.293628 -0.032304
v 0.101778 -0.295174 -0.029706
v 0.099199 -0.294516 -0.030811
v 0.096948 -0.297143 -0.032304
v 0.098263 -0.291659 -0.029706
v 0.019089 -0.346549 -0.032304
v 0.031089 -0.358549 -0.032304
v 0.014600 -0.365273 -0.023436
v 0.022604 -0.355034 -0.032304
v 0.020353 -0.357661 -0.030811
v 0.021289 -0.360518 -0.029706
v 0.017774 -0.357003 -0.029706
v 0.088463 -0.358549 -0.032304
v 0.100463 -0.346549 -0.032304
v 0.104952 -0.365273 -0.023436
v 0.096948 -0.355034 -0.032304
v 0.099199 -0.357661 -0.030811
v 0.101778 -0.357003 -0.029706
v 0.098263 -0.360518 -0.029706
v 0.104830 -0.383066 0.000030
v 0.112341 -0.376341 -0.008838
v 0.116830 -0.371066 0.000030
v 0.112000 -0.381096 -0.002568
v 0.114055 -0.379914 -0.001463
v 0.115515 -0.377581 -0.002568
v 0.113315 -0.379551 0.000030
vt 0.591904 0.816945
vt 0.555231 0.800598
vt 0.526703 0.761118
vt 0.643451 0.928957
vt 0.678984 0.944967
vt 0.704529 0.989611
vt 0.574040 0.832837
vt 0.649644 0.821714
vt 0.665667 0.838593
vt 0.569586 0.915507
vt 0.550921 0.948324
vt 0.503893 0.965391
vt 0.723150 0.773338
vt 0.724885 0.770022
vt 0.728132 0.785700
vt 0.716415 0.766608
vt 0.711249 0.778567
vt 0.719982 0.768323
vt 0.717199 0.767477
vt 0.715947 0.984706
vt 0.720462 0.986947
vt 0.722729 0.978016
vt 0.709558 0.972754
vt 0.721734 0.981983
vt 0.724760 0.980377
vt 0.515548 0.765478
vt 0.510871 0.763467
vt 0.508765 0.772184
vt 0.522735 0.775993
vt 0.509913 0.767783
vt 0.506980 0.769082
vt 0.671365 0.823745
vt 0.665551 0.817971
vt 0.683459 0.806279
vt 0.661349 0.827349
vt 0.659893 0.933152
vt 0.666007 0.927468
vt 0.655711 0.923696
vt 0.661320 0.912606
vt 0.579660 0.820909
vt 0.575160 0.811380
vt 0.569043 0.817047
vt 0.573893 0.927590
vt 0.563607 0.931466
vt 0.569418 0.937224
vt 0.585615 0.931927
vt 0.509203 0.978098
vt 0.507387 0.981307
vt 0.515936 0.984843
vt 0.521731 0.973881
vt 0.512564 0.983486
vt 0.515501 0.984655
vt 0.704423 0.761660
vt 0.527601 0.989430
vt 0.503100 0.785061
vt 0.725342 0.765908
vt 0.723791 0.987087
vt 0.507519 0.763293
vt 0.666189 0.823560
vt 0.660093 0.927626
vt 0.575284 0.816132
vt 0.569040 0.932227
vt 0.506922 0.985456
vt 0.728132 0.965668
vn -0.8922 0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3354
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3354
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3354
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4119 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3354
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7758
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1390 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7759
vn 0.3079 -0.8780 0.3665
vn 0.6174 -0.6173 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_1_Cube.006
v 0.133830 0.087751 0.000030
v 0.126318 0.081027 -0.008838
v 0.121830 0.075751 0.000030
v 0.126659 0.085782 -0.002568
v 0.124605 0.084600 -0.001463
v 0.123144 0.082267 -0.002568
v 0.125344 0.084236 0.000030
v 0.235937 0.075751 0.000030
v 0.231448 0.081027 -0.008838
v 0.223937 0.087751 0.000030
v 0.234622 0.082267 -0.002568
v 0.233162 0.084600 -0.001463
v 0.231107 0.085782 -0.002568
v 0.232422 0.084236 0.000030
v 0.223937 -0.026203 0.000030
v 0.231448 -0.019479 -0.008838
v 0.235937 -0.014203 0.000030
v 0.231107 -0.024234 -0.002568
v 0.233162 -0.023052 -0.001463
v 0.234622 -0.020719 -0.002568
v 0.232422 -0.022688 0.000030
v 0.121830 -0.014203 0.000030
v 0.126318 -0.019479 -0.008838
v 0.133830 -0.026203 0.000030
v 0.123144 -0.020719 -0.002568
v 0.124605 -0.023052 -0.001463
v 0.126659 -0.024234 -0.002568
v 0.125344 -0.022688 0.000030
v 0.150196 0.063234 -0.032304
v 0.138196 0.051234 -0.032304
v 0.133707 0.069958 -0.023436
v 0.141711 0.059719 -0.032304
v 0.139460 0.062346 -0.030811
v 0.136881 0.061689 -0.029706
v 0.140396 0.065204 -0.029706
v 0.224059 0.069958 -0.023436
v 0.219570 0.051234 -0.032304
v 0.207570 0.063234 -0.032304
v 0.220885 0.061689 -0.029706
v 0.218306 0.062346 -0.030811
v 0.216055 0.059719 -0.032304
v 0.217370 0.065204 -0.029706
v 0.224059 -0.008410 -0.023436
v 0.207570 -0.001686 -0.032304
v 0.219570 0.010314 -0.032304
v 0.217370 -0.003655 -0.029706
v 0.218306 -0.000798 -0.030811
v 0.216055 0.001829 -0.032304
v 0.220885 -0.000141 -0.029706
v 0.133707 -0.008410 -0.023436
v 0.138196 0.010314 -0.032304
v 0.150196 -0.001686 -0.032304
v 0.136881 -0.000141 -0.029706
v 0.139460 -0.000798 -0.030811
v 0.141711 0.001829 -0.032304
v 0.140396 -0.003655 -0.029706
vt 0.098915 0.316576
vt 0.062798 0.300159
vt 0.033464 0.260802
vt 0.080446 0.415670
vt 0.062441 0.448528
vt 0.015261 0.465383
vt 0.082514 0.332524
vt 0.153368 0.321493
vt 0.170382 0.338459
vt 0.158603 0.429100
vt 0.193097 0.445356
vt 0.213914 0.490611
vt 0.231805 0.274565
vt 0.233691 0.271293
vt 0.237215 0.287029
vt 0.224942 0.267786
vt 0.218598 0.279501
vt 0.228191 0.269475
vt 0.225010 0.268559
vt 0.225646 0.485709
vt 0.229893 0.487995
vt 0.232289 0.479053
vt 0.220542 0.473593
vt 0.231669 0.482979
vt 0.234867 0.481364
vt 0.020934 0.478147
vt 0.019174 0.481356
vt 0.027773 0.484940
vt 0.033513 0.473990
vt 0.024469 0.483570
vt 0.027474 0.484761
vt 0.022204 0.265028
vt 0.017461 0.262996
vt 0.015538 0.271699
vt 0.029631 0.275508
vt 0.016580 0.267268
vt 0.013692 0.268536
vt 0.164875 0.327174
vt 0.174969 0.323694
vt 0.168917 0.317880
vt 0.187953 0.306521
vt 0.175271 0.433335
vt 0.181128 0.427660
vt 0.170989 0.423804
vt 0.175379 0.412679
vt 0.074858 0.431687
vt 0.080903 0.437482
vt 0.085269 0.427819
vt 0.097834 0.432162
vt 0.082917 0.310996
vt 0.077053 0.316652
vt 0.087588 0.320535
vt 0.213234 0.262818
vt 0.010162 0.284608
vt 0.039242 0.489593
vt 0.234127 0.267191
vt 0.233186 0.488150
vt 0.018805 0.485513
vt 0.014092 0.262799
vt 0.169048 0.323384
vt 0.176009 0.427743
vt 0.080403 0.432484
vt 0.083251 0.315725
vt 0.237215 0.466805
vn -0.8922 -0.0000 -0.4516
vn -0.0000 -0.7968 -0.6042
vn -0.0000 0.0000 -1.0000
vn 0.8922 -0.0000 -0.4516
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn -0.4331 0.4331 -0.7904
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn 0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn -0.4331 -0.4331 -0.7904
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn 0.3080 -0.8780 0.3665
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn -0.4461 0.4461 -0.7759
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn 0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn -0.4461 -0.4461 -0.7759
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
usemtl Button
s off
f 51/1/1 50/2/1 22/3/1
f 44/4/2 43/5/2 15/6/2
f 52/7/3 30/8/3 29/9/3
f 37/10/4 36/11/4 8/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/12/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/6/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/3/14
f 27/34/15 25/32/15 23/35/15
f 28/33/16 27/36/16 24/37/16
f 32/38/17 35/39/17 29/9/17
f 34/40/18 32/38/18 30/8/18
f 35/39/19 34/40/19 31/41/19
f 39/42/20 42/43/20 36/11/20
f 41/44/21 39/42/21 37/10/21
f 42/43/22 41/44/22 38/45/22
f 46/46/23 49/47/23 43/5/23
f 48/48/24 46/46/24 44/4/24
f 49/47/25 48/48/25 45/49/25
f 53/50/26 56/51/26 50/2/26
f 55/52/27 53/50/27 51/1/27
f 56/51/28 55/52/28 52/7/28
f 29/9/29 31/41/29 1/15/29
f 2/17/1 31/41/1 3/53/1
f 31/41/1 34/40/1 30/8/1
f 3/53/1 31/41/1 30/8/1
f 30/8/1 51/1/1 3/53/1
f 51/1/1 53/50/1 50/2/1
f 50/2/1 23/35/1 22/3/1
f 23/35/1 25/32/1 22/3/1
f 22/3/1 3/53/1 51/1/1
f 3/53/1 6/16/1 2/17/1
f 23/35/2 50/2/2 24/54/2
f 50/2/2 56/51/2 52/7/2
f 24/54/2 50/2/2 52/7/2
f 52/7/2 44/4/2 24/54/2
f 44/4/2 46/46/2 43/5/2
f 43/5/2 16/29/2 15/6/2
f 16/29/2 18/26/2 15/6/2
f 15/6/2 24/54/2 44/4/2
f 24/54/2 27/34/2 23/35/2
f 44/4/3 52/7/3 29/9/3
f 52/7/3 55/52/3 51/1/3
f 30/8/3 52/7/3 51/1/3
f 30/8/3 32/38/3 29/9/3
f 29/9/3 38/45/3 44/4/3
f 38/45/3 41/44/3 37/10/3
f 44/4/3 38/45/3 45/49/3
f 37/10/3 45/49/3 38/45/3
f 45/49/3 48/48/3 44/4/3
f 16/29/4 43/5/4 17/55/4
f 43/5/4 49/47/4 45/49/4
f 17/55/4 43/5/4 45/49/4
f 45/49/4 37/10/4 17/55/4
f 37/10/4 39/42/4 36/11/4
f 36/11/4 9/23/4 8/12/4
f 9/23/4 11/20/4 8/12/4
f 8/12/4 17/55/4 37/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/34/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/36/41
f 32/38/42 33/60/42 35/39/42
f 34/40/43 33/60/43 32/38/43
f 35/39/44 33/60/44 34/40/44
f 39/42/45 40/61/45 42/43/45
f 41/44/46 40/61/46 39/42/46
f 42/43/47 40/61/47 41/44/47
f 46/46/48 47/62/48 49/47/48
f 48/48/49 47/62/49 46/46/49
f 49/47/50 47/62/50 48/48/50
f 53/50/51 54/63/51 56/51/51
f 55/52/52 54/63/52 53/50/52
f 56/51/53 54/63/53 55/52/53
f 9/23/29 36/11/29 10/64/29
f 36/11/29 42/43/29 38/45/29
f 10/64/29 36/11/29 38/45/29
f 38/45/29 29/9/29 10/64/29
f 29/9/29 35/39/29 31/41/29
f 31/41/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 29/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_2_Cube.002
v 0.014723 0.087751 0.000030
v 0.007211 0.081027 -0.008838
v 0.002723 0.075751 0.000030
v 0.007552 0.085782 -0.002568
v 0.005498 0.084600 -0.001463
v 0.004037 0.082267 -0.002568
v 0.006237 0.084236 0.000030
v 0.116830 0.075751 0.000030
v 0.112341 0.081027 -0.008838
v 0.104830 0.087751 0.000030
v 0.115515 0.082267 -0.002568
v 0.114055 0.084600 -0.001463
v 0.112000 0.085782 -0.002568
v 0.113315 0.084236 0.000030
v 0.002723 -0.014203 0.000030
v 0.007211 -0.019479 -0.008838
v 0.014723 -0.026203 0.000030
v 0.004037 -0.020719 -0.002568
v 0.005498 -0.023052 -0.001463
v 0.007552 -0.024234 -0.002568
v 0.006237 -0.022688 0.000030
v 0.014600 0.069958 -0.023436
v 0.031089 0.063234 -0.032304
v 0.019089 0.051234 -0.032304
v 0.021289 0.065204 -0.029706
v 0.020353 0.062346 -0.030811
v 0.022604 0.059719 -0.032304
v 0.017774 0.061689 -0.029706
v 0.104952 0.069958 -0.023436
v 0.100463 0.051234 -0.032304
v 0.088463 0.063234 -0.032304
v 0.101778 0.061689 -0.029706
v 0.099199 0.062346 -0.030811
v 0.096948 0.059719 -0.032304
v 0.098263 0.065204 -0.029706
v 0.019089 0.010314 -0.032304
v 0.031089 -0.001686 -0.032304
v 0.014600 -0.008410 -0.023436
v 0.022604 0.001829 -0.032304
v 0.020353 -0.000798 -0.030811
v 0.021289 -0.003655 -0.029706
v 0.017774 -0.000141 -0.029706
v 0.088463 -0.001686 -0.032304
v 0.100463 0.010314 -0.032304
v 0.104952 -0.008410 -0.023436
v 0.096948 0.001829 -0.032304
v 0.099199 -0.000798 -0.030811
v 0.101778 -0.000141 -0.029706
v 0.098263 -0.003655 -0.029706
v 0.104830 -0.026203 0.000030
v 0.112341 -0.019479 -0.008838
v 0.116830 -0.014203 0.000030
v 0.112000 -0.024234 -0.002568
v 0.114055 -0.023052 -0.001463
v 0.115515 -0.020719 -0.002568
v 0.113315 -0.022688 0.000030
vt 0.840008 0.316432
vt 0.803335 0.300086
vt 0.774807 0.260606
vt 0.891554 0.428445
vt 0.927088 0.444455
vt 0.952633 0.489099
vt 0.822144 0.332325
vt 0.897748 0.321202
vt 0.913771 0.338081
vt 0.817689 0.414995
vt 0.799025 0.447811
vt 0.751997 0.464878
vt 0.971254 0.272826
vt 0.972989 0.269510
vt 0.976235 0.285188
vt 0.964519 0.266096
vt 0.959353 0.278055
vt 0.968086 0.267811
vt 0.965303 0.266965
vt 0.964051 0.484194
vt 0.968565 0.486435
vt 0.970832 0.477504
vt 0.957662 0.472242
vt 0.969838 0.481471
vt 0.972863 0.479864
vt 0.763652 0.264966
vt 0.758974 0.262954
vt 0.756869 0.271672
vt 0.770839 0.275481
vt 0.758017 0.267271
vt 0.755084 0.268570
vt 0.919469 0.323233
vt 0.913655 0.317459
vt 0.931562 0.305767
vt 0.909453 0.326837
vt 0.907997 0.432640
vt 0.914111 0.426956
vt 0.903815 0.423184
vt 0.909424 0.412094
vt 0.827764 0.320396
vt 0.823264 0.310867
vt 0.817147 0.316535
vt 0.821997 0.427078
vt 0.811711 0.430954
vt 0.817522 0.436712
vt 0.833718 0.431415
vt 0.757307 0.477586
vt 0.755491 0.480795
vt 0.764040 0.484331
vt 0.769835 0.473368
vt 0.760668 0.482973
vt 0.763605 0.484142
vt 0.952527 0.261148
vt 0.775705 0.488918
vt 0.751204 0.284549
vt 0.973446 0.265396
vt 0.971895 0.486575
vt 0.755623 0.262781
vt 0.914293 0.323048
vt 0.908197 0.427114
vt 0.823388 0.315620
vt 0.817144 0.431715
vt 0.755026 0.484943
vt 0.976235 0.465156
vn -0.8922 0.0000 -0.4516
vn 0.8922 0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7759
vn 0.3080 -0.8780 0.3665
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_3_Cube.004
v -0.104385 0.087751 0.000030
v -0.111896 0.081027 -0.008838
v -0.116385 0.075751 0.000030
v -0.111555 0.085782 -0.002568
v -0.113609 0.084600 -0.001463
v -0.115070 0.082267 -0.002568
v -0.112870 0.084236 0.000030
v -0.002277 0.075751 0.000030
v -0.006766 0.081027 -0.008838
v -0.014277 0.087751 0.000030
v -0.003592 0.082267 -0.002568
v -0.005052 0.084600 -0.001463
v -0.007107 0.085782 -0.002568
v -0.005792 0.084236 0.000030
v -0.116385 -0.014203 0.000030
v -0.111896 -0.019479 -0.008838
v -0.104385 -0.026203 0.000030
v -0.115070 -0.020719 -0.002568
v -0.113609 -0.023052 -0.001463
v -0.111555 -0.024234 -0.002568
v -0.112870 -0.022688 0.000030
v -0.104507 0.069958 -0.023436
v -0.088018 0.063234 -0.032304
v -0.100018 0.051234 -0.032304
v -0.097818 0.065204 -0.029706
v -0.098754 0.062346 -0.030811
v -0.096503 0.059719 -0.032304
v -0.101333 0.061689 -0.029706
v -0.014155 0.069958 -0.023436
v -0.018644 0.051234 -0.032304
v -0.030644 0.063234 -0.032304
v -0.017329 0.061689 -0.029706
v -0.019908 0.062346 -0.030811
v -0.022159 0.059719 -0.032304
v -0.020844 0.065204 -0.029706
v -0.100018 0.010314 -0.032304
v -0.088018 -0.001686 -0.032304
v -0.104507 -0.008410 -0.023436
v -0.096503 0.001829 -0.032304
v -0.098754 -0.000798 -0.030811
v -0.097818 -0.003655 -0.029706
v -0.101333 -0.000141 -0.029706
v -0.030644 -0.001686 -0.032304
v -0.018644 0.010314 -0.032304
v -0.014155 -0.008410 -0.023436
v -0.022159 0.001829 -0.032304
v -0.019908 -0.000798 -0.030811
v -0.017329 -0.000141 -0.029706
v -0.020844 -0.003655 -0.029706
v -0.014277 -0.026203 0.000030
v -0.006766 -0.019479 -0.008838
v -0.002277 -0.014203 0.000030
v -0.007107 -0.024234 -0.002568
v -0.005052 -0.023052 -0.001463
v -0.003592 -0.020719 -0.002568
v -0.005792 -0.022688 0.000030
vt 0.403868 0.184243
vt 0.439068 0.200964
vt 0.462160 0.241425
vt 0.345894 0.066788
vt 0.309901 0.049776
vt 0.280980 0.010140
vt 0.420789 0.169256
vt 0.343533 0.179552
vt 0.326442 0.161487
vt 0.417100 0.091021
vt 0.435270 0.058495
vt 0.485393 0.039478
vt 0.269489 0.228429
vt 0.267819 0.231796
vt 0.263941 0.215946
vt 0.276337 0.235301
vt 0.281517 0.223197
vt 0.272901 0.233572
vt 0.275776 0.234489
vt 0.269626 0.014164
vt 0.264894 0.012065
vt 0.262969 0.020742
vt 0.276942 0.024710
vt 0.263955 0.016298
vt 0.261042 0.017507
vt 0.473601 0.237000
vt 0.477952 0.239070
vt 0.480234 0.230417
vt 0.467886 0.226223
vt 0.479462 0.234655
vt 0.482565 0.233329
vt 0.320937 0.177354
vt 0.326942 0.183379
vt 0.309090 0.195190
vt 0.331114 0.173712
vt 0.329943 0.060898
vt 0.324055 0.066349
vt 0.334509 0.070394
vt 0.329321 0.081693
vt 0.416237 0.180403
vt 0.420680 0.189894
vt 0.426556 0.184426
vt 0.411792 0.078948
vt 0.422009 0.075612
vt 0.415992 0.069569
vt 0.400357 0.072873
vt 0.479876 0.027118
vt 0.481799 0.023871
vt 0.473004 0.020241
vt 0.466451 0.031890
vt 0.476216 0.021988
vt 0.472996 0.021007
vt 0.288000 0.240354
vt 0.461333 0.015070
vt 0.485393 0.217817
vt 0.267485 0.235995
vt 0.261516 0.011811
vt 0.481242 0.239255
vt 0.326236 0.177687
vt 0.330222 0.065577
vt 0.421162 0.185067
vt 0.416031 0.075129
vt 0.482252 0.019773
vt 0.257746 0.033747
vn -0.8922 -0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4119 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4119 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7758
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7758
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7759
vn 0.3080 -0.8780 0.3665
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_4_Cube.007
v 0.133830 -0.031203 0.000030
v 0.126318 -0.037927 -0.008838
v 0.121830 -0.043203 0.000030
v 0.126659 -0.033172 -0.002568
v 0.124605 -0.034354 -0.001463
v 0.123144 -0.036687 -0.002568
v 0.125344 -0.034718 0.000030
v 0.235937 -0.043203 0.000030
v 0.231448 -0.037927 -0.008838
v 0.223937 -0.031203 0.000030
v 0.234622 -0.036687 -0.002568
v 0.233162 -0.034354 -0.001463
v 0.231107 -0.033172 -0.002568
v 0.232422 -0.034718 0.000030
v 0.121830 -0.133157 0.000030
v 0.126318 -0.138433 -0.008838
v 0.133830 -0.145157 0.000030
v 0.123144 -0.139673 -0.002568
v 0.124605 -0.142006 -0.001463
v 0.126659 -0.143188 -0.002568
v 0.125344 -0.141642 0.000030
v 0.133707 -0.048996 -0.023436
v 0.150196 -0.055720 -0.032304
v 0.138196 -0.067720 -0.032304
v 0.140396 -0.053751 -0.029706
v 0.139460 -0.056608 -0.030811
v 0.141711 -0.059235 -0.032304
v 0.136881 -0.057265 -0.029706
v 0.224059 -0.048996 -0.023436
v 0.219570 -0.067720 -0.032304
v 0.207570 -0.055720 -0.032304
v 0.220885 -0.057265 -0.029706
v 0.218306 -0.056608 -0.030811
v 0.216055 -0.059235 -0.032304
v 0.217370 -0.053751 -0.029706
v 0.138196 -0.108640 -0.032304
v 0.150196 -0.120640 -0.032304
v 0.133707 -0.127364 -0.023436
v 0.141711 -0.117125 -0.032304
v 0.139460 -0.119752 -0.030811
v 0.140396 -0.122610 -0.029706
v 0.136881 -0.119095 -0.029706
v 0.207570 -0.120640 -0.032304
v 0.219570 -0.108640 -0.032304
v 0.224059 -0.127364 -0.023436
v 0.216055 -0.117125 -0.032304
v 0.218306 -0.119752 -0.030811
v 0.220885 -0.119095 -0.029706
v 0.217370 -0.122610 -0.029706
v 0.223937 -0.145157 0.000030
v 0.231448 -0.138433 -0.008838
v 0.235937 -0.133157 0.000030
v 0.231107 -0.143188 -0.002568
v 0.233162 -0.142006 -0.001463
v 0.234622 -0.139673 -0.002568
v 0.232422 -0.141642 0.000030
vt 0.346353 0.316576
vt 0.310236 0.300159
vt 0.280902 0.260802
vt 0.406041 0.429100
vt 0.440535 0.445356
vt 0.461351 0.490611
vt 0.329952 0.332524
vt 0.400806 0.321493
vt 0.417820 0.338459
vt 0.327884 0.415670
vt 0.309878 0.448528
vt 0.262699 0.465383
vt 0.479243 0.274565
vt 0.481129 0.271293
vt 0.484653 0.287029
vt 0.472380 0.267786
vt 0.466036 0.279501
vt 0.475628 0.269475
vt 0.472448 0.268559
vt 0.473084 0.485709
vt 0.477331 0.487995
vt 0.479727 0.479052
vt 0.467980 0.473593
vt 0.479107 0.482979
vt 0.482305 0.481364
vt 0.269642 0.265028
vt 0.264899 0.262996
vt 0.262976 0.271699
vt 0.277069 0.275508
vt 0.264018 0.267268
vt 0.261130 0.268536
vt 0.422406 0.323694
vt 0.416355 0.317880
vt 0.435391 0.306521
vt 0.412313 0.327174
vt 0.422708 0.433335
vt 0.428566 0.427660
vt 0.418427 0.423804
vt 0.422817 0.412679
vt 0.335026 0.320535
vt 0.330355 0.310996
vt 0.324491 0.316652
vt 0.332707 0.427819
vt 0.322296 0.431687
vt 0.328341 0.437482
vt 0.345272 0.432162
vt 0.268372 0.478147
vt 0.266612 0.481356
vt 0.275211 0.484941
vt 0.280951 0.473990
vt 0.271906 0.483570
vt 0.274912 0.484761
vt 0.460671 0.262818
vt 0.286680 0.489593
vt 0.257600 0.284608
vt 0.481564 0.267191
vt 0.480623 0.488150
vt 0.261530 0.262799
vt 0.416486 0.323384
vt 0.423447 0.427743
vt 0.330689 0.315725
vt 0.327841 0.432484
vt 0.266243 0.485514
vt 0.484653 0.466805
vn -0.8922 -0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn 0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4119 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4119 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn -0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7759
vn 0.3079 -0.8780 0.3665
vn 0.6174 -0.6173 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_5_Cube.008
v 0.014723 -0.031203 0.000030
v 0.007211 -0.037927 -0.008838
v 0.002723 -0.043203 0.000030
v 0.007552 -0.033172 -0.002568
v 0.005498 -0.034354 -0.001463
v 0.004037 -0.036687 -0.002568
v 0.006237 -0.034718 0.000030
v 0.116830 -0.043203 0.000030
v 0.112341 -0.037927 -0.008838
v 0.104830 -0.031203 0.000030
v 0.115515 -0.036687 -0.002568
v 0.114055 -0.034354 -0.001463
v 0.112000 -0.033172 -0.002568
v 0.113315 -0.034718 0.000030
v 0.002723 -0.133157 0.000030
v 0.007211 -0.138433 -0.008838
v 0.014723 -0.145157 0.000030
v 0.004037 -0.139673 -0.002568
v 0.005498 -0.142006 -0.001463
v 0.007552 -0.143188 -0.002568
v 0.006237 -0.141642 0.000030
v 0.014600 -0.048996 -0.023436
v 0.031089 -0.055720 -0.032304
v 0.019089 -0.067720 -0.032304
v 0.021289 -0.053751 -0.029706
v 0.020353 -0.056608 -0.030811
v 0.022604 -0.059235 -0.032304
v 0.017774 -0.057265 -0.029706
v 0.104952 -0.048996 -0.023436
v 0.100463 -0.067720 -0.032304
v 0.088463 -0.055720 -0.032304
v 0.101778 -0.057265 -0.029706
v 0.099199 -0.056608 -0.030811
v 0.096948 -0.059235 -0.032304
v 0.098263 -0.053751 -0.029706
v 0.019089 -0.108640 -0.032304
v 0.031089 -0.120640 -0.032304
v 0.014600 -0.127364 -0.023436
v 0.022604 -0.117125 -0.032304
v 0.020353 -0.119752 -0.030811
v 0.021289 -0.122610 -0.029706
v 0.017774 -0.119095 -0.029706
v 0.088463 -0.120640 -0.032304
v 0.100463 -0.108640 -0.032304
v 0.104952 -0.127364 -0.023436
v 0.096948 -0.117125 -0.032304
v 0.099199 -0.119752 -0.030811
v 0.101778 -0.119095 -0.029706
v 0.098263 -0.122610 -0.029706
v 0.104830 -0.145157 0.000030
v 0.112341 -0.138433 -0.008838
v 0.116830 -0.133157 0.000030
v 0.112000 -0.143188 -0.002568
v 0.114055 -0.142006 -0.001463
v 0.115515 -0.139673 -0.002568
v 0.113315 -0.141642 0.000030
vt 0.345830 0.817827
vt 0.309157 0.801481
vt 0.280629 0.762000
vt 0.397377 0.929840
vt 0.432910 0.945849
vt 0.458455 0.990493
vt 0.327966 0.833719
vt 0.403570 0.822597
vt 0.419593 0.839476
vt 0.323512 0.916390
vt 0.304847 0.949206
vt 0.257819 0.966273
vt 0.477076 0.774221
vt 0.478811 0.770905
vt 0.482058 0.786582
vt 0.470341 0.767491
vt 0.465175 0.779449
vt 0.473908 0.769205
vt 0.471125 0.768359
vt 0.469873 0.985589
vt 0.474388 0.987830
vt 0.476655 0.978898
vt 0.463485 0.973637
vt 0.475660 0.982865
vt 0.478686 0.981259
vt 0.269474 0.766361
vt 0.264797 0.764349
vt 0.262691 0.773066
vt 0.276661 0.776875
vt 0.263839 0.768666
vt 0.260906 0.769965
vt 0.425291 0.824627
vt 0.419477 0.818853
vt 0.437385 0.807161
vt 0.415275 0.828231
vt 0.413819 0.934035
vt 0.419933 0.928351
vt 0.409637 0.924578
vt 0.415246 0.913489
vt 0.333586 0.821791
vt 0.329086 0.812262
vt 0.322969 0.817929
vt 0.327819 0.928473
vt 0.317533 0.932349
vt 0.323344 0.938106
vt 0.339541 0.932810
vt 0.263130 0.978980
vt 0.261313 0.982190
vt 0.269863 0.985725
vt 0.275657 0.974763
vt 0.266490 0.984368
vt 0.269428 0.985537
vt 0.458350 0.762543
vt 0.281527 0.990312
vt 0.257026 0.785943
vt 0.479268 0.766790
vt 0.477717 0.987970
vt 0.261445 0.764176
vt 0.420115 0.824443
vt 0.414019 0.928509
vt 0.329210 0.817015
vt 0.322966 0.933109
vt 0.260848 0.986338
vt 0.482058 0.966550
vn -0.8922 0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn 0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4119 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4119 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7759
vn 0.3080 -0.8780 0.3665
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_6_Cube.009
v -0.104385 -0.031203 0.000030
v -0.111896 -0.037927 -0.008838
v -0.116385 -0.043203 0.000030
v -0.111555 -0.033172 -0.002568
v -0.113609 -0.034354 -0.001463
v -0.115070 -0.036687 -0.002568
v -0.112870 -0.034718 0.000030
v -0.002277 -0.043203 0.000030
v -0.006766 -0.037927 -0.008838
v -0.014277 -0.031203 0.000030
v -0.003592 -0.036687 -0.002568
v -0.005052 -0.034354 -0.001463
v -0.007107 -0.033172 -0.002568
v -0.005792 -0.034718 0.000030
v -0.116385 -0.133157 0.000030
v -0.111896 -0.138433 -0.008838
v -0.104385 -0.145157 0.000030
v -0.115070 -0.139673 -0.002568
v -0.113609 -0.142006 -0.001463
v -0.111555 -0.143188 -0.002568
v -0.112870 -0.141642 0.000030
v -0.104507 -0.048996 -0.023436
v -0.088018 -0.055720 -0.032304
v -0.100018 -0.067720 -0.032304
v -0.097818 -0.053751 -0.029706
v -0.098754 -0.056608 -0.030811
v -0.096503 -0.059235 -0.032304
v -0.101333 -0.057265 -0.029706
v -0.014155 -0.048996 -0.023436
v -0.018644 -0.067720 -0.032304
v -0.030644 -0.055720 -0.032304
v -0.017329 -0.057265 -0.029706
v -0.019908 -0.056608 -0.030811
v -0.022159 -0.059235 -0.032304
v -0.020844 -0.053751 -0.029706
v -0.100018 -0.108640 -0.032304
v -0.088018 -0.120640 -0.032304
v -0.104507 -0.127364 -0.023436
v -0.096503 -0.117125 -0.032304
v -0.098754 -0.119752 -0.030811
v -0.097818 -0.122610 -0.029706
v -0.101333 -0.119095 -0.029706
v -0.030644 -0.120640 -0.032304
v -0.018644 -0.108640 -0.032304
v -0.014155 -0.127364 -0.023436
v -0.022159 -0.117125 -0.032304
v -0.019908 -0.119752 -0.030811
v -0.017329 -0.119095 -0.029706
v -0.020844 -0.122610 -0.029706
v -0.014277 -0.145157 0.000030
v -0.006766 -0.138433 -0.008838
v -0.002277 -0.133157 0.000030
v -0.007107 -0.143188 -0.002568
v -0.005052 -0.142006 -0.001463
v -0.003592 -0.139673 -0.002568
v -0.005792 -0.141642 0.000030
vt 0.561130 0.405765
vt 0.544765 0.441013
vt 0.504258 0.464443
vt 0.672359 0.346379
vt 0.687977 0.311142
vt 0.732133 0.284683
vt 0.577302 0.422528
vt 0.564832 0.345600
vt 0.581456 0.328297
vt 0.659812 0.418314
vt 0.692172 0.437298
vt 0.708177 0.489626
vt 0.515316 0.272381
vt 0.511970 0.270734
vt 0.527650 0.266963
vt 0.508615 0.279199
vt 0.520705 0.284240
vt 0.510325 0.275744
vt 0.509511 0.278587
vt 0.727273 0.273004
vt 0.729484 0.268382
vt 0.720552 0.266312
vt 0.715446 0.279659
vt 0.724564 0.267153
vt 0.722961 0.264135
vt 0.508816 0.475799
vt 0.506775 0.480157
vt 0.515553 0.482466
vt 0.519613 0.469993
vt 0.511238 0.481616
vt 0.512608 0.484694
vt 0.566493 0.323084
vt 0.560768 0.329107
vt 0.548831 0.311435
vt 0.570256 0.333149
vt 0.676332 0.330584
vt 0.670598 0.324699
vt 0.666947 0.334962
vt 0.655751 0.329927
vt 0.565311 0.418058
vt 0.555714 0.422576
vt 0.561436 0.428443
vt 0.671808 0.412896
vt 0.675627 0.423373
vt 0.681339 0.417333
vt 0.676002 0.401321
vt 0.720965 0.484022
vt 0.724127 0.486051
vt 0.727683 0.477177
vt 0.717031 0.469999
vt 0.726414 0.480251
vt 0.727645 0.476899
vt 0.503694 0.290873
vt 0.732133 0.465715
vt 0.528290 0.487836
vt 0.507839 0.270405
vt 0.729615 0.264999
vt 0.506623 0.483437
vt 0.566373 0.328343
vt 0.670833 0.330583
vt 0.560621 0.423008
vt 0.676493 0.417139
vt 0.728256 0.486556
vt 0.708101 0.261289
vn -0.8922 -0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn 0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4119 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4119 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4119 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn -0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7758
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7758
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7758
vn 0.3080 -0.8780 0.3665
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_7_Cube.011
v 0.133830 -0.150157 0.000030
v 0.126318 -0.156881 -0.008838
v 0.121830 -0.162157 0.000030
v 0.126659 -0.152127 -0.002568
v 0.124605 -0.153308 -0.001463
v 0.123144 -0.155641 -0.002568
v 0.125344 -0.153672 0.000030
v 0.235937 -0.162157 0.000030
v 0.231448 -0.156881 -0.008838
v 0.223937 -0.150157 0.000030
v 0.234622 -0.155641 -0.002568
v 0.233162 -0.153308 -0.001463
v 0.231107 -0.152127 -0.002568
v 0.232422 -0.153672 0.000030
v 0.121830 -0.252111 0.000030
v 0.126318 -0.257387 -0.008838
v 0.133830 -0.264111 0.000030
v 0.123144 -0.258627 -0.002568
v 0.124605 -0.260960 -0.001463
v 0.126659 -0.262142 -0.002568
v 0.125344 -0.260597 0.000030
v 0.133707 -0.167950 -0.023436
v 0.150196 -0.174674 -0.032304
v 0.138196 -0.186674 -0.032304
v 0.140396 -0.172705 -0.029706
v 0.139460 -0.175562 -0.030811
v 0.141711 -0.178189 -0.032304
v 0.136881 -0.176219 -0.029706
v 0.224059 -0.167950 -0.023436
v 0.219570 -0.186674 -0.032304
v 0.207570 -0.174674 -0.032304
v 0.220885 -0.176219 -0.029706
v 0.218306 -0.175562 -0.030811
v 0.216055 -0.178189 -0.032304
v 0.217370 -0.172705 -0.029706
v 0.138196 -0.227594 -0.032304
v 0.150196 -0.239594 -0.032304
v 0.133707 -0.246318 -0.023436
v 0.141711 -0.236080 -0.032304
v 0.139460 -0.238706 -0.030811
v 0.140396 -0.241564 -0.029706
v 0.136881 -0.238049 -0.029706
v 0.207570 -0.239594 -0.032304
v 0.219570 -0.227594 -0.032304
v 0.224059 -0.246318 -0.023436
v 0.216055 -0.236080 -0.032304
v 0.218306 -0.238706 -0.030811
v 0.220885 -0.238049 -0.029706
v 0.217370 -0.241564 -0.029706
v 0.223937 -0.264111 0.000030
v 0.231448 -0.257387 -0.008838
v 0.235937 -0.252111 0.000030
v 0.231107 -0.262142 -0.002568
v 0.233162 -0.260960 -0.001463
v 0.234622 -0.258627 -0.002568
v 0.232422 -0.260597 0.000030
vt 0.344441 0.566969
vt 0.308148 0.549950
vt 0.280563 0.510238
vt 0.393914 0.685706
vt 0.430206 0.702725
vt 0.457791 0.742436
vt 0.326288 0.581754
vt 0.402185 0.573152
vt 0.417899 0.591563
vt 0.320456 0.661111
vt 0.302145 0.694236
vt 0.256921 0.713962
vt 0.476379 0.526278
vt 0.478139 0.522977
vt 0.481434 0.538712
vt 0.469674 0.519362
vt 0.464343 0.531234
vt 0.473190 0.521126
vt 0.470388 0.520164
vt 0.469009 0.738322
vt 0.473631 0.740408
vt 0.475813 0.731779
vt 0.462075 0.727756
vt 0.474683 0.736147
vt 0.477641 0.734920
vt 0.269345 0.514353
vt 0.264723 0.512267
vt 0.262541 0.520896
vt 0.276280 0.524918
vt 0.263671 0.516527
vt 0.260714 0.517754
vt 0.423915 0.575884
vt 0.418164 0.569786
vt 0.436209 0.558439
vt 0.413802 0.579296
vt 0.410557 0.691634
vt 0.416727 0.686214
vt 0.406245 0.682126
vt 0.412067 0.670921
vt 0.332110 0.570548
vt 0.327798 0.561041
vt 0.321628 0.566461
vt 0.324553 0.673379
vt 0.314440 0.676791
vt 0.320191 0.682889
vt 0.336170 0.679523
vt 0.261976 0.726396
vt 0.260215 0.729698
vt 0.268681 0.733313
vt 0.274011 0.721440
vt 0.265165 0.731548
vt 0.267967 0.732510
vt 0.457791 0.514182
vt 0.280563 0.738492
vt 0.256921 0.533716
vt 0.478612 0.518828
vt 0.476972 0.740646
vt 0.261383 0.512029
vt 0.418721 0.575443
vt 0.410544 0.686947
vt 0.327811 0.565727
vt 0.319634 0.677232
vt 0.259743 0.733847
vt 0.481434 0.718958
vn -0.8922 -0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn -0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7758
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7758
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3965 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7758
vn 0.3080 -0.8780 0.3664
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_8_Cube.012
v 0.014723 -0.150157 0.000030
v 0.007211 -0.156881 -0.008838
v 0.002723 -0.162157 0.000030
v 0.007552 -0.152127 -0.002568
v 0.005498 -0.153308 -0.001463
v 0.004037 -0.155641 -0.002568
v 0.006237 -0.153672 0.000030
v 0.116830 -0.162157 0.000030
v 0.112341 -0.156881 -0.008838
v 0.104830 -0.150157 0.000030
v 0.115515 -0.155641 -0.002568
v 0.114055 -0.153308 -0.001463
v 0.112000 -0.152127 -0.002568
v 0.113315 -0.153672 0.000030
v 0.002723 -0.252111 0.000030
v 0.007211 -0.257387 -0.008838
v 0.014723 -0.264111 0.000030
v 0.004037 -0.258627 -0.002568
v 0.005498 -0.260960 -0.001463
v 0.007552 -0.262142 -0.002568
v 0.006237 -0.260597 0.000030
v 0.014600 -0.167950 -0.023436
v 0.031089 -0.174674 -0.032304
v 0.019089 -0.186674 -0.032304
v 0.021289 -0.172705 -0.029706
v 0.020353 -0.175562 -0.030811
v 0.022604 -0.178189 -0.032304
v 0.017774 -0.176219 -0.029706
v 0.104952 -0.167950 -0.023436
v 0.100463 -0.186674 -0.032304
v 0.088463 -0.174674 -0.032304
v 0.101778 -0.176219 -0.029706
v 0.099199 -0.175562 -0.030811
v 0.096948 -0.178189 -0.032304
v 0.098263 -0.172705 -0.029706
v 0.019089 -0.227594 -0.032304
v 0.031089 -0.239594 -0.032304
v 0.014600 -0.246318 -0.023436
v 0.022604 -0.236080 -0.032304
v 0.020353 -0.238706 -0.030811
v 0.021289 -0.241564 -0.029706
v 0.017774 -0.238049 -0.029706
v 0.088463 -0.239594 -0.032304
v 0.100463 -0.227594 -0.032304
v 0.104952 -0.246318 -0.023436
v 0.096948 -0.236080 -0.032304
v 0.099199 -0.238706 -0.030811
v 0.101778 -0.238049 -0.029706
v 0.098263 -0.241564 -0.029706
v 0.104830 -0.264111 0.000030
v 0.112341 -0.257387 -0.008838
v 0.116830 -0.252111 0.000030
v 0.112000 -0.262142 -0.002568
v 0.114055 -0.260960 -0.001463
v 0.115515 -0.258627 -0.002568
v 0.113315 -0.260597 0.000030
vt 0.591139 0.566086
vt 0.554846 0.549067
vt 0.527261 0.509356
vt 0.640611 0.684823
vt 0.676904 0.701843
vt 0.704489 0.741554
vt 0.572985 0.580871
vt 0.648883 0.572270
vt 0.664596 0.590681
vt 0.567153 0.660229
vt 0.548843 0.693353
vt 0.503618 0.713080
vt 0.723076 0.525396
vt 0.724837 0.522094
vt 0.728132 0.537830
vt 0.716371 0.518479
vt 0.711041 0.530352
vt 0.719887 0.520244
vt 0.717086 0.519282
vt 0.715707 0.737439
vt 0.720329 0.739526
vt 0.722511 0.730896
vt 0.708772 0.726874
vt 0.721381 0.735265
vt 0.724339 0.734038
vt 0.516043 0.513470
vt 0.511421 0.511384
vt 0.509239 0.520013
vt 0.522978 0.524036
vt 0.510369 0.515645
vt 0.507411 0.516872
vt 0.670612 0.575001
vt 0.664862 0.568903
vt 0.682907 0.557557
vt 0.660499 0.578413
vt 0.657255 0.690751
vt 0.663424 0.685332
vt 0.652942 0.681244
vt 0.658764 0.670039
vt 0.578808 0.569666
vt 0.574495 0.560159
vt 0.568325 0.565578
vt 0.571251 0.672496
vt 0.561137 0.675909
vt 0.566888 0.682006
vt 0.582867 0.678640
vt 0.508674 0.725514
vt 0.506913 0.728815
vt 0.515378 0.732430
vt 0.520709 0.720558
vt 0.511863 0.730666
vt 0.514664 0.731628
vt 0.704489 0.513300
vt 0.527261 0.737610
vt 0.503618 0.532834
vt 0.725310 0.517945
vt 0.723669 0.739764
vt 0.508080 0.511146
vt 0.665419 0.574560
vt 0.657241 0.686065
vt 0.574509 0.564845
vt 0.566331 0.676350
vt 0.506440 0.732964
vt 0.728132 0.718076
vn -0.8922 0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3354
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn -0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6173 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7758
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7758
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1390 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7758
vn 0.3080 -0.8780 0.3664
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_9_Cube.013
v -0.104385 -0.150157 0.000030
v -0.111896 -0.156881 -0.008838
v -0.116385 -0.162157 0.000030
v -0.111555 -0.152127 -0.002568
v -0.113609 -0.153308 -0.001463
v -0.115070 -0.155641 -0.002568
v -0.112870 -0.153672 0.000030
v -0.002277 -0.162157 0.000030
v -0.006766 -0.156881 -0.008838
v -0.014277 -0.150157 0.000030
v -0.003592 -0.155641 -0.002568
v -0.005052 -0.153308 -0.001463
v -0.007107 -0.152127 -0.002568
v -0.005792 -0.153672 0.000030
v -0.116385 -0.252111 0.000030
v -0.111896 -0.257387 -0.008838
v -0.104385 -0.264111 0.000030
v -0.115070 -0.258627 -0.002568
v -0.113609 -0.260960 -0.001463
v -0.111555 -0.262142 -0.002568
v -0.112870 -0.260597 0.000030
v -0.104507 -0.167950 -0.023436
v -0.088018 -0.174674 -0.032304
v -0.100018 -0.186674 -0.032304
v -0.097818 -0.172705 -0.029706
v -0.098754 -0.175562 -0.030811
v -0.096503 -0.178189 -0.032304
v -0.101333 -0.176219 -0.029706
v -0.014155 -0.167950 -0.023436
v -0.018644 -0.186674 -0.032304
v -0.030644 -0.174674 -0.032304
v -0.017329 -0.176219 -0.029706
v -0.019908 -0.175562 -0.030811
v -0.022159 -0.178189 -0.032304
v -0.020844 -0.172705 -0.029706
v -0.100018 -0.227594 -0.032304
v -0.088018 -0.239594 -0.032304
v -0.104507 -0.246318 -0.023436
v -0.096503 -0.236080 -0.032304
v -0.098754 -0.238706 -0.030811
v -0.097818 -0.241564 -0.029706
v -0.101333 -0.238049 -0.029706
v -0.030644 -0.239594 -0.032304
v -0.018644 -0.227594 -0.032304
v -0.014155 -0.246318 -0.023436
v -0.022159 -0.236080 -0.032304
v -0.019908 -0.238706 -0.030811
v -0.017329 -0.238049 -0.029706
v -0.020844 -0.241564 -0.029706
v -0.014277 -0.264111 0.000030
v -0.006766 -0.257387 -0.008838
v -0.002277 -0.252111 0.000030
v -0.007107 -0.262142 -0.002568
v -0.005052 -0.260960 -0.001463
v -0.003592 -0.258627 -0.002568
v -0.005792 -0.260597 0.000030
vt 0.156430 0.184243
vt 0.191630 0.200964
vt 0.214722 0.241425
vt 0.098457 0.066788
vt 0.062463 0.049776
vt 0.033542 0.010140
vt 0.173352 0.169256
vt 0.096095 0.179552
vt 0.079004 0.161487
vt 0.169662 0.091021
vt 0.187833 0.058495
vt 0.237955 0.039478
vt 0.022051 0.228429
vt 0.020381 0.231796
vt 0.016504 0.215946
vt 0.028899 0.235301
vt 0.034079 0.223197
vt 0.025463 0.233572
vt 0.028339 0.234489
vt 0.022188 0.014164
vt 0.017456 0.012065
vt 0.015531 0.020742
vt 0.029505 0.024710
vt 0.016517 0.016298
vt 0.013604 0.017507
vt 0.226163 0.237000
vt 0.230515 0.239070
vt 0.232796 0.230417
vt 0.220448 0.226223
vt 0.232025 0.234655
vt 0.235127 0.233329
vt 0.073499 0.177354
vt 0.079505 0.183379
vt 0.061652 0.195190
vt 0.083676 0.173712
vt 0.082505 0.060898
vt 0.076618 0.066349
vt 0.087071 0.070394
vt 0.081883 0.081693
vt 0.168799 0.180403
vt 0.173242 0.189894
vt 0.179118 0.184425
vt 0.164354 0.078948
vt 0.174571 0.075612
vt 0.168554 0.069569
vt 0.152919 0.072873
vt 0.232439 0.027118
vt 0.234362 0.023871
vt 0.225566 0.020241
vt 0.219013 0.031890
vt 0.228778 0.021988
vt 0.225558 0.021007
vt 0.040562 0.240354
vt 0.213896 0.015070
vt 0.237955 0.217817
vt 0.020047 0.235995
vt 0.014078 0.011811
vt 0.233804 0.239255
vt 0.078798 0.177687
vt 0.082784 0.065577
vt 0.173724 0.185067
vt 0.168594 0.075129
vt 0.234815 0.019773
vt 0.010308 0.033747
vn -0.8922 -0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4119 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4119 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn -0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3664
vn -0.4461 0.4461 -0.7758
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7758
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1390 -0.3965 -0.9075
vn -0.4461 -0.4461 -0.7758
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7759
vn 0.3080 -0.8780 0.3664
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_A_Cube.015
v 0.133830 -0.269111 0.000030
v 0.126318 -0.275835 -0.008838
v 0.121830 -0.281111 0.000030
v 0.126659 -0.271081 -0.002568
v 0.124605 -0.272263 -0.001463
v 0.123144 -0.274596 -0.002568
v 0.125344 -0.272626 0.000030
v 0.235937 -0.281111 0.000030
v 0.231448 -0.275835 -0.008838
v 0.223937 -0.269111 0.000030
v 0.234622 -0.274596 -0.002568
v 0.233162 -0.272263 -0.001463
v 0.231107 -0.271081 -0.002568
v 0.232422 -0.272626 0.000030
v 0.121830 -0.371066 0.000030
v 0.126318 -0.376341 -0.008838
v 0.133830 -0.383066 0.000030
v 0.123144 -0.377581 -0.002568
v 0.124605 -0.379914 -0.001463
v 0.126659 -0.381096 -0.002568
v 0.125344 -0.379551 0.000030
v 0.133707 -0.286904 -0.023436
v 0.150196 -0.293628 -0.032304
v 0.138196 -0.305628 -0.032304
v 0.140396 -0.291659 -0.029706
v 0.139460 -0.294516 -0.030811
v 0.141711 -0.297143 -0.032304
v 0.136881 -0.295174 -0.029706
v 0.224059 -0.286904 -0.023436
v 0.219570 -0.305628 -0.032304
v 0.207570 -0.293628 -0.032304
v 0.220885 -0.295174 -0.029706
v 0.218306 -0.294516 -0.030811
v 0.216055 -0.297143 -0.032304
v 0.217370 -0.291659 -0.029706
v 0.138196 -0.346549 -0.032304
v 0.150196 -0.358549 -0.032304
v 0.133707 -0.365273 -0.023436
v 0.141711 -0.355034 -0.032304
v 0.139460 -0.357661 -0.030811
v 0.140396 -0.360518 -0.029706
v 0.136881 -0.357003 -0.029706
v 0.207570 -0.358549 -0.032304
v 0.219570 -0.346549 -0.032304
v 0.224059 -0.365273 -0.023436
v 0.216055 -0.355034 -0.032304
v 0.218306 -0.357661 -0.030811
v 0.220885 -0.357003 -0.029706
v 0.217370 -0.360518 -0.029706
v 0.223937 -0.383066 0.000030
v 0.231448 -0.376341 -0.008838
v 0.235937 -0.371066 0.000030
v 0.231107 -0.381096 -0.002568
v 0.233162 -0.379914 -0.001463
v 0.234622 -0.377581 -0.002568
v 0.232422 -0.379551 0.000030
vt 0.836007 0.812284
vt 0.799334 0.795938
vt 0.770805 0.756457
vt 0.887553 0.924297
vt 0.923087 0.940307
vt 0.948632 0.984951
vt 0.818143 0.828176
vt 0.893746 0.817054
vt 0.909770 0.833933
vt 0.813688 0.910847
vt 0.795024 0.943663
vt 0.747995 0.960730
vt 0.967252 0.768678
vt 0.968988 0.765362
vt 0.972234 0.781040
vt 0.960517 0.761948
vt 0.955352 0.773907
vt 0.964085 0.763663
vt 0.961301 0.762817
vt 0.960050 0.980046
vt 0.964564 0.982287
vt 0.966831 0.973356
vt 0.953661 0.968094
vt 0.965837 0.977323
vt 0.968862 0.975716
vt 0.759651 0.760818
vt 0.754973 0.758806
vt 0.752868 0.767524
vt 0.766838 0.771333
vt 0.754015 0.763123
vt 0.751082 0.764422
vt 0.915467 0.819085
vt 0.909653 0.813311
vt 0.927561 0.801619
vt 0.905452 0.822689
vt 0.903995 0.928492
vt 0.910110 0.922808
vt 0.899814 0.919036
vt 0.905423 0.907946
vt 0.823762 0.816248
vt 0.819262 0.806719
vt 0.813145 0.812387
vt 0.817996 0.922930
vt 0.807710 0.926806
vt 0.813521 0.932564
vt 0.829717 0.927267
vt 0.753306 0.973438
vt 0.751490 0.976647
vt 0.760039 0.980183
vt 0.765833 0.969220
vt 0.756667 0.978825
vt 0.759604 0.979994
vt 0.948526 0.757000
vt 0.771703 0.984770
vt 0.747203 0.780401
vt 0.969445 0.761248
vt 0.967893 0.982427
vt 0.751621 0.758633
vt 0.910291 0.818900
vt 0.904196 0.922966
vt 0.819387 0.811472
vt 0.813142 0.927567
vt 0.751024 0.980795
vt 0.972234 0.961007
vn -0.8922 -0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3354
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3354
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3354
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4118 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3354
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7758
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7759
vn 0.3079 -0.8780 0.3665
vn 0.6174 -0.6173 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_B_Cube.017
v -0.104385 -0.269111 0.000030
v -0.111896 -0.275835 -0.008838
v -0.116385 -0.281111 0.000030
v -0.111555 -0.271081 -0.002568
v -0.113609 -0.272263 -0.001463
v -0.115070 -0.274596 -0.002568
v -0.112870 -0.272626 0.000030
v -0.002277 -0.281111 0.000030
v -0.006766 -0.275835 -0.008838
v -0.014277 -0.269111 0.000030
v -0.003592 -0.274596 -0.002568
v -0.005052 -0.272263 -0.001463
v -0.007107 -0.271081 -0.002568
v -0.005792 -0.272626 0.000030
v -0.116385 -0.371066 0.000030
v -0.111896 -0.376341 -0.008838
v -0.104385 -0.383066 0.000030
v -0.115070 -0.377581 -0.002568
v -0.113609 -0.379914 -0.001463
v -0.111555 -0.381096 -0.002568
v -0.112870 -0.379551 0.000030
v -0.104507 -0.286904 -0.023436
v -0.088018 -0.293628 -0.032304
v -0.100018 -0.305628 -0.032304
v -0.097818 -0.291659 -0.029706
v -0.098754 -0.294516 -0.030811
v -0.096503 -0.297143 -0.032304
v -0.101333 -0.295174 -0.029706
v -0.014155 -0.286904 -0.023436
v -0.018644 -0.305628 -0.032304
v -0.030644 -0.293628 -0.032304
v -0.017329 -0.295174 -0.029706
v -0.019908 -0.294516 -0.030811
v -0.022159 -0.297143 -0.032304
v -0.020844 -0.291659 -0.029706
v -0.100018 -0.346549 -0.032304
v -0.088018 -0.358549 -0.032304
v -0.104507 -0.365273 -0.023436
v -0.096503 -0.355034 -0.032304
v -0.098754 -0.357661 -0.030811
v -0.097818 -0.360518 -0.029706
v -0.101333 -0.357003 -0.029706
v -0.030644 -0.358549 -0.032304
v -0.018644 -0.346549 -0.032304
v -0.014155 -0.365273 -0.023436
v -0.022159 -0.355034 -0.032304
v -0.019908 -0.357661 -0.030811
v -0.017329 -0.357003 -0.029706
v -0.020844 -0.360518 -0.029706
v -0.014277 -0.383066 0.000030
v -0.006766 -0.376341 -0.008838
v -0.002277 -0.371066 0.000030
v -0.007107 -0.381096 -0.002568
v -0.005052 -0.379914 -0.001463
v -0.003592 -0.377581 -0.002568
v -0.005792 -0.379551 0.000030
vt 0.561870 0.154715
vt 0.545505 0.189963
vt 0.504998 0.213393
vt 0.673099 0.095329
vt 0.688717 0.060091
vt 0.732873 0.033633
vt 0.578042 0.171477
vt 0.565571 0.094549
vt 0.582196 0.077247
vt 0.660552 0.167263
vt 0.692911 0.186247
vt 0.708917 0.238576
vt 0.516056 0.021330
vt 0.512710 0.019683
vt 0.528390 0.015913
vt 0.509355 0.028149
vt 0.521444 0.033189
vt 0.511065 0.024693
vt 0.510251 0.027536
vt 0.728013 0.021954
vt 0.730224 0.017332
vt 0.721292 0.015261
vt 0.716186 0.028608
vt 0.725304 0.016103
vt 0.723701 0.013084
vt 0.509556 0.224749
vt 0.507515 0.229106
vt 0.516293 0.231415
vt 0.520353 0.218943
vt 0.511978 0.230566
vt 0.513348 0.233644
vt 0.567233 0.072034
vt 0.561508 0.078057
vt 0.549571 0.060385
vt 0.570996 0.082098
vt 0.677072 0.079533
vt 0.671338 0.073648
vt 0.667686 0.083911
vt 0.656491 0.078876
vt 0.566051 0.167008
vt 0.556454 0.171525
vt 0.562176 0.177392
vt 0.672548 0.161846
vt 0.676367 0.172323
vt 0.682079 0.166282
vt 0.676741 0.150270
vt 0.721705 0.232971
vt 0.724867 0.235001
vt 0.728423 0.226126
vt 0.717771 0.218949
vt 0.727154 0.229201
vt 0.728385 0.225848
vt 0.504434 0.039823
vt 0.732873 0.214664
vt 0.529030 0.236785
vt 0.508579 0.019354
vt 0.730355 0.013949
vt 0.507363 0.232387
vt 0.567113 0.077292
vt 0.671573 0.079532
vt 0.561361 0.171957
vt 0.677233 0.166089
vt 0.728996 0.235505
vt 0.708841 0.010238
vn -0.8922 0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3354
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3354
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3354
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4119 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4119 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4119 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3354
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2902 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6173 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7758
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7759
vn 0.3079 -0.8780 0.3665
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_C_Cube.005
v -0.223492 0.087751 0.000030
v -0.231003 0.081027 -0.008838
v -0.235492 0.075751 0.000030
v -0.230662 0.085782 -0.002568
v -0.232716 0.084600 -0.001463
v -0.234177 0.082267 -0.002568
v -0.231977 0.084236 0.000030
v -0.121384 0.075751 0.000030
v -0.125873 0.081027 -0.008838
v -0.133384 0.087751 0.000030
v -0.122699 0.082267 -0.002568
v -0.124160 0.084600 -0.001463
v -0.126214 0.085782 -0.002568
v -0.124899 0.084236 0.000030
v -0.235492 -0.014203 0.000030
v -0.231003 -0.019479 -0.008838
v -0.223492 -0.026203 0.000030
v -0.234177 -0.020719 -0.002568
v -0.232717 -0.023052 -0.001463
v -0.230662 -0.024234 -0.002568
v -0.231977 -0.022688 0.000030
v -0.223614 0.069958 -0.023436
v -0.207125 0.063234 -0.032304
v -0.219125 0.051234 -0.032304
v -0.216925 0.065204 -0.029706
v -0.217861 0.062346 -0.030811
v -0.215610 0.059719 -0.032304
v -0.220440 0.061689 -0.029706
v -0.133262 0.069958 -0.023436
v -0.137751 0.051234 -0.032304
v -0.149751 0.063234 -0.032304
v -0.136436 0.061689 -0.029706
v -0.139015 0.062346 -0.030811
v -0.141266 0.059719 -0.032304
v -0.139951 0.065204 -0.029706
v -0.219125 0.010314 -0.032304
v -0.207125 -0.001686 -0.032304
v -0.223614 -0.008410 -0.023436
v -0.215610 0.001829 -0.032304
v -0.217861 -0.000798 -0.030811
v -0.216925 -0.003655 -0.029706
v -0.220440 -0.000141 -0.029706
v -0.149751 -0.001686 -0.032304
v -0.137751 0.010314 -0.032304
v -0.133262 -0.008410 -0.023436
v -0.141266 0.001829 -0.032304
v -0.139015 -0.000798 -0.030811
v -0.136436 -0.000141 -0.029706
v -0.139951 -0.003655 -0.029706
v -0.133384 -0.026203 0.000030
v -0.125873 -0.019479 -0.008838
v -0.121384 -0.014203 0.000030
v -0.126214 -0.024234 -0.002568
v -0.124160 -0.023052 -0.001463
v -0.122699 -0.020719 -0.002568
v -0.124899 -0.022688 0.000030
vt 0.836007 0.564729
vt 0.799334 0.548383
vt 0.770805 0.508902
vt 0.887553 0.676742
vt 0.923087 0.692751
vt 0.948632 0.737395
vt 0.818143 0.580621
vt 0.893746 0.569499
vt 0.909770 0.586378
vt 0.813688 0.663292
vt 0.795024 0.696108
vt 0.747995 0.713175
vt 0.967252 0.521123
vt 0.968988 0.517807
vt 0.972234 0.533485
vt 0.960517 0.514393
vt 0.955352 0.526352
vt 0.964085 0.516107
vt 0.961301 0.515262
vt 0.960050 0.732491
vt 0.964564 0.734732
vt 0.966831 0.725800
vt 0.953661 0.720539
vt 0.965837 0.729768
vt 0.968862 0.728161
vt 0.759651 0.513263
vt 0.754973 0.511251
vt 0.752868 0.519969
vt 0.766838 0.523777
vt 0.754015 0.515568
vt 0.751082 0.516867
vt 0.915467 0.571530
vt 0.909654 0.565755
vt 0.927561 0.554064
vt 0.905452 0.575134
vt 0.903995 0.680937
vt 0.910110 0.675253
vt 0.899814 0.671481
vt 0.905423 0.660391
vt 0.823762 0.568693
vt 0.819262 0.559164
vt 0.813145 0.564831
vt 0.817995 0.675375
vt 0.807710 0.679251
vt 0.813521 0.685009
vt 0.829717 0.679712
vt 0.753306 0.725882
vt 0.751489 0.729092
vt 0.760039 0.732627
vt 0.765833 0.721665
vt 0.756667 0.731270
vt 0.759604 0.732439
vt 0.948526 0.509445
vt 0.771703 0.737215
vt 0.747203 0.532845
vt 0.969445 0.513693
vt 0.967893 0.734872
vt 0.751621 0.511078
vt 0.910291 0.571345
vt 0.904196 0.675411
vt 0.819387 0.563917
vt 0.813142 0.680011
vt 0.751024 0.733240
vt 0.972234 0.713452
vn -0.8922 0.0000 -0.4516
vn 0.8922 -0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4119 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4119 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2903 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7758
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7759
vn 0.3080 -0.8780 0.3665
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_D_Cube.010
v -0.223492 -0.031203 0.000030
v -0.231003 -0.037927 -0.008838
v -0.235492 -0.043203 0.000030
v -0.230662 -0.033172 -0.002568
v -0.232716 -0.034354 -0.001463
v -0.234177 -0.036687 -0.002568
v -0.231977 -0.034718 0.000030
v -0.121384 -0.043203 0.000030
v -0.125873 -0.037927 -0.008838
v -0.133384 -0.031203 0.000030
v -0.122699 -0.036687 -0.002568
v -0.124160 -0.034354 -0.001463
v -0.126214 -0.033172 -0.002568
v -0.124899 -0.034718 0.000030
v -0.235492 -0.133157 0.000030
v -0.231003 -0.138433 -0.008838
v -0.223492 -0.145157 0.000030
v -0.234177 -0.139673 -0.002568
v -0.232717 -0.142006 -0.001463
v -0.230662 -0.143188 -0.002568
v -0.231977 -0.141642 0.000030
v -0.223614 -0.048996 -0.023436
v -0.207125 -0.055720 -0.032304
v -0.219125 -0.067720 -0.032304
v -0.216925 -0.053751 -0.029706
v -0.217861 -0.056608 -0.030811
v -0.215610 -0.059235 -0.032304
v -0.220440 -0.057265 -0.029706
v -0.133262 -0.048996 -0.023436
v -0.137751 -0.067720 -0.032304
v -0.149751 -0.055720 -0.032304
v -0.136436 -0.057265 -0.029706
v -0.139015 -0.056608 -0.030811
v -0.141266 -0.059235 -0.032304
v -0.139951 -0.053751 -0.029706
v -0.219125 -0.108640 -0.032304
v -0.207125 -0.120640 -0.032304
v -0.223614 -0.127364 -0.023436
v -0.215610 -0.117125 -0.032304
v -0.217861 -0.119752 -0.030811
v -0.216925 -0.122610 -0.029706
v -0.220440 -0.119095 -0.029706
v -0.149751 -0.120640 -0.032304
v -0.137751 -0.108640 -0.032304
v -0.133262 -0.127364 -0.023436
v -0.141266 -0.117125 -0.032304
v -0.139015 -0.119752 -0.030811
v -0.136436 -0.119095 -0.029706
v -0.139951 -0.122610 -0.029706
v -0.133384 -0.145157 0.000030
v -0.125873 -0.138433 -0.008838
v -0.121384 -0.133157 0.000030
v -0.126214 -0.143188 -0.002568
v -0.124160 -0.142006 -0.001463
v -0.122699 -0.139673 -0.002568
v -0.124899 -0.141642 0.000030
vt 0.840748 0.065382
vt 0.804075 0.049036
vt 0.775546 0.009555
vt 0.892294 0.177395
vt 0.927828 0.193404
vt 0.953373 0.238048
vt 0.822884 0.081274
vt 0.898488 0.070152
vt 0.914511 0.087031
vt 0.818429 0.163945
vt 0.799765 0.196761
vt 0.752737 0.213828
vt 0.971994 0.021776
vt 0.973729 0.018460
vt 0.976975 0.034137
vt 0.965259 0.015046
vt 0.960093 0.027005
vt 0.968826 0.016760
vt 0.966043 0.015914
vt 0.964791 0.233144
vt 0.969305 0.235385
vt 0.971572 0.226453
vt 0.958402 0.221192
vt 0.970578 0.230421
vt 0.973603 0.228814
vt 0.764392 0.013916
vt 0.759714 0.011904
vt 0.757609 0.020621
vt 0.771579 0.024430
vt 0.758757 0.016221
vt 0.755824 0.017520
vt 0.920209 0.072182
vt 0.914395 0.066408
vt 0.932302 0.054716
vt 0.910193 0.075786
vt 0.908737 0.181590
vt 0.914851 0.175906
vt 0.904555 0.172134
vt 0.910164 0.161044
vt 0.828503 0.069346
vt 0.824004 0.059817
vt 0.817887 0.065484
vt 0.822737 0.176028
vt 0.812451 0.179904
vt 0.818262 0.185661
vt 0.834458 0.180365
vt 0.758047 0.226535
vt 0.756231 0.229745
vt 0.764780 0.233280
vt 0.770575 0.222318
vt 0.761408 0.231923
vt 0.764345 0.233092
vt 0.953267 0.010098
vt 0.776445 0.237867
vt 0.751944 0.033498
vt 0.974186 0.014345
vt 0.972634 0.235525
vt 0.756362 0.011731
vt 0.915033 0.071998
vt 0.908937 0.176064
vt 0.824128 0.064570
vt 0.817883 0.180664
vt 0.755765 0.233893
vt 0.976975 0.214105
vn -0.8922 0.0000 -0.4516
vn 0.8922 0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn 0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4119 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4119 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2903 0.4808
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1391 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7758
vn 0.3080 -0.8780 0.3665
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_E_Cube.014
v -0.223492 -0.150157 0.000030
v -0.231003 -0.156881 -0.008838
v -0.235492 -0.162157 0.000030
v -0.230662 -0.152127 -0.002568
v -0.232716 -0.153308 -0.001463
v -0.234177 -0.155641 -0.002568
v -0.231977 -0.153672 0.000030
v -0.121384 -0.162157 0.000030
v -0.125873 -0.156881 -0.008838
v -0.133384 -0.150157 0.000030
v -0.122699 -0.155641 -0.002568
v -0.124160 -0.153308 -0.001463
v -0.126214 -0.152127 -0.002568
v -0.124899 -0.153672 0.000030
v -0.235492 -0.252111 0.000030
v -0.231003 -0.257387 -0.008838
v -0.223492 -0.264111 0.000030
v -0.234177 -0.258627 -0.002568
v -0.232717 -0.260960 -0.001463
v -0.230662 -0.262142 -0.002568
v -0.231977 -0.260597 0.000030
v -0.223614 -0.167950 -0.023436
v -0.207125 -0.174674 -0.032304
v -0.219125 -0.186674 -0.032304
v -0.216925 -0.172705 -0.029706
v -0.217861 -0.175562 -0.030811
v -0.215610 -0.178189 -0.032304
v -0.220440 -0.176219 -0.029706
v -0.133262 -0.167950 -0.023436
v -0.137751 -0.186674 -0.032304
v -0.149751 -0.174674 -0.032304
v -0.136436 -0.176219 -0.029706
v -0.139015 -0.175562 -0.030811
v -0.141266 -0.178189 -0.032304
v -0.139951 -0.172705 -0.029706
v -0.219125 -0.227594 -0.032304
v -0.207125 -0.239594 -0.032304
v -0.223614 -0.246318 -0.023436
v -0.215610 -0.236080 -0.032304
v -0.217861 -0.238706 -0.030811
v -0.216925 -0.241564 -0.029706
v -0.220440 -0.238049 -0.029706
v -0.149751 -0.239594 -0.032304
v -0.137751 -0.227594 -0.032304
v -0.133262 -0.246318 -0.023436
v -0.141266 -0.236080 -0.032304
v -0.139015 -0.238706 -0.030811
v -0.136436 -0.238049 -0.029706
v -0.139951 -0.241564 -0.029706
v -0.133384 -0.264111 0.000030
v -0.125873 -0.257387 -0.008838
v -0.121384 -0.252111 0.000030
v -0.126214 -0.262142 -0.002568
v -0.124160 -0.260960 -0.001463
v -0.122699 -0.258627 -0.002568
v -0.124899 -0.260597 0.000030
vt 0.150435 0.685706
vt 0.186728 0.702725
vt 0.214313 0.742436
vt 0.100962 0.566969
vt 0.064669 0.549950
vt 0.037084 0.510238
vt 0.168588 0.670921
vt 0.092691 0.679523
vt 0.076977 0.661111
vt 0.174420 0.591563
vt 0.192731 0.558439
vt 0.237955 0.538712
vt 0.018497 0.726396
vt 0.016736 0.729698
vt 0.013442 0.713962
vt 0.025202 0.733313
vt 0.030533 0.721440
vt 0.021686 0.731548
vt 0.024488 0.732511
vt 0.025866 0.514353
vt 0.021245 0.512267
vt 0.019062 0.520896
vt 0.032801 0.524918
vt 0.020192 0.516527
vt 0.017235 0.517754
vt 0.225531 0.738322
vt 0.230153 0.740408
vt 0.232334 0.731779
vt 0.218596 0.727756
vt 0.231205 0.736147
vt 0.234162 0.734920
vt 0.070961 0.676791
vt 0.076712 0.682889
vt 0.058667 0.694236
vt 0.081074 0.673379
vt 0.084319 0.561041
vt 0.078149 0.566461
vt 0.088631 0.570548
vt 0.082809 0.581754
vt 0.162766 0.682126
vt 0.167078 0.691634
vt 0.173248 0.686214
vt 0.170323 0.579296
vt 0.180436 0.575884
vt 0.174685 0.569786
vt 0.158706 0.573152
vt 0.232900 0.526278
vt 0.234661 0.522977
vt 0.226195 0.519362
vt 0.220864 0.531235
vt 0.229711 0.521126
vt 0.226909 0.520164
vt 0.037084 0.738492
vt 0.214313 0.514182
vt 0.237955 0.718958
vt 0.016264 0.733847
vt 0.017904 0.512029
vt 0.233493 0.740646
vt 0.076155 0.677232
vt 0.084332 0.565727
vt 0.167065 0.686947
vt 0.175242 0.575443
vt 0.235133 0.518828
vt 0.013442 0.533716
vn -0.8922 0.0000 -0.4516
vn 0.8922 0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3353
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3353
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3353
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4119 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4119 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3353
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn -0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2903 0.4807
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6173 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6174 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3664
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7758
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1390 -0.3964 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7758
vn 0.3080 -0.8780 0.3664
vn 0.6174 -0.6174 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,277 @@
# Blender v3.6.5 OBJ File: 'emulator.blend'
# www.blender.org
mtllib Button.mtl
o Buttons_F_Cube.018
v -0.223492 -0.269111 0.000030
v -0.231003 -0.275835 -0.008838
v -0.235492 -0.281111 0.000030
v -0.230662 -0.271081 -0.002568
v -0.232716 -0.272263 -0.001463
v -0.234177 -0.274596 -0.002568
v -0.231977 -0.272626 0.000030
v -0.121384 -0.281111 0.000030
v -0.125873 -0.275835 -0.008838
v -0.133384 -0.269111 0.000030
v -0.122699 -0.274596 -0.002568
v -0.124160 -0.272263 -0.001463
v -0.126214 -0.271081 -0.002568
v -0.124899 -0.272626 0.000030
v -0.235492 -0.371066 0.000030
v -0.231003 -0.376341 -0.008838
v -0.223492 -0.383066 0.000030
v -0.234177 -0.377581 -0.002568
v -0.232717 -0.379914 -0.001463
v -0.230662 -0.381096 -0.002568
v -0.231977 -0.379551 0.000030
v -0.223614 -0.286904 -0.023436
v -0.207125 -0.293628 -0.032304
v -0.219125 -0.305628 -0.032304
v -0.216925 -0.291659 -0.029706
v -0.217861 -0.294516 -0.030811
v -0.215610 -0.297143 -0.032304
v -0.220440 -0.295174 -0.029706
v -0.133262 -0.286904 -0.023436
v -0.137751 -0.305628 -0.032304
v -0.149751 -0.293628 -0.032304
v -0.136436 -0.295174 -0.029706
v -0.139015 -0.294516 -0.030811
v -0.141266 -0.297143 -0.032304
v -0.139951 -0.291659 -0.029706
v -0.219125 -0.346549 -0.032304
v -0.207125 -0.358549 -0.032304
v -0.223614 -0.365273 -0.023436
v -0.215610 -0.355034 -0.032304
v -0.217861 -0.357661 -0.030811
v -0.216925 -0.360518 -0.029706
v -0.220440 -0.357003 -0.029706
v -0.149751 -0.358549 -0.032304
v -0.137751 -0.346549 -0.032304
v -0.133262 -0.365273 -0.023436
v -0.141266 -0.355034 -0.032304
v -0.139015 -0.357661 -0.030811
v -0.136436 -0.357003 -0.029706
v -0.139951 -0.360518 -0.029706
v -0.133384 -0.383066 0.000030
v -0.125873 -0.376341 -0.008838
v -0.121384 -0.371066 0.000030
v -0.126214 -0.381096 -0.002568
v -0.124160 -0.379914 -0.001463
v -0.122699 -0.377581 -0.002568
v -0.124899 -0.379551 0.000030
vt 0.101728 0.817827
vt 0.065055 0.801481
vt 0.036526 0.762000
vt 0.153274 0.929840
vt 0.188808 0.945849
vt 0.214353 0.990493
vt 0.083864 0.833719
vt 0.159467 0.822597
vt 0.175491 0.839476
vt 0.079409 0.916390
vt 0.060745 0.949206
vt 0.013716 0.966273
vt 0.232974 0.774221
vt 0.234709 0.770905
vt 0.237955 0.786582
vt 0.226239 0.767491
vt 0.221073 0.779450
vt 0.229806 0.769205
vt 0.227022 0.768359
vt 0.225771 0.985589
vt 0.230285 0.987830
vt 0.232552 0.978898
vt 0.219382 0.973637
vt 0.231558 0.982866
vt 0.234583 0.981259
vt 0.025372 0.766361
vt 0.020694 0.764349
vt 0.018589 0.773067
vt 0.032559 0.776875
vt 0.019736 0.768666
vt 0.016804 0.769965
vt 0.181188 0.824627
vt 0.175374 0.818853
vt 0.193282 0.807161
vt 0.171173 0.828231
vt 0.169716 0.934035
vt 0.175831 0.928351
vt 0.165535 0.924579
vt 0.171144 0.913489
vt 0.089483 0.821791
vt 0.084983 0.812262
vt 0.078866 0.817929
vt 0.083717 0.928473
vt 0.073431 0.932349
vt 0.079242 0.938106
vt 0.095438 0.932810
vt 0.019027 0.978980
vt 0.017211 0.982190
vt 0.025760 0.985725
vt 0.031555 0.974763
vt 0.022388 0.984368
vt 0.025325 0.985537
vt 0.214247 0.762543
vt 0.037424 0.990312
vt 0.012924 0.785943
vt 0.235166 0.766791
vt 0.233614 0.987970
vt 0.017342 0.764176
vt 0.176012 0.824443
vt 0.169917 0.928509
vt 0.085108 0.817015
vt 0.078863 0.933109
vt 0.016745 0.986338
vt 0.237955 0.966550
vn -0.8922 0.0000 -0.4516
vn 0.8922 0.0000 -0.4516
vn -0.0000 0.0000 -1.0000
vn -0.0000 -0.7968 -0.6042
vn -0.3605 0.8704 0.3354
vn -0.6330 0.6330 -0.4456
vn -0.8289 0.3433 0.4417
vn 0.8289 0.3433 0.4417
vn 0.6330 0.6330 -0.4456
vn 0.3605 0.8704 0.3354
vn -0.8289 -0.3433 0.4417
vn -0.6330 -0.6330 -0.4456
vn -0.3605 -0.8704 0.3354
vn -0.4331 0.4331 -0.7904
vn -0.1617 0.3905 -0.9063
vn -0.4118 0.1706 -0.8951
vn 0.4331 0.4331 -0.7904
vn 0.4119 0.1706 -0.8951
vn 0.1617 0.3905 -0.9063
vn -0.4118 -0.1706 -0.8951
vn -0.1617 -0.3905 -0.9063
vn -0.4331 -0.4331 -0.7904
vn 0.1617 -0.3905 -0.9063
vn 0.4118 -0.1706 -0.8951
vn 0.4331 -0.4331 -0.7904
vn 0.3605 -0.8704 0.3354
vn 0.6330 -0.6330 -0.4456
vn 0.8289 -0.3433 0.4417
vn 0.0000 0.7968 -0.6042
vn -0.3080 0.8780 0.3665
vn -0.6174 0.6174 -0.4876
vn -0.8274 0.2903 0.4807
vn 0.8274 0.2902 0.4808
vn 0.6174 0.6174 -0.4876
vn 0.3080 0.8780 0.3665
vn -0.8274 -0.2902 0.4808
vn -0.6173 -0.6174 -0.4876
vn -0.3080 -0.8780 0.3665
vn -0.4461 0.4461 -0.7759
vn -0.1391 0.3964 -0.9075
vn -0.4211 0.1477 -0.8949
vn 0.4461 0.4461 -0.7759
vn 0.4211 0.1477 -0.8949
vn 0.1391 0.3964 -0.9075
vn -0.4211 -0.1477 -0.8949
vn -0.1390 -0.3965 -0.9075
vn -0.4461 -0.4461 -0.7759
vn 0.1391 -0.3964 -0.9075
vn 0.4211 -0.1477 -0.8949
vn 0.4461 -0.4461 -0.7758
vn 0.3079 -0.8780 0.3665
vn 0.6174 -0.6173 -0.4876
vn 0.8274 -0.2902 0.4808
usemtl Button
s off
f 36/1/1 38/2/1 15/3/1
f 30/4/2 29/5/2 8/6/2
f 37/7/3 24/8/3 23/9/3
f 43/10/4 45/11/4 50/12/4
f 4/13/5 7/14/5 1/15/5
f 6/16/6 4/13/6 2/17/6
f 7/14/7 6/18/7 3/19/7
f 11/20/8 14/21/8 8/6/8
f 13/22/9 11/20/9 9/23/9
f 14/21/10 13/24/10 10/25/10
f 18/26/11 21/27/11 15/3/11
f 20/28/12 18/26/12 16/29/12
f 21/27/13 20/30/13 17/31/13
f 25/32/14 28/33/14 22/34/14
f 27/35/15 25/32/15 23/9/15
f 28/33/16 27/35/16 24/8/16
f 32/36/17 35/37/17 29/5/17
f 34/38/18 32/36/18 30/4/18
f 35/37/19 34/38/19 31/39/19
f 39/40/20 42/41/20 36/1/20
f 41/42/21 39/40/21 37/7/21
f 42/41/22 41/42/22 38/2/22
f 46/43/23 49/44/23 43/10/23
f 48/45/24 46/43/24 44/46/24
f 49/44/25 48/45/25 45/11/25
f 53/47/26 56/48/26 50/12/26
f 55/49/27 53/47/27 51/50/27
f 56/48/28 55/51/28 52/52/28
f 23/9/29 22/34/29 1/15/29
f 2/17/1 22/34/1 3/53/1
f 22/34/1 28/33/1 24/8/1
f 3/53/1 22/34/1 24/8/1
f 24/8/1 36/1/1 3/53/1
f 36/1/1 42/41/1 38/2/1
f 38/2/1 16/29/1 15/3/1
f 16/29/1 18/26/1 15/3/1
f 15/3/1 3/53/1 36/1/1
f 3/53/1 6/16/1 2/17/1
f 51/50/2 45/11/2 52/54/2
f 45/11/2 48/45/2 44/46/2
f 52/54/2 45/11/2 44/46/2
f 44/46/2 30/4/2 52/54/2
f 30/4/2 32/36/2 29/5/2
f 29/5/2 9/23/2 8/6/2
f 9/23/2 11/20/2 8/6/2
f 8/6/2 52/54/2 30/4/2
f 52/54/2 55/49/2 51/50/2
f 43/10/3 37/7/3 23/9/3
f 37/7/3 39/40/3 36/1/3
f 24/8/3 37/7/3 36/1/3
f 24/8/3 27/35/3 23/9/3
f 23/9/3 31/39/3 43/10/3
f 31/39/3 34/38/3 30/4/3
f 43/10/3 31/39/3 44/46/3
f 30/4/3 44/46/3 31/39/3
f 44/46/3 46/43/3 43/10/3
f 16/29/4 38/2/4 17/55/4
f 38/2/4 41/42/4 37/7/4
f 17/55/4 38/2/4 37/7/4
f 37/7/4 43/10/4 17/55/4
f 43/10/4 49/44/4 45/11/4
f 45/11/4 51/50/4 50/12/4
f 51/50/4 53/47/4 50/12/4
f 50/12/4 17/55/4 43/10/4
f 17/55/4 20/28/4 16/29/4
f 4/13/30 5/56/30 7/14/30
f 6/16/31 5/56/31 4/13/31
f 7/14/32 5/56/32 6/18/32
f 11/20/33 12/57/33 14/21/33
f 13/22/34 12/57/34 11/20/34
f 14/21/35 12/57/35 13/24/35
f 18/26/36 19/58/36 21/27/36
f 20/28/37 19/58/37 18/26/37
f 21/27/38 19/58/38 20/30/38
f 25/32/39 26/59/39 28/33/39
f 27/35/40 26/59/40 25/32/40
f 28/33/41 26/59/41 27/35/41
f 32/36/42 33/60/42 35/37/42
f 34/38/43 33/60/43 32/36/43
f 35/37/44 33/60/44 34/38/44
f 39/40/45 40/61/45 42/41/45
f 41/42/46 40/61/46 39/40/46
f 42/41/47 40/61/47 41/42/47
f 46/43/48 47/62/48 49/44/48
f 48/45/49 47/62/49 46/43/49
f 49/44/50 47/62/50 48/45/50
f 53/47/51 54/63/51 56/48/51
f 55/49/52 54/63/52 53/47/52
f 56/48/53 54/63/53 55/51/53
f 9/23/29 29/5/29 10/64/29
f 29/5/29 35/37/29 31/39/29
f 10/64/29 29/5/29 31/39/29
f 31/39/29 23/9/29 10/64/29
f 23/9/29 25/32/29 22/34/29
f 22/34/29 2/17/29 1/15/29
f 2/17/29 4/13/29 1/15/29
f 1/15/29 10/64/29 23/9/29
f 10/64/29 13/22/29 9/23/29

View File

@ -0,0 +1,13 @@
# Blender MTL File: 'emulator.blend'
# Material Count: 1
newmtl Button
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.003095 0.002616 0.002869
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
map_Kd ../Buttons texture.png

Binary file not shown.

View File

@ -1,5 +1,5 @@
# Blender MTL File: 'emulator.blend' # Blender MTL File: 'emulator.blend'
# Material Count: 4 # Material Count: 3
newmtl Behind_buttons newmtl Behind_buttons
Ns 0.000000 Ns 0.000000
@ -11,17 +11,6 @@ Ni 1.550000
d 1.000000 d 1.000000
illum 2 illum 2
newmtl Button
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.003095 0.002616 0.002869
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
map_Kd /home/rokas/code/fun/chip8-zig/src/assets/models/Buttons texture.png
newmtl Case newmtl Case
Ns 298.057005 Ns 298.057005
Ka 1.000000 1.000000 1.000000 Ka 1.000000 1.000000 1.000000
@ -41,4 +30,4 @@ Ke 0.000000 0.000000 0.000000
Ni 1.450000 Ni 1.450000
d 1.000000 d 1.000000
illum 2 illum 2
map_Kd /home/rokas/code/fun/chip8-zig/src/assets/models/screen-texture.png map_Kd screen-texture.png

View File

@ -0,0 +1,3 @@
Behind_buttons
Case
Screen

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
Case_Cube.001
Screen_Cube.003
Behind_buttons_Plane

View File

@ -1,8 +1,106 @@
import bpy import bpy
from os import path
import os
from dataclasses import dataclass
import shutil
@dataclass
class OBJMetadata:
materials: list[str]
objects: list[str]
D = bpy.data
C = bpy.context
def select_one_object(obj):
bpy.ops.object.select_all(action='DESELECT')
bpy.context.view_layer.objects.active = obj # type: ignore
obj.select_set(True)
def iter_buttons():
object_names = D.objects.keys()
assert object_names
for name in object_names:
print(name)
if name.startswith("Buttons "):
yield D.objects[name]
def extract_metadata(obj_path):
mtl_filename = None
objects = []
with open(obj_path, "r") as f:
for line in f.readlines():
if line.startswith("mtllib"):
mtl_filename = line.removeprefix("mtllib ")
elif line.startswith("o"):
object_name = line.strip().removeprefix("o ")
objects.append(object_name)
materials = []
if mtl_filename:
mtl_path = path.join(path.dirname(obj_path), mtl_filename).strip()
with open(mtl_path, "r") as f:
for line in f.readlines():
if not line.startswith("newmtl"): continue
material_name = line.strip().removeprefix("newmtl ")
materials.append(material_name)
return OBJMetadata(materials, objects)
def write_list_to_file(filename, values):
with open(filename, "w") as f:
for i in range(len(values)):
if i > 0: f.write("\n")
f.writelines(values[i])
export_options = {
"use_triangles": True,
"use_materials": True,
"use_normals": True,
"use_vertex_groups": True,
"path_mode": "RELATIVE",
}
bpy.ops.object.select_all(action="SELECT")
for btn in iter_buttons():
btn.select_set(False)
bpy.ops.export_scene.obj( bpy.ops.export_scene.obj(
filepath="emulator.obj", filepath="emulator.obj",
use_triangles=True, use_selection=True,
use_materials=True, **export_options
use_normals=True,
) )
metadata = extract_metadata("emulator.obj")
write_list_to_file("emulator.mtls.txt", metadata.materials)
write_list_to_file("emulator.objs.txt", metadata.objects)
object_names = D.objects.keys()
assert object_names
for name in object_names:
if name.startswith("Buttons "):
button_name = name.removeprefix("Buttons ")
button_obj_path = f"buttons/Button {button_name}.obj"
button_mtl_path = f"buttons/Button {button_name}.mtl"
select_one_object(D.objects[name])
bpy.ops.export_scene.obj(
filepath=button_obj_path,
use_selection=True,
**export_options
)
tmp_file = "/tmp/blender_export"
with open(button_obj_path, "r") as src:
with open(tmp_file, "w") as dst:
for line in src.readlines():
if line.startswith("mtllib"):
dst.write("mtllib Button.mtl\n")
else:
dst.write(line)
os.remove(button_obj_path)
shutil.move(tmp_file, button_obj_path)
if button_name == "0":
os.rename("buttons/Button 0.mtl", "buttons/Button.mtl")
else:
os.remove(button_mtl_path)

View File

@ -1,9 +1,6 @@
const Self = @This(); const Self = @This();
const rl = @import("raylib"); const rl = @import("raylib");
const std = @import("std"); const std = @import("std");
const MemoryView = @import("memory-view.zig").MemoryView;
const Range = @import("memory-view.zig").Range;
const UI = @import("ui.zig").UI;
const GlobalContext = @import("./global-context.zig"); const GlobalContext = @import("./global-context.zig");
const ChipContext = @import("chip.zig"); const ChipContext = @import("chip.zig");
@ -11,13 +8,7 @@ const RaylibChip = @import("raylib-chip.zig");
const assert = std.debug.assert; const assert = std.debug.assert;
const Allocator = std.mem.Allocator; const Allocator = std.mem.Allocator;
const StringList = std.ArrayList([]const u8);
const Tab = enum {
MemoryView
};
var edit_mode = false;
var tab = Tab.MemoryView;
ctx: *GlobalContext, ctx: *GlobalContext,
allocator: Allocator, allocator: Allocator,
@ -25,6 +16,7 @@ allocator: Allocator,
model: rl.Model, model: rl.Model,
model_bbox: rl.BoundingBox, model_bbox: rl.BoundingBox,
model_position: rl.Vector3, model_position: rl.Vector3,
model_buttons: [16]rl.Model,
camera_turn_vel: rl.Vector3 = rl.Vector3{ .x = 0, .y = 0, .z = 0 }, camera_turn_vel: rl.Vector3 = rl.Vector3{ .x = 0, .y = 0, .z = 0 },
camera_target_orientation: ?rl.Vector3 = null, camera_target_orientation: ?rl.Vector3 = null,
@ -168,14 +160,34 @@ fn get_preffered_distance_to_box(camera: *const rl.Camera3D, box: rl.BoundingBox
return distance; return distance;
} }
fn find_line_in_file(filename: []const u8, target: []const u8) !?usize {
const file = try std.fs.cwd().openFile(filename, .{ .mode = .read_only });
defer file.close();
const reader = file.reader();
var buf: [512]u8 = undefined;
var i: usize = 0;
while (true) {
const line = try reader.readUntilDelimiterOrEof(&buf, '\n');
if (line == null) { continue; }
if (std.mem.eql(u8, line.?, target)) {
return i;
}
i += 1;
}
return null;
}
pub fn init(allocator: Allocator, ctx: *GlobalContext) !Self { pub fn init(allocator: Allocator, ctx: *GlobalContext) !Self {
// var temp_mem = [1]u8{0xAA} ** (16*80 + 10); var model_buttons = [1]rl.Model{ undefined } ** 16;
// var memory_view = MemoryView.init(&temp_mem, &font, 32); inline for ([_][]const u8{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" }, 0..) |letter, i| {
// var memory_view = MemoryView.init(chip.memory, &font, font_size, &allocator); model_buttons[i] = rl.LoadModel("src/assets/models/buttons/Button " ++ letter ++ ".obj");
// var selected_memory = Range{}; }
// var ui = UI.init();
var model = rl.LoadModel("src/assets/models/emulator.obj"); var model = rl.LoadModel("src/assets/models/emulator.obj");
const screen_idx = try find_line_in_file("src/assets/models/emulator.mtls.txt", "Screen");
var model_bbox = rl.GetModelBoundingBox(model); var model_bbox = rl.GetModelBoundingBox(model);
var model_position = rl.Vector3{ }; var model_position = rl.Vector3{ };
@ -191,6 +203,11 @@ pub fn init(allocator: Allocator, ctx: *GlobalContext) !Self {
for (0..@intCast(model.materialCount)) |i| { for (0..@intCast(model.materialCount)) |i| {
model.materials.?[i].shader = shader; model.materials.?[i].shader = shader;
} }
for (model_buttons) |btn_model| {
for (0..@intCast(btn_model.materialCount)) |i| {
btn_model.materials.?[i].shader = shader;
}
}
var chip = try allocator.create(ChipContext); var chip = try allocator.create(ChipContext);
chip.* = try ChipContext.init(allocator); chip.* = try ChipContext.init(allocator);
@ -213,8 +230,7 @@ pub fn init(allocator: Allocator, ctx: *GlobalContext) !Self {
var screen_texture = rl.LoadRenderTexture(chip.display_width, chip.display_height); var screen_texture = rl.LoadRenderTexture(chip.display_width, chip.display_height);
// TODO: Don't use the fourth material, use name of material to get its index. Or some other more reliable method rl.SetMaterialTexture(@ptrCast(&model.materials.?[screen_idx.?]), rl.MATERIAL_MAP_DIFFUSE, screen_texture.texture);
rl.SetMaterialTexture(@ptrCast(&model.materials.?[3]), rl.MATERIAL_MAP_DIFFUSE, screen_texture.texture);
var self = Self { var self = Self {
.allocator = allocator, .allocator = allocator,
@ -222,6 +238,7 @@ pub fn init(allocator: Allocator, ctx: *GlobalContext) !Self {
.model = model, .model = model,
.model_bbox = model_bbox, .model_bbox = model_bbox,
.model_position = model_position, .model_position = model_position,
.model_buttons = model_buttons,
.shader = shader, .shader = shader,
.light = light, .light = light,
@ -316,16 +333,6 @@ fn update_camera(self: *Self, dt: f32) void {
} }
pub fn update(self: *Self, dt: f32) void { pub fn update(self: *Self, dt: f32) void {
if (rl.IsKeyPressed(rl.KeyboardKey.KEY_TAB)) {
edit_mode = !edit_mode;
}
if (edit_mode) {
if (rl.IsKeyPressed(rl.KeyboardKey.KEY_ONE)) {
tab = .MemoryView;
}
}
self.update_camera(dt); self.update_camera(dt);
const camera = &self.ctx.camera; const camera = &self.ctx.camera;
@ -388,26 +395,11 @@ pub fn update(self: *Self, dt: f32) void {
pub fn draw(self: *Self) void { pub fn draw(self: *Self) void {
rl.DrawModel(self.model, self.model_position, 1.0, rl.WHITE); rl.DrawModel(self.model, self.model_position, 1.0, rl.WHITE);
// rl.DrawMesh(self.screen_mesh, self.screen_material, self.screen_transform); for (self.model_buttons, 0..) |btn_model, i| {
var position = self.model_position;
// if (!edit_mode) { if (self.chip.is_input_pressed(@intCast(i))) {
// rl.ClearBackground(rl.DARKGRAY); position.z += 0.035;
// }
// const scale_x = @divFloor(screen_width, chip.display_width); rl.DrawModel(btn_model, position, 1.0, rl.WHITE);
// const scale_y = @divFloor(screen_height, chip.display_height); }
// const min_scale = @min(scale_x, scale_y);
//
// const display_width = chip.display_width * min_scale;
// const display_height = chip.display_height * min_scale;
// const display_x = @divFloor(screen_width - display_width, 2);
// const display_y = @divFloor(screen_height - display_height, 2);
// raylib_chip.render(display_x, display_y, display_width, display_height);
// } else {
// rl.ClearBackground(rl.RAYWHITE);
// ui.update();
//
// if (tab == .MemoryView) {
// try memory_view.show(&ui, 0, 0, @floatFromInt(screen_width), @floatFromInt(screen_height), &selected_memory);
// }
// }
} }

View File

@ -48,7 +48,7 @@ pub fn main() anyerror!void {
} }
} }
main_scene.chip.set_memory(0x200, roms[3].data); main_scene.chip.set_memory(0x200, roms[2].data);
const font_size = 24; const font_size = 24;
const font_ttf_default_numchars = 95; // TTF font generation default charset: 95 glyphs (ASCII 32..126) const font_ttf_default_numchars = 95; // TTF font generation default charset: 95 glyphs (ASCII 32..126)

View File

@ -1,340 +0,0 @@
const rl = @import("raylib");
const std = @import("std");
const UILib = @import("ui.zig");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const UI = UILib.UI;
const HorizontalLayout = UILib.HorizontalLayout;
fn nibble_to_char(nibble: u4) u8 {
if (0 <= nibble and nibble <= 9) {
return '0' + @as(u8, nibble);
} else {
return 'A' + @as(u8, nibble - 10);
}
}
fn hex_to_strz(str: [:0]u8, number: u32) void {
var i: i32 = @intCast(str.len-1);
var leftover = number;
while (leftover > 0 and i >= 0): (leftover >>= 4) {
const nibble: u4 = @intCast(leftover & 0b1111);
str[@intCast(i)] = nibble_to_char(nibble);
i -= 1;
}
while (i >= 0): (i -= 1) {
str[@intCast(i)] = '0';
}
}
fn clamp(value: f32, min: f32, max: f32) f32 {
return @min(@max(value, min), max);
}
pub const Range = struct { start: u32 = 0, end: u32 = 0 };
pub const MemoryView = struct {
const Highlight = struct {
range: Range,
color: rl.Color
};
font: *const rl.Font,
font_size: f32,
base_address: u32,
memory: []u8,
scroll: f32 = 0,
scrolling: bool = false,
selecting: bool = false,
editing: bool = false,
editing_byte: u32 = 0,
selection_pivot: u32 = 0,
allocator: *const Allocator,
grey_out_zeros: bool = true,
text_color: rl.Color = rl.BLACK,
dim_text_color: rl.Color = rl.GRAY,
row_width: u5 = 16,
pub fn init(memory: []u8, font: *const rl.Font, font_size: f32, allocator: *const Allocator) MemoryView {
return MemoryView{
.allocator = allocator,
.base_address = 0,
.memory = memory,
.font = font,
.font_size = font_size,
};
}
pub fn get_memory_row_count(self: *const MemoryView) f32 {
return @ceil(@as(f32, @floatFromInt(self.memory.len)) / @as(f32, @floatFromInt(self.row_width)));
}
pub fn get_visible_row_count(self: *const MemoryView, height: f32) f32 {
return @min(height / self.font_size, self.get_memory_row_count());
}
pub fn get_max_scroll(self: *const MemoryView, height: f32) f32 {
return @max(self.get_memory_row_count() - self.get_visible_row_count(height), 0);
}
pub fn show(self: *MemoryView, ui: *UI, x: f32, y: f32, width: f32, height: f32, selection: *Range) !void {
if (ui.is_mouse_inside(x, y, width, height)) {
self.scroll -= rl.GetMouseWheelMove();
}
self.scroll = clamp(self.scroll, 0, self.get_max_scroll(height));
const from_row: u32 = @intFromFloat(@floor(self.scroll));
const to_row: u32 = @intFromFloat(@ceil(self.scroll + self.get_visible_row_count(height)));
const scroll_offset = @rem(self.scroll, 1) * self.font_size;
var layout = HorizontalLayout.init(x, y - scroll_offset, width, height);
layout.push(try self.show_address_column(ui, layout.next_x(), layout.next_y(), from_row, to_row));
layout.push(self.show_hex_column(ui, layout.next_x(), layout.next_y(), selection, from_row, to_row));
layout.push(self.show_ascii_column(ui, layout.next_x(), layout.next_y(), selection, from_row, to_row));
layout.push(self.show_scrollbar(ui, layout.next_x(), y, height));
}
pub fn show_address_column(self: *MemoryView, ui: *UI, x: f32, y: f32, from_row: u32, to_row: u32) !f32 {
const font = self.font.*;
const font_size = self.font_size;
const margin = font_size/2;
const memory_size_f32: f32 = @floatFromInt(self.memory.len);
const memory_size_log10: u32 = @intFromFloat(@floor(@log2(memory_size_f32)/2));
const address_column_max_chars: u32 = memory_size_log10 + 1;
const row_count = (to_row - from_row);
var label_buf = try self.allocator.allocSentinel(u8, address_column_max_chars, 0);
defer self.allocator.free(label_buf);
hex_to_strz(label_buf, 0);
const column_width = rl.MeasureTextEx(font, label_buf, font_size, 0).x + 2*margin;
ui.pushTransformT(.{ .ox = x, .oy = y });
for (0..row_count) |i| {
const row = from_row + @as(u32, @intCast(i));
const row_address = self.base_address + row*self.row_width;
hex_to_strz(label_buf, row_address);
const cell_rect = rl.Rectangle {
.x = 0,
.y = self.font_size * @as(f32, @floatFromInt(i)),
.height = self.font_size,
.width = column_width
};
if (ui.is_mouse_inside_rect(cell_rect)) {
rl.DrawRectangleRec(cell_rect, rl.RED);
}
const text_pos = rl.Vector2{ .x = cell_rect.x + margin, .y = cell_rect.y };
rl.DrawTextEx(font, label_buf, text_pos, font_size, 0, self.text_color);
}
ui.popTransform();
return column_width;
}
fn is_in_range(x: u32, from: u32, to: u32) bool {
return from <= x and x < to;
}
pub fn show_hex_column(self: *MemoryView, ui: *UI, x: f32, y: f32, selection: *Range, from_row: u32, to_row: u32) f32 {
assert(self.row_width <= 16);
const font = self.font.*;
const font_size = self.font_size;
const margin = font_size/6;
var middle_margin: f32 = 0.0;
if (self.row_width == 16) {
middle_margin = font_size/2;
}
const cell_width = rl.MeasureTextEx(font, "00", font_size, 0).x;
const row_count = (to_row - from_row);
const highlights = [_]Highlight{
Highlight{ .range = .{ .start = 16, .end = 17, }, .color = rl.RED },
Highlight{ .range = selection.*, .color = rl.RED },
};
ui.pushTransformT(.{ .ox = x, .oy = y });
var cell_bufz = [_:0]u8{0} ** 2;
for (0..row_count) |i| {
const row = from_row + @as(u32, @intCast(i));
const row_memory_idx: u32 = @intCast(row*self.row_width);
var cell_rects: [16]rl.Rectangle = undefined;
const to_column = @min(self.memory.len - row*self.row_width, self.row_width);
for (0..to_column) |column| {
var cell_rect = rl.Rectangle {
.x = (cell_width + 2*margin) * @as(f32, @floatFromInt(column)),
.y = 0,
.width = cell_width + 2*margin,
.height = self.font_size
};
if (column >= self.row_width/2) {
cell_rect.x += middle_margin;
}
cell_rects[column] = cell_rect;
}
for (highlights) |highlight| {
const highlight_start = highlight.range.start;
const highlight_end = highlight.range.end;
if (row_memory_idx >= highlight_end) continue;
if (row_memory_idx+self.row_width <= highlight_start) continue;
var highlight_from_column: u32 = undefined;
if (row_memory_idx > highlight_start) {
highlight_from_column = 0;
} else {
highlight_from_column = @mod(highlight_start, self.row_width);
}
var highlight_to_column: u32 = undefined;
if (row_memory_idx+self.row_width <= highlight_end) {
highlight_to_column = self.row_width-1;
} else {
highlight_to_column = @mod(highlight_end-1, self.row_width);
}
const from_cell = cell_rects[highlight_from_column];
const to_cell = cell_rects[highlight_to_column];
rl.DrawRectangleRec(rl.Rectangle{
.x = from_cell.x,
.y = from_cell.y,
.width = (to_cell.x+to_cell.width) - from_cell.x,
.height = (to_cell.y+to_cell.height) - from_cell.y,
}, highlight.color);
}
for (0..to_column) |column| {
const memory_idx: u32 = row_memory_idx + @as(u32, @intCast(column));
if (ui.is_holding_mouse(cell_rects[column], &self.selecting)) {
if (self.selecting) {
self.selection_pivot = memory_idx;
selection.start = memory_idx;
selection.end = memory_idx+1;
}
}
if (self.selecting) {
if (ui.is_mouse_inside_rect(cell_rects[column])) {
if (memory_idx > self.selection_pivot) {
selection.start = self.selection_pivot;
selection.end = memory_idx+1;
} else {
selection.start = memory_idx;
selection.end = self.selection_pivot+1;
}
}
}
const text_pos = rl.Vector2{ .x = cell_rects[column].x + margin };
const value = self.memory[memory_idx];
hex_to_strz(&cell_bufz, value);
var color = self.text_color;
if (self.grey_out_zeros and value == 0) {
color = self.dim_text_color;
}
rl.DrawTextEx(font, &cell_bufz, text_pos, font_size, 0, color);
}
ui.translate(0, font_size);
}
ui.popTransform();
return (cell_width + 2*margin)*@as(f32, @floatFromInt(self.row_width)) + middle_margin;
}
pub fn show_ascii_column(self: *MemoryView, ui: *UI, x: f32, y: f32, selection: *Range, from_row: u32, to_row: u32) f32 {
const font = self.font.*;
const font_size = self.font_size;
const margin = font_size/2;
const cell_width = rl.MeasureTextEx(font, ".", font_size, 0).x;
const row_count = (to_row - from_row);
ui.pushTransformT(.{ .ox = x+margin, .oy = y });
for (0..row_count) |i| {
const row = from_row + @as(u32, @intCast(i));
const to_column = @min(self.memory.len - row*self.row_width, self.row_width);
for (0..to_column) |column| {
const memory_idx: u32 = @intCast(row*self.row_width + column);
const value = self.memory[memory_idx];
var char: u8 = 'A';
if (std.ascii.isPrint(value)) {
char = value;
} else {
char = '.';
}
const pos_x = cell_width * @as(f32, @floatFromInt(column));
if (selection.start <= memory_idx and memory_idx < selection.end) {
const cell_rect = rl.Rectangle{
.x = pos_x,
.y = 0,
.height = self.font_size,
.width = cell_width
};
rl.DrawRectangleRec(cell_rect, rl.RED);
}
const char_str = [2]u8 { char, 0 };
rl.DrawTextEx(font, char_str[0..1 :0], rl.Vector2{ .x = pos_x }, font_size, 0, self.text_color);
}
ui.translate(0, font_size);
}
ui.popTransform();
return cell_width*@as(f32, @floatFromInt(self.row_width)) + 2*margin;
}
pub fn show_scrollbar(self: *MemoryView, ui: *UI, x: f32, y: f32, height: f32) f32 {
const max_scroll = self.get_max_scroll(height);
if (max_scroll == 0) {
return 0;
}
const visible_row_count = self.get_visible_row_count(height);
const memory_row_count = self.get_memory_row_count();
const visible_percent = visible_row_count / memory_row_count;
const scroll_percent = self.scroll / max_scroll;
const scrollbar_height = visible_percent * height;
const scrollbar = rl.Rectangle {
.x = x,
.y = y + scroll_percent * (height - scrollbar_height),
.width = self.font_size,
.height = scrollbar_height
};
var color = rl.BLACK;
_ = ui.is_holding_mouse(scrollbar, &self.scrolling);
if (self.scrolling) {
const mouse_dy = rl.GetMouseDelta().y;
self.scroll += (mouse_dy / (height - scrollbar_height) * max_scroll);
self.scroll = clamp(self.scroll, 0, max_scroll);
color = rl.DARKGRAY;
}
rl.DrawRectangleRec(scrollbar, color);
return scrollbar.width;
}
};

View File

@ -1,230 +0,0 @@
const rl = @import("raylib");
const assert = @import("std").debug.assert;
pub const UI = struct {
const TransformFrame = struct {
ox: f32 = 0,
oy: f32 = 0,
sx: f32 = 1,
sy: f32 = 1,
};
frames: [16]TransformFrame,
top_frame: u32,
mouse: rl.Vector2,
mouse_delta: rl.Vector2,
pub fn init() UI {
return UI{
.frames = [1]TransformFrame{ TransformFrame{} } ** 16,
.top_frame = 0,
.mouse = rl.Vector2.zero(),
.mouse_delta = rl.Vector2.zero(),
};
}
pub fn pushTransform(self: *UI) void {
assert(self.top_frame < self.frames.len-1);
rl.rlPushMatrix();
self.top_frame += 1;
self.frames[self.top_frame] = self.frames[self.top_frame - 1];
}
pub fn pushTransformT(self: *UI, transform: TransformFrame) void {
self.pushTransform();
self.translate(transform.ox, transform.oy);
self.scale(transform.sx, transform.sy);
}
pub fn translate(self: *UI, x: f32, y: f32) void {
const top_frame = &self.frames[self.top_frame];
top_frame.ox += x * top_frame.sx;
top_frame.oy += y * top_frame.sy;
rl.rlTranslatef(x, y, 0);
}
pub fn scale(self: *UI, x: f32, y: f32) void {
const top_frame = &self.frames[self.top_frame];
top_frame.sx *= x;
top_frame.sy *= y;
rl.rlScalef(x, y, 0);
}
pub fn popTransform(self: *UI) void {
rl.rlPopMatrix();
self.top_frame -= 1;
}
pub fn update(self: *UI) void {
assert(self.top_frame == 0); // Check if 'pushTransform()' and 'popTransform()' are paired
self.frames[0] = .{};
self.mouse = rl.GetMousePosition();
self.mouse_delta = rl.GetMouseDelta();
}
/// Screen space -> UI space
pub fn apply_transform(self: *UI, vec2: rl.Vector2) rl.Vector2 {
const top_frame = &self.frames[self.top_frame];
return rl.Vector2{
.x = (vec2.x - top_frame.ox) * top_frame.sx,
.y = (vec2.y - top_frame.oy) * top_frame.sy
};
}
pub fn apply_scale(self: *UI, vec2: rl.Vector2) rl.Vector2 {
const top_frame = &self.frames[self.top_frame];
return rl.Vector2{
.x = vec2.x * top_frame.sx,
.y = vec2.y * top_frame.sy,
};
}
pub fn get_mouse(self: *UI) rl.Vector2 {
return self.apply_transform(self.mouse);
}
pub fn get_mouse_delta(self: *UI) rl.Vector2 {
return self.apply_scale(self.mouse_delta);
}
pub fn is_mouse_inside(self: *UI, x: f32, y: f32, width: f32, height: f32) bool {
const mouse = self.get_mouse();
return (x <= mouse.x and mouse.x < x+width) and (y <= mouse.y and mouse.y < y+height);
}
pub fn is_mouse_inside_rect(self: *UI, rect: rl.Rectangle) bool {
return self.is_mouse_inside(rect.x, rect.y, rect.width, rect.height);
}
pub fn is_mouse_down() bool {
return rl.IsMouseButtonDown(rl.MouseButton.MOUSE_BUTTON_LEFT);
}
pub fn is_mouse_up() bool {
return rl.IsMouseButtonUp(rl.MouseButton.MOUSE_BUTTON_LEFT);
}
pub fn was_secondary_mouse_pressed() bool {
return rl.IsMouseButtonPressed(rl.MouseButton.MOUSE_BUTTON_RIGHT);
}
pub fn is_holding_mouse(self: *UI, rect: rl.Rectangle, state: *bool) bool {
if (!state.* and UI.is_mouse_down() and self.is_mouse_inside_rect(rect)) {
state.* = true;
return true;
}
if (UI.is_mouse_up()) {
state.* = false;
return true;
}
return false;
}
};
pub const UIBox = struct {
x: f32,
y: f32,
width: f32,
height: f32,
vert_margin: f32,
horz_margin: f32,
pub fn init(x: f32, y: f32, width: f32, height: f32) UIBox {
return UIBox {
.x = x,
.y = y,
.width = width,
.height = height,
.vert_margin = 0,
.horz_margin = 0,
};
}
pub fn init_rect(rectangle: rl.Rectangle) UIBox {
return UIBox.init(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
}
pub fn body_x(self: *UIBox) f32 {
return self.x + self.horz_margin;
}
pub fn body_y(self: *UIBox) f32 {
return self.y + self.vert_margin;
}
pub fn body_width(self: *UIBox) f32 {
return self.width - 2*self.horz_margin;
}
pub fn body_height(self: *UIBox) f32 {
return self.height - 2*self.vert_margin;
}
pub fn body_rect(self: *UIBox) rl.Rectangle {
return rl.Rectangle{
.x = self.body_x(),
.y = self.body_y(),
.width = self.body_width(),
.height = self.body_height()
};
}
pub fn rect(self: *UIBox) rl.Rectangle {
return rl.Rectangle{
.x = self.x,
.y = self.y,
.width = self.width,
.height = self.height
};
}
};
pub const HorizontalLayout = struct {
x: f32,
y: f32,
width: f32,
height: f32,
used_width: f32,
pub fn init(x: f32, y: f32, width: f32, height: f32) HorizontalLayout {
return HorizontalLayout{
.x = x,
.y = y,
.width = width,
.height = height,
.used_width = 0
};
}
pub fn next_x(self: *HorizontalLayout) f32 {
return self.x + self.used_width;
}
pub fn next_y(self: *HorizontalLayout) f32 {
return self.y;
}
pub fn push_rect(self: *HorizontalLayout, width: f32) rl.Rectangle {
const rect = rl.Rectangle{
.x = self.next_x(),
.y = self.next_y(),
.width = width,
.height = self.height
};
self.push(width);
return rect;
}
pub fn push(self: *HorizontalLayout, width: f32) void {
self.used_width += width;
}
pub fn used_size(self: *HorizontalLayout) rl.Vector2 {
return rl.Vector2{ .x = self.used_width, .y = self.height };
}
};