Compare commits
913 Commits
cube-map-a
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
3b25514233 | ||
|
45d969c16e | ||
|
fe8b0a57cd | ||
|
3437ce6173 | ||
|
8452d18575 | ||
|
4c40ddd12d | ||
|
00a08bf5f0 | ||
|
52ea40100f | ||
|
4ba056c6d9 | ||
|
67b44042bd | ||
|
1ef8047f42 | ||
|
b8114ebd91 | ||
|
a6876f0872 | ||
|
5f779ea3d5 | ||
|
bedc836cb0 | ||
|
56ca9d694b | ||
|
d752b34dfc | ||
|
b55a5e1906 | ||
|
ea8e7b6048 | ||
|
e8c1dee3b5 | ||
|
819584ef15 | ||
|
ea194309ef | ||
|
b280ad8c12 | ||
|
90dbd52aca | ||
|
2a09c7f83c | ||
|
3fffa4c4ca | ||
|
592f84b548 | ||
|
836f75d7fe | ||
|
f389aa2f4a | ||
|
4a35c4feba | ||
|
53e8e6d719 | ||
|
b8db45fc7c | ||
|
34cac6f464 | ||
|
5dbf839f76 | ||
|
806182835f | ||
|
52a36c9b18 | ||
|
1f1741effb | ||
|
96f146d6f0 | ||
|
23618a2fa8 | ||
|
030f8b298a | ||
|
c8ba61ca56 | ||
|
a8ce6916e7 | ||
|
b110551db6 | ||
|
9ea1630057 | ||
|
32b9d6597e | ||
|
b6467a92a3 | ||
|
0bee5f915d | ||
|
536ffc899e | ||
|
a56907a956 | ||
|
5a1ab063b7 | ||
|
a173e1b9eb | ||
|
95ce45c944 | ||
|
faf19aa424 | ||
|
9b89007674 | ||
|
40dfbf33d9 | ||
|
96a8943cb7 | ||
|
b52bef795a | ||
|
9b2ca4d1d3 | ||
|
93f790ec22 | ||
|
9b57eb0df1 | ||
|
2962acfded | ||
|
d642582956 | ||
|
127ee7a6ca | ||
|
fc2ce96771 | ||
|
2b2e05f009 | ||
|
5546abd24a | ||
|
796db123b7 | ||
|
b39e6702cc | ||
|
6d167a2d2a | ||
|
319b57bf7a | ||
|
300f14c752 | ||
|
3de85042d0 | ||
|
2a2e89d445 | ||
|
78972a87bf | ||
|
2a3f976b5e | ||
|
1fd6058eaf | ||
|
a07a4bbb91 | ||
|
2a0cb3ca1d | ||
|
795801faa6 | ||
|
3680abfba4 | ||
|
09282f51fd | ||
|
3a2156492e | ||
|
43b752ee63 | ||
|
f9212c9938 | ||
|
79223b4c02 | ||
|
ac48ab8cc0 | ||
|
d0fed9a321 | ||
|
a7fb739204 | ||
|
7957b8b555 | ||
|
498be94102 | ||
|
7b742e913f | ||
|
73f7ec6a70 | ||
|
761d25e9c7 | ||
|
1dde41d5f4 | ||
|
07e036451d | ||
|
ab7d1c81df | ||
|
10a87be81f | ||
|
ea21910255 | ||
|
15412b9b45 | ||
|
78e7362392 | ||
|
5f0e5cf623 | ||
|
0ae43db53e | ||
|
9fced79888 | ||
|
c74397a567 | ||
|
f338fe8c94 | ||
|
1f6dc97e12 | ||
|
c091c3fd38 | ||
|
22d4ee0769 | ||
|
6bb9624908 | ||
|
d58ba7c1c7 | ||
|
857fc76c40 | ||
|
48d9f173f3 | ||
|
a1de7e5231 | ||
|
e06eea7c5d | ||
|
7b80f34f4f | ||
|
d1df99914a | ||
|
40da86aad6 | ||
|
36173438cc | ||
|
e9179eba71 | ||
|
d6aef2a244 | ||
|
e13ddb14f6 | ||
|
b19118252f | ||
|
608c159aa6 | ||
|
33e7baed94 | ||
|
5d52c9cdaf | ||
|
dd9997dc82 | ||
|
e2ed7cac88 | ||
|
bf9ec726fc | ||
|
f4adcb122b | ||
|
2b0be77ac9 | ||
|
85d08d81d2 | ||
|
398147d79c | ||
|
834496699d | ||
|
92fbc39dc5 | ||
|
33c59fc387 | ||
|
f35d35cc94 | ||
|
e888d7df0e | ||
|
dfaf8c0965 | ||
|
65552409f0 | ||
|
8f6c27ae32 | ||
|
63acfef341 | ||
|
370135fca8 | ||
|
7e0394df00 | ||
|
680f32424f | ||
|
70b7289a43 | ||
|
68a355dbe9 | ||
|
a725cf8b43 | ||
|
ab6d2e4ffd | ||
|
4d6ee7093f | ||
|
436495f0c7 | ||
|
e2e343db1a | ||
|
9a54c033c0 | ||
|
3614ff4892 | ||
|
3d6a681676 | ||
|
08d809ea51 | ||
|
9faa23784d | ||
|
e8fae9fb59 | ||
|
285b049f04 | ||
|
26834c1b0f | ||
|
144d82fd63 | ||
|
b967085e7d | ||
|
89874b8612 | ||
|
1bf34b6751 | ||
|
df2435efdc | ||
|
da26ac016d | ||
|
5e9b550ea1 | ||
|
efa2fb5ef5 | ||
|
86be3f43dd | ||
|
db2d696374 | ||
|
96aaee816e | ||
|
f32e78f06b | ||
|
41eed47edb | ||
|
5569079511 | ||
|
e2de06fe2b | ||
|
09fc128136 | ||
|
79e75b70ec | ||
|
680b8bcd5d | ||
|
3a0ec498ae | ||
|
710644a822 | ||
|
8a66c35b64 | ||
|
534405ffdf | ||
|
8e18b24f94 | ||
|
bc8315db35 | ||
|
6c0d2e72bf | ||
|
5966a54a1c | ||
|
0b6df8ef5a | ||
|
15a0d4aefb | ||
|
5616e9ce7b | ||
|
87942dbb14 | ||
|
d10047176d | ||
|
4d941a52a5 | ||
|
c74d2c8b89 | ||
|
8325611c28 | ||
|
c25d2b86a0 | ||
|
c856227b47 | ||
|
f4d84a2b11 | ||
|
e7a2eac348 | ||
|
8349f8594e | ||
|
3090c5e0f9 | ||
|
428c9df4ea | ||
|
1b3fa3eed3 | ||
|
cbb65848d9 | ||
|
75396ce127 | ||
|
dbd2b665be | ||
|
6e27f018a7 | ||
|
2c3a73d556 | ||
|
2b90ca6d3c | ||
|
71decbd5b3 | ||
|
8d5ce5cf18 | ||
|
be21855e1d | ||
|
28119ea906 | ||
|
b03520f1e7 | ||
|
f1e87f4cb9 | ||
|
b4f20affeb | ||
|
9001de47ee | ||
|
6136c095ae | ||
|
7359e95d4c | ||
|
3ae3c84a39 | ||
|
7ef0fddd1f | ||
|
f71f9e0590 | ||
|
caf5d3cf22 | ||
|
f3887390a9 | ||
|
abb8c981bc | ||
|
0a75dd030a | ||
|
c2d669e5b3 | ||
|
67c1c812a5 | ||
|
95de9295e7 | ||
|
4992292563 | ||
|
8694025e08 | ||
|
3ad7ddf1cd | ||
|
2fce9296a7 | ||
|
936ab87ba0 | ||
|
251048bbd0 | ||
|
bfd8b25a7d | ||
|
4bfcc282a1 | ||
|
b313bd0645 | ||
|
9609c50335 | ||
|
5599a39eff | ||
|
4a7c552508 | ||
|
86fa3b1c66 | ||
|
6e8d3c36df | ||
|
eda952df70 | ||
|
528108e7bc | ||
|
371cccb273 | ||
|
65e2e326ed | ||
|
3ee8cfdbad | ||
|
ea248caa47 | ||
|
abca7c9f1e | ||
|
b8538be749 | ||
|
bac8308ae2 | ||
|
c89ce83fb3 | ||
|
451a0836cf | ||
|
ecb88e9140 | ||
|
185371d78c | ||
|
93f87cc9c5 | ||
|
b68015a6c4 | ||
|
bd584c3ce4 | ||
|
b90f03c397 | ||
|
d64d7ca0dc | ||
|
3eeea52f5e | ||
|
d3c812bba3 | ||
|
48174a4fb5 | ||
|
e02d223574 | ||
|
d24e70dbdd | ||
|
86619fd2dd | ||
|
1ab8bb9a92 | ||
|
0b8c426adb | ||
|
45fce8b464 | ||
|
e2078cb4a2 | ||
|
0f8f261d30 | ||
|
4b5e9416a1 | ||
|
5b5b4a8676 | ||
|
376c92d9b0 | ||
|
736aa50ac6 | ||
|
f38d57bb70 | ||
|
7d480d654f | ||
|
5dfa5f89e8 | ||
|
5778696d29 | ||
|
7288ff6fc9 | ||
|
3d5289da45 | ||
|
49f612fe67 | ||
|
60a127eefc | ||
|
9a4cb335a0 | ||
|
49f041341a | ||
|
c3a9652cf1 | ||
|
e328298474 | ||
|
cb762be52b | ||
|
39a0883466 | ||
|
a835604a5a | ||
|
b7fa9ee5a1 | ||
|
dfe83042b5 | ||
|
e34d9e4e38 | ||
|
1399f6ad7a | ||
|
23f8ea8fa7 | ||
|
0460b463d1 | ||
|
522e2f0db5 | ||
|
62e7c42ec6 | ||
|
f1526fd389 | ||
|
db18560dbf | ||
|
1b8b8125f4 | ||
|
00506c6b3e | ||
|
e4c9418d4a | ||
|
0f7240b047 | ||
|
2dd09aff19 | ||
|
95c88979f4 | ||
|
019c150521 | ||
|
99995d0745 | ||
|
d9f0950463 | ||
|
fa8ba1335e | ||
|
3e86b70778 | ||
|
2c333773b2 | ||
|
6af54ab02f | ||
|
8224250867 | ||
|
79faa2edea | ||
|
bb30aee8d3 | ||
|
bed9f09539 | ||
|
fce73f1285 | ||
|
b7f95ebb40 | ||
|
4b0c875504 | ||
|
d17ed99d96 | ||
|
d273d131e2 | ||
|
6004651adc | ||
|
98e8d10cdd | ||
|
01a61f43ac | ||
|
aa2ed3083a | ||
|
afae5ccd68 | ||
|
12f76ddd5a | ||
|
e14a2305a0 | ||
|
11322c0446 | ||
|
88d5229b35 | ||
|
cdde802756 | ||
|
d827bb8197 | ||
|
c01ca1a1f2 | ||
|
16ba763ddc | ||
|
8e1c776f80 | ||
|
94cdd16394 | ||
|
f48d6d4648 | ||
|
ef9c089d91 | ||
|
20055d7fc5 | ||
|
93fe07678c | ||
|
6fee8a81b1 | ||
|
8b5f6f9b74 | ||
|
b7718d73e8 | ||
|
a811ed57be | ||
|
fa47c93b46 | ||
|
0292ab422a | ||
|
a88112d639 | ||
|
2930a86959 | ||
|
f34dbf891c | ||
|
916c26cda1 | ||
|
b28f4d3bef | ||
|
dd0afd1978 | ||
|
686647fe93 | ||
|
6fe51809a0 | ||
|
0d8256abe5 | ||
|
8f0ec319c4 | ||
|
e043fe482a | ||
|
d5771f8eea | ||
|
6140c38813 | ||
|
4d0f2d7be5 | ||
|
48ed278101 | ||
|
9555786a09 | ||
|
986ed9ea8e | ||
|
c372a2d652 | ||
|
81d5f86db1 | ||
|
2fecf21509 | ||
|
813d50ee94 | ||
|
805a5f19b5 | ||
|
2125243a31 | ||
|
7dd4122d44 | ||
|
7ecb76dffa | ||
|
bb090fcf91 | ||
|
6e33af8e61 | ||
|
395803109d | ||
|
b61e7df089 | ||
|
8c34df49b7 | ||
|
b9bdb594f0 | ||
|
47bcf0bf1c | ||
|
4cc21fd378 | ||
|
41de72e3a1 | ||
|
97b9eeeac6 | ||
|
585e40bb8b | ||
|
0887ff5f46 | ||
|
0489fc81fa | ||
|
899253b53c | ||
|
8c1369ad2e | ||
|
1dad2f589f | ||
|
086713341b | ||
|
b974508683 | ||
|
39882d43c3 | ||
|
7f8150d5ed | ||
|
635f6ae546 | ||
|
eab9270b94 | ||
|
87b9634703 | ||
|
650ad89067 | ||
|
a64b1dac00 | ||
|
d49baa2a8c | ||
|
23a3730c37 | ||
|
134faaa67e | ||
|
272dce8900 | ||
|
eff6cabd09 | ||
|
84a9899516 | ||
|
6c78c93c2b | ||
|
abeab11875 | ||
|
2d65071887 | ||
|
9f19d74c2a | ||
|
501aa3def9 | ||
|
53b6db98e6 | ||
|
a77e06f8c8 | ||
|
174fafe5bc | ||
|
2b93aff35d | ||
|
510001b943 | ||
|
97a315661f | ||
|
b3b215e628 | ||
|
edd4f53f66 | ||
|
fd21dd0f9f | ||
|
320b765951 | ||
|
087d36aa15 | ||
|
236067435d | ||
|
8a76ad4133 | ||
|
563bde0616 | ||
|
c2621752fc | ||
|
153e0116c7 | ||
|
99d8a45380 | ||
|
af9f6d6933 | ||
|
f92c7bf6c3 | ||
|
c8788f3329 | ||
|
88d31bc68a | ||
|
3764bb5c6a | ||
|
1742d83d4b | ||
|
efa151aa73 | ||
|
fb028a899f | ||
|
ae1d04b5ee | ||
|
2c699590e2 | ||
|
0e550e52c6 | ||
|
de2ba0acb9 | ||
|
431a9e58b1 | ||
|
97329141bc | ||
|
f05e3d301c | ||
|
12099cb4a1 | ||
|
e9d6ca1c1e | ||
|
9bae3554a2 | ||
|
1f86981271 | ||
|
1adb8f1d80 | ||
|
dc5a281956 | ||
|
2873d300a8 | ||
|
760a7c9d86 | ||
|
3d59fb43c8 | ||
|
df230ea677 | ||
|
f2bfd12aa5 | ||
|
d4fe5e1ae1 | ||
|
1492a312ed | ||
|
265c0b2ce5 | ||
|
5e07aec885 | ||
|
fd1f32be6a | ||
|
377902a255 | ||
|
3f1616adf1 | ||
|
818178e665 | ||
|
51e9b26379 | ||
|
281466ebd5 | ||
|
98718b517e | ||
|
599c849bb0 | ||
|
55434daa24 | ||
|
9049458ad5 | ||
|
75792a5723 | ||
|
3fc8e9c11a | ||
|
d55bb3465c | ||
|
38d4ef8125 | ||
|
e91d045a37 | ||
|
1585195779 | ||
|
6ee8af58e3 | ||
|
d02a7fa02f | ||
|
1ac9e4e270 | ||
|
84d52fbaf2 | ||
|
aaadcbe413 | ||
|
de960237a4 | ||
|
1d8bbba1ca | ||
|
ba2cada6dc | ||
|
9afb3595d0 | ||
|
282eb32267 | ||
|
c28b35667f | ||
|
8cc467a806 | ||
|
2b4a8885b5 | ||
|
096cf12df0 | ||
|
d132cdd233 | ||
|
7647c5f1c0 | ||
|
21d94a420f | ||
|
d2cf4f0003 | ||
|
44153cd554 | ||
|
c4bed4c506 | ||
|
a669c83943 | ||
|
017c96bd55 | ||
|
a14d3420d5 | ||
|
ea58f2fbce | ||
|
320c1cb152 | ||
|
5c2491557b | ||
|
ed10994ebc | ||
|
7c8d149e3a | ||
|
ac19eac671 | ||
|
8babafadfd | ||
|
10082466cf | ||
|
7e8b0d4c58 | ||
|
2e90ac57d8 | ||
|
bb1cf8dea7 | ||
|
c4b01beaa8 | ||
|
e7ff009482 | ||
|
9ffe3cd886 | ||
|
b3e0d5ca47 | ||
|
5c1a342cdb | ||
|
35a13886c3 | ||
|
08e5492b4f | ||
|
2eaf2f7a58 | ||
|
75464e6819 | ||
|
b8dc153f10 | ||
|
1989cb6b13 | ||
|
5e2d2d4e57 | ||
|
2ddd753575 | ||
|
642caa85f6 | ||
|
60372cf1a1 | ||
|
4883b753c0 | ||
|
198dc0614f | ||
|
9c6cd7c59d | ||
|
ae5d31e04c | ||
|
8620e16681 | ||
|
a3e6da2ada | ||
|
e0d9058aef | ||
|
190df8b936 | ||
|
ec8767c14c | ||
|
d6ed98b992 | ||
|
ba0677adde | ||
|
114632b015 | ||
|
377372d1c6 | ||
|
7f13e89935 | ||
|
65087ece48 | ||
|
4d3db6f285 | ||
|
81f94ba221 | ||
|
b6a2b0d7b3 | ||
|
4c5bbb3c73 | ||
|
9088bb4561 | ||
|
d25e18ccc6 | ||
|
ec7250e937 | ||
|
a9ab76ea51 | ||
|
5a860f68c3 | ||
|
c29ced5210 | ||
|
89741cfcb3 | ||
|
f2353d670f | ||
|
e9e7fe1f7c | ||
|
db3fab3d35 | ||
|
56f179e5af | ||
|
a4ae90082a | ||
|
cfbf1b9208 | ||
|
bdb92b2cf1 | ||
|
f7e097029a | ||
|
00de8c0e82 | ||
|
7c1f0e7960 | ||
|
4c1860429a | ||
|
47b386296a | ||
|
1687a56f87 | ||
|
d1a3c3ac3d | ||
|
d41149e29e | ||
|
9847aa3374 | ||
|
2c9755209a | ||
|
099e0c17c7 | ||
|
650d505e4e | ||
|
99217ed399 | ||
|
cf836b151a | ||
|
1940b72b00 | ||
|
65a826f2af | ||
|
25bd4ba64e | ||
|
4ce7464ae7 | ||
|
8306f7ff19 | ||
|
5070940a94 | ||
|
4c71dbfbea | ||
|
bcdbb2534c | ||
|
c3f7b650fb | ||
|
2edbb196c2 | ||
|
aeb4b638c7 | ||
|
65ba8c0249 | ||
|
5670d35865 | ||
|
7cb3e3d620 | ||
|
19f1f0bb44 | ||
|
c2634543dc | ||
|
42b65fa9c0 | ||
|
a8fee3ad84 | ||
|
5dcabf0290 | ||
|
ba14a492f1 | ||
|
70dc3f1450 | ||
|
1cef3d4d0a | ||
|
7a830a472e | ||
|
75440f919f | ||
|
e66fb546b7 | ||
|
3e78b4f4bb | ||
|
aca199cd1b | ||
|
2327d80810 | ||
|
a128c947b1 | ||
|
53fe90fd14 | ||
|
f03a01461d | ||
|
90d64bbade | ||
|
0d8dc4b10d | ||
|
98091fa305 | ||
|
638323c1c2 | ||
|
073000d097 | ||
|
7934bf7991 | ||
|
913e862a88 | ||
|
3cba239897 | ||
|
a4adf627c3 | ||
|
b04e59c15a | ||
|
7275cdf280 | ||
|
0483fd995b | ||
|
80b03508a5 | ||
|
49b1c3c6c6 | ||
|
16bf2477b0 | ||
|
a137d2544a | ||
|
f4408b76e8 | ||
|
72d1009007 | ||
|
d936d1f269 | ||
|
fe58023458 | ||
|
60d76a58de | ||
|
70e2ebb605 | ||
|
76b6be0beb | ||
|
36c42123b8 | ||
|
5b6ad0c6d1 | ||
|
0649444687 | ||
|
20b0c66a17 | ||
|
7d3d7927fe | ||
|
1c2fbc2e91 | ||
|
62b8b0afb9 | ||
|
8d3e2c2fac | ||
|
f21b837b1c | ||
|
136e4d07f0 | ||
|
1cdca7b686 | ||
|
b16a90bd15 | ||
|
5b2c4a6bbc | ||
|
ba847c80f0 | ||
|
bf46f117b6 | ||
|
be4a61e65b | ||
|
d700564b37 | ||
|
6db55f5622 | ||
|
104b8b4bbc | ||
|
799f191485 | ||
|
6b64ec7360 | ||
|
76053c5b2f | ||
|
76dbdac70c | ||
|
8072fd1cbb | ||
|
9fd8ae5cd8 | ||
|
2a7404e7d1 | ||
|
32f8683367 | ||
|
895d69fc66 | ||
|
adde6fd162 | ||
|
e099c231c7 | ||
|
04e5b3a5ac | ||
|
5454a7ddeb | ||
|
a20da59e4a | ||
|
7013f7cf71 | ||
|
00716b63bd | ||
|
a3cc265927 | ||
|
7e31717124 | ||
|
f19b1ddeb1 | ||
|
b6e6ee2d24 | ||
|
371f56695a | ||
|
60c5275e50 | ||
|
a393fb688d | ||
|
7d4d322fd1 | ||
|
efc0ac8938 | ||
|
ea587dc26b | ||
|
a65bfdde84 | ||
|
f499203f93 | ||
|
1b1d06294b | ||
|
f108b64acc | ||
|
f03274082e | ||
|
5640bf137e | ||
|
0979c51ed0 | ||
|
ad567157c4 | ||
|
acdf1b3285 | ||
|
f681987358 | ||
|
cc93cf7259 | ||
|
36f7217288 | ||
|
21009d0032 | ||
|
50c4b16367 | ||
|
44f2bd953d | ||
|
80cbc58f81 | ||
|
7f21f0e872 | ||
|
b2aabe68db | ||
|
e9a47db962 | ||
|
e531ede144 | ||
|
5b2233e1b3 | ||
|
bf6d4d69a9 | ||
|
07d11e2bd1 | ||
|
330abfcccb | ||
|
b4e9218e95 | ||
|
8a7f7da0a8 | ||
|
89d3b48c47 | ||
|
45d4b944c4 | ||
|
b0c371f610 | ||
|
9764bc9d0b | ||
|
cb488035cb | ||
|
db9b90d089 | ||
|
291a0f1899 | ||
|
d21569e71b | ||
|
8c7648a51e | ||
|
f3255f1053 | ||
|
ae0d44c96a | ||
|
5f16738c39 | ||
|
3f594ed21f | ||
|
7f20ef3ec5 | ||
|
4ad1f0607d | ||
|
db1092be44 | ||
|
6eb52d2dab | ||
|
03e94f0bb0 | ||
|
3bb584631c | ||
|
dbaa4f639f | ||
|
2a501ac047 | ||
|
3339ac208e | ||
|
780897e1ab | ||
|
cfe29d2830 | ||
|
0e2f5ac580 | ||
|
ca3b29251e | ||
|
cb825a6588 | ||
|
f83bb7ec7d | ||
|
097e1acfbc | ||
|
4d1fbc6045 | ||
|
3f9d8a815b | ||
|
de47c1bdd6 | ||
|
086e13ac8e | ||
|
8108003d52 | ||
|
76fd5ade92 | ||
|
7710520c52 | ||
|
72a6e7c3c9 | ||
|
0c5dbee654 | ||
|
a54752a905 | ||
|
f218a141fa | ||
|
8c427003cd | ||
|
41d8e23c60 | ||
|
1ab7783d41 | ||
|
ed960eff53 | ||
|
aa764cfa39 | ||
|
09fc76d26b | ||
|
947e9376fb | ||
|
27c2248117 | ||
|
fca69b547b | ||
|
af8f85c3c4 | ||
|
98e78b915e | ||
|
a8457d9399 | ||
|
2a9bfbf5da | ||
|
37c1006431 | ||
|
eb90142e81 | ||
|
b49f93afd4 | ||
|
ef8fbb7296 | ||
|
2d7165da66 | ||
|
9f4071cef7 | ||
|
85215a1a95 | ||
|
c09b056e84 | ||
|
272532bb1f | ||
|
f0d904a9ff | ||
|
259e6c88f2 | ||
|
cd8bfc77cc | ||
|
756102138d | ||
|
0333e3c074 | ||
|
63d3c468f3 | ||
|
21db09af94 | ||
|
0865c356be | ||
|
e15b9f2f54 | ||
|
220b72f85b | ||
|
1ae3a4c8ae | ||
|
f6bdf5dc32 | ||
|
76307f751f | ||
|
b1d54533e0 | ||
|
cc9f2a3916 | ||
|
17c1d38d7e | ||
|
3fcd677dd5 | ||
|
808a7a0569 | ||
|
263e9e72af | ||
|
348d624564 | ||
|
13e08945df | ||
|
742a1848ea | ||
|
8af201fd2f | ||
|
79fd16ad8d | ||
|
4f4dec9725 | ||
|
232d807aeb | ||
|
56ead969e7 | ||
|
6f4c67503e | ||
|
c0bf4e2d79 | ||
|
5e457c9d4d | ||
|
a608b8ada4 | ||
|
90213dea7e | ||
|
ee3a07077e | ||
|
5570637cf7 | ||
|
6e827b5c1c | ||
|
99b1064d54 | ||
|
f2b960637a | ||
|
0b2a8a12f3 | ||
|
60595084dc | ||
|
9c64346163 | ||
|
f64b81fc85 | ||
|
47f05108d2 | ||
|
79b76bfba1 | ||
|
97d1694b38 | ||
|
e70416a336 | ||
|
e990c7aff0 | ||
|
d37d1d4c68 | ||
|
697b3192df | ||
|
2c5175f123 | ||
|
d7c2173a8e | ||
|
2366ba0ecb | ||
|
269f205967 | ||
|
c2045d1654 | ||
|
702455fbb0 | ||
|
c9e8de0105 | ||
|
dd4d4b47ea | ||
|
41bd37adb0 | ||
|
85ed747c38 | ||
|
0d207b533a | ||
|
d5ebbdbf6a | ||
|
3df40fd385 | ||
|
49f498e0a2 | ||
|
170443b5b8 | ||
|
6d7df9b363 | ||
|
e336f28f81 | ||
|
b7dd35c478 | ||
|
b81f7cfa76 | ||
|
85be96d302 | ||
|
1d3ec46893 | ||
|
54568d4f6b | ||
|
eb2e7cab7f | ||
|
773219d6bf | ||
|
3b9dddfae9 | ||
|
e522df0ff3 | ||
|
b7846a9b06 | ||
|
a635804aa5 | ||
|
249de19217 | ||
|
04dff93bcb | ||
|
aa66aa4b4f | ||
|
d0cf6b2da4 | ||
|
841d5d9122 | ||
|
b7ab0c990a | ||
|
5aaf8f5d9f | ||
|
67bcbf0398 | ||
|
20e7c732e2 | ||
|
669e9e0334 | ||
|
51bb3a9868 | ||
|
dc06154163 | ||
|
3f28b0d2e2 | ||
|
8cccd9fc8c | ||
|
8a96be1275 | ||
|
91099d91a0 | ||
|
088ae1d494 | ||
|
6530d4084c | ||
|
59b3d68b33 | ||
|
32f6944397 | ||
|
565351f7d2 | ||
|
4fb383976b | ||
|
22c9a7a936 | ||
|
6e922ec4ec | ||
|
704df860f8 | ||
|
3cca41740a | ||
|
bbbdd2854e | ||
|
ad874a9204 | ||
|
b7834b08a5 | ||
|
2c512acc13 | ||
|
f063b7ef8b | ||
|
dfd6b3789a | ||
|
4039bad9f9 | ||
|
c7518a7f8e | ||
|
84a3dbba4f | ||
|
56a1bfeb76 | ||
|
45bbc07490 | ||
|
6df854bbf5 | ||
|
f30c5a8850 | ||
|
a33c9c9bd9 | ||
|
efea5db271 | ||
|
d84a4640d5 | ||
|
9367026ef0 | ||
|
1c848f35e6 | ||
|
ba77cd68ac | ||
|
777bce286d | ||
|
e8ad41c75b | ||
|
7f0a493a01 | ||
|
89a3018221 | ||
|
d2d5c18090 | ||
|
0e3dc33b80 | ||
|
d6ee36c071 | ||
|
e0c8820bd0 | ||
|
f2b45b56bf | ||
|
7b53bc3a5e | ||
|
00182a509c | ||
|
b116f1c506 | ||
|
463181d484 | ||
|
4b6d6f1a6d | ||
|
913ec3c05b | ||
|
5966de6701 | ||
|
e34e1ad04d | ||
|
c87d62cae9 | ||
|
e3c8be4d0e | ||
|
41ae3908ab | ||
|
048ab1ceaf | ||
|
64f030765f | ||
|
600b4edc60 | ||
|
6c32a0c35a | ||
|
f1a2aeb7ab | ||
|
f87af894c1 | ||
|
362b4f0230 | ||
|
678c6cf85f | ||
|
1e7c7989de | ||
|
d968277137 | ||
|
682a25a7ee | ||
|
ba5df84895 | ||
|
976567fd97 | ||
|
59c1798ea0 | ||
|
8d082e203b | ||
|
1b876b4c35 | ||
|
5bb35582a2 | ||
|
fb04712bfb | ||
|
9024d29d12 |
8
.gitignore
vendored
@ -1,8 +1,12 @@
|
|||||||
binaries
|
binaries
|
||||||
build
|
build
|
||||||
Makefile
|
/Makefile
|
||||||
CMakeLists.txt.user
|
CMakeLists.txt.user
|
||||||
*.cbp
|
*.cbp
|
||||||
*~
|
*~
|
||||||
*.zip
|
*.zip
|
||||||
|
*.db
|
||||||
|
*.blend1
|
||||||
|
*.swp
|
||||||
|
*.pyc
|
||||||
|
*.o
|
||||||
|
@ -3,11 +3,11 @@ CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
|
|||||||
add_subdirectory(converter)
|
add_subdirectory(converter)
|
||||||
|
|
||||||
# project/binary name:
|
# project/binary name:
|
||||||
PROJECT(MarbleRaceGroupC)
|
PROJECT(saxum)
|
||||||
|
|
||||||
# ACGL setup
|
# ACGL setup
|
||||||
SET(ACGL_OPENGL_SUPPORT CORE_40)
|
SET(ACGL_OPENGL_SUPPORT CORE_32)
|
||||||
ADD_DEFINITIONS(-DACGL_OPENGL_VERSION_40)
|
ADD_DEFINITIONS(-DACGL_OPENGL_VERSION_32)
|
||||||
ADD_DEFINITIONS(-DACGL_OPENGL_PROFILE_CORE)
|
ADD_DEFINITIONS(-DACGL_OPENGL_PROFILE_CORE)
|
||||||
# create the newest availabe OpenGL context, independent of the ACGL version:
|
# create the newest availabe OpenGL context, independent of the ACGL version:
|
||||||
#ADD_DEFINITIONS(-DGLFW_OPENGL_LATEST_VERSION)
|
#ADD_DEFINITIONS(-DGLFW_OPENGL_LATEST_VERSION)
|
||||||
@ -53,21 +53,28 @@ ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
|
|||||||
#
|
#
|
||||||
# Lets the binary get written to a shared folder (which can be ignored by git).
|
# Lets the binary get written to a shared folder (which can be ignored by git).
|
||||||
# Will also set the run directory for QTCreator:
|
# Will also set the run directory for QTCreator:
|
||||||
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -DSAXUM_DEBUG -g")
|
||||||
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -DSAXUM_DEBUG -g")
|
||||||
|
|
||||||
|
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -DNDEBUG")
|
||||||
|
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -DNDEBUG")
|
||||||
|
|
||||||
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/binaries)
|
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/binaries)
|
||||||
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
|
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
|
||||||
|
|
||||||
# source and header files
|
# source and header files
|
||||||
FILE(GLOB SOURCE_FILES "${CMAKE_SOURCE_DIR}/*.cc")
|
FILE(GLOB SOURCE_FILES "${CMAKE_SOURCE_DIR}/game/*.cc")
|
||||||
SET(SOURCE_FILES ${SOURCE_FILES} ${SOURCE_FILES_SHARED})
|
|
||||||
|
|
||||||
FILE(GLOB HEADER_FILES "${CMAKE_SOURCE_DIR}/*.hh")
|
FILE(GLOB HEADER_FILES "${CMAKE_SOURCE_DIR}/game/*.hh")
|
||||||
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_SHARED})
|
|
||||||
|
|
||||||
# shader files
|
# tinyxml
|
||||||
FILE(GLOB_RECURSE SHADER_FILES "${CMAKE_SOURCE_DIR}/Shader/*.*")
|
|
||||||
|
|
||||||
# Readme
|
FILE(GLOB HEADER_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.hh")
|
||||||
FILE(GLOB_RECURSE README_FILES "${CMAKE_SOURCE_DIR}/../Readme.md")
|
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_TINYXML})
|
||||||
|
FILE(GLOB SOURCE_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.cc")
|
||||||
|
SET(SOURCE_FILES ${SOURCE_FILES} ${SOURCE_FILES_TINYXML})
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/tinyxml)
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -76,7 +83,6 @@ FILE(GLOB_RECURSE README_FILES "${CMAKE_SOURCE_DIR}/../Readme.md")
|
|||||||
#
|
#
|
||||||
# all we need for ACGL:
|
# all we need for ACGL:
|
||||||
#
|
#
|
||||||
ADD_DEFINITIONS(-DACGL_ERROR_LEVEL_EC3)
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
|
INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
@ -87,6 +93,11 @@ INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
|
|||||||
# GLFW (and some other linker flags)
|
# GLFW (and some other linker flags)
|
||||||
#
|
#
|
||||||
|
|
||||||
|
OPTION(GLFW_BUILD_DOCS OFF)
|
||||||
|
OPTION(GLFW_BUILD_TESTS OFF)
|
||||||
|
OPTION(GLFW_BUILD_EXAMPLES OFF)
|
||||||
|
OPTION(GLFW_INSTALL OFF)
|
||||||
|
|
||||||
FILE(GLOB_RECURSE HEADER_FILES_GLFW "${CMAKE_SOURCE_DIR}/extern/glfw/include/*.h")
|
FILE(GLOB_RECURSE HEADER_FILES_GLFW "${CMAKE_SOURCE_DIR}/extern/glfw/include/*.h")
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/glfw/include)
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/glfw/include)
|
||||||
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_GLFW})
|
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_GLFW})
|
||||||
@ -106,7 +117,7 @@ ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|||||||
# Linux:
|
# Linux:
|
||||||
#
|
#
|
||||||
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
SET(LIBRARIES ${LIBRARIES} -lXrandr -lGL -lXi -pthread -lm -lX11 -lXxf86vm)
|
SET(LIBRARIES ${LIBRARIES} -lXrandr -lGL -lXi -pthread -lm -lX11 -lXxf86vm -ldl)
|
||||||
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
@ -131,6 +142,20 @@ else()
|
|||||||
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/BulletSoftBody/libBulletSoftBody.a)
|
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/BulletSoftBody/libBulletSoftBody.a)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Include Lua
|
||||||
|
|
||||||
ADD_EXECUTABLE(MarbleRaceGroupC ${SOURCE_FILES} ${HEADER_FILES} ${SHADER_FILES} ${README_FILES})
|
FILE(GLOB_RECURSE HEADER_FILES_LUA ${CMAKE_SOURCE_DIR}/extern/lua/src/*.h)
|
||||||
TARGET_LINK_LIBRARIES(MarbleRaceGroupC ${LIBRARIES})
|
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/lua/src)
|
||||||
|
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_LUA})
|
||||||
|
|
||||||
|
FILE(GLOB_RECURSE HEADER_FILES_LUA_BRIDGE ${CMAKE_SOURCE_DIR}/extern/luabridge/*.h)
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/luabridge)
|
||||||
|
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_LUA_BRIDGE})
|
||||||
|
|
||||||
|
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/lua/src/liblua.a)
|
||||||
|
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(saxum ${SOURCE_FILES} ${HEADER_FILES})
|
||||||
|
TARGET_LINK_LIBRARIES(saxum ${LIBRARIES} ${CMAKE_DL_LIBS})
|
||||||
|
@ -10,3 +10,4 @@ run apt-get install -y ninja-build
|
|||||||
run apt-get install -y xorg-dev
|
run apt-get install -y xorg-dev
|
||||||
run apt-get install -y freeglut3-dev
|
run apt-get install -y freeglut3-dev
|
||||||
run apt-get install -y zip
|
run apt-get install -y zip
|
||||||
|
run apt-get install -y libreadline6-dev
|
||||||
|
471
LICENSE.txt
Normal file
@ -0,0 +1,471 @@
|
|||||||
|
All code except the one in extern is subject to the following license:
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014-2015 Fabian Klemp, Steffen Fündgens, Jasper Manousek, Simon
|
||||||
|
Froitzheim
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The code in extern contains the following libraries with their respective
|
||||||
|
licenses:
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
ACGL: ACGL - Aachen Computer Graphics Library
|
||||||
|
|
||||||
|
Intended to speed up graphics/OpenGL prototyping. Developed by Lars Krecklau
|
||||||
|
and Robert Menzel with help from Andreas Neu, Janis Born, Kersten Schuster, Ole
|
||||||
|
Untzelmann, based on prior work from Lars Krecklau.
|
||||||
|
|
||||||
|
Included third-party software:
|
||||||
|
* Includes lodepng by Lode Vandevenne, unchanged except for the include path in
|
||||||
|
* lodepng.cpp. lodepng is provided as-is, see license text in the lodepng
|
||||||
|
* source code. Includes OpenGL loader code created by a modified glLoadGen by
|
||||||
|
* Jason McKesson. Includes GLM by Christophe Riccio. Includes data type
|
||||||
|
* definitions from libspnav header originally by John Tsiombikas (see
|
||||||
|
* mini_spnav.h for details). Includes RGBE/Radiance image import by Bruce
|
||||||
|
* Walter (code provided 'as-is') minimally adjusted to reduce compiler
|
||||||
|
* warnings.
|
||||||
|
|
||||||
|
Additional documentation:
|
||||||
|
http://www.graphics.rwth-aachen.de/redmine/projects/acgl/wiki
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
ACGL is distributed under the terms of the MIT license stated below.
|
||||||
|
|
||||||
|
Copyright (C) 2011-2012 Computer Graphics Group RWTH Aachen University
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
GLM License:
|
||||||
|
|
||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2005 - 2013 G-Truc Creation
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Linux Joystick License:
|
||||||
|
|
||||||
|
Copyright (C) 2008 Andreas Volz
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the “Software”), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies of the Software and its Copyright notices. In addition publicly
|
||||||
|
documented acknowledgment must be given that this software has been used if no
|
||||||
|
source code of this software is made available publicly. This includes
|
||||||
|
acknowledgments in either Copyright notices, Manuals, Publicity and Marketing
|
||||||
|
documents or any documentation provided with any product containing this
|
||||||
|
software. This License does not apply to any software that links to the
|
||||||
|
libraries provided by this software (statically or dynamically), but only to
|
||||||
|
the software provided.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TinyXML2 License:
|
||||||
|
|
||||||
|
Original code by Lee Thomason (www.grinninglizard.com)
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied
|
||||||
|
warranty. In no event will the authors be held liable for any
|
||||||
|
damages arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any
|
||||||
|
purpose, including commercial applications, and to alter it and
|
||||||
|
redistribute it freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must
|
||||||
|
not claim that you wrote the original software. If you use this
|
||||||
|
software in a product, an acknowledgment in the product documentation
|
||||||
|
would be appreciated but is not required.
|
||||||
|
|
||||||
|
2. Altered source versions must be plainly marked as such, and
|
||||||
|
must not be misrepresented as being the original software.
|
||||||
|
|
||||||
|
3. This notice may not be removed or altered from any source
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Bullet Physics License:
|
||||||
|
|
||||||
|
Bullet Continuous Collision Detection and Physics Library Copyright (c)
|
||||||
|
2003-2011 Erwin Coumans http://bulletphysics.org
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied warranty. In
|
||||||
|
no event will the authors be held liable for any damages arising from the use
|
||||||
|
of this software. Permission is granted to anyone to use this software for any
|
||||||
|
purpose, including commercial applications, and to alter it and redistribute it
|
||||||
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not claim
|
||||||
|
that you wrote the original software. If you use this software in a product, an
|
||||||
|
acknowledgment in the product documentation would be appreciated but is not
|
||||||
|
required. 2. Altered source versions must be plainly marked as such, and must
|
||||||
|
not be misrepresented as being the original software. 3. This notice may not
|
||||||
|
be removed or altered from any source distribution.
|
||||||
|
|
||||||
|
|
||||||
|
All files in the extern/bullet/src folder are under this Zlib license. Files in the
|
||||||
|
Extras and Demos folder may have a different license, see the respective files.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
GLFW License:
|
||||||
|
|
||||||
|
Copyright (c) 2002-2006 Marcus Geelnard
|
||||||
|
Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied
|
||||||
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any purpose,
|
||||||
|
including commercial applications, and to alter it and redistribute it
|
||||||
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
|
claim that you wrote the original software. If you use this software
|
||||||
|
in a product, an acknowledgment in the product documentation would
|
||||||
|
be appreciated but is not required.
|
||||||
|
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not
|
||||||
|
be misrepresented as being the original software.
|
||||||
|
|
||||||
|
3. This notice may not be removed or altered from any source
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Lua License:
|
||||||
|
|
||||||
|
Copyright © 1994–2015 Lua.org, PUC-Rio.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
LuaBridge License:
|
||||||
|
|
||||||
|
https://github.com/vinniefalco/LuaBridge
|
||||||
|
|
||||||
|
Copyright 2012, Vinnie Falco <vinnie.falco@gmail.com>
|
||||||
|
Copyright 2007, Nathan Reed
|
||||||
|
|
||||||
|
License: The MIT License (http://www.opensource.org/licenses/mit-license.php)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Licenses for Models and Textures:
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
data/textures/sand.png is from
|
||||||
|
http://opengameart.org/node/18616
|
||||||
|
Created by Christian Femmer aka Duion.
|
||||||
|
It is licensed CC-BY 3.0,
|
||||||
|
see https://creativecommons.org/licenses/by/3.0/ for full license text.
|
||||||
|
|
||||||
|
data/textures/hintTexture2.png is based on this.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
data/textures/nightskydome.png was generated with:
|
||||||
|
http://wwwtyro.github.io/procedural.js/space/ Source code here:
|
||||||
|
https://github.com/wwwtyro/procedural.js
|
||||||
|
Seed: NTc3MDMzNjg3ODQ4NQ
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
data/textures/skydomeNew.png was modified and originally taken from:
|
||||||
|
http://www.tutorialsforblender3d.com/Textures/Skys/Sky_Dome_1.html
|
||||||
|
|
||||||
|
The author states that the images were created with "Terragen(tm) Classic for
|
||||||
|
Windows" and according to their license, the textures are free for personal
|
||||||
|
non-commercial use.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
All textures in data/textures/cgtextures are subject to the following license:
|
||||||
|
|
||||||
|
This document is a license agreement ("License") by CGTextures between the user
|
||||||
|
("You") and CGTextures. Use of the photographs on the CGTextures website is
|
||||||
|
conditional upon the your agreement to the terms and conditions of purchase set
|
||||||
|
out below. If you do not agree to these terms, then you must not accept the
|
||||||
|
terms hereof or purchase, download, access or otherwise use any products from
|
||||||
|
CGTextures.
|
||||||
|
|
||||||
|
CGTextures may revise and update this Agreement at anytime and without notice.
|
||||||
|
Your continued use of the website after any such changes are posted will
|
||||||
|
constitute your acceptance of these changes.
|
||||||
|
|
||||||
|
LICENSE
|
||||||
|
|
||||||
|
CGTextures offers photographs of materials ("Textures") on its website
|
||||||
|
(www.cgtextures.com) for game developers, special effects artists, graphic
|
||||||
|
designers and other professions. No payment or royalties are required to use
|
||||||
|
these Textures. The use of Textures is non-exclusive, royalty free, and you
|
||||||
|
have the right to modify them for the uses permitted under the clause
|
||||||
|
Conditions of Use. Most Textures on the CGTextures website are photographed by
|
||||||
|
CGTextures. A small part is photographed by third party contributors
|
||||||
|
("Contributors"). CGTextures has separate agreements with these Contributors in
|
||||||
|
which they grant CGTextures permission to add their Textures to the website.
|
||||||
|
All terms and conditions in this License apply to both groups of Textures. All
|
||||||
|
Textures and materials remain in ownership of CGTextures or the Contributor and
|
||||||
|
the Textures and materials are licensed to you, not sold.
|
||||||
|
|
||||||
|
The license granted for the use of the textures gives you no lawful right to
|
||||||
|
submit, use or otherwise make available the textures in Second Life or
|
||||||
|
otherwise to Linden Research, Inc. Use of the textures in such manner will be
|
||||||
|
an infringement of the intellectual property rights if CGTextures and
|
||||||
|
CGTextures reserves its right to take action to prevent any such infringement.
|
||||||
|
|
||||||
|
INTELLECTUAL PROPERTY
|
||||||
|
|
||||||
|
All materials including the organization and presentation of these materials on
|
||||||
|
the CGTextures website are the property of CGTextures or its Contributors and
|
||||||
|
are protected by intellectual property laws. Some images contain graphic
|
||||||
|
materials like wallpaper patterns, logos, names or signs. The use of these kind
|
||||||
|
of images is at your own discretion. The rights for the photo lie with
|
||||||
|
CGTextures and the photo has been taken in a public space, but using the
|
||||||
|
patterns, logos or name in your work might not be allowed.
|
||||||
|
|
||||||
|
CONDITIONS OF USE
|
||||||
|
|
||||||
|
Use of the Textures is only allowed under the following conditions:
|
||||||
|
- Private or commercial use
|
||||||
|
- Use in 2D or 3D computer graphics, movies and printed media
|
||||||
|
- Incorporation in computer games, 3D models
|
||||||
|
- Selling 3D models bundled with modified versions of the textures, when the
|
||||||
|
texture is customized for the 3D model
|
||||||
|
|
||||||
|
It is NOT permitted to:
|
||||||
|
- Sell or distribute any of these textures in an unmodified form, or where the
|
||||||
|
derived product you are selling or distributing is a Texture or a collection
|
||||||
|
of Textures. IN OTHER WORDS: Do not sell or distribute any of these textures
|
||||||
|
(modified or not) by itself or in a texture pack, material, clipart, website
|
||||||
|
theme or scrapbooking pack!
|
||||||
|
- Bundle the images with software such as paint programs, 3D programs,
|
||||||
|
photo-kiosk software.
|
||||||
|
- Reselling or redistributing the images at 'print on demand' services (mugs,
|
||||||
|
t-shirts, mouse mats, etc)
|
||||||
|
- Use the textures in graphic design themes or templates sold to multiple
|
||||||
|
customers on digital market places (this includes templates of websites and
|
||||||
|
business cards and e-cards).
|
||||||
|
- Selling or redistributing skins for laptops, phones and other devices,
|
||||||
|
created with images from CGTextures.
|
||||||
|
- Stockpile images with the goal of making a local texture library.
|
||||||
|
- Using a special program (spider, leecher) or script to automatically download
|
||||||
|
all Textures on the CGTextures website. Users who try to mass download will
|
||||||
|
be banned from the website automatically.
|
||||||
|
- Interfere with the security or otherwise abuse, disrupt, place excessive
|
||||||
|
loads on, or attempt to gain unauthorized access to the CGTextures website or
|
||||||
|
any system resources or networks connected to this website.
|
||||||
|
- Release the Textures or derivative products under Open Source Licences
|
||||||
|
|
||||||
|
RESALE OR REDISTRIBUTION OF 3D MODELS TEXTURED WITH IMAGES FROM CGTEXTURES
|
||||||
|
|
||||||
|
When selling or redistributing a 3D model bundled with textures from CGTextures
|
||||||
|
please add the following text in the documentation accompanying the model:
|
||||||
|
|
||||||
|
"One or more textures on this 3D model have been created with images from
|
||||||
|
CGTextures.com. These images may not be redistributed by default, please visit
|
||||||
|
www.cgtextures.com for more information."
|
||||||
|
|
||||||
|
STOCKPILING IMAGES
|
||||||
|
|
||||||
|
CGTextures is meant as a 'download when you need it' resource. Downloading
|
||||||
|
complete categories with the goal of making a local copy of the texture
|
||||||
|
collection is not allowed.
|
||||||
|
|
||||||
|
PRIVACY
|
||||||
|
|
||||||
|
CGTextures respects the privacy of the personal information of the individuals
|
||||||
|
with whom we interact. CGTextures does not disclose personal information of our
|
||||||
|
members or those individuals who visit our website. No newsletters or offers
|
||||||
|
will be sent to you without your prior consent. Any information submitted by
|
||||||
|
the buyer will be used solely for the purpose of completing the transaction,
|
||||||
|
delivering the product and addressing any customer service issues.
|
||||||
|
|
||||||
|
We use third-party advertising companies (Google Adsense) to serve ads when you
|
||||||
|
visit our website. These companies may use information (not including
|
||||||
|
personally identifying information such as your name, address, email address,
|
||||||
|
or telephone number) about your visits to this and other websites in order to
|
||||||
|
provide advertisements about goods and services of interest to you. For more
|
||||||
|
information about this subject (including on how to "Opt-Out" on advertising
|
||||||
|
cookies) please visit this link: Google Advertsing and Privacy page
|
||||||
|
|
||||||
|
|
||||||
|
LIMITATION OF LIABILITY
|
||||||
|
|
||||||
|
You assume all responsibility and risk for the use of the CGTextures website,
|
||||||
|
the Textures, materials and information. CGTextures does not represent or
|
||||||
|
warrant that the site or any content available for downloading through the site
|
||||||
|
will be free of viruses or similar contaminations of destructive features.
|
||||||
|
|
||||||
|
In no event shall CGTextures or any of its affiliates, employees or
|
||||||
|
Contributors be liable for any incidental, indirect, punitive, exemplary or
|
||||||
|
consequential damages whatsoever, including damages for loss of profits,
|
||||||
|
interruption, loss of business information, loss of data, or any other
|
||||||
|
pecuniary loss in connection with any claim, loss, action, suit, damage or
|
||||||
|
other proceeding arising under or out of this License, including without
|
||||||
|
limitation your use of, reliance upon, access to or exploitation of the
|
||||||
|
CGTextures website, the materials or any part thereof, or any rights granted to
|
||||||
|
you hereunder, even if we have been advised of the possibility of such damaged,
|
||||||
|
wheter the action is based on contract, tort (including negligence),
|
||||||
|
infringement of intellectual property rights or otherwise.
|
||||||
|
|
||||||
|
INDEMNIFICATION
|
||||||
|
|
||||||
|
You agree to indemnify and hold CGTextures harmless against all claims or
|
||||||
|
liability asserted against CGTextures arising out of or in connection with any
|
||||||
|
breach by you or anyone acting on your behalf of any of this License
|
||||||
|
|
||||||
|
GENERAL
|
||||||
|
|
||||||
|
This License shall be governed by and construed in accordance with the laws of
|
||||||
|
The Netherlands, without regards to conflict of laws provisions thereto. The
|
||||||
|
parties consent to the exclusive jurisdiction of the courts of, and venue and
|
||||||
|
situs in The Netherlands.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
|
||||||
|
CGTextures reserves the right to terminate the license of the use of the
|
||||||
|
materials on CGTextures if the user is found in breach of this License and does
|
||||||
|
not remedy that breach within three (3) days of receiving notice from
|
||||||
|
CGTextures.
|
||||||
|
|
||||||
|
|
||||||
|
EMAIL
|
||||||
|
|
||||||
|
Feel free to email any questions regarding this license or any other questions
|
||||||
|
about CGTextures to support@cgtextures.com Correspondence can be in English or
|
||||||
|
Dutch.
|
||||||
|
|
||||||
|
ADDRESS
|
||||||
|
|
||||||
|
CGTextures.com Krommedijk 231 3312LE Dordrecht The Netherlands
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The logo in logo/ and also contained in the loading
|
||||||
|
screen(data/textures/loadingscreen.png and
|
||||||
|
data/textures/loadingscreenContinue.png) is subject to the following license:
|
||||||
|
|
||||||
|
Created by Fabian Klemp and Jeremy Theocharis in 2015.
|
||||||
|
Licensed by CC BY 4.0.
|
||||||
|
(see https://creativecommons.org/licenses/by/4.0/ for full license text)
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
All other models and textures contained in data/textures and data/geometry and
|
||||||
|
also the corresponding GIMP files in GIMPfiles and the Blender files in
|
||||||
|
Blenderfiles are subject to the following license:
|
||||||
|
|
||||||
|
Created by Simon Froitzheim, Fabian Klemp, Steffen Fündgens and Jasper Manousek in 2014 and 2015.
|
||||||
|
Licensed by CC BY 4.0.
|
||||||
|
(see https://creativecommons.org/licenses/by/4.0/ for full license text)
|
@ -1,721 +0,0 @@
|
|||||||
# Blender v2.72 (sub 0) OBJ File: 'ruins_block.blend'
|
|
||||||
# www.blender.org
|
|
||||||
o Block_Cube
|
|
||||||
v 0.003582 -1.000000 1.000000
|
|
||||||
v 0.003582 -1.000000 -1.000000
|
|
||||||
v 0.003581 1.000000 1.000000
|
|
||||||
v 0.003582 1.000000 -1.000000
|
|
||||||
v 0.003582 -1.000000 1.000000
|
|
||||||
v 0.003582 -1.000000 -1.000000
|
|
||||||
v 0.003581 1.000000 1.000000
|
|
||||||
v 0.003582 1.000000 -1.000000
|
|
||||||
v 2.003582 -0.973911 -0.973911
|
|
||||||
v 1.977493 -1.000000 -1.000000
|
|
||||||
v 1.977493 -1.000000 -1.000000
|
|
||||||
v 2.003316 -0.977624 -0.975900
|
|
||||||
v 2.002525 -0.981261 -0.978115
|
|
||||||
v 2.001224 -0.984749 -0.980509
|
|
||||||
v 1.999440 -0.988016 -0.983034
|
|
||||||
v 1.997210 -0.990996 -0.985640
|
|
||||||
v 1.994578 -0.993628 -0.988272
|
|
||||||
v 1.991598 -0.995859 -0.990877
|
|
||||||
v 1.988331 -0.997642 -0.993402
|
|
||||||
v 1.984843 -0.998943 -0.995797
|
|
||||||
v 1.981206 -0.999735 -0.998011
|
|
||||||
v 1.981206 -0.998011 -0.999734
|
|
||||||
v 1.984843 -0.995797 -0.998943
|
|
||||||
v 1.988331 -0.993402 -0.997642
|
|
||||||
v 1.991598 -0.990877 -0.995858
|
|
||||||
v 1.994578 -0.988272 -0.993628
|
|
||||||
v 1.997210 -0.985640 -0.990996
|
|
||||||
v 1.999440 -0.983034 -0.988016
|
|
||||||
v 2.001224 -0.980509 -0.984749
|
|
||||||
v 2.002525 -0.978115 -0.981261
|
|
||||||
v 2.003316 -0.975900 -0.977624
|
|
||||||
v 1.977493 -1.000000 1.000000
|
|
||||||
v 2.003582 -0.973911 0.973911
|
|
||||||
v 1.977493 -1.000000 1.000000
|
|
||||||
v 1.981206 -0.999735 0.998011
|
|
||||||
v 1.984843 -0.998943 0.995797
|
|
||||||
v 1.988331 -0.997642 0.993402
|
|
||||||
v 1.991598 -0.995859 0.990877
|
|
||||||
v 1.994578 -0.993628 0.988272
|
|
||||||
v 1.997210 -0.990996 0.985640
|
|
||||||
v 1.999440 -0.988016 0.983034
|
|
||||||
v 2.001224 -0.984749 0.980509
|
|
||||||
v 2.002525 -0.981261 0.978115
|
|
||||||
v 2.003316 -0.977624 0.975900
|
|
||||||
v 2.003316 -0.975900 0.977624
|
|
||||||
v 2.002525 -0.978115 0.981261
|
|
||||||
v 2.001224 -0.980509 0.984749
|
|
||||||
v 1.999440 -0.983034 0.988016
|
|
||||||
v 1.997210 -0.985640 0.990996
|
|
||||||
v 1.994578 -0.988272 0.993628
|
|
||||||
v 1.991598 -0.990877 0.995859
|
|
||||||
v 1.988331 -0.993402 0.997642
|
|
||||||
v 1.984843 -0.995797 0.998943
|
|
||||||
v 1.981206 -0.998011 0.999735
|
|
||||||
v 2.003582 0.973911 -0.973911
|
|
||||||
v 1.977494 1.000000 -0.999999
|
|
||||||
v 1.977494 1.000000 -0.999999
|
|
||||||
v 2.003317 0.975900 -0.977623
|
|
||||||
v 2.002526 0.978115 -0.981261
|
|
||||||
v 2.001225 0.980509 -0.984748
|
|
||||||
v 1.999441 0.983034 -0.988015
|
|
||||||
v 1.997210 0.985640 -0.990995
|
|
||||||
v 1.994578 0.988272 -0.993627
|
|
||||||
v 1.991598 0.990877 -0.995858
|
|
||||||
v 1.988331 0.993402 -0.997642
|
|
||||||
v 1.984843 0.995797 -0.998943
|
|
||||||
v 1.981206 0.998011 -0.999734
|
|
||||||
v 1.981206 0.999735 -0.998010
|
|
||||||
v 1.984844 0.998943 -0.995796
|
|
||||||
v 1.988331 0.997642 -0.993402
|
|
||||||
v 1.991598 0.995859 -0.990876
|
|
||||||
v 1.994578 0.993628 -0.988271
|
|
||||||
v 1.997210 0.990996 -0.985639
|
|
||||||
v 1.999441 0.988016 -0.983034
|
|
||||||
v 2.001225 0.984749 -0.980508
|
|
||||||
v 2.002526 0.981261 -0.978114
|
|
||||||
v 2.003317 0.977624 -0.975900
|
|
||||||
v 1.977492 1.000000 1.000001
|
|
||||||
v 2.003581 0.973911 0.973912
|
|
||||||
v 1.977492 1.000000 1.000001
|
|
||||||
v 1.981205 0.998011 0.999735
|
|
||||||
v 1.984842 0.995797 0.998944
|
|
||||||
v 1.988330 0.993402 0.997643
|
|
||||||
v 1.991597 0.990877 0.995859
|
|
||||||
v 1.994577 0.988272 0.993628
|
|
||||||
v 1.997209 0.985640 0.990996
|
|
||||||
v 1.999439 0.983034 0.988017
|
|
||||||
v 2.001224 0.980509 0.984750
|
|
||||||
v 2.002524 0.978115 0.981262
|
|
||||||
v 2.003315 0.975900 0.977625
|
|
||||||
v 2.003315 0.977624 0.975901
|
|
||||||
v 2.002524 0.981261 0.978115
|
|
||||||
v 2.001224 0.984749 0.980510
|
|
||||||
v 1.999439 0.988016 0.983035
|
|
||||||
v 1.997209 0.990996 0.985640
|
|
||||||
v 1.994577 0.993628 0.988272
|
|
||||||
v 1.991597 0.995859 0.990878
|
|
||||||
v 1.988330 0.997642 0.993403
|
|
||||||
v 1.984842 0.998943 0.995797
|
|
||||||
v 1.981205 0.999735 0.998011
|
|
||||||
v -1.996123 -0.973911 0.973911
|
|
||||||
v -1.970034 -1.000000 0.999999
|
|
||||||
v -1.970034 -1.000000 0.999999
|
|
||||||
v -1.995857 -0.977624 0.975900
|
|
||||||
v -1.995066 -0.981262 0.978114
|
|
||||||
v -1.993765 -0.984749 0.980508
|
|
||||||
v -1.991981 -0.988016 0.983034
|
|
||||||
v -1.989750 -0.990996 0.985639
|
|
||||||
v -1.987118 -0.993628 0.988271
|
|
||||||
v -1.984138 -0.995859 0.990876
|
|
||||||
v -1.980871 -0.997643 0.993402
|
|
||||||
v -1.977384 -0.998944 0.995796
|
|
||||||
v -1.973747 -0.999735 0.998010
|
|
||||||
v -1.973747 -0.998011 0.999734
|
|
||||||
v -1.977384 -0.995797 0.998943
|
|
||||||
v -1.980871 -0.993403 0.997642
|
|
||||||
v -1.984138 -0.990877 0.995858
|
|
||||||
v -1.987118 -0.988272 0.993627
|
|
||||||
v -1.989750 -0.985640 0.990995
|
|
||||||
v -1.991981 -0.983035 0.988015
|
|
||||||
v -1.993765 -0.980509 0.984748
|
|
||||||
v -1.995066 -0.978115 0.981261
|
|
||||||
v -1.995857 -0.975901 0.977624
|
|
||||||
v -1.970033 -1.000000 -1.000001
|
|
||||||
v -1.996122 -0.973911 -0.973912
|
|
||||||
v -1.970033 -1.000000 -1.000001
|
|
||||||
v -1.973746 -0.999735 -0.998012
|
|
||||||
v -1.977383 -0.998944 -0.995798
|
|
||||||
v -1.980871 -0.997643 -0.993403
|
|
||||||
v -1.984138 -0.995859 -0.990878
|
|
||||||
v -1.987118 -0.993628 -0.988273
|
|
||||||
v -1.989750 -0.990996 -0.985640
|
|
||||||
v -1.991981 -0.988016 -0.983035
|
|
||||||
v -1.993765 -0.984749 -0.980510
|
|
||||||
v -1.995065 -0.981262 -0.978115
|
|
||||||
v -1.995857 -0.977624 -0.975901
|
|
||||||
v -1.995857 -0.975901 -0.977625
|
|
||||||
v -1.995065 -0.978115 -0.981262
|
|
||||||
v -1.993765 -0.980509 -0.984750
|
|
||||||
v -1.991981 -0.983035 -0.988017
|
|
||||||
v -1.989750 -0.985640 -0.990997
|
|
||||||
v -1.987118 -0.988272 -0.993629
|
|
||||||
v -1.984138 -0.990877 -0.995859
|
|
||||||
v -1.980871 -0.993403 -0.997643
|
|
||||||
v -1.977383 -0.995797 -0.998944
|
|
||||||
v -1.973746 -0.998011 -0.999735
|
|
||||||
v -1.996123 0.973911 0.973910
|
|
||||||
v -1.970034 1.000000 0.999999
|
|
||||||
v -1.970034 1.000000 0.999999
|
|
||||||
v -1.995857 0.975900 0.977623
|
|
||||||
v -1.995066 0.978114 0.981260
|
|
||||||
v -1.993766 0.980509 0.984748
|
|
||||||
v -1.991982 0.983034 0.988015
|
|
||||||
v -1.989751 0.985639 0.990995
|
|
||||||
v -1.987119 0.988271 0.993627
|
|
||||||
v -1.984139 0.990877 0.995858
|
|
||||||
v -1.980872 0.993402 0.997642
|
|
||||||
v -1.977384 0.995796 0.998942
|
|
||||||
v -1.973747 0.998011 0.999734
|
|
||||||
v -1.973747 0.999734 0.998010
|
|
||||||
v -1.977384 0.998943 0.995796
|
|
||||||
v -1.980872 0.997642 0.993402
|
|
||||||
v -1.984139 0.995858 0.990876
|
|
||||||
v -1.987119 0.993628 0.988271
|
|
||||||
v -1.989751 0.990996 0.985639
|
|
||||||
v -1.991982 0.988016 0.983034
|
|
||||||
v -1.993766 0.984749 0.980508
|
|
||||||
v -1.995066 0.981261 0.978114
|
|
||||||
v -1.995857 0.977624 0.975900
|
|
||||||
v -1.970034 1.000000 -1.000000
|
|
||||||
v -1.996123 0.973911 -0.973912
|
|
||||||
v -1.970034 1.000000 -1.000000
|
|
||||||
v -1.973747 0.998011 -0.999735
|
|
||||||
v -1.977384 0.995796 -0.998944
|
|
||||||
v -1.980871 0.993402 -0.997643
|
|
||||||
v -1.984138 0.990877 -0.995859
|
|
||||||
v -1.987118 0.988271 -0.993628
|
|
||||||
v -1.989750 0.985639 -0.990996
|
|
||||||
v -1.991981 0.983034 -0.988016
|
|
||||||
v -1.993765 0.980509 -0.984749
|
|
||||||
v -1.995066 0.978114 -0.981262
|
|
||||||
v -1.995857 0.975900 -0.977625
|
|
||||||
v -1.995857 0.977624 -0.975901
|
|
||||||
v -1.995066 0.981261 -0.978115
|
|
||||||
v -1.993765 0.984749 -0.980509
|
|
||||||
v -1.991981 0.988016 -0.983035
|
|
||||||
v -1.989750 0.990996 -0.985640
|
|
||||||
v -1.987118 0.993628 -0.988272
|
|
||||||
v -1.984138 0.995858 -0.990877
|
|
||||||
v -1.980871 0.997642 -0.993403
|
|
||||||
v -1.977384 0.998943 -0.995797
|
|
||||||
v -1.973747 0.999734 -0.998011
|
|
||||||
vt 0.839733 0.000000
|
|
||||||
vt 0.848833 0.013044
|
|
||||||
vt -0.537296 -0.000000
|
|
||||||
vt -0.546397 0.013044
|
|
||||||
vt 0.151167 0.000000
|
|
||||||
vt 0.839733 0.013044
|
|
||||||
vt 0.839733 0.986956
|
|
||||||
vt 0.160267 0.986956
|
|
||||||
vt 0.160267 0.013044
|
|
||||||
vt 0.848833 0.000000
|
|
||||||
vt 0.160370 0.000000
|
|
||||||
vt 0.151270 0.013045
|
|
||||||
vt 1.537399 0.000000
|
|
||||||
vt 1.546500 0.013044
|
|
||||||
vt 0.974265 0.996942
|
|
||||||
vt -0.001961 0.996942
|
|
||||||
vt -0.001961 -0.003057
|
|
||||||
vt 0.974264 -0.003058
|
|
||||||
vt 0.848834 -0.013044
|
|
||||||
vt -0.546397 -0.013044
|
|
||||||
vt -0.537296 -1.000000
|
|
||||||
vt 0.839733 -1.000000
|
|
||||||
vt 0.947629 -0.000000
|
|
||||||
vt 0.003341 -0.000000
|
|
||||||
vt 0.003341 1.000000
|
|
||||||
vt 0.947629 1.000000
|
|
||||||
vt 0.839732 1.000000
|
|
||||||
vt -0.537296 1.000000
|
|
||||||
vt 0.151167 1.000000
|
|
||||||
vt 0.841028 0.000995
|
|
||||||
vt 0.841028 0.000133
|
|
||||||
vt 0.842297 0.002102
|
|
||||||
vt 0.842297 0.000528
|
|
||||||
vt 0.848011 0.003299
|
|
||||||
vt 0.846532 0.001179
|
|
||||||
vt 0.847367 0.000528
|
|
||||||
vt 0.848465 0.002102
|
|
||||||
vt 0.847389 0.004562
|
|
||||||
vt 0.845651 0.002071
|
|
||||||
vt 0.846610 0.005864
|
|
||||||
vt 0.844742 0.003186
|
|
||||||
vt 0.845692 0.007180
|
|
||||||
vt 0.843824 0.004502
|
|
||||||
vt 0.844653 0.008483
|
|
||||||
vt 0.842915 0.005992
|
|
||||||
vt 0.843513 0.009746
|
|
||||||
vt 0.842034 0.007626
|
|
||||||
vt 0.842297 0.010943
|
|
||||||
vt 0.841199 0.009369
|
|
||||||
vt 0.840427 0.011188
|
|
||||||
vt 0.841028 0.012050
|
|
||||||
vt 0.158972 0.012050
|
|
||||||
vt 0.159573 0.011188
|
|
||||||
vt 0.157703 0.010943
|
|
||||||
vt 0.158801 0.009369
|
|
||||||
vt 0.156487 0.009746
|
|
||||||
vt 0.157966 0.007626
|
|
||||||
vt 0.155347 0.008483
|
|
||||||
vt 0.157085 0.005992
|
|
||||||
vt 0.154308 0.007180
|
|
||||||
vt 0.156176 0.004502
|
|
||||||
vt 0.153389 0.005864
|
|
||||||
vt 0.155258 0.003186
|
|
||||||
vt 0.152611 0.004562
|
|
||||||
vt 0.154349 0.002071
|
|
||||||
vt 0.151989 0.003299
|
|
||||||
vt 0.153468 0.001179
|
|
||||||
vt 0.151535 0.002102
|
|
||||||
vt 0.152633 0.000528
|
|
||||||
vt 0.841028 0.999867
|
|
||||||
vt 0.841028 0.999005
|
|
||||||
vt 0.842297 0.999472
|
|
||||||
vt 0.842297 0.997898
|
|
||||||
vt 0.846532 0.998821
|
|
||||||
vt 0.848011 0.996701
|
|
||||||
vt 0.848464 0.997898
|
|
||||||
vt 0.847367 0.999472
|
|
||||||
vt 0.845651 0.997929
|
|
||||||
vt 0.847388 0.995438
|
|
||||||
vt 0.844742 0.996814
|
|
||||||
vt 0.846610 0.994136
|
|
||||||
vt 0.843824 0.995498
|
|
||||||
vt 0.845692 0.992820
|
|
||||||
vt 0.842915 0.994008
|
|
||||||
vt 0.844653 0.991517
|
|
||||||
vt 0.842034 0.992374
|
|
||||||
vt 0.843513 0.990254
|
|
||||||
vt 0.841199 0.990631
|
|
||||||
vt 0.842296 0.989057
|
|
||||||
vt 0.841028 0.987950
|
|
||||||
vt 0.840426 0.988812
|
|
||||||
vt 0.159573 0.988812
|
|
||||||
vt 0.158972 0.987950
|
|
||||||
vt 0.158801 0.990631
|
|
||||||
vt 0.157703 0.989057
|
|
||||||
vt 0.157966 0.992374
|
|
||||||
vt 0.156487 0.990254
|
|
||||||
vt 0.157085 0.994008
|
|
||||||
vt 0.155347 0.991517
|
|
||||||
vt 0.156176 0.995498
|
|
||||||
vt 0.154307 0.992820
|
|
||||||
vt 0.155258 0.996814
|
|
||||||
vt 0.153389 0.994136
|
|
||||||
vt 0.154349 0.997929
|
|
||||||
vt 0.152611 0.995438
|
|
||||||
vt 0.153468 0.998821
|
|
||||||
vt 0.151989 0.996701
|
|
||||||
vt 0.152633 0.999472
|
|
||||||
vt 0.151535 0.997898
|
|
||||||
vt 0.841028 1.000132
|
|
||||||
vt 0.841028 1.000994
|
|
||||||
vt 0.159075 0.000133
|
|
||||||
vt 0.159075 0.000995
|
|
||||||
vt 0.157807 0.000529
|
|
||||||
vt 0.157807 0.002102
|
|
||||||
vt 0.159075 0.999006
|
|
||||||
vt 0.157807 0.997899
|
|
||||||
vt 0.157807 0.999472
|
|
||||||
vt 0.159075 0.999868
|
|
||||||
vt 0.159075 -0.000994
|
|
||||||
vt 0.159075 -0.000132
|
|
||||||
vt 0.160370 1.000000
|
|
||||||
vt 0.846610 0.992820
|
|
||||||
vt 0.846610 0.007180
|
|
||||||
vt 0.845692 0.005864
|
|
||||||
vt 0.845692 0.994136
|
|
||||||
vt 0.844653 0.004562
|
|
||||||
vt 0.844653 0.995438
|
|
||||||
vt 0.843513 0.003299
|
|
||||||
vt 0.843513 0.996701
|
|
||||||
vt 0.153493 0.007180
|
|
||||||
vt 0.153493 0.992820
|
|
||||||
vt 0.154411 0.994136
|
|
||||||
vt 0.154411 0.005864
|
|
||||||
vt 0.155450 0.995439
|
|
||||||
vt 0.155450 0.004562
|
|
||||||
vt 0.156590 0.996702
|
|
||||||
vt 0.156590 0.003299
|
|
||||||
vt 0.160370 2.000000
|
|
||||||
vt 0.159075 1.999005
|
|
||||||
vt 0.159075 1.000994
|
|
||||||
vt 0.927508 0.000000
|
|
||||||
vt 0.003734 0.000000
|
|
||||||
vt 0.003734 1.000000
|
|
||||||
vt 0.927508 1.000000
|
|
||||||
vn 0.000000 0.240400 -0.970700
|
|
||||||
vn 1.000000 0.000000 0.000000
|
|
||||||
vn 0.000000 -0.707100 0.707100
|
|
||||||
vn -0.000000 1.000000 0.000000
|
|
||||||
vn -1.000000 -0.000000 -0.000000
|
|
||||||
vn 0.000000 0.911700 0.410900
|
|
||||||
vn 0.000000 -0.244600 -0.969600
|
|
||||||
vn -0.000000 -0.000000 1.000000
|
|
||||||
vn -0.000000 -0.239800 0.970800
|
|
||||||
vn 0.000000 0.000000 -1.000000
|
|
||||||
vn -0.000000 0.239200 0.971000
|
|
||||||
vn 0.000000 0.702500 -0.711700
|
|
||||||
vn 0.000000 -0.911800 -0.410700
|
|
||||||
vn 0.394600 -0.649700 -0.649700
|
|
||||||
vn 0.504500 -0.610500 -0.610500
|
|
||||||
vn 0.599600 -0.565900 -0.565900
|
|
||||||
vn 0.682100 -0.517100 -0.517100
|
|
||||||
vn 0.753900 -0.464500 -0.464600
|
|
||||||
vn 0.816500 -0.408300 -0.408200
|
|
||||||
vn 0.870700 -0.347700 -0.347800
|
|
||||||
vn 0.916800 -0.282400 -0.282400
|
|
||||||
vn 0.954400 -0.211000 -0.211100
|
|
||||||
vn 0.982200 -0.132800 -0.132800
|
|
||||||
vn 0.997800 -0.046400 -0.046400
|
|
||||||
vn 0.997800 -0.046400 0.046400
|
|
||||||
vn 0.982200 -0.132800 0.132800
|
|
||||||
vn 0.954400 -0.211100 0.211100
|
|
||||||
vn 0.916800 -0.282400 0.282400
|
|
||||||
vn 0.870700 -0.347700 0.347800
|
|
||||||
vn 0.816500 -0.408200 0.408200
|
|
||||||
vn 0.753900 -0.464600 0.464600
|
|
||||||
vn 0.682100 -0.517100 0.517100
|
|
||||||
vn 0.599600 -0.565900 0.565900
|
|
||||||
vn 0.504500 -0.610500 0.610500
|
|
||||||
vn 0.394600 -0.649800 0.649700
|
|
||||||
vn 0.394600 0.649800 -0.649700
|
|
||||||
vn 0.504500 0.610500 -0.610500
|
|
||||||
vn 0.599600 0.565900 -0.565900
|
|
||||||
vn 0.682100 0.517100 -0.517100
|
|
||||||
vn 0.753900 0.464500 -0.464600
|
|
||||||
vn 0.816500 0.408300 -0.408200
|
|
||||||
vn 0.870700 0.347800 -0.347800
|
|
||||||
vn 0.916800 0.282400 -0.282400
|
|
||||||
vn 0.954400 0.211000 -0.211100
|
|
||||||
vn 0.982200 0.132800 -0.132800
|
|
||||||
vn 0.997800 0.046400 -0.046400
|
|
||||||
vn 0.997800 0.046500 0.046500
|
|
||||||
vn 0.982200 0.132800 0.132800
|
|
||||||
vn 0.954400 0.211100 0.211100
|
|
||||||
vn 0.916800 0.282400 0.282400
|
|
||||||
vn 0.870700 0.347800 0.347800
|
|
||||||
vn 0.816500 0.408200 0.408300
|
|
||||||
vn 0.753900 0.464600 0.464500
|
|
||||||
vn 0.682100 0.517100 0.517100
|
|
||||||
vn 0.599600 0.565900 0.565900
|
|
||||||
vn 0.504500 0.610600 0.610500
|
|
||||||
vn 0.394500 0.649800 0.649700
|
|
||||||
vn -0.394600 -0.649700 0.649800
|
|
||||||
vn -0.504500 -0.610500 0.610500
|
|
||||||
vn -0.599600 -0.565900 0.565900
|
|
||||||
vn -0.682100 -0.517100 0.517100
|
|
||||||
vn -0.753900 -0.464500 0.464500
|
|
||||||
vn -0.816500 -0.408300 0.408300
|
|
||||||
vn -0.870700 -0.347700 0.347800
|
|
||||||
vn -0.916800 -0.282400 0.282400
|
|
||||||
vn -0.954400 -0.211000 0.211100
|
|
||||||
vn -0.982200 -0.132800 0.132800
|
|
||||||
vn -0.997800 -0.046500 0.046500
|
|
||||||
vn -0.997800 -0.046400 -0.046500
|
|
||||||
vn -0.982200 -0.132800 -0.132800
|
|
||||||
vn -0.954400 -0.211100 -0.211100
|
|
||||||
vn -0.916800 -0.282400 -0.282400
|
|
||||||
vn -0.870700 -0.347800 -0.347800
|
|
||||||
vn -0.816500 -0.408300 -0.408300
|
|
||||||
vn -0.753900 -0.464500 -0.464500
|
|
||||||
vn -0.682100 -0.517100 -0.517100
|
|
||||||
vn -0.599600 -0.565900 -0.565900
|
|
||||||
vn -0.504500 -0.610500 -0.610500
|
|
||||||
vn -0.394600 -0.649700 -0.649700
|
|
||||||
vn -0.394600 0.649700 0.649800
|
|
||||||
vn -0.504500 0.610500 0.610600
|
|
||||||
vn -0.599600 0.565900 0.565900
|
|
||||||
vn -0.682100 0.517100 0.517100
|
|
||||||
vn -0.753900 0.464500 0.464500
|
|
||||||
vn -0.816500 0.408300 0.408300
|
|
||||||
vn -0.870700 0.347800 0.347800
|
|
||||||
vn -0.916800 0.282400 0.282400
|
|
||||||
vn -0.954400 0.211100 0.211100
|
|
||||||
vn -0.982200 0.132800 0.132800
|
|
||||||
vn -0.997800 0.046500 0.046500
|
|
||||||
vn -0.997800 0.046400 -0.046500
|
|
||||||
vn -0.982200 0.132700 -0.132800
|
|
||||||
vn -0.954400 0.211100 -0.211100
|
|
||||||
vn -0.916800 0.282400 -0.282400
|
|
||||||
vn -0.870700 0.347800 -0.347800
|
|
||||||
vn -0.816500 0.408200 -0.408300
|
|
||||||
vn -0.753900 0.464500 -0.464500
|
|
||||||
vn -0.682100 0.517100 -0.517100
|
|
||||||
vn -0.599600 0.565900 -0.565900
|
|
||||||
vn -0.504500 0.610500 -0.610500
|
|
||||||
vn -0.394600 0.649700 -0.649800
|
|
||||||
vn 0.997500 -0.071200 0.000000
|
|
||||||
vn 0.977100 -0.212700 0.000000
|
|
||||||
vn 0.937000 -0.349500 0.000000
|
|
||||||
vn 0.877700 -0.479300 0.000000
|
|
||||||
vn 0.800500 -0.599300 0.000000
|
|
||||||
vn 0.707100 -0.707100 0.000000
|
|
||||||
vn 0.599300 -0.800500 0.000000
|
|
||||||
vn 0.479300 -0.877700 0.000000
|
|
||||||
vn 0.349500 -0.937000 -0.000000
|
|
||||||
vn 0.212600 -0.977100 -0.000000
|
|
||||||
vn 0.071300 -0.997500 0.000000
|
|
||||||
vn 0.071400 0.000000 -0.997500
|
|
||||||
vn 0.212600 0.000000 -0.977100
|
|
||||||
vn 0.349500 0.000000 -0.937000
|
|
||||||
vn 0.479300 0.000000 -0.877700
|
|
||||||
vn 0.599300 0.000000 -0.800600
|
|
||||||
vn 0.707100 0.000000 -0.707100
|
|
||||||
vn 0.800500 -0.000000 -0.599300
|
|
||||||
vn 0.877700 -0.000000 -0.479300
|
|
||||||
vn 0.936900 -0.000000 -0.349500
|
|
||||||
vn 0.977100 -0.000000 -0.212600
|
|
||||||
vn 0.997500 -0.000000 -0.071300
|
|
||||||
vn 0.997500 0.000000 0.071300
|
|
||||||
vn 0.977100 0.000000 0.212600
|
|
||||||
vn 0.936900 0.000000 0.349500
|
|
||||||
vn 0.877700 0.000000 0.479300
|
|
||||||
vn 0.800500 0.000000 0.599300
|
|
||||||
vn 0.707100 0.000000 0.707100
|
|
||||||
vn 0.599300 0.000000 0.800600
|
|
||||||
vn 0.479300 -0.000000 0.877700
|
|
||||||
vn 0.349500 -0.000000 0.936900
|
|
||||||
vn 0.212600 -0.000000 0.977100
|
|
||||||
vn 0.071300 -0.000000 0.997500
|
|
||||||
vn 0.071300 0.997500 0.000000
|
|
||||||
vn 0.212600 0.977100 0.000000
|
|
||||||
vn 0.349500 0.936900 0.000000
|
|
||||||
vn 0.479200 0.877700 0.000000
|
|
||||||
vn 0.599300 0.800500 0.000000
|
|
||||||
vn 0.707100 0.707100 0.000000
|
|
||||||
vn 0.800500 0.599300 0.000000
|
|
||||||
vn 0.877700 0.479300 0.000000
|
|
||||||
vn 0.937000 0.349500 0.000000
|
|
||||||
vn 0.977100 0.212600 0.000000
|
|
||||||
vn 0.997500 0.071300 0.000000
|
|
||||||
vn -0.997400 -0.071400 -0.000000
|
|
||||||
vn -0.977200 -0.212500 -0.000000
|
|
||||||
vn -0.937000 -0.349500 -0.000000
|
|
||||||
vn -0.877700 -0.479300 -0.000000
|
|
||||||
vn -0.800500 -0.599300 -0.000000
|
|
||||||
vn -0.707100 -0.707100 -0.000000
|
|
||||||
vn -0.599300 -0.800500 -0.000000
|
|
||||||
vn -0.479200 -0.877700 -0.000000
|
|
||||||
vn -0.349500 -0.936900 -0.000000
|
|
||||||
vn -0.212600 -0.977100 -0.000000
|
|
||||||
vn -0.071300 -0.997500 -0.000000
|
|
||||||
vn -0.071300 0.000000 0.997500
|
|
||||||
vn -0.212600 0.000000 0.977100
|
|
||||||
vn -0.349500 0.000000 0.936900
|
|
||||||
vn -0.479200 -0.000000 0.877700
|
|
||||||
vn -0.599300 -0.000000 0.800500
|
|
||||||
vn -0.707100 -0.000000 0.707100
|
|
||||||
vn -0.800500 -0.000000 0.599300
|
|
||||||
vn -0.877700 -0.000000 0.479300
|
|
||||||
vn -0.936900 -0.000000 0.349500
|
|
||||||
vn -0.977200 -0.000000 0.212500
|
|
||||||
vn -0.997500 -0.000000 0.071400
|
|
||||||
vn -0.997500 -0.000000 -0.071400
|
|
||||||
vn -0.977200 -0.000000 -0.212500
|
|
||||||
vn -0.937000 -0.000000 -0.349500
|
|
||||||
vn -0.877700 -0.000000 -0.479300
|
|
||||||
vn -0.800500 -0.000000 -0.599300
|
|
||||||
vn -0.707100 -0.000000 -0.707100
|
|
||||||
vn -0.599300 0.000000 -0.800500
|
|
||||||
vn -0.479200 0.000000 -0.877700
|
|
||||||
vn -0.349500 0.000000 -0.936900
|
|
||||||
vn -0.212600 0.000000 -0.977100
|
|
||||||
vn -0.071300 0.000000 -0.997500
|
|
||||||
vn -0.071300 0.997500 -0.000000
|
|
||||||
vn -0.212600 0.977100 -0.000000
|
|
||||||
vn -0.349500 0.936900 -0.000000
|
|
||||||
vn -0.479200 0.877700 -0.000000
|
|
||||||
vn -0.599300 0.800500 -0.000000
|
|
||||||
vn -0.707100 0.707100 -0.000000
|
|
||||||
vn -0.800500 0.599300 -0.000000
|
|
||||||
vn -0.877700 0.479300 -0.000000
|
|
||||||
vn -0.936900 0.349500 -0.000000
|
|
||||||
vn -0.977200 0.212500 -0.000000
|
|
||||||
vn -0.997400 0.071400 -0.000000
|
|
||||||
vn 0.000000 -1.000000 0.000000
|
|
||||||
s off
|
|
||||||
f 10/1/1 9/2/1 11/1/1 126/3/1 125/4/1 124/3/1 6/5/1 2/5/1
|
|
||||||
f 9/6/2 55/7/2 79/8/2 33/9/2
|
|
||||||
f 1/10/3 5/10/3 102/11/3 101/12/3 103/11/3 34/13/3 33/14/3 32/13/3
|
|
||||||
f 57/15/4 172/16/4 149/17/4 80/18/4
|
|
||||||
f 101/9/5 147/8/5 171/7/5 125/6/5
|
|
||||||
f 3/10/6 7/10/6 148/11/6 147/12/6 149/11/6 80/13/6 79/14/6 78/13/6
|
|
||||||
f 56/1/7 55/19/7 57/1/7 172/3/7 171/20/7 170/3/7 8/5/7 4/5/7
|
|
||||||
f 78/1/8 80/1/8 149/3/8 148/3/8 103/21/8 34/22/8
|
|
||||||
f 2/5/9 6/5/9 124/3/9 126/3/9 11/1/9 10/1/9
|
|
||||||
f 11/23/10 126/24/10 170/25/10 172/25/10 57/26/10 56/26/10
|
|
||||||
f 4/5/11 8/5/11 170/3/11 172/3/11 57/1/11 56/1/11
|
|
||||||
f 32/1/12 34/1/12 103/3/12 102/3/12 5/5/12 1/5/12
|
|
||||||
f 78/27/13 80/27/13 149/28/13 148/28/13 7/29/13 3/29/13
|
|
||||||
f 22/30/14 21/31/14 10/1/14 11/1/14
|
|
||||||
f 23/32/15 20/33/15 21/31/15 22/30/15
|
|
||||||
f 24/34/16 19/35/16 20/36/16 23/37/16
|
|
||||||
f 25/38/17 18/39/17 19/35/17 24/34/17
|
|
||||||
f 26/40/18 17/41/18 18/39/18 25/38/18
|
|
||||||
f 27/42/19 16/43/19 17/41/19 26/40/19
|
|
||||||
f 28/44/20 15/45/20 16/43/20 27/42/20
|
|
||||||
f 29/46/21 14/47/21 15/45/21 28/44/21
|
|
||||||
f 30/48/22 13/49/22 14/47/22 29/46/22
|
|
||||||
f 12/50/23 13/49/23 30/48/23 31/51/23
|
|
||||||
f 9/6/24 12/50/24 31/51/24
|
|
||||||
f 45/52/25 44/53/25 33/9/25
|
|
||||||
f 46/54/26 43/55/26 44/53/26 45/52/26
|
|
||||||
f 47/56/27 42/57/27 43/55/27 46/54/27
|
|
||||||
f 48/58/28 41/59/28 42/57/28 47/56/28
|
|
||||||
f 49/60/29 40/61/29 41/59/29 48/58/29
|
|
||||||
f 50/62/30 39/63/30 40/61/30 49/60/30
|
|
||||||
f 51/64/31 38/65/31 39/63/31 50/62/31
|
|
||||||
f 52/66/32 37/67/32 38/65/32 51/64/32
|
|
||||||
f 53/68/33 36/69/33 37/67/33 52/66/33
|
|
||||||
f 35/30/34 36/32/34 53/33/34 54/31/34
|
|
||||||
f 32/1/35 35/30/35 54/31/35 34/1/35
|
|
||||||
f 68/70/36 67/71/36 56/27/36 57/27/36
|
|
||||||
f 69/72/37 66/73/37 67/71/37 68/70/37
|
|
||||||
f 70/74/38 65/75/38 66/76/38 69/77/38
|
|
||||||
f 71/78/39 64/79/39 65/75/39 70/74/39
|
|
||||||
f 72/80/40 63/81/40 64/79/40 71/78/40
|
|
||||||
f 73/82/41 62/83/41 63/81/41 72/80/41
|
|
||||||
f 74/84/42 61/85/42 62/83/42 73/82/42
|
|
||||||
f 75/86/43 60/87/43 61/85/43 74/84/43
|
|
||||||
f 76/88/44 59/89/44 60/87/44 75/86/44
|
|
||||||
f 58/90/45 59/89/45 76/88/45 77/91/45
|
|
||||||
f 55/7/46 58/90/46 77/91/46
|
|
||||||
f 91/92/47 90/93/47 79/8/47
|
|
||||||
f 92/94/48 89/95/48 90/93/48 91/92/48
|
|
||||||
f 93/96/49 88/97/49 89/95/49 92/94/49
|
|
||||||
f 94/98/50 87/99/50 88/97/50 93/96/50
|
|
||||||
f 95/100/51 86/101/51 87/99/51 94/98/51
|
|
||||||
f 96/102/52 85/103/52 86/101/52 95/100/52
|
|
||||||
f 97/104/53 84/105/53 85/103/53 96/102/53
|
|
||||||
f 98/106/54 83/107/54 84/105/54 97/104/54
|
|
||||||
f 99/108/55 82/109/55 83/107/55 98/106/55
|
|
||||||
f 81/71/56 82/73/56 99/72/56 100/70/56
|
|
||||||
f 78/27/57 81/110/57 100/111/57 80/27/57
|
|
||||||
f 114/112/58 113/113/58 102/11/58 103/11/58
|
|
||||||
f 115/114/59 112/115/59 113/113/59 114/112/59
|
|
||||||
f 116/66/60 111/67/60 112/69/60 115/68/60
|
|
||||||
f 117/64/61 110/65/61 111/67/61 116/66/61
|
|
||||||
f 118/62/62 109/63/62 110/65/62 117/64/62
|
|
||||||
f 119/60/63 108/61/63 109/63/63 118/62/63
|
|
||||||
f 120/58/64 107/59/64 108/61/64 119/60/64
|
|
||||||
f 121/56/65 106/57/65 107/59/65 120/58/65
|
|
||||||
f 122/54/66 105/55/66 106/57/66 121/56/66
|
|
||||||
f 104/53/67 105/55/67 122/54/67 123/52/67
|
|
||||||
f 101/9/68 104/53/68 123/52/68
|
|
||||||
f 137/51/69 136/50/69 125/6/69
|
|
||||||
f 138/48/70 135/49/70 136/50/70 137/51/70
|
|
||||||
f 139/46/71 134/47/71 135/49/71 138/48/71
|
|
||||||
f 140/44/72 133/45/72 134/47/72 139/46/72
|
|
||||||
f 141/42/73 132/43/73 133/45/73 140/44/73
|
|
||||||
f 142/40/74 131/41/74 132/43/74 141/42/74
|
|
||||||
f 143/38/75 130/39/75 131/41/75 142/40/75
|
|
||||||
f 144/34/76 129/35/76 130/39/76 143/38/76
|
|
||||||
f 145/37/77 128/36/77 129/35/77 144/34/77
|
|
||||||
f 127/116/78 128/117/78 145/118/78 146/119/78
|
|
||||||
f 124/11/79 127/120/79 146/121/79 126/11/79
|
|
||||||
f 160/119/80 159/116/80 148/122/80 149/122/80
|
|
||||||
f 161/118/81 158/117/81 159/116/81 160/119/81
|
|
||||||
f 162/106/82 157/107/82 158/109/82 161/108/82
|
|
||||||
f 163/104/83 156/105/83 157/107/83 162/106/83
|
|
||||||
f 164/102/84 155/103/84 156/105/84 163/104/84
|
|
||||||
f 165/100/85 154/101/85 155/103/85 164/102/85
|
|
||||||
f 166/98/86 153/99/86 154/101/86 165/100/86
|
|
||||||
f 167/96/87 152/97/87 153/99/87 166/98/87
|
|
||||||
f 168/94/88 151/95/88 152/97/88 167/96/88
|
|
||||||
f 150/93/89 151/95/89 168/94/89 169/92/89
|
|
||||||
f 147/8/90 150/93/90 169/92/90
|
|
||||||
f 183/91/91 182/90/91 171/7/91
|
|
||||||
f 184/88/92 181/89/92 182/90/92 183/91/92
|
|
||||||
f 185/86/93 180/87/93 181/89/93 184/88/93
|
|
||||||
f 186/84/94 179/85/94 180/87/94 185/86/94
|
|
||||||
f 187/82/95 178/83/95 179/85/95 186/84/95
|
|
||||||
f 188/80/96 177/81/96 178/83/96 187/82/96
|
|
||||||
f 189/78/97 176/79/97 177/81/97 188/80/97
|
|
||||||
f 190/74/98 175/75/98 176/79/98 189/78/98
|
|
||||||
f 191/77/99 174/76/99 175/75/99 190/74/99
|
|
||||||
f 173/116/100 174/117/100 191/118/100 192/119/100
|
|
||||||
f 170/11/101 173/121/101 192/120/101 172/11/101
|
|
||||||
f 9/6/102 33/9/102 44/53/102 12/50/102
|
|
||||||
f 12/50/103 44/53/103 43/55/103 13/49/103
|
|
||||||
f 13/49/104 43/55/104 42/57/104 14/47/104
|
|
||||||
f 14/47/105 42/57/105 41/59/105 15/45/105
|
|
||||||
f 15/45/106 41/59/106 40/61/106 16/43/106
|
|
||||||
f 16/123/107 40/124/107 39/125/107 17/126/107
|
|
||||||
f 17/126/108 39/125/108 38/127/108 18/128/108
|
|
||||||
f 18/128/109 38/127/109 37/129/109 19/130/109
|
|
||||||
f 19/130/110 37/129/110 36/32/110 20/73/110
|
|
||||||
f 20/73/111 36/32/111 35/30/111 21/71/111
|
|
||||||
f 21/71/112 35/30/112 32/1/112 10/27/112
|
|
||||||
f 11/1/113 56/27/113 67/71/113 22/30/113
|
|
||||||
f 22/30/114 67/71/114 66/73/114 23/32/114
|
|
||||||
f 23/32/115 66/73/115 65/130/115 24/129/115
|
|
||||||
f 24/129/116 65/130/116 64/128/116 25/127/116
|
|
||||||
f 25/127/117 64/128/117 63/126/117 26/125/117
|
|
||||||
f 26/125/118 63/126/118 62/123/118 27/124/118
|
|
||||||
f 27/42/119 62/83/119 61/85/119 28/44/119
|
|
||||||
f 28/44/120 61/85/120 60/87/120 29/46/120
|
|
||||||
f 29/46/121 60/87/121 59/89/121 30/48/121
|
|
||||||
f 30/48/122 59/89/122 58/90/122 31/51/122
|
|
||||||
f 31/51/123 58/90/123 55/7/123 9/6/123
|
|
||||||
f 33/9/124 79/8/124 90/93/124 45/52/124
|
|
||||||
f 45/52/125 90/93/125 89/95/125 46/54/125
|
|
||||||
f 46/54/126 89/95/126 88/97/126 47/56/126
|
|
||||||
f 47/56/127 88/97/127 87/99/127 48/58/127
|
|
||||||
f 48/58/128 87/99/128 86/101/128 49/60/128
|
|
||||||
f 49/124/129 86/123/129 85/126/129 50/125/129
|
|
||||||
f 50/125/130 85/126/130 84/128/130 51/127/130
|
|
||||||
f 51/127/131 84/128/131 83/130/131 52/129/131
|
|
||||||
f 52/129/132 83/130/132 82/73/132 53/32/132
|
|
||||||
f 53/32/133 82/73/133 81/71/133 54/30/133
|
|
||||||
f 54/30/134 81/71/134 78/27/134 34/1/134
|
|
||||||
f 57/27/135 80/1/135 100/30/135 68/71/135
|
|
||||||
f 68/71/136 100/30/136 99/32/136 69/73/136
|
|
||||||
f 69/73/137 99/32/137 98/129/137 70/130/137
|
|
||||||
f 70/130/138 98/129/138 97/127/138 71/128/138
|
|
||||||
f 71/128/139 97/127/139 96/125/139 72/126/139
|
|
||||||
f 72/126/140 96/125/140 95/124/140 73/123/140
|
|
||||||
f 73/82/141 95/100/141 94/98/141 74/84/141
|
|
||||||
f 74/84/142 94/98/142 93/96/142 75/86/142
|
|
||||||
f 75/86/143 93/96/143 92/94/143 76/88/143
|
|
||||||
f 76/88/144 92/94/144 91/92/144 77/91/144
|
|
||||||
f 77/91/145 91/92/145 79/8/145 55/7/145
|
|
||||||
f 101/9/146 125/6/146 136/50/146 104/53/146
|
|
||||||
f 104/53/147 136/50/147 135/49/147 105/55/147
|
|
||||||
f 105/55/148 135/49/148 134/47/148 106/57/148
|
|
||||||
f 106/57/149 134/47/149 133/45/149 107/59/149
|
|
||||||
f 107/59/150 133/45/150 132/43/150 108/61/150
|
|
||||||
f 108/131/151 132/132/151 131/133/151 109/134/151
|
|
||||||
f 109/134/152 131/133/152 130/135/152 110/136/152
|
|
||||||
f 110/136/153 130/135/153 129/137/153 111/138/153
|
|
||||||
f 111/138/154 129/137/154 128/117/154 112/115/154
|
|
||||||
f 112/115/155 128/117/155 127/116/155 113/113/155
|
|
||||||
f 113/113/156 127/116/156 124/122/156 102/11/156
|
|
||||||
f 103/122/157 148/139/157 159/140/157 114/141/157
|
|
||||||
f 114/113/158 159/116/158 158/117/158 115/115/158
|
|
||||||
f 115/115/159 158/117/159 157/137/159 116/138/159
|
|
||||||
f 116/138/160 157/137/160 156/135/160 117/136/160
|
|
||||||
f 117/136/161 156/135/161 155/133/161 118/134/161
|
|
||||||
f 118/134/162 155/133/162 154/132/162 119/131/162
|
|
||||||
f 119/60/163 154/101/163 153/99/163 120/58/163
|
|
||||||
f 120/58/164 153/99/164 152/97/164 121/56/164
|
|
||||||
f 121/56/165 152/97/165 151/95/165 122/54/165
|
|
||||||
f 122/54/166 151/95/166 150/93/166 123/52/166
|
|
||||||
f 123/52/167 150/93/167 147/8/167 101/9/167
|
|
||||||
f 125/6/168 171/7/168 182/90/168 137/51/168
|
|
||||||
f 137/51/169 182/90/169 181/89/169 138/48/169
|
|
||||||
f 138/48/170 181/89/170 180/87/170 139/46/170
|
|
||||||
f 139/46/171 180/87/171 179/85/171 140/44/171
|
|
||||||
f 140/44/172 179/85/172 178/83/172 141/42/172
|
|
||||||
f 141/131/173 178/132/173 177/133/173 142/134/173
|
|
||||||
f 142/134/174 177/133/174 176/135/174 143/136/174
|
|
||||||
f 143/136/175 176/135/175 175/137/175 144/138/175
|
|
||||||
f 144/138/176 175/137/176 174/117/176 145/115/176
|
|
||||||
f 145/115/177 174/117/177 173/116/177 146/113/177
|
|
||||||
f 146/113/178 173/116/178 170/122/178 126/11/178
|
|
||||||
f 149/11/179 172/122/179 192/116/179 160/113/179
|
|
||||||
f 160/113/180 192/116/180 191/117/180 161/115/180
|
|
||||||
f 161/115/181 191/117/181 190/137/181 162/138/181
|
|
||||||
f 162/138/182 190/137/182 189/135/182 163/136/182
|
|
||||||
f 163/136/183 189/135/183 188/133/183 164/134/183
|
|
||||||
f 164/134/184 188/133/184 187/132/184 165/131/184
|
|
||||||
f 165/100/185 187/82/185 186/84/185 166/98/185
|
|
||||||
f 166/98/186 186/84/186 185/86/186 167/96/186
|
|
||||||
f 167/96/187 185/86/187 184/88/187 168/94/187
|
|
||||||
f 168/94/188 184/88/188 183/91/188 169/92/188
|
|
||||||
f 169/92/189 183/91/189 171/7/189 147/8/189
|
|
||||||
f 32/142/190 34/142/190 103/143/190 102/143/190 124/144/190 126/144/190 11/145/190 10/145/190
|
|
@ -1,12 +0,0 @@
|
|||||||
# Blender MTL File: 'marbleSmooth.blend'
|
|
||||||
# Material Count: 1
|
|
||||||
|
|
||||||
newmtl Material.001
|
|
||||||
Ns 96.078431
|
|
||||||
Ka 0.000000 0.000000 0.000000
|
|
||||||
Kd 0.640000 0.640000 0.640000
|
|
||||||
Ks 0.000000 0.000000 0.000000
|
|
||||||
Ni 1.000000
|
|
||||||
d 1.000000
|
|
||||||
illum 1
|
|
||||||
map_Kd /home/sfroitzheim/swp/Blenderfiles/Marbletexture1.jpg
|
|
@ -1,266 +0,0 @@
|
|||||||
# Blender v2.71 (sub 0) OBJ File: 'torch.blend'
|
|
||||||
# www.blender.org
|
|
||||||
o Cylinder
|
|
||||||
v 0.000000 -1.000000 -0.087051
|
|
||||||
v -0.000000 1.000000 -0.191513
|
|
||||||
v 0.016983 -1.000000 -0.085379
|
|
||||||
v 0.037362 1.000000 -0.187833
|
|
||||||
v 0.033313 -1.000000 -0.080425
|
|
||||||
v 0.073289 1.000000 -0.176935
|
|
||||||
v 0.048363 -1.000000 -0.072380
|
|
||||||
v 0.106399 1.000000 -0.159237
|
|
||||||
v 0.061555 -1.000000 -0.061555
|
|
||||||
v 0.135420 1.000000 -0.135420
|
|
||||||
v 0.072380 -1.000000 -0.048363
|
|
||||||
v 0.159237 1.000000 -0.106399
|
|
||||||
v 0.080425 -1.000000 -0.033313
|
|
||||||
v 0.176935 1.000000 -0.073289
|
|
||||||
v 0.085379 -1.000000 -0.016983
|
|
||||||
v 0.187833 1.000000 -0.037362
|
|
||||||
v 0.087051 -1.000000 -0.000000
|
|
||||||
v 0.191513 1.000000 0.000000
|
|
||||||
v 0.085379 -1.000000 0.016983
|
|
||||||
v 0.187833 1.000000 0.037362
|
|
||||||
v 0.080425 -1.000000 0.033313
|
|
||||||
v 0.176935 1.000000 0.073289
|
|
||||||
v 0.072380 -1.000000 0.048363
|
|
||||||
v 0.159237 1.000000 0.106399
|
|
||||||
v 0.061555 -1.000000 0.061555
|
|
||||||
v 0.135420 1.000000 0.135420
|
|
||||||
v 0.048363 -1.000000 0.072380
|
|
||||||
v 0.106399 1.000000 0.159237
|
|
||||||
v 0.033313 -1.000000 0.080425
|
|
||||||
v 0.073289 1.000000 0.176935
|
|
||||||
v 0.016983 -1.000000 0.085379
|
|
||||||
v 0.037362 1.000000 0.187833
|
|
||||||
v -0.000000 -1.000000 0.087051
|
|
||||||
v -0.000000 1.000000 0.191513
|
|
||||||
v -0.016983 -1.000000 0.085379
|
|
||||||
v -0.037362 1.000000 0.187833
|
|
||||||
v -0.033313 -1.000000 0.080425
|
|
||||||
v -0.073289 1.000000 0.176935
|
|
||||||
v -0.048363 -1.000000 0.072380
|
|
||||||
v -0.106399 1.000000 0.159237
|
|
||||||
v -0.061555 -1.000000 0.061555
|
|
||||||
v -0.135420 1.000000 0.135420
|
|
||||||
v -0.072381 -1.000000 0.048363
|
|
||||||
v -0.159237 1.000000 0.106399
|
|
||||||
v -0.080425 -1.000000 0.033313
|
|
||||||
v -0.176935 1.000000 0.073289
|
|
||||||
v -0.085379 -1.000000 0.016983
|
|
||||||
v -0.187833 1.000000 0.037362
|
|
||||||
v -0.087051 -1.000000 -0.000000
|
|
||||||
v -0.191513 1.000000 -0.000000
|
|
||||||
v -0.085379 -1.000000 -0.016983
|
|
||||||
v -0.187833 1.000000 -0.037362
|
|
||||||
v -0.080425 -1.000000 -0.033313
|
|
||||||
v -0.176935 1.000000 -0.073289
|
|
||||||
v -0.072380 -1.000000 -0.048363
|
|
||||||
v -0.159237 1.000000 -0.106399
|
|
||||||
v -0.061554 -1.000000 -0.061555
|
|
||||||
v -0.135420 1.000000 -0.135420
|
|
||||||
v -0.048363 -1.000000 -0.072381
|
|
||||||
v -0.106399 1.000000 -0.159237
|
|
||||||
v -0.033313 -1.000000 -0.080425
|
|
||||||
v -0.073289 1.000000 -0.176935
|
|
||||||
v -0.016983 -1.000000 -0.085379
|
|
||||||
v -0.037362 1.000000 -0.187833
|
|
||||||
vt 0.173159 0.324353
|
|
||||||
vt 0.355490 0.133897
|
|
||||||
vt 0.388961 0.169345
|
|
||||||
vt 0.188374 0.340465
|
|
||||||
vt 0.418692 0.207984
|
|
||||||
vt 0.201889 0.358028
|
|
||||||
vt 0.444379 0.249421
|
|
||||||
vt 0.213565 0.376862
|
|
||||||
vt 0.465761 0.293235
|
|
||||||
vt 0.223285 0.396777
|
|
||||||
vt 0.482621 0.338980
|
|
||||||
vt 0.230950 0.417570
|
|
||||||
vt 0.494787 0.386190
|
|
||||||
vt 0.236481 0.439028
|
|
||||||
vt 0.502136 0.434385
|
|
||||||
vt 0.239822 0.460935
|
|
||||||
vt 0.504593 0.483075
|
|
||||||
vt 0.240940 0.483066
|
|
||||||
vt 0.502132 0.531764
|
|
||||||
vt 0.239822 0.505197
|
|
||||||
vt 0.494779 0.579957
|
|
||||||
vt 0.236481 0.527103
|
|
||||||
vt 0.482609 0.627165
|
|
||||||
vt 0.230950 0.548561
|
|
||||||
vt 0.465746 0.672906
|
|
||||||
vt 0.223286 0.569353
|
|
||||||
vt 0.444361 0.716715
|
|
||||||
vt 0.213567 0.589266
|
|
||||||
vt 0.418672 0.758148
|
|
||||||
vt 0.201891 0.608099
|
|
||||||
vt 0.388940 0.796782
|
|
||||||
vt 0.188377 0.625660
|
|
||||||
vt 0.355468 0.832224
|
|
||||||
vt 0.173163 0.641770
|
|
||||||
vt 0.318596 0.864115
|
|
||||||
vt 0.156403 0.656266
|
|
||||||
vt 0.278700 0.892129
|
|
||||||
vt 0.138269 0.669000
|
|
||||||
vt 0.236185 0.915982
|
|
||||||
vt 0.118944 0.679843
|
|
||||||
vt 0.191483 0.935431
|
|
||||||
vt 0.098625 0.688683
|
|
||||||
vt 0.145050 0.950278
|
|
||||||
vt 0.077519 0.695432
|
|
||||||
vt 0.097357 0.960373
|
|
||||||
vt 0.055840 0.700021
|
|
||||||
vt 0.048890 0.965612
|
|
||||||
vt 0.033810 0.702402
|
|
||||||
vt 0.000142 0.965943
|
|
||||||
vt 0.011651 0.702553
|
|
||||||
vt 0.011637 0.263556
|
|
||||||
vt 0.000142 0.000142
|
|
||||||
vt 0.048895 0.000476
|
|
||||||
vt 0.033797 0.263708
|
|
||||||
vt 0.097366 0.005719
|
|
||||||
vt 0.055829 0.266091
|
|
||||||
vt 0.145063 0.015817
|
|
||||||
vt 0.077509 0.270681
|
|
||||||
vt 0.191499 0.030670
|
|
||||||
vt 0.098617 0.277432
|
|
||||||
vt 0.236203 0.050124
|
|
||||||
vt 0.118937 0.286274
|
|
||||||
vt 0.278720 0.073982
|
|
||||||
vt 0.138263 0.297119
|
|
||||||
vt 0.635136 0.466957
|
|
||||||
vt 0.594601 0.439872
|
|
||||||
vt 0.560128 0.405399
|
|
||||||
vt 0.533043 0.364864
|
|
||||||
vt 0.514387 0.319824
|
|
||||||
vt 0.504876 0.272009
|
|
||||||
vt 0.504876 0.223258
|
|
||||||
vt 0.514387 0.175443
|
|
||||||
vt 0.533044 0.130402
|
|
||||||
vt 0.560129 0.089866
|
|
||||||
vt 0.594602 0.055394
|
|
||||||
vt 0.635137 0.028309
|
|
||||||
vt 0.680177 0.009653
|
|
||||||
vt 0.727992 0.000142
|
|
||||||
vt 0.776744 0.000142
|
|
||||||
vt 0.824559 0.009653
|
|
||||||
vt 0.869599 0.028309
|
|
||||||
vt 0.910135 0.055395
|
|
||||||
vt 0.944607 0.089867
|
|
||||||
vt 0.971691 0.130402
|
|
||||||
vt 0.990347 0.175442
|
|
||||||
vt 0.999858 0.223257
|
|
||||||
vt 0.999858 0.272009
|
|
||||||
vt 0.990347 0.319823
|
|
||||||
vt 0.971691 0.364863
|
|
||||||
vt 0.944606 0.405398
|
|
||||||
vt 0.910133 0.439871
|
|
||||||
vt 0.869598 0.466956
|
|
||||||
vt 0.824557 0.485613
|
|
||||||
vt 0.776743 0.495124
|
|
||||||
vt 0.727992 0.495124
|
|
||||||
vt 0.680177 0.485613
|
|
||||||
vt 0.156399 0.309855
|
|
||||||
vt 0.318618 0.102002
|
|
||||||
vt 0.545660 0.520522
|
|
||||||
vt 0.564085 0.508211
|
|
||||||
vt 0.584558 0.499731
|
|
||||||
vt 0.606292 0.495408
|
|
||||||
vt 0.628452 0.495407
|
|
||||||
vt 0.650186 0.499730
|
|
||||||
vt 0.670659 0.508211
|
|
||||||
vt 0.689084 0.520522
|
|
||||||
vt 0.704753 0.536191
|
|
||||||
vt 0.717065 0.554616
|
|
||||||
vt 0.725545 0.575089
|
|
||||||
vt 0.729868 0.596823
|
|
||||||
vt 0.729868 0.618983
|
|
||||||
vt 0.725545 0.640717
|
|
||||||
vt 0.717065 0.661190
|
|
||||||
vt 0.704754 0.679615
|
|
||||||
vt 0.689084 0.695284
|
|
||||||
vt 0.670659 0.707596
|
|
||||||
vt 0.650185 0.716076
|
|
||||||
vt 0.628452 0.720399
|
|
||||||
vt 0.606292 0.720399
|
|
||||||
vt 0.584558 0.716076
|
|
||||||
vt 0.564085 0.707595
|
|
||||||
vt 0.545660 0.695284
|
|
||||||
vt 0.529990 0.679615
|
|
||||||
vt 0.517679 0.661190
|
|
||||||
vt 0.509199 0.640717
|
|
||||||
vt 0.504876 0.618983
|
|
||||||
vt 0.504876 0.596824
|
|
||||||
vt 0.509199 0.575090
|
|
||||||
vt 0.517679 0.554617
|
|
||||||
vt 0.529991 0.536192
|
|
||||||
vn 0.097900 -0.051900 -0.993800
|
|
||||||
vn 0.289900 -0.051900 -0.955700
|
|
||||||
vn 0.470800 -0.051900 -0.880700
|
|
||||||
vn 0.633500 -0.051900 -0.772000
|
|
||||||
vn 0.772000 -0.051900 -0.633500
|
|
||||||
vn 0.880700 -0.051900 -0.470800
|
|
||||||
vn 0.955700 -0.051900 -0.289900
|
|
||||||
vn 0.993800 -0.051900 -0.097900
|
|
||||||
vn 0.993800 -0.051900 0.097900
|
|
||||||
vn 0.955700 -0.051900 0.289900
|
|
||||||
vn 0.880700 -0.051900 0.470800
|
|
||||||
vn 0.772000 -0.051900 0.633500
|
|
||||||
vn 0.633500 -0.051900 0.772000
|
|
||||||
vn 0.470800 -0.051900 0.880700
|
|
||||||
vn 0.289900 -0.051900 0.955700
|
|
||||||
vn 0.097900 -0.051900 0.993800
|
|
||||||
vn -0.097900 -0.051900 0.993800
|
|
||||||
vn -0.289900 -0.051900 0.955600
|
|
||||||
vn -0.470800 -0.051900 0.880700
|
|
||||||
vn -0.633500 -0.051900 0.772000
|
|
||||||
vn -0.772000 -0.051900 0.633500
|
|
||||||
vn -0.880700 -0.051900 0.470800
|
|
||||||
vn -0.955700 -0.051900 0.289900
|
|
||||||
vn -0.993800 -0.051900 0.097900
|
|
||||||
vn -0.993800 -0.051900 -0.097900
|
|
||||||
vn -0.955600 -0.051900 -0.289900
|
|
||||||
vn -0.880700 -0.051900 -0.470800
|
|
||||||
vn -0.772000 -0.051900 -0.633500
|
|
||||||
vn -0.633500 -0.051900 -0.772000
|
|
||||||
vn -0.470800 -0.051900 -0.880700
|
|
||||||
vn 0.000000 1.000000 0.000000
|
|
||||||
vn -0.097900 -0.051900 -0.993800
|
|
||||||
vn -0.289900 -0.051900 -0.955700
|
|
||||||
vn 0.000000 -1.000000 0.000000
|
|
||||||
s off
|
|
||||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
|
||||||
f 3/4/2 4/3/2 6/5/2 5/6/2
|
|
||||||
f 5/6/3 6/5/3 8/7/3 7/8/3
|
|
||||||
f 7/8/4 8/7/4 10/9/4 9/10/4
|
|
||||||
f 9/10/5 10/9/5 12/11/5 11/12/5
|
|
||||||
f 11/12/6 12/11/6 14/13/6 13/14/6
|
|
||||||
f 13/14/7 14/13/7 16/15/7 15/16/7
|
|
||||||
f 15/16/8 16/15/8 18/17/8 17/18/8
|
|
||||||
f 17/18/9 18/17/9 20/19/9 19/20/9
|
|
||||||
f 19/20/10 20/19/10 22/21/10 21/22/10
|
|
||||||
f 21/22/11 22/21/11 24/23/11 23/24/11
|
|
||||||
f 23/24/12 24/23/12 26/25/12 25/26/12
|
|
||||||
f 25/26/13 26/25/13 28/27/13 27/28/13
|
|
||||||
f 27/28/14 28/27/14 30/29/14 29/30/14
|
|
||||||
f 29/30/15 30/29/15 32/31/15 31/32/15
|
|
||||||
f 31/32/16 32/31/16 34/33/16 33/34/16
|
|
||||||
f 33/34/17 34/33/17 36/35/17 35/36/17
|
|
||||||
f 35/36/18 36/35/18 38/37/18 37/38/18
|
|
||||||
f 37/38/19 38/37/19 40/39/19 39/40/19
|
|
||||||
f 39/40/20 40/39/20 42/41/20 41/42/20
|
|
||||||
f 41/42/21 42/41/21 44/43/21 43/44/21
|
|
||||||
f 43/44/22 44/43/22 46/45/22 45/46/22
|
|
||||||
f 45/46/23 46/45/23 48/47/23 47/48/23
|
|
||||||
f 47/48/24 48/47/24 50/49/24 49/50/24
|
|
||||||
f 49/51/25 50/52/25 52/53/25 51/54/25
|
|
||||||
f 51/54/26 52/53/26 54/55/26 53/56/26
|
|
||||||
f 53/56/27 54/55/27 56/57/27 55/58/27
|
|
||||||
f 55/58/28 56/57/28 58/59/28 57/60/28
|
|
||||||
f 57/60/29 58/59/29 60/61/29 59/62/29
|
|
||||||
f 59/62/30 60/61/30 62/63/30 61/64/30
|
|
||||||
f 4/65/31 2/66/31 64/67/31 62/68/31 60/69/31 58/70/31 56/71/31 54/72/31 52/73/31 50/74/31 48/75/31 46/76/31 44/77/31 42/78/31 40/79/31 38/80/31 36/81/31 34/82/31 32/83/31 30/84/31 28/85/31 26/86/31 24/87/31 22/88/31 20/89/31 18/90/31 16/91/31 14/92/31 12/93/31 10/94/31 8/95/31 6/96/31
|
|
||||||
f 63/97/32 64/98/32 2/2/32 1/1/32
|
|
||||||
f 61/64/33 62/63/33 64/98/33 63/97/33
|
|
||||||
f 1/99/34 3/100/34 5/101/34 7/102/34 9/103/34 11/104/34 13/105/34 15/106/34 17/107/34 19/108/34 21/109/34 23/110/34 25/111/34 27/112/34 29/113/34 31/114/34 33/115/34 35/116/34 37/117/34 39/118/34 41/119/34 43/120/34 45/121/34 47/122/34 49/123/34 51/124/34 53/125/34 55/126/34 57/127/34 59/128/34 61/129/34 63/130/34
|
|
Before Width: | Height: | Size: 158 B |
@ -1,180 +0,0 @@
|
|||||||
<composition>
|
|
||||||
<typeID>20</typeID>
|
|
||||||
<object>
|
|
||||||
<modelPath>marbleSmooth.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<scale>0.75</scale>
|
|
||||||
<mass>8.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<composition>
|
|
||||||
<typeID>40</typeID>
|
|
||||||
<object>
|
|
||||||
<modelPath>block.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>1.0</yOffset>
|
|
||||||
<zOffset>2.0</zOffset>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>2.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<composition>
|
|
||||||
<typeID>60</typeID>
|
|
||||||
<object>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>2.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<composition>
|
|
||||||
<typeID>99</typeID>
|
|
||||||
<object>
|
|
||||||
<modelPath>torch.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
<light>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>3</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<rColour>1.0</rColour>
|
|
||||||
<gColour>1.0</gColour>
|
|
||||||
<bColour>1.0</bColour>
|
|
||||||
<intensity>4.0</intensity>
|
|
||||||
</light>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<composition>
|
|
||||||
<typeID>100</typeID>
|
|
||||||
<object>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
<object>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<xOffset>2.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
<object>
|
|
||||||
<modelPath>block.obj</modelPath>
|
|
||||||
<xOffset>1.0</xOffset>
|
|
||||||
<yOffset>3.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<composition>
|
|
||||||
<typeID>120</typeID>
|
|
||||||
<object>
|
|
||||||
<modelPath>switch_inner.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>1.0</mass>
|
|
||||||
</object>
|
|
||||||
<object>
|
|
||||||
<modelPath>switch_outer.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>marbleSmooth.obj</modelPath>
|
|
||||||
<texturePath>MarbleTexture.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.5</diffuseFactor>
|
|
||||||
<specularFactor>0.5</specularFactor>
|
|
||||||
<shininess>3.0</shininess>
|
|
||||||
<physicType>Player</physicType>
|
|
||||||
<radius>1.25</radius>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>block.obj</modelPath>
|
|
||||||
<texturePath>blockTexture_small.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.6</diffuseFactor>
|
|
||||||
<specularFactor>0.4</specularFactor>
|
|
||||||
<shininess>2.0</shininess>
|
|
||||||
<physicType>Box</physicType>
|
|
||||||
<width>1.0</width>
|
|
||||||
<height>1.0</height>
|
|
||||||
<length>3.0</length>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<texturePath>columnTexture2.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.6</diffuseFactor>
|
|
||||||
<specularFactor>0.4</specularFactor>
|
|
||||||
<shininess>2.0</shininess>
|
|
||||||
<physicType>TriangleMesh</physicType>
|
|
||||||
<dampningL>1.0</dampningL>
|
|
||||||
<dampningA>1.0</dampningA>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>torch.obj</modelPath>
|
|
||||||
<texturePath>torchTexture.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.3</diffuseFactor>
|
|
||||||
<specularFactor>0.7</specularFactor>
|
|
||||||
<shininess>10.0</shininess>
|
|
||||||
<physicType>TriangleMesh</physicType>
|
|
||||||
<dampningL>1.0</dampningL>
|
|
||||||
<dampningA>1.0</dampningA>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>switch_inner.obj</modelPath>
|
|
||||||
<texturePath>switchTextureInner.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.6</diffuseFactor>
|
|
||||||
<specularFactor>0.4</specularFactor>
|
|
||||||
<shininess>2.0</shininess>
|
|
||||||
<physicType>TriangleMesh</physicType>
|
|
||||||
<dampningL>0.5</dampningL>
|
|
||||||
<dampningA>0.5</dampningA>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>switch_outer.obj</modelPath>
|
|
||||||
<texturePath>switchTextureOuter.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.6</diffuseFactor>
|
|
||||||
<specularFactor>0.4</specularFactor>
|
|
||||||
<shininess>2.0</shininess>
|
|
||||||
<physicType>TriangleMesh</physicType>
|
|
||||||
<dampningL>1.0</dampningL>
|
|
||||||
<dampningA>1.0</dampningA>
|
|
||||||
</objectData>
|
|
Before Width: | Height: | Size: 104 B |
@ -1,67 +0,0 @@
|
|||||||
<composition>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<manualPos>false</manualPos>
|
|
||||||
<xPos>-0.500000</xPos>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zPos>1.500000</zPos>
|
|
||||||
<idGreen>1</idGreen>
|
|
||||||
<idBlue>5</idBlue>
|
|
||||||
<typeID>99</typeID>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<composition>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<manualPos>false</manualPos>
|
|
||||||
<xPos>-2.500000</xPos>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zPos>-1.500000</zPos>
|
|
||||||
<idGreen>1</idGreen>
|
|
||||||
<idBlue>3</idBlue>
|
|
||||||
<typeID>99</typeID>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<ambientLight>
|
|
||||||
<rColour>1.0</rColour>
|
|
||||||
<gColour>1.0</gColour>
|
|
||||||
<bColour>1.0</bColour>
|
|
||||||
</ambientLight>
|
|
||||||
|
|
||||||
<fogColour>
|
|
||||||
<rColour>0.10</rColour>
|
|
||||||
<gColour>0.14</gColour>
|
|
||||||
<bColour>0.14</bColour>
|
|
||||||
<alpha>1.0</alpha>
|
|
||||||
</fogColour>
|
|
||||||
|
|
||||||
<directionalLight>
|
|
||||||
<xOffset>-1.0</xOffset>
|
|
||||||
<yOffset>1.5</yOffset>
|
|
||||||
<zOffset>1.0</zOffset>
|
|
||||||
<rColour>1.0</rColour>
|
|
||||||
<gColour>1.0</gColour>
|
|
||||||
<bColour>0.9</bColour>
|
|
||||||
<intensity>0.2</intensity>
|
|
||||||
</directionalLight>
|
|
||||||
|
|
||||||
<skydome>
|
|
||||||
<texture>skydome.png</texture>
|
|
||||||
</skydome>
|
|
||||||
|
|
||||||
<trigger>
|
|
||||||
<name>-</name>
|
|
||||||
<xPosition>0.0</xPosition>
|
|
||||||
<yPosition>0.0</yPosition>
|
|
||||||
<zPosition>0.0</zPosition>
|
|
||||||
<distance>1.0</distance>
|
|
||||||
<isBiggerThan>false</isBiggerThan>
|
|
||||||
<idGreen>0</idGreen>
|
|
||||||
<idBlue>0</idBlue>
|
|
||||||
<objectNum>1</objectNum>
|
|
||||||
<functionPointer>-</functionPointer>
|
|
||||||
</trigger>
|
|
Before Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 650 KiB |
Before Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 16 KiB |
22
Readme.md
@ -1,6 +1,24 @@
|
|||||||
#Marble Race Game
|
![Saxum Logo](https://github.com/Faerbit/Saxum/blob/master/logo/saxum_logo_small.png)
|
||||||
|
|
||||||
This will be a Marble Race Game developed for the Softwarepraktikum at the RWTH Aachen.
|
This is a Marble Puzzle/Exploration Game developed in the practical course
|
||||||
|
at the institute for Computer Graphics and Multimedia at the RWTH Aachen.
|
||||||
|
|
||||||
|
##Downloads
|
||||||
|
See [release page](https://github.com/Faerbit/Saxum/releases) for downloads.
|
||||||
|
|
||||||
|
##Controls
|
||||||
|
You can control the camera by moving the mouse. You can zoom with the mouse wheel.
|
||||||
|
The marble is controlled via the W,A,S and D keys.
|
||||||
|
To exit the game press escape.
|
||||||
|
The controls are also listed listed on the loading screen.
|
||||||
|
|
||||||
##Building
|
##Building
|
||||||
Currently only tested on Linux. To build execute build.sh. Resulting binary will be in binaries.
|
Currently only tested on Linux. To build execute build.sh. Resulting binary will be in binaries.
|
||||||
|
You can also use the run.sh script to directly start the binary after building it.
|
||||||
|
|
||||||
|
## OS X support
|
||||||
|
In theory this should also compile on OS X. Since I do not own a Mac it is impossible for me to test this.
|
||||||
|
If you get it compiling, please get in touch with me afterwards.
|
||||||
|
|
||||||
|
##Modding
|
||||||
|
In theory the game is highly moddable. For modding some knowledge in XML and Lua is required. If you're interested in this, please get in touch with me, so I can explain the workflow to you.
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
#version 150
|
|
||||||
|
|
||||||
out float fragmentDepth;
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
fragmentDepth = gl_FragCoord.z;
|
|
||||||
}
|
|
134
Shader/phong.fsh
@ -1,134 +0,0 @@
|
|||||||
#version 400
|
|
||||||
|
|
||||||
in vec3 vNormal;
|
|
||||||
in vec2 vTexCoord;
|
|
||||||
in vec4 fragPosition;
|
|
||||||
in vec4 shadowCoord_near;
|
|
||||||
in vec4 shadowCoord_middle;
|
|
||||||
in vec4 shadowCoord_far;
|
|
||||||
|
|
||||||
out vec4 oColor;
|
|
||||||
|
|
||||||
uniform sampler2D uTexture;
|
|
||||||
uniform sampler2DShadow shadowMap_near;
|
|
||||||
uniform sampler2DShadow shadowMap_middle;
|
|
||||||
uniform sampler2DShadow shadowMap_far;
|
|
||||||
uniform vec3 ambientColor;
|
|
||||||
uniform float ambientFactor;
|
|
||||||
uniform float diffuseFactor;
|
|
||||||
uniform float specularFactor;
|
|
||||||
uniform vec3 camera;
|
|
||||||
uniform float shininess;
|
|
||||||
uniform int lightCount;
|
|
||||||
uniform vec3 directionalLightVector;
|
|
||||||
uniform vec3 directionalColor;
|
|
||||||
uniform float directionalIntensity;
|
|
||||||
uniform vec3 lightSources[32];
|
|
||||||
uniform vec3 lightColors[32];
|
|
||||||
uniform float lightIntensities[32];
|
|
||||||
uniform float fogEnd;
|
|
||||||
uniform vec4 fogColor;
|
|
||||||
uniform vec3 cameraCenter;
|
|
||||||
|
|
||||||
vec2 poissonDisk[16] = vec2[](
|
|
||||||
vec2( -0.94201624, -0.39906216 ),
|
|
||||||
vec2( 0.94558609, -0.76890725 ),
|
|
||||||
vec2( -0.094184101, -0.92938870 ),
|
|
||||||
vec2( 0.34495938, 0.29387760 ),
|
|
||||||
vec2( -0.91588581, 0.45771432 ),
|
|
||||||
vec2( -0.81544232, -0.87912464 ),
|
|
||||||
vec2( -0.38277543, 0.27676845 ),
|
|
||||||
vec2( 0.97484398, 0.75648379 ),
|
|
||||||
vec2( 0.44323325, -0.97511554 ),
|
|
||||||
vec2( 0.53742981, -0.47373420 ),
|
|
||||||
vec2( -0.26496911, -0.41893023 ),
|
|
||||||
vec2( 0.79197514, 0.19090188 ),
|
|
||||||
vec2( -0.24188840, 0.99706507 ),
|
|
||||||
vec2( -0.81409955, 0.91437590 ),
|
|
||||||
vec2( 0.19984126, 0.78641367 ),
|
|
||||||
vec2( 0.14383161, -0.14100790 )
|
|
||||||
);
|
|
||||||
|
|
||||||
float sampleShadow(sampler2DShadow shadowMap, vec4 shadowCoord) {
|
|
||||||
float visibility = 1.0;
|
|
||||||
float bias = 0.001*tan(acos(clamp(dot(vNormal, -directionalLightVector), 0.0, 1.0)));
|
|
||||||
bias = clamp(bias, 0.0, 0.01);
|
|
||||||
for (int i=0; i<4; i++) {
|
|
||||||
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (shadowCoord.z - bias)/shadowCoord.w)));
|
|
||||||
}
|
|
||||||
if (visibility == 1.0-(directionalIntensity/16)*4)
|
|
||||||
{
|
|
||||||
visibility = 1.0-directionalIntensity;
|
|
||||||
}
|
|
||||||
else if (visibility != 1.0) {
|
|
||||||
for (int i=0; i<12; i++) {
|
|
||||||
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (shadowCoord.z - bias)/shadowCoord.w)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return visibility;
|
|
||||||
}
|
|
||||||
|
|
||||||
float distanceToBorder(vec2 vector) {
|
|
||||||
float xDistance = min(vector.x, 1.0-vector.x);
|
|
||||||
float yDistance = min(vector.y, 1.0-vector.y);
|
|
||||||
return min(xDistance, yDistance);
|
|
||||||
}
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec3 ambientColor = ambientFactor * ambientColor;
|
|
||||||
vec3 diffuseColor = vec3(0.0, 0.0, 0.0);
|
|
||||||
vec3 specularColor = vec3(0.0, 0.0, 0.0);
|
|
||||||
|
|
||||||
|
|
||||||
// direction lighting
|
|
||||||
if(length(directionalLightVector)>0.0f) {
|
|
||||||
vec3 directionalVector = normalize(directionalLightVector);
|
|
||||||
diffuseColor += clamp(dot(normalize(vNormal), directionalVector)
|
|
||||||
*diffuseFactor*directionalIntensity*directionalColor, 0.0, 1.0);
|
|
||||||
vec3 cameraVector = normalize(camera - vec3(fragPosition));
|
|
||||||
specularColor += clamp(pow((dot((cameraVector+directionalVector),normalize(vNormal))/(length(cameraVector+directionalVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
|
|
||||||
*specularFactor*directionalIntensity*directionalColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
// point lights
|
|
||||||
for(int i = 0; i<lightCount; i++) {
|
|
||||||
float distance = distance(lightSources[i], vec3(fragPosition));
|
|
||||||
// only take lights into account with meaningful contribution
|
|
||||||
if (distance > 0.001f) {
|
|
||||||
vec3 lightVector = normalize(lightSources[i]-vec3(fragPosition));
|
|
||||||
float intensity = clamp(exp(-(1/lightIntensities[i])*distance), 0.0, 1.0);
|
|
||||||
diffuseColor += clamp(dot(normalize(vNormal), lightVector)
|
|
||||||
*diffuseFactor*intensity*lightColors[i], 0.0, 1.0);
|
|
||||||
vec3 cameraVector = normalize(camera - vec3(fragPosition));
|
|
||||||
specularColor += clamp(pow((dot((cameraVector+lightVector),normalize(vNormal))/(length(cameraVector+lightVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
|
|
||||||
*specularFactor*intensity*lightColors[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// shadows
|
|
||||||
float visibility = 1.0;
|
|
||||||
if (distanceToBorder(shadowCoord_middle.xy) <= 0.5 && distanceToBorder(shadowCoord_middle.xy) > 0.0) {
|
|
||||||
if (distanceToBorder(shadowCoord_near.xy) <= 0.5 && distanceToBorder(shadowCoord_near.xy) > 0.0) {
|
|
||||||
visibility = sampleShadow(shadowMap_near, shadowCoord_near);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
visibility = sampleShadow(shadowMap_middle, shadowCoord_middle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
visibility = sampleShadow(shadowMap_far, shadowCoord_far);
|
|
||||||
}
|
|
||||||
|
|
||||||
specularColor *= visibility;
|
|
||||||
diffuseColor *= visibility;
|
|
||||||
|
|
||||||
vec3 finalColor = specularColor + diffuseColor + ambientColor;
|
|
||||||
float distanceCameraCenter = distance(cameraCenter, vec3(fragPosition));
|
|
||||||
float fogFactor = clamp((1.0 - (fogEnd-distanceCameraCenter)/30.0), 0.0, 1.0);
|
|
||||||
fogFactor *= clamp((1.0-((fragPosition.y-8.0)/30.0)), 0.0, 1.0);
|
|
||||||
|
|
||||||
vec4 texture = texture(uTexture, vTexCoord).rgba;
|
|
||||||
oColor = vec4(finalColor, 1.0f)*texture;
|
|
||||||
oColor = mix(oColor, fogColor, fogFactor);
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
#include "application.hh"
|
|
||||||
|
|
||||||
|
|
||||||
Application::Application() {
|
|
||||||
graphics = Graphics(glm::uvec2(1024, 786), 0.1f, 150.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::init()
|
|
||||||
{
|
|
||||||
// choose Level TODO: Choose this in a menu
|
|
||||||
this->level = Level("0");
|
|
||||||
// Don't change this!
|
|
||||||
ignoredMouseUpdates = 0;
|
|
||||||
cameraLock = true;
|
|
||||||
// set Skybox size
|
|
||||||
level.setSkydomeSize((graphics.getFarPlane())-31.0f);
|
|
||||||
|
|
||||||
// define where shaders and textures can be found:
|
|
||||||
ACGL::Base::Settings::the()->setResourcePath("../");
|
|
||||||
ACGL::Base::Settings::the()->setShaderPath("Shader/");
|
|
||||||
ACGL::Base::Settings::the()->setTexturePath("Levels/Textures/");
|
|
||||||
ACGL::Base::Settings::the()->setGeometryPath("Levels/Geometry/");
|
|
||||||
|
|
||||||
// load Level
|
|
||||||
level.load();
|
|
||||||
|
|
||||||
graphics.init(&level);
|
|
||||||
|
|
||||||
// just in case: check for errors
|
|
||||||
openGLCriticalError();
|
|
||||||
}
|
|
||||||
|
|
||||||
Graphics* Application::getGraphics() {
|
|
||||||
return &graphics;
|
|
||||||
}
|
|
||||||
|
|
||||||
Level* Application::getLevel() {
|
|
||||||
return &level;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::setFocused(bool focused) {
|
|
||||||
this->focused = focused;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Application::isFocused() {
|
|
||||||
return focused;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::setCameraLock(bool locked) {
|
|
||||||
// Prevent camera jumping huge distances
|
|
||||||
if (!locked) {
|
|
||||||
ignoreNextMouseUpdate();
|
|
||||||
}
|
|
||||||
cameraLock = locked;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::ignoreNextMouseUpdate() {
|
|
||||||
ignoredMouseUpdates++;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::ignoredOneMouseUpdate() {
|
|
||||||
ignoredMouseUpdates--;
|
|
||||||
}
|
|
||||||
|
|
||||||
int Application::getIgnoredMouseUpdates() {
|
|
||||||
return ignoredMouseUpdates;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Application::isLocked() {
|
|
||||||
return cameraLock;
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
#ifndef APPLICATION_HH_INCLUDED
|
|
||||||
#define APPLICATION_HH_INCLUDED
|
|
||||||
|
|
||||||
#include "physics.hh"
|
|
||||||
#include "graphics.hh"
|
|
||||||
#include "level.hh"
|
|
||||||
|
|
||||||
class Application {
|
|
||||||
public:
|
|
||||||
Application();
|
|
||||||
Graphics* getGraphics();
|
|
||||||
Level* getLevel();
|
|
||||||
void init();
|
|
||||||
void setFocused(bool focused);
|
|
||||||
bool isFocused();
|
|
||||||
void setCameraLock(bool locked);
|
|
||||||
bool isLocked();
|
|
||||||
void ignoreNextMouseUpdate();
|
|
||||||
int getIgnoredMouseUpdates();
|
|
||||||
void ignoredOneMouseUpdate();
|
|
||||||
private:
|
|
||||||
int ignoredMouseUpdates;
|
|
||||||
bool focused;
|
|
||||||
bool cameraLock;
|
|
||||||
Graphics graphics;
|
|
||||||
Level level;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
BIN
blenderfiles/Gate.blend
Normal file
BIN
blenderfiles/anotherBrazier.blend
Normal file
BIN
blenderfiles/brazier.blend
Normal file
BIN
blenderfiles/exit.blend
Normal file
BIN
blenderfiles/hint.blend
Normal file
BIN
blenderfiles/newBrazier.blend
Normal file
BIN
blenderfiles/ruinsTile.blend
Normal file
BIN
blenderfiles/switch_inner.blend
Normal file
28
build.sh
@ -5,6 +5,7 @@ then
|
|||||||
rm -rf build
|
rm -rf build
|
||||||
rm -rf binaries
|
rm -rf binaries
|
||||||
rm -rf extern/bullet/build
|
rm -rf extern/bullet/build
|
||||||
|
cd extern/lua; make clean; cd ../..
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -15,9 +16,28 @@ then
|
|||||||
cmake="cmake -DCMAKE_SYSTEM_NAME='Windows' -DCMAKE_FIND_ROOT_PATH='/usr/bin:/usr/x86_64-w64-mingw32' -DCMAKE_CXX_COMPILER='x86_64-w64-mingw32-g++' -DCMAKE_C_COMPILER='x86_64-w64-mingw32-gcc'"
|
cmake="cmake -DCMAKE_SYSTEM_NAME='Windows' -DCMAKE_FIND_ROOT_PATH='/usr/bin:/usr/x86_64-w64-mingw32' -DCMAKE_CXX_COMPILER='x86_64-w64-mingw32-g++' -DCMAKE_C_COMPILER='x86_64-w64-mingw32-gcc'"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
buildType=$2
|
||||||
|
|
||||||
|
if [[ $2 == "" ]]
|
||||||
|
then
|
||||||
|
buildType="Debug"
|
||||||
|
fi
|
||||||
|
|
||||||
currentDir=$(pwd)
|
currentDir=$(pwd)
|
||||||
threads=$(($(nproc)+1))
|
threads=$(($(nproc)+1))
|
||||||
|
|
||||||
|
#building lua
|
||||||
|
|
||||||
|
cd extern/lua/
|
||||||
|
if [[ $1 == "windows" ]]
|
||||||
|
then
|
||||||
|
make CC=x86_64-w64-mingw32-gcc mingw
|
||||||
|
else
|
||||||
|
make linux
|
||||||
|
fi
|
||||||
|
cd $currentDir
|
||||||
|
|
||||||
|
|
||||||
#building bullet
|
#building bullet
|
||||||
|
|
||||||
cd extern/bullet/
|
cd extern/bullet/
|
||||||
@ -25,10 +45,10 @@ mkdir -p build
|
|||||||
cd build
|
cd build
|
||||||
if hash ninja 2>/dev/null
|
if hash ninja 2>/dev/null
|
||||||
then
|
then
|
||||||
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -GNinja ..
|
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
|
||||||
ninja
|
ninja
|
||||||
else
|
else
|
||||||
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 ..
|
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
|
||||||
make -j$threads
|
make -j$threads
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -40,9 +60,9 @@ mkdir -p build
|
|||||||
cd build
|
cd build
|
||||||
if hash ninja 2>/dev/null
|
if hash ninja 2>/dev/null
|
||||||
then
|
then
|
||||||
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -GNinja ..
|
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
|
||||||
ninja
|
ninja
|
||||||
else
|
else
|
||||||
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 ..
|
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
|
||||||
make -j$threads
|
make -j$threads
|
||||||
fi
|
fi
|
||||||
|
11
circle.yml
@ -19,13 +19,14 @@ database:
|
|||||||
|
|
||||||
test:
|
test:
|
||||||
override:
|
override:
|
||||||
- docker run -v ~/swp:/swp/swp -w=/swp/swp -u=$(id -u) faerbit/swp ./package.sh linux
|
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh linux
|
||||||
- docker run -v ~/swp:/swp/swp -w=/swp/swp -u=$(id -u) faerbit/swp ./package.sh windows
|
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh windows
|
||||||
- cp MarbleGame_Windows.zip MarbleGame_Linux.zip $CIRCLE_ARTIFACTS
|
- if [ -f Saxum_Windows.zip ]; then cp Saxum_Windows.zip $CIRCLE_ARTIFACTS; fi
|
||||||
|
- if [ -f Saxum_Linux.zip ]; then cp Saxum_Linux.zip $CIRCLE_ARTIFACTS; fi
|
||||||
|
|
||||||
deployment:
|
deployment:
|
||||||
master:
|
master:
|
||||||
branch: master
|
branch: master
|
||||||
commands:
|
commands:
|
||||||
- ./dropbox_uploader.sh -p upload MarbleGame_Windows.zip /
|
- if [ -f Saxum_Windows.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Windows.zip /; fi
|
||||||
- ./dropbox_uploader.sh -p upload MarbleGame_Linux.zip /
|
- if [ -f Saxum_Linux.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Linux.zip /; fi
|
||||||
|
@ -32,13 +32,28 @@ ADD_DEFINITIONS(-Wall)
|
|||||||
ENDIF(MSVC)
|
ENDIF(MSVC)
|
||||||
ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
|
ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
|
||||||
|
|
||||||
|
# for lodepng
|
||||||
|
SET(ACGL_BASE_DIR "${CMAKE_SOURCE_DIR}/extern/acgl")
|
||||||
|
FILE(GLOB_RECURSE HEADER_FILES_LODEPNG "${ACGL_BASE_DIR}/include/lodepng/*.h")
|
||||||
|
FILE(GLOB_RECURSE SOURCE_FILES_LODEPNG "${ACGL_BASE_DIR}/src/lodepng/*.cpp")
|
||||||
|
|
||||||
|
# for tinyxml
|
||||||
|
FILE(GLOB_RECURSE HEADER_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.hh")
|
||||||
|
FILE(GLOB_RECURSE SOURCE_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.cc")
|
||||||
|
|
||||||
|
SET(HEADER_FILES_EXTERN ${HEADER_FILES_LODEPNG} ${HEADER_FILES_TINYXML})
|
||||||
|
SET(SOURCE_FILES_EXTERN ${SOURCE_FILES_LODEPNG} ${SOURCE_FILES_TINYXML})
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES("${ACGL_BASE_DIR}/include")
|
||||||
|
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/extern/tinyxml")
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
FILE(GLOB_RECURSE SOURCE_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.cc")
|
FILE(GLOB_RECURSE SOURCE_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.cc")
|
||||||
SET(SOURCE_FILES_CONV ${SOURCE_FILES_CONV})
|
SET(SOURCE_FILES_CONV ${SOURCE_FILES_CONV} ${SOURCE_FILES_EXTERN})
|
||||||
|
|
||||||
FILE(GLOB_RECURSE HEADER_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.hh")
|
FILE(GLOB_RECURSE HEADER_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.hh")
|
||||||
SET(HEADER_FILES_CONV ${HEADER_FILES})
|
SET(HEADER_FILES_CONV ${HEADER_FILES_CONV} ${HEADER_FILES_EXTERN})
|
||||||
ADD_EXECUTABLE(converter ${SOURCE_FILES_CONV} ${HEADER_FILES_CONV})
|
ADD_EXECUTABLE(converter ${SOURCE_FILES_CONV} ${HEADER_FILES_CONV})
|
||||||
|
@ -1,24 +1,25 @@
|
|||||||
#include "converter.hh"
|
#include "converter.hh"
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <string>
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
using namespace tinyxml2;
|
using namespace tinyxml2;
|
||||||
|
|
||||||
Converter::Converter(std::string level){
|
Converter::Converter(std::string levelPath, std::string levelName, std::string compositionsPath){
|
||||||
xmlFile = "../Levels/ObjectSetups/Level" + level + ".xml";
|
xmlFile = levelPath + levelName + ".xml";
|
||||||
|
|
||||||
//Load Compositions
|
//Load Compositions
|
||||||
const char* charCompositions = "../Levels/ObjectSetups/Compositions.xml";
|
std::string stringCompositions = compositionsPath;
|
||||||
|
const char* charCompositions = stringCompositions.c_str();
|
||||||
compositions->LoadFile(charCompositions);
|
compositions->LoadFile(charCompositions);
|
||||||
if (compositions->ErrorID()!=0){
|
if (compositions->ErrorID()!=0){
|
||||||
printf("Could not open Compositions!\n");
|
printf("Could not open Compositions!\n");
|
||||||
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Create a backup of the current Level png file, if no backup exists
|
//Create a backup of the current Level png file, if no backup exists
|
||||||
std::string pngFile = "../Levels/ObjectSetups/Level" + level + ".png";
|
std::string pngFile = levelPath + levelName + ".png";
|
||||||
std::string backupPNG = "../Levels/ObjectSetups/BackupLevel" + level + ".png";
|
std::string backupPNG = levelPath + levelName + "Backup.png";
|
||||||
struct stat buf;
|
struct stat buf;
|
||||||
if(stat(backupPNG.c_str(), &buf) != 0){
|
if(stat(backupPNG.c_str(), &buf) != 0){
|
||||||
std::ifstream src(pngFile, std::ios::binary);
|
std::ifstream src(pngFile, std::ios::binary);
|
||||||
@ -26,20 +27,31 @@ Converter::Converter(std::string level){
|
|||||||
dst << src.rdbuf();
|
dst << src.rdbuf();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Create a backup of the current Level xml file
|
|
||||||
std::string backupXML = "../Levels/ObjectSetups/BackupLevel" + level + ".xml";
|
|
||||||
std::ifstream src(xmlFile, std::ios::binary);
|
|
||||||
std::ofstream dst(backupXML, std::ios::binary);
|
|
||||||
dst << src.rdbuf();
|
|
||||||
|
|
||||||
//Load the Level xml file
|
//Load the Level xml file
|
||||||
|
nextID.push_back(0);
|
||||||
nextID.push_back(1);
|
nextID.push_back(1);
|
||||||
nextID.push_back(1);
|
for (int i=0; i<256; i++){
|
||||||
|
for (int j=0; j<256; j++){
|
||||||
|
idUsed[i][j] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
idUsed[0][0] = true;
|
||||||
const char* charXmlFile = xmlFile.c_str();
|
const char* charXmlFile = xmlFile.c_str();
|
||||||
doc->LoadFile(charXmlFile);
|
doc->LoadFile(charXmlFile);
|
||||||
|
//check if the xml file did not already exist
|
||||||
if (doc->ErrorID()!=0){
|
if (doc->ErrorID()!=0){
|
||||||
printf("Could not open xml, creating new xml.\n");
|
std::string answer;
|
||||||
//Create all global Elements with Dummy-Values
|
printf("Could not open xml, do you want to create a new xml? (y/n)\n");
|
||||||
|
std::cin >> answer;
|
||||||
|
while(answer.compare("y") != 0 && answer.compare("n") != 0){
|
||||||
|
printf("Answer with y or n\n");
|
||||||
|
std::cin >> answer;
|
||||||
|
}
|
||||||
|
if(answer.compare("n") == 0){
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
printf("Creating new xml.\n");
|
||||||
|
//Create all global Lightingparameters with Dummy-Values
|
||||||
std::vector<XMLElement*> lightAttributes;
|
std::vector<XMLElement*> lightAttributes;
|
||||||
lightAttributes.push_back(doc->NewElement("xOffset"));
|
lightAttributes.push_back(doc->NewElement("xOffset"));
|
||||||
lightAttributes.push_back(doc->NewElement("yOffset"));
|
lightAttributes.push_back(doc->NewElement("yOffset"));
|
||||||
@ -51,10 +63,18 @@ Converter::Converter(std::string level){
|
|||||||
XMLElement* rColourAmbient = doc->NewElement("rColour");
|
XMLElement* rColourAmbient = doc->NewElement("rColour");
|
||||||
XMLElement* gColourAmbient = doc->NewElement("gColour");
|
XMLElement* gColourAmbient = doc->NewElement("gColour");
|
||||||
XMLElement* bColourAmbient = doc->NewElement("bColour");
|
XMLElement* bColourAmbient = doc->NewElement("bColour");
|
||||||
XMLElement* rColourFog = doc->NewElement("rColour");
|
XMLElement* rColourFogDay = doc->NewElement("rColour");
|
||||||
XMLElement* gColourFog = doc->NewElement("gColour");
|
XMLElement* gColourFogDay = doc->NewElement("gColour");
|
||||||
XMLElement* bColourFog = doc->NewElement("bColour");
|
XMLElement* bColourFogDay = doc->NewElement("bColour");
|
||||||
XMLElement* alphaFog = doc->NewElement("alpha");
|
XMLElement* alphaFogDay = doc->NewElement("alpha");
|
||||||
|
XMLElement* rColourFogRise = doc->NewElement("rColour");
|
||||||
|
XMLElement* gColourFogRise = doc->NewElement("gColour");
|
||||||
|
XMLElement* bColourFogRise = doc->NewElement("bColour");
|
||||||
|
XMLElement* alphaFogRise = doc->NewElement("alpha");
|
||||||
|
XMLElement* rColourFogNight = doc->NewElement("rColour");
|
||||||
|
XMLElement* gColourFogNight = doc->NewElement("gColour");
|
||||||
|
XMLElement* bColourFogNight = doc->NewElement("bColour");
|
||||||
|
XMLElement* alphaFogNight = doc->NewElement("alpha");
|
||||||
|
|
||||||
lightAttributes[0]->SetText("-1.0");
|
lightAttributes[0]->SetText("-1.0");
|
||||||
lightAttributes[1]->SetText("1.5");
|
lightAttributes[1]->SetText("1.5");
|
||||||
@ -66,79 +86,125 @@ Converter::Converter(std::string level){
|
|||||||
rColourAmbient->SetText("1.0");
|
rColourAmbient->SetText("1.0");
|
||||||
gColourAmbient->SetText("1.0");
|
gColourAmbient->SetText("1.0");
|
||||||
bColourAmbient->SetText("1.0");
|
bColourAmbient->SetText("1.0");
|
||||||
rColourFog->SetText("0.10");
|
rColourFogDay->SetText("0.57");
|
||||||
gColourFog->SetText("0.14");
|
gColourFogDay->SetText("0.80");
|
||||||
bColourFog->SetText("0.14");
|
bColourFogDay->SetText("0.98");
|
||||||
alphaFog->SetText("1.0");
|
alphaFogDay->SetText("1.0");
|
||||||
|
rColourFogRise->SetText("0.88");
|
||||||
|
gColourFogRise->SetText("0.38");
|
||||||
|
bColourFogRise->SetText("0.38");
|
||||||
|
alphaFogRise->SetText("1.0");
|
||||||
|
rColourFogNight->SetText("0.09");
|
||||||
|
gColourFogNight->SetText("0.1");
|
||||||
|
bColourFogNight->SetText("0.24");
|
||||||
|
alphaFogNight->SetText("1.0");
|
||||||
|
|
||||||
XMLElement* ambientLight = doc->NewElement("ambientLight");
|
XMLElement* ambientLight = doc->NewElement("ambientLight");
|
||||||
XMLElement* fogColour = doc->NewElement("fogColour");
|
XMLElement* fogColourDay = doc->NewElement("fogColourDay");
|
||||||
|
XMLElement* fogColourRise = doc->NewElement("fogColourRise");
|
||||||
|
XMLElement* fogColourNight = doc->NewElement("fogColourNight");
|
||||||
XMLElement* directionalLight = doc->NewElement("directionalLight");
|
XMLElement* directionalLight = doc->NewElement("directionalLight");
|
||||||
|
|
||||||
ambientLight->InsertEndChild(rColourAmbient);
|
ambientLight->InsertEndChild(rColourAmbient);
|
||||||
ambientLight->InsertEndChild(gColourAmbient);
|
ambientLight->InsertEndChild(gColourAmbient);
|
||||||
ambientLight->InsertEndChild(bColourAmbient);
|
ambientLight->InsertEndChild(bColourAmbient);
|
||||||
fogColour->InsertEndChild(rColourFog);
|
fogColourDay->InsertEndChild(rColourFogDay);
|
||||||
fogColour->InsertEndChild(gColourFog);
|
fogColourDay->InsertEndChild(gColourFogDay);
|
||||||
fogColour->InsertEndChild(bColourFog);
|
fogColourDay->InsertEndChild(bColourFogDay);
|
||||||
fogColour->InsertEndChild(alphaFog);
|
fogColourDay->InsertEndChild(alphaFogDay);
|
||||||
|
fogColourRise->InsertEndChild(rColourFogRise);
|
||||||
|
fogColourRise->InsertEndChild(gColourFogRise);
|
||||||
|
fogColourRise->InsertEndChild(bColourFogRise);
|
||||||
|
fogColourRise->InsertEndChild(alphaFogRise);
|
||||||
|
fogColourNight->InsertEndChild(rColourFogNight);
|
||||||
|
fogColourNight->InsertEndChild(gColourFogNight);
|
||||||
|
fogColourNight->InsertEndChild(bColourFogNight);
|
||||||
|
fogColourNight->InsertEndChild(alphaFogNight);
|
||||||
for(int i=0;i<7;i++){
|
for(int i=0;i<7;i++){
|
||||||
directionalLight->InsertEndChild(lightAttributes[i]);
|
directionalLight->InsertEndChild(lightAttributes[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
XMLElement* skydome = doc->NewElement("skydome");
|
|
||||||
XMLElement* skydomeTexture = doc->NewElement("texture");
|
|
||||||
skydomeTexture->SetText("skydome.png");
|
|
||||||
skydome->InsertEndChild(skydomeTexture);
|
|
||||||
|
|
||||||
doc->InsertEndChild(ambientLight);
|
doc->InsertEndChild(ambientLight);
|
||||||
doc->InsertEndChild(fogColour);
|
doc->InsertEndChild(fogColourDay);
|
||||||
|
doc->InsertEndChild(fogColourRise);
|
||||||
|
doc->InsertEndChild(fogColourNight);
|
||||||
doc->InsertEndChild(directionalLight);
|
doc->InsertEndChild(directionalLight);
|
||||||
|
|
||||||
|
//Create global terrain Element
|
||||||
|
XMLElement* terrain = doc->NewElement("terrain");
|
||||||
|
XMLElement* terrainHeightmap = doc->NewElement("heightmap");
|
||||||
|
XMLElement* terrainTexture = doc->NewElement("texture");
|
||||||
|
XMLElement* terrainAmbientFactor = doc->NewElement("ambientFactor");
|
||||||
|
XMLElement* terrainDiffuseFactor = doc->NewElement("diffuseFactor");
|
||||||
|
XMLElement* terrainSpecularFactor = doc->NewElement("specularFactor");
|
||||||
|
XMLElement* terrainShininess = doc->NewElement("shininess");
|
||||||
|
std::string heightmapPath = "heightmap" + levelName + ".png";
|
||||||
|
terrainHeightmap->SetText(heightmapPath.c_str());
|
||||||
|
terrainTexture->SetText("terrainTexture.png");
|
||||||
|
terrainAmbientFactor->SetText("0.1");
|
||||||
|
terrainDiffuseFactor->SetText("0.8");
|
||||||
|
terrainSpecularFactor->SetText("0.2");
|
||||||
|
terrainShininess->SetText("1.0");
|
||||||
|
terrain->InsertEndChild(terrainHeightmap);
|
||||||
|
terrain->InsertEndChild(terrainTexture);
|
||||||
|
terrain->InsertEndChild(terrainAmbientFactor);
|
||||||
|
terrain->InsertEndChild(terrainDiffuseFactor);
|
||||||
|
terrain->InsertEndChild(terrainSpecularFactor);
|
||||||
|
terrain->InsertEndChild(terrainShininess);
|
||||||
|
doc->InsertEndChild(terrain);
|
||||||
|
|
||||||
|
//Create global skydome Element
|
||||||
|
XMLElement* skydome = doc->NewElement("skydome");
|
||||||
|
XMLElement* skydomeModel = doc->NewElement("model");
|
||||||
|
XMLElement* skydomeTexture = doc->NewElement("texture");
|
||||||
|
XMLElement* skydomeTextureNight = doc->NewElement("nightTexture");
|
||||||
|
skydomeModel->SetText("skydome.obj");
|
||||||
|
skydomeTexture->SetText("skydome.png");
|
||||||
|
skydomeTextureNight->SetText("skydomeNight.png");
|
||||||
|
skydome->InsertEndChild(skydomeModel);
|
||||||
|
skydome->InsertEndChild(skydomeTexture);
|
||||||
|
skydome->InsertEndChild(skydomeTextureNight);
|
||||||
doc->InsertEndChild(skydome);
|
doc->InsertEndChild(skydome);
|
||||||
|
|
||||||
//Create a Dummy-trigger
|
//Create global physics parameters
|
||||||
XMLElement* trigger = doc->NewElement("trigger");
|
XMLElement* physics = doc->NewElement("physics");
|
||||||
doc->InsertEndChild(trigger);
|
XMLElement* playerFriction = doc->NewElement("friction");
|
||||||
XMLElement* name = doc->NewElement("name");
|
XMLElement* playerStrength = doc->NewElement("strength");
|
||||||
XMLElement* xPosition = doc->NewElement("xPosition");
|
playerFriction->SetText("0.9");
|
||||||
XMLElement* yPosition = doc->NewElement("yPosition");
|
playerStrength->SetText("300.0");
|
||||||
XMLElement* zPosition = doc->NewElement("zPosition");
|
physics->InsertEndChild(playerFriction);
|
||||||
XMLElement* distance = doc->NewElement("distance");
|
physics->InsertEndChild(playerStrength);
|
||||||
XMLElement* isBiggerThan = doc->NewElement("isBiggerThan");
|
doc->InsertEndChild(physics);
|
||||||
XMLElement* idGreen = doc->NewElement("idGreen");
|
|
||||||
XMLElement* idBlue = doc->NewElement("idBlue");
|
//Create positionConstraint Dummy
|
||||||
XMLElement* objectNum = doc->NewElement("objectNum");
|
XMLElement* positionConstraint = doc->NewElement("positionConstraint");
|
||||||
XMLElement* functionPointer = doc->NewElement("functionPointer");
|
XMLElement* positionConstraintObjectNum = doc->NewElement("objectNum");
|
||||||
name->SetText("-");
|
XMLElement* positionConstraintXPos = doc->NewElement("xPosition");
|
||||||
xPosition->SetText("0.0");
|
XMLElement* positionConstraintYPos = doc->NewElement("yPosition");
|
||||||
yPosition->SetText("0.0");
|
XMLElement* positionConstraintZPos = doc->NewElement("zPosition");
|
||||||
zPosition->SetText("0.0");
|
XMLElement* positionConstraintStrength = doc->NewElement("strength");
|
||||||
distance->SetText("1.0");
|
positionConstraintObjectNum->SetText("0");
|
||||||
isBiggerThan->SetText("false");
|
positionConstraintXPos->SetText("0.0");
|
||||||
idGreen->SetText("0");
|
positionConstraintYPos->SetText("0.0");
|
||||||
idBlue->SetText("0");
|
positionConstraintZPos->SetText("0.0");
|
||||||
objectNum->SetText("1");
|
positionConstraintStrength->SetText("100.0");
|
||||||
functionPointer->SetText("-");
|
positionConstraint->InsertEndChild(positionConstraintObjectNum);
|
||||||
trigger->InsertEndChild(name);
|
positionConstraint->InsertEndChild(positionConstraintXPos);
|
||||||
trigger->InsertEndChild(xPosition);
|
positionConstraint->InsertEndChild(positionConstraintYPos);
|
||||||
trigger->InsertEndChild(yPosition);
|
positionConstraint->InsertEndChild(positionConstraintZPos);
|
||||||
trigger->InsertEndChild(zPosition);
|
positionConstraint->InsertEndChild(positionConstraintStrength);
|
||||||
trigger->InsertEndChild(distance);
|
doc->InsertEndChild(positionConstraint);
|
||||||
trigger->InsertEndChild(isBiggerThan);
|
|
||||||
trigger->InsertEndChild(idGreen);
|
|
||||||
trigger->InsertEndChild(idBlue);
|
|
||||||
trigger->InsertEndChild(objectNum);
|
|
||||||
trigger->InsertEndChild(functionPointer);
|
|
||||||
}else{
|
}else{
|
||||||
|
//Create a backup of the current Level xml file
|
||||||
|
std::string backupXML = levelPath + levelName + "Backup.xml";
|
||||||
|
std::ifstream src(xmlFile, std::ios::binary);
|
||||||
|
std::ofstream dst(backupXML, std::ios::binary);
|
||||||
|
dst << src.rdbuf();
|
||||||
|
//Check what IDs are already in use
|
||||||
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||||
int idGreen, idBlue;
|
|
||||||
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||||
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
|
int idGreen = queryInt(thisComposition, "idGreen");
|
||||||
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
|
int idBlue = queryInt(thisComposition, "idBlue");
|
||||||
if(idGreen > nextID[0] || (idGreen == nextID[0] && idBlue > nextID[1])){
|
idUsed[idGreen][idBlue] = true;
|
||||||
nextID[0] = idGreen;
|
|
||||||
nextID[1] = idBlue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -150,9 +216,52 @@ Converter::~Converter(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
||||||
XMLElement* newComposition = doc->NewElement("composition");
|
int oldIDGreen, oldIDBlue;
|
||||||
doc->InsertFirstChild(newComposition);
|
bool alreadyExists = false;
|
||||||
|
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||||
|
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||||
|
float xPos = queryFloat(thisComposition, "xPos");
|
||||||
|
float zPos = queryFloat(thisComposition, "zPos");
|
||||||
|
int typeID = queryInt(thisComposition, "typeID");
|
||||||
|
if(xPos == posX && zPos == posZ && typeID == type){
|
||||||
|
if(alreadyExists){
|
||||||
|
std::cout << "At the position " << xPos << "," << zPos << " multiple compositions with the ID " << typeID << " exist in the xml." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
oldIDGreen = queryInt(thisComposition, "idGreen");
|
||||||
|
oldIDBlue = queryInt(thisComposition, "idBlue");
|
||||||
|
alreadyExists = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (alreadyExists){
|
||||||
|
if (! idUsed[oldIDGreen][oldIDBlue]){
|
||||||
|
std::cout << "The composition with ID " << oldIDGreen << "," << oldIDBlue << " exists in the xml but the converter thinks it does not." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
std::vector<int> oldID;
|
||||||
|
oldID.push_back(oldIDGreen);
|
||||||
|
oldID.push_back(oldIDBlue);
|
||||||
|
return oldID;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool full = false;
|
||||||
|
while(idUsed[nextID[0]][nextID[1]]){
|
||||||
|
nextID[1] += 1;
|
||||||
|
if (nextID[1] == 256){
|
||||||
|
nextID[1] = 0;
|
||||||
|
nextID[0] +=1;
|
||||||
|
if (nextID[0] == 256){
|
||||||
|
if(full){
|
||||||
|
printf("Can not have more than 65535 compositions.\n");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
nextID[0] = 0;
|
||||||
|
full = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
XMLElement* newComposition = doc->NewElement("composition");
|
||||||
XMLElement* typeID = doc->NewElement("typeID");
|
XMLElement* typeID = doc->NewElement("typeID");
|
||||||
XMLElement* idBlue = doc->NewElement("idBlue");
|
XMLElement* idBlue = doc->NewElement("idBlue");
|
||||||
XMLElement* idGreen = doc->NewElement("idGreen");
|
XMLElement* idGreen = doc->NewElement("idGreen");
|
||||||
@ -189,25 +298,71 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
|||||||
newComposition->InsertFirstChild(xRot);
|
newComposition->InsertFirstChild(xRot);
|
||||||
newComposition->InsertFirstChild(scale);
|
newComposition->InsertFirstChild(scale);
|
||||||
|
|
||||||
std::vector<int> ret = nextID;
|
//Create a Dummy-trigger
|
||||||
nextID[1] += 1;
|
XMLElement* trigger = doc->NewElement("trigger");
|
||||||
if (nextID[1] == 255){
|
newComposition->InsertEndChild(trigger);
|
||||||
nextID[1] = 0;
|
XMLElement* name = doc->NewElement("name");
|
||||||
nextID[0] +=1;
|
XMLElement* undo = doc->NewElement("undo");
|
||||||
}
|
XMLElement* xPosition = doc->NewElement("xPosition");
|
||||||
return ret;
|
XMLElement* yPosition = doc->NewElement("yPosition");
|
||||||
|
XMLElement* zPosition = doc->NewElement("zPosition");
|
||||||
|
XMLElement* targetIdGreen = doc->NewElement("targetIdGreen");
|
||||||
|
XMLElement* targetIdBlue = doc->NewElement("targetIdBlue");
|
||||||
|
XMLElement* distance = doc->NewElement("distance");
|
||||||
|
XMLElement* isBiggerThan = doc->NewElement("isBiggerThan");
|
||||||
|
XMLElement* objectNum = doc->NewElement("objectNum");
|
||||||
|
XMLElement* luaScript = doc->NewElement("luaScript");
|
||||||
|
XMLElement* toChangeIdGreen = doc->NewElement("toChangeIdGreen");
|
||||||
|
XMLElement* toChangeIdBlue = doc->NewElement("toChangeIdBlue");
|
||||||
|
XMLElement* toChangeObjNum = doc->NewElement("toChangeObjNum");
|
||||||
|
|
||||||
|
name->SetText("-");
|
||||||
|
undo->SetText("false");
|
||||||
|
xPosition->SetText("0");
|
||||||
|
yPosition->SetText("0");
|
||||||
|
zPosition->SetText("0");
|
||||||
|
targetIdGreen->SetText("-");
|
||||||
|
targetIdBlue->SetText("-");
|
||||||
|
distance->SetText("1.0");
|
||||||
|
isBiggerThan->SetText("false");
|
||||||
|
objectNum->SetText("0");
|
||||||
|
luaScript->SetText("-");
|
||||||
|
toChangeIdGreen->SetText("0");
|
||||||
|
toChangeIdBlue->SetText("0");
|
||||||
|
toChangeObjNum->SetText("0");
|
||||||
|
|
||||||
|
trigger->InsertEndChild(name);
|
||||||
|
trigger->InsertEndChild(undo);
|
||||||
|
trigger->InsertEndChild(xPosition);
|
||||||
|
trigger->InsertEndChild(yPosition);
|
||||||
|
trigger->InsertEndChild(zPosition);
|
||||||
|
trigger->InsertEndChild(targetIdGreen);
|
||||||
|
trigger->InsertEndChild(targetIdBlue);
|
||||||
|
trigger->InsertEndChild(distance);
|
||||||
|
trigger->InsertEndChild(isBiggerThan);
|
||||||
|
trigger->InsertEndChild(objectNum);
|
||||||
|
trigger->InsertEndChild(luaScript);
|
||||||
|
trigger->InsertEndChild(toChangeIdGreen);
|
||||||
|
trigger->InsertEndChild(toChangeIdBlue);
|
||||||
|
trigger->InsertEndChild(toChangeObjNum);
|
||||||
|
|
||||||
|
idUsed[nextID[0]][nextID[1]] = true;
|
||||||
|
doc->InsertFirstChild(newComposition);
|
||||||
|
return nextID;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Converter::updateComposition(int idG, int idB, float posX, float posZ){
|
void Converter::updateComposition(int idG, int idB, float posX, float posZ){
|
||||||
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||||
int idGreen = 0, idBlue = 0;
|
|
||||||
bool compositionExists = false;
|
bool compositionExists = false;
|
||||||
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||||
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
|
int idGreen = queryInt(thisComposition, "idGreen");
|
||||||
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
|
int idBlue = queryInt(thisComposition, "idBlue");
|
||||||
if(idGreen == idG && idBlue == idB){
|
if(idGreen == idG && idBlue == idB){
|
||||||
bool manualPos;
|
if (compositionExists){
|
||||||
errorCheck(thisComposition->FirstChildElement("manualPos")->QueryBoolText(&manualPos));
|
std::cout << "The ID " << idGreen << "," << idBlue << " is used for multiple compositions in the xml." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
bool manualPos = queryBool(thisComposition, "manualPos");
|
||||||
if(!manualPos){
|
if(!manualPos){
|
||||||
thisComposition->FirstChildElement("xPos")->SetText(std::to_string(posX).c_str());
|
thisComposition->FirstChildElement("xPos")->SetText(std::to_string(posX).c_str());
|
||||||
thisComposition->FirstChildElement("zPos")->SetText(std::to_string(posZ).c_str());
|
thisComposition->FirstChildElement("zPos")->SetText(std::to_string(posZ).c_str());
|
||||||
@ -216,17 +371,16 @@ void Converter::updateComposition(int idG, int idB, float posX, float posZ){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!compositionExists){
|
if(!compositionExists){
|
||||||
std::cout << "A composition has an ID in the png, but does'nt exist in the xml." << std::endl;
|
std::cout << "A composition has the ID " << idG << "," << idB << " and the position " << posX << "," << posZ << " in the png, but does not exist in the xml." << std::endl;
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Converter::deleteComposition(int idG, int idB){
|
void Converter::deleteComposition(int idG, int idB){
|
||||||
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||||
int idGreen, idBlue;
|
|
||||||
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||||
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
|
int idGreen = queryInt(thisComposition, "idGreen");
|
||||||
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
|
int idBlue = queryInt(thisComposition, "idBlue");
|
||||||
if(idGreen == idG && idBlue == idB){
|
if(idGreen == idG && idBlue == idB){
|
||||||
doc->DeleteChild(thisComposition);
|
doc->DeleteChild(thisComposition);
|
||||||
}
|
}
|
||||||
@ -238,8 +392,70 @@ void Converter::save(){
|
|||||||
doc->SaveFile(charXmlFile);
|
doc->SaveFile(charXmlFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<int> Converter::getNextID(){
|
float Converter::queryFloat(XMLElement* element, const char* attribute){
|
||||||
return nextID;
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
float ret;
|
||||||
|
errorCheck(attributeElement->QueryFloatText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
float Converter::queryFloat(XMLDocument*& element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
float ret;
|
||||||
|
errorCheck(attributeElement->QueryFloatText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Converter::queryInt(XMLElement* element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
int ret;
|
||||||
|
errorCheck(attributeElement->QueryIntText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Converter::queryInt(XMLDocument*& element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
int ret;
|
||||||
|
errorCheck(attributeElement->QueryIntText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Converter::queryBool(XMLElement* element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
bool ret;
|
||||||
|
errorCheck(attributeElement->QueryBoolText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Converter::queryBool(XMLDocument*& element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
bool ret;
|
||||||
|
errorCheck(attributeElement->QueryBoolText(&ret));
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Converter::errorCheck(XMLError error){
|
void Converter::errorCheck(XMLError error){
|
||||||
@ -260,5 +476,6 @@ void Converter::errorCheck(XMLError error){
|
|||||||
else {
|
else {
|
||||||
printf("Unknown error.\n");
|
printf("Unknown error.\n");
|
||||||
}
|
}
|
||||||
|
exit(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,21 +8,26 @@
|
|||||||
using namespace tinyxml2;
|
using namespace tinyxml2;
|
||||||
class Converter {
|
class Converter {
|
||||||
public:
|
public:
|
||||||
Converter(std::string level);
|
Converter(std::string levelPath, std::string levelName, std::string compositionsPath);
|
||||||
Converter();
|
Converter();
|
||||||
~Converter();
|
~Converter();
|
||||||
void updateComposition(int idG, int idB, float posX, float posZ); //updates the position of a composition
|
void updateComposition(int idG, int idB, float posX, float posZ); //updates the position of a composition
|
||||||
std::vector<int> newComposition(int type, float posX, float posZ);//creates a new composition and returns its ID
|
std::vector<int> newComposition(int type, float posX, float posZ); //creates a new composition and returns its ID
|
||||||
void deleteComposition(int idG, int idB);
|
void deleteComposition(int idG, int idB);
|
||||||
void save(); //writes the xml to file
|
void save(); //writes the xml to file
|
||||||
std::vector<int> getNextID(); //returns the next unused ID
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void errorCheck(XMLError error);
|
|
||||||
std::vector<int> nextID;
|
std::vector<int> nextID;
|
||||||
|
bool idUsed[256][256];
|
||||||
std::string xmlFile;
|
std::string xmlFile;
|
||||||
XMLDocument* doc = new XMLDocument();
|
XMLDocument* doc = new XMLDocument();
|
||||||
XMLDocument* compositions = new XMLDocument();
|
XMLDocument* compositions = new XMLDocument();
|
||||||
|
float queryFloat(XMLElement* element, const char* attribute);
|
||||||
|
float queryFloat(XMLDocument*& element, const char* attribute);
|
||||||
|
int queryInt(XMLElement* element, const char* attribute);
|
||||||
|
int queryInt(XMLDocument*& element, const char* attribute);
|
||||||
|
bool queryBool(XMLElement* element, const char* attribute);
|
||||||
|
bool queryBool(XMLDocument*& element, const char* attribute);
|
||||||
|
void errorCheck(XMLError error);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
6096
converter/lodepng.cc
1702
converter/lodepng.hh
@ -1,16 +1,21 @@
|
|||||||
#include "lodepng.hh"
|
#include <lodepng/lodepng.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "converter.hh"
|
#include "converter.hh"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include "tinyxml2.hh"
|
||||||
|
|
||||||
|
using namespace tinyxml2;
|
||||||
|
|
||||||
int main( int argc, char *argv[] ){
|
int main( int argc, char *argv[] ){
|
||||||
if (argc <= 1){
|
if (argc <= 1){
|
||||||
std::cout << "Converter needs the level (1,2,...) as input." << std::endl;
|
std::cout << "Converter needs the levels name (Level1) as input." << std::endl;
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
printf("Initializing.\n");
|
||||||
std::string levelString = argv[1];
|
std::string levelString = argv[1];
|
||||||
Converter conv = Converter(levelString);
|
|
||||||
|
|
||||||
bool idFound[256][256];
|
bool idFound[256][256];
|
||||||
for (int i=0; i<256; i++){
|
for (int i=0; i<256; i++){
|
||||||
for (int j=0; j<256; j++){
|
for (int j=0; j<256; j++){
|
||||||
@ -18,44 +23,81 @@ int main( int argc, char *argv[] ){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//read the setup png
|
XMLDocument* config = new XMLDocument();
|
||||||
std::string filePath = "../Levels/ObjectSetups/Level" + levelString + ".png";
|
const char* xmlFile = "../data/config.xml";
|
||||||
|
config->LoadFile(xmlFile);
|
||||||
|
if (config->ErrorID()!=0){
|
||||||
|
printf("Could not open config.xml!\n");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
XMLElement* xmlLevelPath = config->FirstChildElement("levelXmlPath");
|
||||||
|
if (xmlLevelPath == NULL){
|
||||||
|
std::cout << "XMLError: Attribute levelXmlPath does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
const char* charLevelPath = xmlLevelPath->GetText();
|
||||||
|
if(charLevelPath == NULL){
|
||||||
|
std::cout << "XMLError: Attribute levelXmlPath could not be loaded." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
std::string levelPath = charLevelPath;
|
||||||
|
|
||||||
|
XMLElement* xmlCompositionsPath = config->FirstChildElement("compositionsPath");
|
||||||
|
if (xmlCompositionsPath == NULL){
|
||||||
|
std::cout << "XMLError: Attribute compositionsPath does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
const char* charCompositionsPath = xmlCompositionsPath->GetText();
|
||||||
|
if(charCompositionsPath == NULL){
|
||||||
|
std::cout << "XMLError: Attribute compositionsPath could not be loaded." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
std::string compositionsPath = charCompositionsPath;
|
||||||
|
Converter conv = Converter("../" + levelPath, levelString, "../" + compositionsPath);
|
||||||
|
|
||||||
|
//read the setup png
|
||||||
|
printf("Loading the png.\n");
|
||||||
|
std::string filePath = "../" + levelPath + levelString + ".png";
|
||||||
std::vector<unsigned char> image; //the raw pixels
|
std::vector<unsigned char> image; //the raw pixels
|
||||||
unsigned int width, height;
|
unsigned int width, height;
|
||||||
unsigned error = lodepng::decode(image, width, height, filePath);
|
unsigned error = lodepng::decode(image, width, height, filePath);
|
||||||
if (error) {
|
if (error) {
|
||||||
std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl;
|
std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl;
|
||||||
|
std::cout << "Converter needs the levels name (Level1) as input." << std::endl;
|
||||||
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
printf("Iterating over the png.\n");
|
||||||
//iterate over all pixels of the image
|
//iterate over all pixels of the image
|
||||||
for(unsigned int rowNum = 0; rowNum < height; rowNum++){
|
for(unsigned int columnNum = 0; columnNum < width; columnNum++){
|
||||||
for(unsigned int columnNum = 0; columnNum < width; columnNum++){
|
for(unsigned int rowNum = 0; rowNum < height; rowNum++){
|
||||||
unsigned int pixel = (rowNum*width+columnNum)*4;
|
unsigned int pixel = (rowNum*width+columnNum)*4;
|
||||||
//if there is a composition here, adjust the xml and image
|
//if there is a composition here, adjust the xml and image
|
||||||
if(image[pixel]!=0 && image[pixel]!=255){
|
if(image[pixel]!=0 && image[pixel]!=255){
|
||||||
if((image[pixel+1]==0 && image[pixel+2]==0) || (image[pixel+1]==255 && image[pixel+2]==255)){
|
if(image[pixel+1]==0 && image[pixel+2]==0){//composition has no ID
|
||||||
std::vector<int> temp;
|
std::vector<int> newID;
|
||||||
temp = conv.newComposition(image[pixel], 0.5+rowNum-0.5*height, 0.5+columnNum-0.5*width);
|
newID = conv.newComposition(image[pixel], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
|
||||||
idFound[temp[0]][temp[1]] = true;
|
idFound[newID[0]][newID[1]] = true;
|
||||||
image[pixel+1] = temp[0];
|
image[pixel+1] = newID[0];
|
||||||
image[pixel+2] = temp[1];
|
image[pixel+2] = newID[1];
|
||||||
}else{
|
}else{//composition has an ID
|
||||||
conv.updateComposition(image[pixel+1], image[pixel+2], 0.5+rowNum-0.5*height, 0.5+columnNum-0.5*width);
|
conv.updateComposition(image[pixel+1], image[pixel+2], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
|
||||||
idFound[image[pixel+1]][image[pixel+2]] = true;
|
idFound[image[pixel+1]][image[pixel+2]] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
printf("Writing IDs back to the png.\n");
|
||||||
//write ids back to the setup png
|
//write ids back to the setup png
|
||||||
error = lodepng::encode(filePath, image, width, height);
|
error = lodepng::encode(filePath, image, width, height);
|
||||||
if(error) {
|
if(error) {
|
||||||
std::cout << "encoder error " << error << ": "<< lodepng_error_text(error) << std::endl;
|
std::cout << "encoder error " << error << ": "<< lodepng_error_text(error) << std::endl;
|
||||||
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
printf("Deleting obsolete Compositions (Can take a minute).\n");
|
||||||
//delete compositions that were not in the png anymore
|
//delete compositions that were not in the png anymore
|
||||||
for (int i=1; i<=conv.getNextID()[1]; i++){
|
for (int i=0; i<256; i++){
|
||||||
for (int j=1; j<256; j++){
|
for (int j=0; j<256; j++){
|
||||||
if (! idFound[i][j]){
|
if (! idFound[i][j]){
|
||||||
conv.deleteComposition(i,j);
|
conv.deleteComposition(i,j);
|
||||||
}
|
}
|
||||||
@ -65,4 +107,3 @@ int main( int argc, char *argv[] ){
|
|||||||
//save the xml
|
//save the xml
|
||||||
conv.save();
|
conv.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
42
data/config.xml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<resolution>
|
||||||
|
<width>1024</width>
|
||||||
|
<height>786</height>
|
||||||
|
</resolution>
|
||||||
|
|
||||||
|
<!-- The resolution settings get ignored if you choose windowed fullscreen. -->
|
||||||
|
|
||||||
|
<windowedFullscreen>true</windowedFullscreen>
|
||||||
|
|
||||||
|
<!-- Reduce the following parameters if you game runs too slow.
|
||||||
|
If you feel your game runs smooth enough you can increase them to
|
||||||
|
increase the visual quality. -->
|
||||||
|
|
||||||
|
<shadowCubeSize>512</shadowCubeSize>
|
||||||
|
|
||||||
|
<farPlane>150.0</farPlane>
|
||||||
|
|
||||||
|
<maxShadowRenderCount>3</maxShadowRenderCount>
|
||||||
|
|
||||||
|
<!-- The following stuff is used to configure the application.
|
||||||
|
Do not change unless you know what you are doing. -->
|
||||||
|
|
||||||
|
<compositionsPath>data/levels/Compositions.xml</compositionsPath>
|
||||||
|
|
||||||
|
<shaderPath>data/shader/</shaderPath>
|
||||||
|
|
||||||
|
<geometryPath>data/geometry/</geometryPath>
|
||||||
|
|
||||||
|
<texturePath>data/textures/</texturePath>
|
||||||
|
|
||||||
|
<scriptPath>data/levels/scripts/</scriptPath>
|
||||||
|
|
||||||
|
<heightmapPath>data/levels/</heightmapPath>
|
||||||
|
|
||||||
|
<levelXmlPath>data/levels/</levelXmlPath>
|
||||||
|
<levelXML>Level1.xml</levelXML>
|
||||||
|
|
||||||
|
<!-- must be located in the textures directory -->
|
||||||
|
<loadingScreen>
|
||||||
|
<screenPath>loadingscreen.png</screenPath>
|
||||||
|
<screenContinuePath>loadingscreenContinue.png</screenContinuePath>
|
||||||
|
</loadingScreen>
|
1025
data/geometry/block.obj
Normal file
7306
data/geometry/brazier.obj
Normal file
39
data/geometry/exit.obj
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Blender v2.73 (sub 0) OBJ File: 'exit.blend'
|
||||||
|
# www.blender.org
|
||||||
|
o Plane
|
||||||
|
v -3.440849 -0.000000 2.993210
|
||||||
|
v 3.435127 -0.000000 2.993210
|
||||||
|
v -3.440849 -0.000000 -2.993210
|
||||||
|
v 3.435127 -0.000000 -2.993210
|
||||||
|
v -3.440849 -0.215618 2.993210
|
||||||
|
v 3.435127 -0.215618 2.993210
|
||||||
|
v -3.440849 -0.215618 -2.993210
|
||||||
|
v 3.435127 -0.215618 -2.993210
|
||||||
|
v 0.196185 -0.238611 0.123684
|
||||||
|
vt 0.999900 0.000100
|
||||||
|
vt 0.999900 0.999900
|
||||||
|
vt 0.000100 0.999900
|
||||||
|
vt 0.999981 0.000019
|
||||||
|
vt 0.000019 0.000019
|
||||||
|
vt 0.000019 0.036035
|
||||||
|
vt 0.999981 0.036035
|
||||||
|
vt 0.000100 0.000100
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
vn 0.000000 -1.000000 0.000000
|
||||||
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
vn 1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 0.000000 1.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
s off
|
||||||
|
f 2/1/1 4/2/1 3/3/1
|
||||||
|
f 7/3/2 8/2/2 6/1/2
|
||||||
|
f 8/4/3 7/5/3 3/6/3
|
||||||
|
f 6/6/4 8/7/4 4/4/4
|
||||||
|
f 5/6/5 6/7/5 2/4/5
|
||||||
|
f 7/4/6 5/5/6 1/6/6
|
||||||
|
f 1/8/1 2/1/1 3/3/1
|
||||||
|
f 5/8/2 7/3/2 6/1/2
|
||||||
|
f 4/7/3 8/4/3 3/6/3
|
||||||
|
f 2/5/4 6/6/4 4/4/4
|
||||||
|
f 1/5/5 5/6/5 2/4/5
|
||||||
|
f 3/7/6 7/4/6 1/6/6
|
52
data/geometry/gate.obj
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: ''
|
||||||
|
# www.blender.org
|
||||||
|
o Wall_Cube.000
|
||||||
|
v 0.537791 3.045326 -3.045326
|
||||||
|
v 0.537791 -3.045326 -3.045326
|
||||||
|
v 0.537791 -3.045326 3.045326
|
||||||
|
v -0.537791 3.045326 3.045326
|
||||||
|
v -0.537791 -3.045326 3.045326
|
||||||
|
v -0.537791 -3.045326 -3.045326
|
||||||
|
v 0.537791 3.045326 3.045326
|
||||||
|
v -0.537791 3.045326 -3.045326
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vt 0.000000 -1.000000
|
||||||
|
vt 1.000000 -1.000000
|
||||||
|
vt -1.000000 0.000000
|
||||||
|
vt -1.000000 -1.000000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.039666 1.000166
|
||||||
|
vt 0.000334 0.000166
|
||||||
|
vt 0.039666 0.000166
|
||||||
|
vt 0.960071 -0.007992
|
||||||
|
vt 0.993184 0.992028
|
||||||
|
vt 0.959736 0.992008
|
||||||
|
vt 0.002338 0.996941
|
||||||
|
vt 0.032522 -0.000041
|
||||||
|
vt 0.032299 0.996953
|
||||||
|
vt 0.995477 0.006970
|
||||||
|
vt 0.952679 0.987810
|
||||||
|
vt 0.952679 0.006970
|
||||||
|
vt 0.000334 1.000166
|
||||||
|
vt 0.993520 -0.007972
|
||||||
|
vt 0.002561 -0.000052
|
||||||
|
vt 0.995477 0.987810
|
||||||
|
vn 1.000000 0.000000 0.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
vn 0.000000 -0.000000 1.000000
|
||||||
|
vn 0.000000 -1.000000 -0.000000
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
s off
|
||||||
|
f 1/1/1 3/2/1 2/3/1
|
||||||
|
f 4/4/2 6/2/2 5/5/2
|
||||||
|
f 7/6/1 3/2/1 1/1/1
|
||||||
|
f 8/6/2 6/2/2 4/4/2
|
||||||
|
f 8/7/3 2/8/3 6/9/3
|
||||||
|
f 7/10/4 5/11/4 3/12/4
|
||||||
|
f 2/13/5 5/14/5 6/15/5
|
||||||
|
f 8/16/6 7/17/6 1/18/6
|
||||||
|
f 1/19/3 2/8/3 8/7/3
|
||||||
|
f 4/20/4 5/11/4 7/10/4
|
||||||
|
f 3/21/5 5/14/5 2/13/5
|
||||||
|
f 4/22/6 7/17/6 8/16/6
|
41
data/geometry/hint.obj
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: 'hint.blend'
|
||||||
|
# www.blender.org
|
||||||
|
o Plane
|
||||||
|
v -1.000000 0.000000 1.000000
|
||||||
|
v 1.000000 0.000000 1.000000
|
||||||
|
v -1.000000 0.000000 -1.000000
|
||||||
|
v 1.000000 0.000000 -1.000000
|
||||||
|
v -1.000000 -0.040124 1.000000
|
||||||
|
v 1.000000 -0.040124 1.000000
|
||||||
|
v -1.000000 -0.040124 -1.000000
|
||||||
|
v 1.000000 -0.040124 -1.000000
|
||||||
|
vt 0.999906 0.000094
|
||||||
|
vt 0.011632 0.011458
|
||||||
|
vt 0.031989 0.030429
|
||||||
|
vt 0.988368 0.993659
|
||||||
|
vt 0.978931 0.022798
|
||||||
|
vt 0.002935 0.993659
|
||||||
|
vt 0.968011 0.974689
|
||||||
|
vt 0.023910 0.970956
|
||||||
|
vt 0.000100 0.999900
|
||||||
|
vt 0.999900 0.999900
|
||||||
|
vt 0.000100 0.000100
|
||||||
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
vn 1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 0.000000 1.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
vn 0.000000 -1.000000 0.000000
|
||||||
|
s off
|
||||||
|
f 8/1/1 7/2/1 3/3/1
|
||||||
|
f 6/4/2 8/1/2 4/5/2
|
||||||
|
f 5/6/3 6/4/3 2/7/3
|
||||||
|
f 7/2/4 5/6/4 1/8/4
|
||||||
|
f 4/5/1 8/1/1 3/3/1
|
||||||
|
f 2/7/2 6/4/2 4/5/2
|
||||||
|
f 1/8/3 5/6/3 2/7/3
|
||||||
|
f 3/3/4 7/2/4 1/8/4
|
||||||
|
f 3/9/5 2/1/5 4/10/5
|
||||||
|
f 6/1/6 7/9/6 8/10/6
|
||||||
|
f 1/11/5 2/1/5 3/9/5
|
||||||
|
f 5/11/6 7/9/6 6/1/6
|
15
data/geometry/ruinsTile.obj
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: 'ruinsTile.blend'
|
||||||
|
# www.blender.org
|
||||||
|
o Plane
|
||||||
|
v -1.000000 0.000000 1.000000
|
||||||
|
v 1.000000 0.000000 1.000000
|
||||||
|
v -1.000000 0.000000 -1.000000
|
||||||
|
v 1.000000 0.000000 -1.000000
|
||||||
|
vt 0.999900 0.000100
|
||||||
|
vt 0.999900 0.999900
|
||||||
|
vt 0.000100 0.999900
|
||||||
|
vt 0.000100 0.000100
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
s off
|
||||||
|
f 2/1/1 4/2/1 3/3/1
|
||||||
|
f 1/4/1 2/1/1 3/3/1
|
54
data/geometry/simpleWall.obj
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: ''
|
||||||
|
# www.blender.org
|
||||||
|
o Wall_Cube.001
|
||||||
|
v 0.537791 3.045326 -3.045326
|
||||||
|
v 0.537791 -3.045326 -3.045326
|
||||||
|
v 0.537791 -3.045326 3.045326
|
||||||
|
v -0.537791 3.045326 -3.045326
|
||||||
|
v -0.537791 -3.045326 -3.045326
|
||||||
|
v -0.537791 3.045326 3.045326
|
||||||
|
v -0.537791 -3.045326 3.045326
|
||||||
|
v 0.537791 3.045326 3.045326
|
||||||
|
vt 1.002363 0.998329
|
||||||
|
vt 0.005637 -0.001671
|
||||||
|
vt 1.002363 -0.001671
|
||||||
|
vt 0.394169 0.995358
|
||||||
|
vt 0.605831 -0.004642
|
||||||
|
vt 0.394169 -0.004642
|
||||||
|
vt -0.003002 0.995358
|
||||||
|
vt 0.996752 -0.004642
|
||||||
|
vt -0.003002 -0.004642
|
||||||
|
vt 0.605361 0.992386
|
||||||
|
vt 0.392389 -0.007614
|
||||||
|
vt 0.605361 -0.007614
|
||||||
|
vt 0.001396 0.906027
|
||||||
|
vt 0.998604 0.093973
|
||||||
|
vt 0.001923 0.094175
|
||||||
|
vt 1.000000 0.097080
|
||||||
|
vt 0.000000 0.902920
|
||||||
|
vt 1.000000 0.902920
|
||||||
|
vt 0.005637 0.998329
|
||||||
|
vt 0.605831 0.995358
|
||||||
|
vt 0.996752 0.995358
|
||||||
|
vt 0.392389 0.992386
|
||||||
|
vt 0.998077 0.905824
|
||||||
|
vt 0.000000 0.097080
|
||||||
|
vn 1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 -0.000000 1.000000
|
||||||
|
vn 0.000000 -1.000000 -0.000000
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
s off
|
||||||
|
f 1/1/1 3/2/1 2/3/1
|
||||||
|
f 4/4/2 2/5/2 5/6/2
|
||||||
|
f 6/7/3 5/8/3 7/9/3
|
||||||
|
f 8/10/4 7/11/4 3/12/4
|
||||||
|
f 2/13/5 7/14/5 5/15/5
|
||||||
|
f 4/16/6 8/17/6 1/18/6
|
||||||
|
f 8/19/1 3/2/1 1/1/1
|
||||||
|
f 1/20/2 2/5/2 4/4/2
|
||||||
|
f 4/21/3 5/8/3 6/7/3
|
||||||
|
f 6/22/4 7/11/4 8/10/4
|
||||||
|
f 3/23/5 7/14/5 2/13/5
|
||||||
|
f 6/24/6 8/17/6 4/16/6
|
10951
data/geometry/skydome.obj
Normal file
@ -1,4 +1,4 @@
|
|||||||
# Blender v2.72 (sub 0) OBJ File: 'switch_inner.blend'
|
# Blender v2.73 (sub 0) OBJ File: 'switch_inner.blend'
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o switch_Cube
|
o switch_Cube
|
||||||
v 0.952094 -0.488588 -1.000000
|
v 0.952094 -0.488588 -1.000000
|
641
data/geometry/torch.obj
Normal file
@ -0,0 +1,641 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: 'torch.blend'
|
||||||
|
# www.blender.org
|
||||||
|
v 0.000000 0.011815 -0.121572
|
||||||
|
v 0.023715 0.011815 -0.119227
|
||||||
|
v 0.046524 0.011815 -0.112303
|
||||||
|
v 0.067552 0.011815 -0.101069
|
||||||
|
v 0.085979 0.011815 -0.085979
|
||||||
|
v 0.101069 0.011815 -0.067552
|
||||||
|
v 0.112303 0.011815 -0.046523
|
||||||
|
v 0.119227 0.011815 -0.023714
|
||||||
|
v 0.121572 0.011815 -0.000000
|
||||||
|
v 0.119227 0.011815 0.023714
|
||||||
|
v 0.112303 0.011815 0.046523
|
||||||
|
v 0.101069 0.011815 0.067552
|
||||||
|
v 0.085979 0.011815 0.085979
|
||||||
|
v 0.067552 0.011815 0.101069
|
||||||
|
v 0.046523 0.011815 0.112303
|
||||||
|
v 0.023714 0.011815 0.119227
|
||||||
|
v -0.000000 0.011815 0.121572
|
||||||
|
v -0.023715 0.011815 0.119227
|
||||||
|
v -0.046524 0.011815 0.112303
|
||||||
|
v -0.067553 0.011815 0.101069
|
||||||
|
v -0.085980 0.011815 0.085979
|
||||||
|
v -0.101070 0.011815 0.067552
|
||||||
|
v -0.112303 0.011815 0.046523
|
||||||
|
v -0.119227 0.011815 0.023714
|
||||||
|
v -0.121572 0.011815 -0.000001
|
||||||
|
v -0.119227 0.011815 -0.023715
|
||||||
|
v -0.112303 0.011815 -0.046524
|
||||||
|
v -0.101069 0.011815 -0.067553
|
||||||
|
v -0.085979 0.011815 -0.085949
|
||||||
|
v -0.067551 0.011815 -0.101070
|
||||||
|
v -0.046522 0.011815 -0.112303
|
||||||
|
v -0.023713 0.011815 -0.119227
|
||||||
|
v -0.000000 1.675680 -0.221477
|
||||||
|
v 0.043188 1.675682 -0.217223
|
||||||
|
v 0.084756 1.675683 -0.204614
|
||||||
|
v 0.123084 1.675682 -0.184124
|
||||||
|
v 0.156611 1.675677 -0.156611
|
||||||
|
v 0.184124 1.675682 -0.123084
|
||||||
|
v 0.204614 1.675683 -0.084756
|
||||||
|
v 0.217223 1.675682 -0.043188
|
||||||
|
v 0.221477 1.675681 -0.000000
|
||||||
|
v 0.217223 1.675682 0.043188
|
||||||
|
v 0.204615 1.675683 0.084756
|
||||||
|
v 0.184124 1.675682 0.123084
|
||||||
|
v 0.156611 1.675677 0.156611
|
||||||
|
v 0.123084 1.675682 0.184124
|
||||||
|
v 0.084756 1.675683 0.204614
|
||||||
|
v 0.043188 1.675682 0.217223
|
||||||
|
v -0.000000 1.675681 0.221477
|
||||||
|
v -0.043188 1.675682 0.217223
|
||||||
|
v -0.084756 1.675683 0.204614
|
||||||
|
v -0.123084 1.675682 0.184123
|
||||||
|
v -0.156611 1.675677 0.156611
|
||||||
|
v -0.184123 1.675682 0.123084
|
||||||
|
v -0.204614 1.675683 0.084756
|
||||||
|
v -0.217223 1.675682 0.043188
|
||||||
|
v -0.221477 1.675681 0.000000
|
||||||
|
v -0.217223 1.675682 -0.043188
|
||||||
|
v -0.204614 1.675683 -0.084756
|
||||||
|
v -0.184140 1.675681 -0.123061
|
||||||
|
v -0.156605 1.675681 -0.156610
|
||||||
|
v -0.123056 1.675681 -0.184143
|
||||||
|
v -0.084756 1.675683 -0.204614
|
||||||
|
v -0.043188 1.675682 -0.217223
|
||||||
|
v -0.000000 1.947950 -0.335566
|
||||||
|
v -0.000000 1.981150 -0.313345
|
||||||
|
v 0.065442 1.947954 -0.329120
|
||||||
|
v 0.061108 1.981122 -0.307326
|
||||||
|
v 0.128419 1.947953 -0.310019
|
||||||
|
v 0.119914 1.981152 -0.289490
|
||||||
|
v 0.186472 1.947957 -0.278979
|
||||||
|
v 0.174126 1.981085 -0.260503
|
||||||
|
v 0.237285 1.947943 -0.237285
|
||||||
|
v 0.221572 1.981204 -0.221572
|
||||||
|
v 0.278979 1.947957 -0.186472
|
||||||
|
v 0.260503 1.981086 -0.174126
|
||||||
|
v 0.310019 1.947953 -0.128419
|
||||||
|
v 0.289490 1.981151 -0.119914
|
||||||
|
v 0.329120 1.947954 -0.065442
|
||||||
|
v 0.307326 1.981122 -0.061107
|
||||||
|
v 0.335566 1.947950 0.000000
|
||||||
|
v 0.313345 1.981150 0.000000
|
||||||
|
v 0.329120 1.947954 0.065442
|
||||||
|
v 0.307326 1.981122 0.061107
|
||||||
|
v 0.310020 1.947952 0.128419
|
||||||
|
v 0.289491 1.981152 0.119914
|
||||||
|
v 0.278979 1.947957 0.186472
|
||||||
|
v 0.260503 1.981085 0.174126
|
||||||
|
v 0.237285 1.947943 0.237285
|
||||||
|
v 0.221572 1.981204 0.221572
|
||||||
|
v 0.186472 1.947957 0.278979
|
||||||
|
v 0.174126 1.981086 0.260503
|
||||||
|
v 0.128419 1.947953 0.310020
|
||||||
|
v 0.119914 1.981151 0.289490
|
||||||
|
v 0.065442 1.947954 0.329120
|
||||||
|
v 0.061108 1.981122 0.307326
|
||||||
|
v 0.000000 1.947950 0.335566
|
||||||
|
v 0.000000 1.981150 0.313345
|
||||||
|
v -0.065442 1.947954 0.329120
|
||||||
|
v -0.061107 1.981123 0.307326
|
||||||
|
v -0.128419 1.947953 0.310020
|
||||||
|
v -0.119914 1.981151 0.289490
|
||||||
|
v -0.186472 1.947957 0.278979
|
||||||
|
v -0.174126 1.981086 0.260503
|
||||||
|
v -0.237285 1.947943 0.237285
|
||||||
|
v -0.221572 1.981203 0.221572
|
||||||
|
v -0.278979 1.947957 0.186472
|
||||||
|
v -0.260503 1.981086 0.174126
|
||||||
|
v -0.310019 1.947953 0.128420
|
||||||
|
v -0.289490 1.981151 0.119915
|
||||||
|
v -0.329120 1.947954 0.065443
|
||||||
|
v -0.307326 1.981123 0.061108
|
||||||
|
v -0.335566 1.947951 0.000000
|
||||||
|
v -0.313345 1.981149 0.000000
|
||||||
|
v -0.329120 1.947954 -0.065442
|
||||||
|
v -0.307326 1.981127 -0.061107
|
||||||
|
v -0.310020 1.947954 -0.128415
|
||||||
|
v -0.289490 1.981131 -0.119911
|
||||||
|
v -0.279000 1.947952 -0.186447
|
||||||
|
v -0.260524 1.981136 -0.174101
|
||||||
|
v -0.237275 1.947951 -0.237286
|
||||||
|
v -0.221562 1.981138 -0.221573
|
||||||
|
v -0.186439 1.947953 -0.279005
|
||||||
|
v -0.174094 1.981137 -0.260529
|
||||||
|
v -0.128415 1.947954 -0.310020
|
||||||
|
v -0.119911 1.981128 -0.289490
|
||||||
|
v -0.065442 1.947953 -0.329120
|
||||||
|
v -0.061107 1.981129 -0.307326
|
||||||
|
v 0.000000 1.926806 -0.174476
|
||||||
|
v 0.034026 1.926790 -0.171123
|
||||||
|
v 0.066770 1.926806 -0.161192
|
||||||
|
v 0.096955 1.926769 -0.145050
|
||||||
|
v 0.123377 1.926835 -0.123377
|
||||||
|
v 0.145051 1.926770 -0.096955
|
||||||
|
v 0.161192 1.926806 -0.066770
|
||||||
|
v 0.171123 1.926790 -0.034025
|
||||||
|
v 0.174476 1.926805 0.000000
|
||||||
|
v 0.171123 1.926790 0.034025
|
||||||
|
v 0.161193 1.926807 0.066770
|
||||||
|
v 0.145050 1.926769 0.096955
|
||||||
|
v 0.123377 1.926835 0.123377
|
||||||
|
v 0.096955 1.926770 0.145050
|
||||||
|
v 0.066770 1.926806 0.161192
|
||||||
|
v 0.034026 1.926790 0.171123
|
||||||
|
v 0.000000 1.926805 0.174476
|
||||||
|
v -0.034025 1.926790 0.171123
|
||||||
|
v -0.066770 1.926806 0.161193
|
||||||
|
v -0.096955 1.926770 0.145051
|
||||||
|
v -0.123377 1.926835 0.123377
|
||||||
|
v -0.145050 1.926770 0.096955
|
||||||
|
v -0.161192 1.926806 0.066770
|
||||||
|
v -0.171123 1.926790 0.034026
|
||||||
|
v -0.174475 1.926805 0.000000
|
||||||
|
v -0.171123 1.926793 -0.034025
|
||||||
|
v -0.161192 1.926795 -0.066768
|
||||||
|
v -0.145064 1.926797 -0.096942
|
||||||
|
v -0.123369 1.926799 -0.123375
|
||||||
|
v -0.096938 1.926798 -0.145066
|
||||||
|
v -0.066768 1.926793 -0.161192
|
||||||
|
v -0.034025 1.926794 -0.171123
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vt 1.000000 1.000000
|
||||||
|
vn 0.000000 -0.228700 -0.973500
|
||||||
|
vn -0.189900 -0.228700 -0.954800
|
||||||
|
vn 0.000000 0.093700 -0.995600
|
||||||
|
vn 0.540800 -0.228700 -0.809400
|
||||||
|
vn 0.372500 -0.228700 -0.899300
|
||||||
|
vn 0.553100 0.094200 -0.827800
|
||||||
|
vn 0.688300 -0.228700 -0.688300
|
||||||
|
vn 0.704000 0.093500 -0.704000
|
||||||
|
vn 0.827800 0.094100 -0.553100
|
||||||
|
vn 0.809400 -0.228700 -0.540800
|
||||||
|
vn 0.919800 0.093800 -0.381100
|
||||||
|
vn 0.899300 -0.228700 -0.372500
|
||||||
|
vn 0.954800 -0.228700 -0.189900
|
||||||
|
vn 0.976400 0.093800 -0.194200
|
||||||
|
vn 0.973500 -0.228700 0.000000
|
||||||
|
vn 0.995600 0.093700 0.000000
|
||||||
|
vn 0.976400 0.093800 0.194200
|
||||||
|
vn 0.954800 -0.228700 0.189900
|
||||||
|
vn 0.919800 0.093800 0.381100
|
||||||
|
vn 0.899300 -0.228700 0.372500
|
||||||
|
vn 0.809400 -0.228700 0.540800
|
||||||
|
vn 0.827800 0.094100 0.553100
|
||||||
|
vn 0.688300 -0.228700 0.688300
|
||||||
|
vn 0.704000 0.093500 0.704000
|
||||||
|
vn 0.553100 0.094100 0.827800
|
||||||
|
vn 0.540800 -0.228700 0.809400
|
||||||
|
vn 0.381100 0.093800 0.919800
|
||||||
|
vn 0.372500 -0.228700 0.899300
|
||||||
|
vn 0.189900 -0.228700 0.954800
|
||||||
|
vn 0.194200 0.093800 0.976400
|
||||||
|
vn 0.000000 -0.228700 0.973500
|
||||||
|
vn 0.000000 0.093700 0.995600
|
||||||
|
vn -0.194200 0.093800 0.976400
|
||||||
|
vn -0.189900 -0.228700 0.954800
|
||||||
|
vn -0.381100 0.093800 0.919800
|
||||||
|
vn -0.372500 -0.228700 0.899300
|
||||||
|
vn -0.540800 -0.228700 0.809400
|
||||||
|
vn -0.553100 0.094100 0.827800
|
||||||
|
vn -0.688300 -0.228700 0.688300
|
||||||
|
vn -0.704000 0.093500 0.704000
|
||||||
|
vn -0.827800 0.094100 0.553100
|
||||||
|
vn -0.809400 -0.228700 0.540800
|
||||||
|
vn -0.919800 0.093800 0.381100
|
||||||
|
vn -0.899300 -0.228700 0.372500
|
||||||
|
vn -0.954800 -0.228700 0.189900
|
||||||
|
vn -0.976400 0.093800 0.194200
|
||||||
|
vn -0.973500 -0.228700 0.000000
|
||||||
|
vn -0.995600 0.093700 0.000000
|
||||||
|
vn -0.976400 0.093800 -0.194200
|
||||||
|
vn -0.954800 -0.228700 -0.189900
|
||||||
|
vn -0.919800 0.093800 -0.381000
|
||||||
|
vn -0.899400 -0.228700 -0.372500
|
||||||
|
vn -0.809400 -0.228700 -0.540800
|
||||||
|
vn -0.827800 0.093800 -0.553100
|
||||||
|
vn -0.688300 -0.228700 -0.688300
|
||||||
|
vn -0.704000 0.093700 -0.704000
|
||||||
|
vn -0.553100 0.093800 -0.827800
|
||||||
|
vn -0.540800 -0.228700 -0.809400
|
||||||
|
vn -0.381000 0.093800 -0.919800
|
||||||
|
vn -0.372500 -0.228700 -0.899400
|
||||||
|
vn -0.194200 0.093800 -0.976400
|
||||||
|
vn 0.381100 0.093800 -0.919800
|
||||||
|
vn 0.194200 0.093800 -0.976400
|
||||||
|
vn 0.193200 0.980400 -0.038400
|
||||||
|
vn -0.327600 0.942500 0.065100
|
||||||
|
vn 0.185000 0.979700 -0.076300
|
||||||
|
vn 0.270500 -0.707200 -0.653200
|
||||||
|
vn 0.653200 -0.707200 -0.270500
|
||||||
|
vn 0.653200 -0.707200 0.270500
|
||||||
|
vn 0.000000 -0.707100 -0.707100
|
||||||
|
vn 0.189900 -0.228700 -0.954800
|
||||||
|
vn 0.392300 -0.707300 -0.588000
|
||||||
|
vn 0.500100 -0.707000 -0.500100
|
||||||
|
vn 0.588000 -0.707300 -0.392300
|
||||||
|
vn 0.693400 -0.707200 -0.138100
|
||||||
|
vn 0.707100 -0.707100 0.000000
|
||||||
|
vn 0.693400 -0.707200 0.138100
|
||||||
|
vn 0.588000 -0.707300 0.392300
|
||||||
|
vn 0.500100 -0.707000 0.500100
|
||||||
|
vn 0.392300 -0.707300 0.588000
|
||||||
|
vn 0.270500 -0.707200 0.653200
|
||||||
|
vn 0.138100 -0.707200 0.693400
|
||||||
|
vn 0.000000 -0.707100 0.707100
|
||||||
|
vn -0.270500 -0.707200 0.653200
|
||||||
|
vn -0.392300 -0.707300 0.588000
|
||||||
|
vn -0.500100 -0.707000 0.500100
|
||||||
|
vn -0.588000 -0.707300 0.392300
|
||||||
|
vn -0.653200 -0.707200 0.270500
|
||||||
|
vn -0.693400 -0.707200 0.138100
|
||||||
|
vn -0.707100 -0.707100 0.000000
|
||||||
|
vn -0.653200 -0.707200 -0.270500
|
||||||
|
vn -0.587900 -0.707200 -0.392700
|
||||||
|
vn -0.392700 -0.707200 -0.587900
|
||||||
|
vn -0.270500 -0.707200 -0.653200
|
||||||
|
vn -0.138100 -0.707200 -0.693400
|
||||||
|
vn 0.000000 0.942500 -0.334100
|
||||||
|
vn 0.065100 0.942500 -0.327600
|
||||||
|
vn 0.128100 0.942500 -0.308500
|
||||||
|
vn 0.185400 0.942500 -0.277900
|
||||||
|
vn 0.236300 0.942500 -0.236300
|
||||||
|
vn 0.277900 0.942500 -0.185400
|
||||||
|
vn 0.308500 0.942500 -0.128100
|
||||||
|
vn 0.327600 0.942500 -0.065100
|
||||||
|
vn 0.334000 0.942500 0.000000
|
||||||
|
vn 0.327600 0.942500 0.065100
|
||||||
|
vn 0.308500 0.942500 0.128100
|
||||||
|
vn 0.277900 0.942500 0.185400
|
||||||
|
vn 0.236300 0.942500 0.236300
|
||||||
|
vn 0.185400 0.942500 0.277900
|
||||||
|
vn 0.128100 0.942500 0.308500
|
||||||
|
vn 0.065100 0.942500 0.327600
|
||||||
|
vn 0.000000 0.942500 0.334000
|
||||||
|
vn -0.065100 0.942500 0.327600
|
||||||
|
vn -0.128100 0.942500 0.308500
|
||||||
|
vn -0.185400 0.942500 0.277900
|
||||||
|
vn -0.236300 0.942500 0.236300
|
||||||
|
vn -0.277900 0.942500 0.185400
|
||||||
|
vn -0.308500 0.942500 0.128100
|
||||||
|
vn -0.334000 0.942500 0.000000
|
||||||
|
vn -0.327600 0.942600 -0.065200
|
||||||
|
vn -0.308600 0.942600 -0.127800
|
||||||
|
vn -0.277700 0.942600 -0.185500
|
||||||
|
vn -0.236200 0.942500 -0.236200
|
||||||
|
vn -0.185500 0.942600 -0.277700
|
||||||
|
vn -0.127800 0.942600 -0.308600
|
||||||
|
vn -0.065200 0.942600 -0.327600
|
||||||
|
vn -0.109500 0.980400 0.163500
|
||||||
|
vn 0.109500 0.980400 -0.163500
|
||||||
|
vn -0.163500 0.980400 -0.109500
|
||||||
|
vn -0.038300 0.980400 0.193200
|
||||||
|
vn 0.000000 0.980100 0.198500
|
||||||
|
vn -0.145500 0.978600 -0.145500
|
||||||
|
vn 0.192900 0.980400 0.038300
|
||||||
|
vn 0.181600 0.980500 0.075300
|
||||||
|
vn -0.145500 0.978600 0.145500
|
||||||
|
vn -0.038400 0.980400 -0.193200
|
||||||
|
vn -0.076300 0.979700 -0.185000
|
||||||
|
vn 0.109400 0.980400 0.163600
|
||||||
|
vn 0.139000 0.980500 0.139000
|
||||||
|
vn 0.038400 0.980400 -0.193200
|
||||||
|
vn 0.076300 0.979700 -0.185000
|
||||||
|
vn -0.193200 0.980400 0.038400
|
||||||
|
vn -0.185000 0.979700 0.076300
|
||||||
|
vn 0.163500 0.980400 -0.109500
|
||||||
|
vn 0.145400 0.978600 -0.145400
|
||||||
|
vn -0.193200 0.980400 -0.038400
|
||||||
|
vn -0.185200 0.979700 -0.076400
|
||||||
|
vn 0.198400 0.980100 0.000000
|
||||||
|
vn -0.076400 0.979700 0.185200
|
||||||
|
vn -0.109500 0.980400 -0.163500
|
||||||
|
vn 0.163500 0.980400 0.109300
|
||||||
|
vn -0.163600 0.980400 0.109500
|
||||||
|
vn 0.000000 0.980000 -0.198700
|
||||||
|
vn 0.075300 0.980500 0.181600
|
||||||
|
vn -0.198700 0.980000 0.000000
|
||||||
|
vn 0.038300 0.980400 0.193000
|
||||||
|
vn -0.500000 -0.707100 -0.499900
|
||||||
|
vn -0.693400 -0.707200 -0.138100
|
||||||
|
vn -0.138100 -0.707200 0.693400
|
||||||
|
vn 0.138100 -0.707200 -0.693400
|
||||||
|
f 33/1/1 64/2/2 65/3/3
|
||||||
|
f 36/1/4 35/2/5 71/3/6
|
||||||
|
f 37/1/7 36/2/4 73/3/8
|
||||||
|
f 75/1/9 38/2/10 73/3/8
|
||||||
|
f 77/1/11 39/2/12 75/3/9
|
||||||
|
f 40/1/13 39/2/12 79/3/14
|
||||||
|
f 41/1/15 40/2/13 81/3/16
|
||||||
|
f 83/1/17 42/2/18 81/3/16
|
||||||
|
f 85/1/19 43/2/20 83/3/17
|
||||||
|
f 44/1/21 43/2/20 87/3/22
|
||||||
|
f 45/1/23 44/2/21 89/3/24
|
||||||
|
f 91/1/25 46/2/26 89/3/24
|
||||||
|
f 93/1/27 47/2/28 91/3/25
|
||||||
|
f 48/1/29 47/2/28 95/3/30
|
||||||
|
f 49/1/31 48/2/29 97/3/32
|
||||||
|
f 99/1/33 50/2/34 97/3/32
|
||||||
|
f 101/1/35 51/2/36 99/3/33
|
||||||
|
f 52/1/37 51/2/36 103/3/38
|
||||||
|
f 53/1/39 52/2/37 105/3/40
|
||||||
|
f 107/1/41 54/2/42 105/3/40
|
||||||
|
f 109/1/43 55/2/44 107/3/41
|
||||||
|
f 56/1/45 55/2/44 111/3/46
|
||||||
|
f 57/1/47 56/2/45 113/3/48
|
||||||
|
f 115/1/49 58/2/50 113/3/48
|
||||||
|
f 117/1/51 59/2/52 115/3/49
|
||||||
|
f 60/1/53 59/2/52 119/3/54
|
||||||
|
f 61/1/55 60/2/53 121/3/56
|
||||||
|
f 123/1/57 62/2/58 121/3/56
|
||||||
|
f 125/1/59 63/2/60 123/3/57
|
||||||
|
f 64/1/2 63/2/60 127/3/61
|
||||||
|
f 69/1/62 35/2/5 67/3/63
|
||||||
|
f 152/1/64 112/2/65 151/3/66
|
||||||
|
f 3/1/67 7/2/68 11/3/69
|
||||||
|
f 1/1/70 33/2/1 34/3/71
|
||||||
|
f 34/1/71 35/2/5 3/3/67
|
||||||
|
f 36/1/4 4/2/72 35/3/5
|
||||||
|
f 5/1/73 4/2/72 37/3/7
|
||||||
|
f 38/1/10 6/2/74 37/3/7
|
||||||
|
f 7/1/68 6/2/74 39/3/12
|
||||||
|
f 39/1/12 40/2/13 8/3/75
|
||||||
|
f 40/1/13 41/2/15 9/3/76
|
||||||
|
f 41/1/15 42/2/18 10/3/77
|
||||||
|
f 42/1/18 43/2/20 11/3/69
|
||||||
|
f 44/1/21 12/2/78 43/3/20
|
||||||
|
f 13/1/79 12/2/78 45/3/23
|
||||||
|
f 46/1/26 14/2/80 45/3/23
|
||||||
|
f 46/1/26 47/2/28 15/3/81
|
||||||
|
f 47/1/28 48/2/29 16/3/82
|
||||||
|
f 48/1/29 49/2/31 17/3/83
|
||||||
|
f 17/1/83 49/2/31 50/3/34
|
||||||
|
f 50/1/34 51/2/36 19/3/84
|
||||||
|
f 52/1/37 20/2/85 51/3/36
|
||||||
|
f 21/1/86 20/2/85 53/3/39
|
||||||
|
f 54/1/42 22/2/87 53/3/39
|
||||||
|
f 23/1/88 22/2/87 55/3/44
|
||||||
|
f 55/1/44 56/2/45 24/3/89
|
||||||
|
f 56/1/45 57/2/47 25/3/90
|
||||||
|
f 25/1/90 57/2/47 58/3/50
|
||||||
|
f 58/1/50 59/2/52 27/3/91
|
||||||
|
f 28/1/92 27/2/91 60/3/53
|
||||||
|
f 28/1/92 60/2/53 61/3/55
|
||||||
|
f 62/1/58 30/2/93 61/3/55
|
||||||
|
f 63/1/60 31/2/94 62/3/58
|
||||||
|
f 64/1/2 33/2/1 1/3/70
|
||||||
|
f 63/1/60 64/2/2 32/3/95
|
||||||
|
f 66/1/96 68/2/97 65/3/3
|
||||||
|
f 70/1/98 69/2/62 68/3/97
|
||||||
|
f 70/1/98 72/2/99 69/3/62
|
||||||
|
f 74/1/100 73/2/8 72/3/99
|
||||||
|
f 74/1/100 76/2/101 73/3/8
|
||||||
|
f 78/1/102 77/2/11 76/3/101
|
||||||
|
f 78/1/102 80/2/103 77/3/11
|
||||||
|
f 82/1/104 81/2/16 80/3/103
|
||||||
|
f 82/1/104 84/2/105 81/3/16
|
||||||
|
f 86/1/106 85/2/19 84/3/105
|
||||||
|
f 86/1/106 88/2/107 85/3/19
|
||||||
|
f 90/1/108 89/2/24 88/3/107
|
||||||
|
f 90/1/108 92/2/109 89/3/24
|
||||||
|
f 94/1/110 93/2/27 92/3/109
|
||||||
|
f 94/1/110 96/2/111 93/3/27
|
||||||
|
f 98/1/112 97/2/32 96/3/111
|
||||||
|
f 98/1/112 100/2/113 97/3/32
|
||||||
|
f 102/1/114 101/2/35 100/3/113
|
||||||
|
f 102/1/114 104/2/115 101/3/35
|
||||||
|
f 106/1/116 105/2/40 104/3/115
|
||||||
|
f 106/1/116 108/2/117 105/3/40
|
||||||
|
f 110/1/118 109/2/43 108/3/117
|
||||||
|
f 110/1/118 112/2/65 109/3/43
|
||||||
|
f 114/1/119 113/2/48 112/3/65
|
||||||
|
f 114/1/119 116/2/120 113/3/48
|
||||||
|
f 118/1/121 117/2/51 116/3/120
|
||||||
|
f 120/1/122 119/2/54 118/3/121
|
||||||
|
f 122/1/123 121/2/56 120/3/122
|
||||||
|
f 121/1/56 122/2/123 124/3/124
|
||||||
|
f 124/1/124 126/2/125 123/3/57
|
||||||
|
f 128/1/126 127/2/61 126/3/125
|
||||||
|
f 66/1/96 65/2/3 128/3/126
|
||||||
|
f 67/1/63 34/2/71 65/3/3
|
||||||
|
f 132/1/127 148/2/128 140/3/129
|
||||||
|
f 130/1/130 68/2/97 129/3/131
|
||||||
|
f 140/1/129 141/2/132 88/3/107
|
||||||
|
f 154/1/133 155/2/134 116/3/120
|
||||||
|
f 132/1/127 133/2/135 72/3/99
|
||||||
|
f 144/1/136 96/2/111 143/3/137
|
||||||
|
f 158/1/138 124/2/124 157/3/139
|
||||||
|
f 146/1/140 147/2/141 100/3/113
|
||||||
|
f 136/1/142 80/2/103 135/3/143
|
||||||
|
f 150/1/144 108/2/117 149/3/145
|
||||||
|
f 138/1/146 139/2/147 84/3/105
|
||||||
|
f 152/1/64 153/2/148 112/3/65
|
||||||
|
f 130/1/130 131/2/149 68/3/97
|
||||||
|
f 142/1/150 92/2/109 141/3/132
|
||||||
|
f 155/1/134 156/2/151 118/3/121
|
||||||
|
f 134/1/152 76/2/101 133/3/135
|
||||||
|
f 144/1/136 145/2/153 96/3/111
|
||||||
|
f 159/1/154 126/2/125 158/3/138
|
||||||
|
f 148/1/128 104/2/115 147/3/141
|
||||||
|
f 136/1/142 137/2/155 80/3/103
|
||||||
|
f 150/1/144 151/2/66 108/3/117
|
||||||
|
f 140/1/129 88/2/107 139/3/147
|
||||||
|
f 154/1/133 116/2/120 153/3/148
|
||||||
|
f 132/1/127 72/2/99 131/3/149
|
||||||
|
f 142/1/150 143/2/137 92/3/109
|
||||||
|
f 160/1/156 129/2/131 128/3/126
|
||||||
|
f 156/1/151 157/2/139 120/3/122
|
||||||
|
f 146/1/140 100/2/113 145/3/153
|
||||||
|
f 134/1/152 135/2/143 76/3/101
|
||||||
|
f 159/1/154 160/2/156 126/3/125
|
||||||
|
f 148/1/128 149/2/145 104/3/115
|
||||||
|
f 138/1/146 84/2/105 137/3/155
|
||||||
|
f 48/1/29 95/2/30 97/3/32
|
||||||
|
f 12/1/78 44/2/21 45/3/23
|
||||||
|
f 38/1/10 37/2/7 73/3/8
|
||||||
|
f 44/1/21 87/2/22 89/3/24
|
||||||
|
f 47/1/28 46/2/26 91/3/25
|
||||||
|
f 51/1/36 101/2/35 103/3/38
|
||||||
|
f 121/1/56 119/2/54 120/3/122
|
||||||
|
f 64/1/2 127/2/61 65/3/3
|
||||||
|
f 55/1/44 109/2/43 111/3/46
|
||||||
|
f 27/1/91 31/2/94 3/3/67
|
||||||
|
f 54/1/42 53/2/39 105/3/40
|
||||||
|
f 52/1/37 103/2/38 105/3/40
|
||||||
|
f 4/1/72 36/2/4 37/3/7
|
||||||
|
f 39/1/12 77/2/11 79/3/14
|
||||||
|
f 50/1/34 49/2/31 97/3/32
|
||||||
|
f 40/1/13 79/2/14 81/3/16
|
||||||
|
f 35/1/5 34/2/71 67/3/63
|
||||||
|
f 55/1/44 54/2/42 107/3/41
|
||||||
|
f 126/1/125 124/2/124 158/3/138
|
||||||
|
f 46/1/26 45/2/23 89/3/24
|
||||||
|
f 39/1/12 38/2/10 75/3/9
|
||||||
|
f 47/1/28 93/2/27 95/3/30
|
||||||
|
f 58/1/50 57/2/47 113/3/48
|
||||||
|
f 63/1/60 62/2/58 123/3/57
|
||||||
|
f 51/1/36 50/2/34 99/3/33
|
||||||
|
f 124/1/124 122/2/123 157/3/139
|
||||||
|
f 59/1/52 58/2/50 115/3/49
|
||||||
|
f 63/1/60 125/2/59 127/3/61
|
||||||
|
f 59/1/52 117/2/51 119/3/54
|
||||||
|
f 117/1/51 115/2/49 116/3/120
|
||||||
|
f 43/1/20 42/2/18 83/3/17
|
||||||
|
f 80/1/103 79/2/14 77/3/11
|
||||||
|
f 19/1/84 15/2/81 16/3/82
|
||||||
|
f 31/1/94 27/2/91 30/3/93
|
||||||
|
f 29/1/157 30/2/93 28/3/92
|
||||||
|
f 27/1/91 24/2/89 26/3/158
|
||||||
|
f 11/1/69 7/2/68 8/3/75
|
||||||
|
f 23/1/88 19/2/84 22/3/87
|
||||||
|
f 21/1/86 22/2/87 20/3/85
|
||||||
|
f 19/1/84 16/2/82 18/3/159
|
||||||
|
f 27/1/91 23/2/88 24/3/89
|
||||||
|
f 15/1/81 11/2/69 14/3/80
|
||||||
|
f 13/1/79 14/2/80 12/3/78
|
||||||
|
f 11/1/69 8/2/75 10/3/77
|
||||||
|
f 27/1/91 3/2/67 19/3/84
|
||||||
|
f 7/1/68 4/2/72 6/3/74
|
||||||
|
f 27/1/91 19/2/84 23/3/88
|
||||||
|
f 3/1/67 32/2/95 2/3/160
|
||||||
|
f 32/1/95 1/2/70 2/3/160
|
||||||
|
f 15/1/81 19/2/84 11/3/69
|
||||||
|
f 24/1/89 25/2/90 26/3/158
|
||||||
|
f 27/1/91 59/2/52 60/3/53
|
||||||
|
f 16/1/82 17/2/83 18/3/159
|
||||||
|
f 7/1/68 3/2/67 4/3/72
|
||||||
|
f 8/1/75 9/2/76 10/3/77
|
||||||
|
f 4/1/72 5/2/73 6/3/74
|
||||||
|
f 3/1/67 11/2/69 19/3/84
|
||||||
|
f 22/1/87 19/2/84 20/3/85
|
||||||
|
f 14/1/80 11/2/69 12/3/78
|
||||||
|
f 2/1/160 34/2/71 3/3/67
|
||||||
|
f 2/1/160 1/2/70 34/3/71
|
||||||
|
f 30/1/93 27/2/91 28/3/92
|
||||||
|
f 3/1/67 31/2/94 32/3/95
|
||||||
|
f 31/1/94 30/2/93 62/3/58
|
||||||
|
f 6/1/74 5/2/73 37/3/7
|
||||||
|
f 20/1/85 52/2/37 53/3/39
|
||||||
|
f 4/1/72 3/2/67 35/3/5
|
||||||
|
f 7/1/68 39/2/12 8/3/75
|
||||||
|
f 8/1/75 40/2/13 9/3/76
|
||||||
|
f 9/1/76 41/2/15 10/3/77
|
||||||
|
f 10/1/77 42/2/18 11/3/69
|
||||||
|
f 30/1/93 29/2/157 61/3/55
|
||||||
|
f 43/1/20 85/2/19 87/3/22
|
||||||
|
f 35/1/5 69/2/62 71/3/6
|
||||||
|
f 14/1/80 46/2/26 15/3/81
|
||||||
|
f 15/1/81 47/2/28 16/3/82
|
||||||
|
f 16/1/82 48/2/29 17/3/83
|
||||||
|
f 18/1/159 17/2/83 50/3/34
|
||||||
|
f 18/1/159 50/2/34 19/3/84
|
||||||
|
f 22/1/87 21/2/86 53/3/39
|
||||||
|
f 14/1/80 13/2/79 45/3/23
|
||||||
|
f 20/1/85 19/2/84 51/3/36
|
||||||
|
f 23/1/88 55/2/44 24/3/89
|
||||||
|
f 24/1/89 56/2/45 25/3/90
|
||||||
|
f 26/1/158 25/2/90 58/3/50
|
||||||
|
f 26/1/158 58/2/50 27/3/91
|
||||||
|
f 6/1/74 38/2/10 39/3/12
|
||||||
|
f 29/1/157 28/2/92 61/3/55
|
||||||
|
f 22/1/87 54/2/42 55/3/44
|
||||||
|
f 12/1/78 11/2/69 43/3/20
|
||||||
|
f 32/1/95 64/2/2 1/3/70
|
||||||
|
f 31/1/94 63/2/60 32/3/95
|
||||||
|
f 153/1/148 114/2/119 112/3/65
|
||||||
|
f 96/1/111 94/2/110 143/3/137
|
||||||
|
f 93/1/27 91/2/25 92/3/109
|
||||||
|
f 89/1/24 87/2/22 88/3/107
|
||||||
|
f 105/1/40 103/2/38 104/3/115
|
||||||
|
f 104/1/115 103/2/38 101/3/35
|
||||||
|
f 101/1/35 99/2/33 100/3/113
|
||||||
|
f 100/1/113 99/2/33 97/3/32
|
||||||
|
f 81/1/16 79/2/14 80/3/103
|
||||||
|
f 97/1/32 95/2/30 96/3/111
|
||||||
|
f 72/1/99 71/2/6 69/3/62
|
||||||
|
f 92/1/109 91/2/25 89/3/24
|
||||||
|
f 76/1/101 75/2/9 73/3/8
|
||||||
|
f 109/1/43 107/2/41 108/3/117
|
||||||
|
f 112/1/65 111/2/46 109/3/43
|
||||||
|
f 147/1/141 102/2/114 100/3/113
|
||||||
|
f 85/1/19 83/2/17 84/3/105
|
||||||
|
f 96/1/111 95/2/30 93/3/27
|
||||||
|
f 68/1/97 66/2/96 129/3/131
|
||||||
|
f 108/1/117 107/2/41 105/3/40
|
||||||
|
f 88/1/107 86/2/106 139/3/147
|
||||||
|
f 77/1/11 75/2/9 76/3/101
|
||||||
|
f 129/1/131 66/2/96 128/3/126
|
||||||
|
f 80/1/103 78/2/102 135/3/143
|
||||||
|
f 36/1/4 71/2/6 73/3/8
|
||||||
|
f 127/1/61 125/2/59 126/3/125
|
||||||
|
f 34/1/71 33/2/1 65/3/3
|
||||||
|
f 56/1/45 111/2/46 113/3/48
|
||||||
|
f 123/1/57 121/2/56 124/3/124
|
||||||
|
f 156/1/151 120/2/122 118/3/121
|
||||||
|
f 60/1/53 119/2/54 121/3/56
|
||||||
|
f 116/1/120 115/2/49 113/3/48
|
||||||
|
f 157/1/139 122/2/123 120/3/122
|
||||||
|
f 132/1/127 131/2/149 130/3/130
|
||||||
|
f 134/1/152 133/2/135 132/3/127
|
||||||
|
f 136/1/142 135/2/143 134/3/152
|
||||||
|
f 138/1/146 137/2/155 136/3/142
|
||||||
|
f 140/1/129 139/2/147 138/3/146
|
||||||
|
f 142/1/150 141/2/132 140/3/129
|
||||||
|
f 144/1/136 143/2/137 142/3/150
|
||||||
|
f 146/1/140 145/2/153 144/3/136
|
||||||
|
f 148/1/128 147/2/141 146/3/140
|
||||||
|
f 150/1/144 149/2/145 148/3/128
|
||||||
|
f 152/1/64 151/2/66 150/3/144
|
||||||
|
f 154/1/133 153/2/148 152/3/64
|
||||||
|
f 155/1/134 154/2/133 150/3/144
|
||||||
|
f 158/1/138 157/2/139 156/3/151
|
||||||
|
f 159/1/154 155/2/134 150/3/144
|
||||||
|
f 130/1/130 129/2/131 160/3/156
|
||||||
|
f 133/1/135 74/2/100 72/3/99
|
||||||
|
f 138/1/146 136/2/142 134/3/152
|
||||||
|
f 138/1/146 134/2/152 140/3/129
|
||||||
|
f 142/1/150 148/2/128 144/3/136
|
||||||
|
f 132/1/127 130/2/130 160/3/156
|
||||||
|
f 154/1/133 152/2/64 150/3/144
|
||||||
|
f 145/1/153 98/2/112 96/3/111
|
||||||
|
f 148/1/128 146/2/140 144/3/136
|
||||||
|
f 150/1/144 148/2/128 132/3/127
|
||||||
|
f 159/1/154 158/2/138 156/3/151
|
||||||
|
f 134/1/152 132/2/127 140/3/129
|
||||||
|
f 159/1/154 150/2/144 132/3/127
|
||||||
|
f 148/1/128 142/2/150 140/3/129
|
||||||
|
f 159/1/154 132/2/127 160/3/156
|
||||||
|
f 155/1/134 159/2/154 156/3/151
|
||||||
|
f 160/1/156 128/2/126 126/3/125
|
||||||
|
f 76/1/101 74/2/100 133/3/135
|
||||||
|
f 113/1/48 111/2/46 112/3/65
|
||||||
|
f 155/1/134 118/2/121 116/3/120
|
||||||
|
f 131/1/149 70/2/98 68/3/97
|
||||||
|
f 112/1/65 110/2/118 151/3/66
|
||||||
|
f 73/1/8 71/2/6 72/3/99
|
||||||
|
f 68/1/97 67/2/63 65/3/3
|
||||||
|
f 84/1/105 83/2/17 81/3/16
|
||||||
|
f 69/1/62 67/2/63 68/3/97
|
||||||
|
f 149/1/145 106/2/116 104/3/115
|
||||||
|
f 119/1/54 117/2/51 118/3/121
|
||||||
|
f 92/1/109 90/2/108 141/3/132
|
||||||
|
f 84/1/105 82/2/104 137/3/155
|
||||||
|
f 126/1/125 125/2/59 123/3/57
|
||||||
|
f 151/1/66 110/2/118 108/3/117
|
||||||
|
f 100/1/113 98/2/112 145/3/153
|
||||||
|
f 135/1/143 78/2/102 76/3/101
|
||||||
|
f 72/1/99 70/2/98 131/3/149
|
||||||
|
f 65/1/3 127/2/61 128/3/126
|
||||||
|
f 143/1/137 94/2/110 92/3/109
|
||||||
|
f 104/1/115 102/2/114 147/3/141
|
||||||
|
f 116/1/120 114/2/119 153/3/148
|
||||||
|
f 42/1/18 41/2/15 81/3/16
|
||||||
|
f 139/1/147 86/2/106 84/3/105
|
||||||
|
f 88/1/107 87/2/22 85/3/19
|
||||||
|
f 62/1/58 61/2/55 121/3/56
|
||||||
|
f 108/1/117 106/2/116 149/3/145
|
||||||
|
f 137/1/155 82/2/104 80/3/103
|
||||||
|
f 141/1/132 90/2/108 88/3/107
|
1
data/levels/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*Backup*
|
903
data/levels/Compositions.xml
Normal file
@ -0,0 +1,903 @@
|
|||||||
|
<!-- Rotations around the three axes are given in degrees.
|
||||||
|
The objects are first rotated around the z-, then y- and then x-axis. -->
|
||||||
|
|
||||||
|
<!-- Marble: Do not change!(except for mass)-->
|
||||||
|
<composition>
|
||||||
|
<typeID>20</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>true</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>marbleSmooth.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>11.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Block -->
|
||||||
|
<composition>
|
||||||
|
<typeID>40</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>true</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>1.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>15.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Column -->
|
||||||
|
<composition>
|
||||||
|
<typeID>60</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>1.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Torch with Lightsource -->
|
||||||
|
<composition>
|
||||||
|
<typeID>80</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<light>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>3</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>0.9</gColour>
|
||||||
|
<bColour>0.3</bColour>
|
||||||
|
<intensity>8.0</intensity>
|
||||||
|
<flameOffset>-0.5</flameOffset>
|
||||||
|
<flameHeight>1.0</flameHeight>
|
||||||
|
<flameWidth>1.0</flameWidth>
|
||||||
|
</light>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- hinttorch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>81</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<light>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>3</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<rColour>0.2</rColour>
|
||||||
|
<gColour>0.9</gColour>
|
||||||
|
<bColour>0</bColour>
|
||||||
|
<intensity>10.0</intensity>
|
||||||
|
<flameOffset>-0.5</flameOffset>
|
||||||
|
<flameHeight>1.0</flameHeight>
|
||||||
|
<flameWidth>1.0</flameWidth>
|
||||||
|
</light>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Lightsource -->
|
||||||
|
<composition>
|
||||||
|
<typeID>85</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<light>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>1.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>1.0</gColour>
|
||||||
|
<bColour>1.0</bColour>
|
||||||
|
<intensity>4.0</intensity>
|
||||||
|
</light>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Block on 2 Pillars -->
|
||||||
|
<composition>
|
||||||
|
<typeID>100</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>2.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>10.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>3.0</xOffset>
|
||||||
|
<yOffset>2.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>10.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>1.5</xOffset>
|
||||||
|
<yOffset>4.2</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>15.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Switch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>120</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchInner.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.5</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.044</scale>
|
||||||
|
<mass>0.5</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuter.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>1.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>1.105</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>-1.105</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>1.105</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>-1.105</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>-2.105</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>90.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Bridge Block -->
|
||||||
|
<composition>
|
||||||
|
<typeID>140</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Bridge Block -->
|
||||||
|
<composition>
|
||||||
|
<typeID>141</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Bridge Block on Pillar-->
|
||||||
|
<composition>
|
||||||
|
<typeID>160</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>18.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>15.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>12.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Bridge Block on Pillar-->
|
||||||
|
<composition>
|
||||||
|
<typeID>161</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>18.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>15.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>12.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Bridge Block on Pillar with Torch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>163</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>21.0</yOffset>
|
||||||
|
<zOffset>-1.5</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<light>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>24</yOffset>
|
||||||
|
<zOffset>-1.5</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>0.9</gColour>
|
||||||
|
<bColour>0.3</bColour>
|
||||||
|
<intensity>8.0</intensity>
|
||||||
|
<flameOffset>-0.5</flameOffset>
|
||||||
|
<flameHeight>1.0</flameHeight>
|
||||||
|
<flameWidth>1.0</flameWidth>
|
||||||
|
</light>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>18.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>15.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>12.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Bridge Block on Pillar with torch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>164</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<xOffset>-1.5</xOffset>
|
||||||
|
<yOffset>21.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<light>
|
||||||
|
<xOffset>-1.5</xOffset>
|
||||||
|
<yOffset>24</yOffset>
|
||||||
|
<zOffset>0</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>0.9</gColour>
|
||||||
|
<bColour>0.3</bColour>
|
||||||
|
<intensity>8.0</intensity>
|
||||||
|
<flameOffset>-0.5</flameOffset>
|
||||||
|
<flameHeight>1.0</flameHeight>
|
||||||
|
<flameWidth>1.0</flameWidth>
|
||||||
|
</light>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>18.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>15.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>12.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Wall -->
|
||||||
|
<composition>
|
||||||
|
<typeID>180</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>simpleWall.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>25.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.48</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Wall (90 degrees)-->
|
||||||
|
<composition>
|
||||||
|
<typeID>181</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>simpleWall.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>25.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.48</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Light Block -->
|
||||||
|
<composition>
|
||||||
|
<typeID>200</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>true</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>5.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>1.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Gate -->
|
||||||
|
<composition>
|
||||||
|
<typeID>220</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>gate.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>25.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>100.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Gate -->
|
||||||
|
<composition>
|
||||||
|
<typeID>221</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>gate.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>25.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>100.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Block for Switch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>240</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>true</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>movableBlock.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>5.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>2.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Brazier -->
|
||||||
|
<composition>
|
||||||
|
<typeID>245</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>brazier.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Hint -->
|
||||||
|
<composition>
|
||||||
|
<typeID>250</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>hint.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Exit -->
|
||||||
|
<composition>
|
||||||
|
<typeID>254</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>exit.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Available physicTypes are Player, Box, Button, TriangleMesh and None(no physics).
|
||||||
|
dampningL should be below 1, objects that can not move are enabled by setting their mass to 0. -->
|
||||||
|
|
||||||
|
<!-- Do not change the radius, it has to match the .obj -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>marbleSmooth.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/marbleTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.5</diffuseFactor>
|
||||||
|
<specularFactor>0.5</specularFactor>
|
||||||
|
<shininess>3.0</shininess>
|
||||||
|
<physicType>Player</physicType>
|
||||||
|
<radius>1.0</radius>
|
||||||
|
<dampningL>0.15 </dampningL>
|
||||||
|
<dampningA>0.7</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<!-- Do not change width height or length, they have to match the .obj -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/blockTexture_small.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>4</width>
|
||||||
|
<height>1.88</height>
|
||||||
|
<length>1.99</length>
|
||||||
|
<dampningL>0.8</dampningL>
|
||||||
|
<dampningA>0.9</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/columnTexture2.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.8</dampningL>
|
||||||
|
<dampningA>0.9</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/torchTexture2.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.3</diffuseFactor>
|
||||||
|
<specularFactor>0.7</specularFactor>
|
||||||
|
<shininess>10.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.8</dampningL>
|
||||||
|
<dampningA>0.9</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<!-- Do not change width height or length, they have to match the .obj -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>switchInner.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/switchInnerTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>Button</physicType>
|
||||||
|
<width>1.8</width>
|
||||||
|
<height>1</height>
|
||||||
|
<length>1.8</length>
|
||||||
|
<dampningL>0.5</dampningL>
|
||||||
|
<dampningA>1.0</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<!-- Do not change width height or length, they have to match the .obj -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>2.54</width>
|
||||||
|
<height>2.54</height>
|
||||||
|
<length>0.33</length>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>false</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>switchOuter.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/switchOuterTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>None</physicType>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<!-- lengh may not be exact -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>simpleWall.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/simpleWallTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>1.2</width>
|
||||||
|
<height>6</height>
|
||||||
|
<length>6</length>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>gate.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/gateTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>1.2</width>
|
||||||
|
<height>6</height>
|
||||||
|
<length>6</length>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>movableBlock.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/movableBlockTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>1.56</width>
|
||||||
|
<height>1.56</height>
|
||||||
|
<length>1.56</length>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>brazier.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/brazierTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>hint.obj</modelPath>
|
||||||
|
<texturePath>hintTexture2.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>exit.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/exitTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
BIN
data/levels/Level1.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
13446
data/levels/Level1.xml
Normal file
BIN
data/levels/TestLevel.png
Normal file
After Width: | Height: | Size: 135 B |
244
data/levels/TestLevel.xml
Normal file
@ -0,0 +1,244 @@
|
|||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>-4.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>-3.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>8</idBlue>
|
||||||
|
<typeID>60</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>5.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>5.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>7</idBlue>
|
||||||
|
<typeID>245</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>4.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>-6.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>6</idBlue>
|
||||||
|
<typeID>200</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>-1.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>-0.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>5</idBlue>
|
||||||
|
<typeID>80</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>-7.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>7.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>2</idBlue>
|
||||||
|
<typeID>20</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>-7.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>-7.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>1</idBlue>
|
||||||
|
<typeID>40</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<ambientLight>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>1.0</gColour>
|
||||||
|
<bColour>1.0</bColour>
|
||||||
|
</ambientLight>
|
||||||
|
|
||||||
|
<fogColourDay>
|
||||||
|
<rColour>0.57</rColour>
|
||||||
|
<gColour>0.80</gColour>
|
||||||
|
<bColour>0.98</bColour>
|
||||||
|
<alpha>1.0</alpha>
|
||||||
|
</fogColourDay>
|
||||||
|
|
||||||
|
<fogColourRise>
|
||||||
|
<rColour>0.88</rColour>
|
||||||
|
<gColour>0.38</gColour>
|
||||||
|
<bColour>0.38</bColour>
|
||||||
|
<alpha>1.0</alpha>
|
||||||
|
</fogColourRise>
|
||||||
|
|
||||||
|
<fogColourNight>
|
||||||
|
<rColour>0.09</rColour>
|
||||||
|
<gColour>0.1</gColour>
|
||||||
|
<bColour>0.24</bColour>
|
||||||
|
<alpha>1.0</alpha>
|
||||||
|
</fogColourNight>
|
||||||
|
|
||||||
|
<directionalLight>
|
||||||
|
<xOffset>-1.0</xOffset>
|
||||||
|
<yOffset>1.5</yOffset>
|
||||||
|
<zOffset>1.0</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>1.0</gColour>
|
||||||
|
<bColour>0.9</bColour>
|
||||||
|
<intensity>0.2</intensity>
|
||||||
|
</directionalLight>
|
||||||
|
|
||||||
|
<terrain>
|
||||||
|
<heightmap>heightmapTestLevel.png</heightmap>
|
||||||
|
<texture>sand.png</texture>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.8</diffuseFactor>
|
||||||
|
<specularFactor>0.2</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
</terrain>
|
||||||
|
|
||||||
|
<skydome>
|
||||||
|
<model>skydome.obj</model>
|
||||||
|
<texture>skydomeNew.png</texture>
|
||||||
|
<nightTexture>nightskydome.png</nightTexture>
|
||||||
|
</skydome>
|
||||||
|
|
||||||
|
<physics>
|
||||||
|
<friction>0.9</friction>
|
||||||
|
<strength>300.0</strength>
|
||||||
|
</physics>
|
||||||
|
|
||||||
|
<positionConstraint>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<xPosition>0.0</xPosition>
|
||||||
|
<yPosition>0.0</yPosition>
|
||||||
|
<zPosition>0.0</zPosition>
|
||||||
|
<strength>100.0</strength>
|
||||||
|
</positionConstraint>
|
BIN
data/levels/heightmapLvl1.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
data/levels/heightmapTestLevel.png
Normal file
After Width: | Height: | Size: 165 B |
39
data/levels/scripts/Template.lua
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredSCRIPTNAME == nil) then
|
||||||
|
global.triggeredSCRIPTNAME = false
|
||||||
|
end
|
||||||
|
if(global.triggeredSCRIPTNAMEUndo == nil) then
|
||||||
|
global.triggeredSCRIPTNAMEUndo = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredSCRIPTNAME == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
--enter the scripts code here and replace all occurences of SCRIPTNAME with the name of the script.
|
||||||
|
|
||||||
|
global.triggeredSCRIPTNAME = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("SCRIPTNAME")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredSCRIPTNAMEUndo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
--enter the scripts undo code here
|
||||||
|
|
||||||
|
global.triggeredSCRIPTNAMEUndo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("SCRIPTNAMEUndo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
17
data/levels/scripts/firstCheckpoint.lua
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
local global = require("global")
|
||||||
|
if(global.triggeredFristCheckpoint == nil) then
|
||||||
|
global.triggeredFristCheckpoint = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredFristCheckpoint == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
global.triggeredFristCheckpoint = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("firstCheckpoint")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
3
data/levels/scripts/global.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
--global variable space
|
||||||
|
local global = {}
|
||||||
|
return global
|
4
data/levels/scripts/init.lua
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
-- Inits search path for require.
|
||||||
|
-- This file needs to stay next to the other scripts.
|
||||||
|
|
||||||
|
package.path = debug.getinfo(1,"S").source:match[[^@?(.*[\/])[^\/]-$]] .."?.lua;".. package.path
|
51
data/levels/scripts/openFirstDoor.lua
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenFirstDoor == nil) then
|
||||||
|
global.triggeredOpenFirstDoor = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenFirstDoorUndo == nil) then
|
||||||
|
global.triggeredOpenFirstDoorUndo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenFirstDoor == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local strength = 100
|
||||||
|
local xPos = 17.5
|
||||||
|
local yPos = 33.0
|
||||||
|
local zPos = 81.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
|
||||||
|
global.triggeredOpenFirstDoorUndo = false
|
||||||
|
|
||||||
|
global.triggeredOpenFirstDoor = true
|
||||||
|
if (printDebug) then
|
||||||
|
print("openFirstDoor")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenFirstDoorUndo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local strength = 100
|
||||||
|
local xPos = 17.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 81.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
|
||||||
|
global.triggeredOpenFirstDoor = false
|
||||||
|
|
||||||
|
global.triggeredOpenFirstDoorUndo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openFirstDoorUndo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
58
data/levels/scripts/openSecondDoor1.lua
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenSecondDoor1 == nil) then
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenSecondDoor1Undo == nil) then
|
||||||
|
global.triggeredOpenSecondDoor1Undo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor1 == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if(global.openSecondDoorCounter == nil) then
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
end
|
||||||
|
if(global.openSecondDoorCounter == 0) then
|
||||||
|
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||||
|
end
|
||||||
|
global.triggeredOpenSecondDoor1 = true
|
||||||
|
|
||||||
|
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||||
|
global.triggeredOpenSecondDoor1Undo = false
|
||||||
|
end
|
||||||
|
|
||||||
|
local xPos = -6.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 54.5
|
||||||
|
level:preloadLightPosition(xPos, yPos, zPos)
|
||||||
|
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor1")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor1Undo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
level:deleteFourLights()
|
||||||
|
|
||||||
|
global.triggeredOpenSecondDoor1Undo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor1Undo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
58
data/levels/scripts/openSecondDoor2.lua
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenSecondDoor2 == nil) then
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenSecondDoor2Undo == nil) then
|
||||||
|
global.triggeredOpenSecondDoor2Undo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor2 == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if(global.openSecondDoorCounter == nil) then
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
end
|
||||||
|
if(global.openSecondDoorCounter == 1) then
|
||||||
|
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||||
|
end
|
||||||
|
global.triggeredOpenSecondDoor2 = true
|
||||||
|
|
||||||
|
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||||
|
global.triggeredOpenSecondDoor2Undo = false
|
||||||
|
end
|
||||||
|
|
||||||
|
local xPos = -53.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 26.5
|
||||||
|
level:preloadLightPosition(xPos, yPos, zPos)
|
||||||
|
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor2")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor2Undo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
level:deleteFourLights()
|
||||||
|
|
||||||
|
global.triggeredOpenSecondDoor2Undo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor2Undo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
58
data/levels/scripts/openSecondDoor3.lua
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenSecondDoor3 == nil) then
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenSecondDoor3Undo == nil) then
|
||||||
|
global.triggeredOpenSecondDoor3Undo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor3 == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if(global.openSecondDoorCounter == nil) then
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
end
|
||||||
|
if(global.openSecondDoorCounter == 2) then
|
||||||
|
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||||
|
end
|
||||||
|
global.triggeredOpenSecondDoor3 = true
|
||||||
|
|
||||||
|
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||||
|
global.triggeredOpenSecondDoor3Undo = false
|
||||||
|
end
|
||||||
|
|
||||||
|
local xPos = -6.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 26.5
|
||||||
|
level:preloadLightPosition(xPos, yPos, zPos)
|
||||||
|
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor3")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor3Undo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
level:deleteFourLights()
|
||||||
|
|
||||||
|
global.triggeredOpenSecondDoor3Undo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor3Undo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
67
data/levels/scripts/openSecondDoor4.lua
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenSecondDoor4 == nil) then
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenSecondDoor4Undo == nil) then
|
||||||
|
global.triggeredOpenSecondDoor4Undo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor4 == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if(global.openSecondDoorCounter == nil) then
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
end
|
||||||
|
if(global.openSecondDoorCounter == 3) then
|
||||||
|
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||||
|
end
|
||||||
|
global.triggeredOpenSecondDoor4 = true
|
||||||
|
|
||||||
|
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||||
|
if(global.openSecondDoorCounter == 4) then
|
||||||
|
local strength = 100
|
||||||
|
local xPos = -81.5
|
||||||
|
local yPos = 33
|
||||||
|
local zPos = 4.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
global.openedSecondDoor = true
|
||||||
|
else
|
||||||
|
global.triggeredOpenSecondDoor4Undo = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local xPos = -53.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 54.5
|
||||||
|
level:preloadLightPosition(xPos, yPos, zPos)
|
||||||
|
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor4")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor4Undo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
level:deleteFourLights()
|
||||||
|
|
||||||
|
global.triggeredOpenSecondDoor4Undo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor4Undo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
51
data/levels/scripts/openThirdDoor.lua
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenThirdDoor == nil) then
|
||||||
|
global.triggeredOpenThirdDoor = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenThirdDoorUndo == nil) then
|
||||||
|
global.triggeredOpenThirdDoorUndo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenThirdDoor == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local strength = 100
|
||||||
|
local xPos = -172.5
|
||||||
|
local yPos = 33
|
||||||
|
local zPos = 58.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
|
||||||
|
global.triggeredOpenThirdDoorUndo = false
|
||||||
|
|
||||||
|
global.triggeredOpenThirdDoor = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openThirdDoor")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenThirdDoorUndo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local strength = 100
|
||||||
|
local xPos = -172.5
|
||||||
|
local yPos = 25
|
||||||
|
local zPos = 58.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
|
||||||
|
global.triggeredOpenThirdDoor = false
|
||||||
|
|
||||||
|
global.triggeredOpenThirdDoorUndo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openThirdDoorUndo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
21
data/levels/scripts/resetBox.lua
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredResetBox == nil) then
|
||||||
|
global.triggeredResetBox = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredResetBox == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local x = -101.5
|
||||||
|
local y = 22.5
|
||||||
|
local z =8.5
|
||||||
|
level:forceMove(x, y, z, objectToChange)
|
||||||
|
|
||||||
|
if(printDebug) then
|
||||||
|
print("reset box")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
35
data/levels/scripts/resetPlayer.lua
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredResetPlayer == nil) then
|
||||||
|
global.triggeredResetPlayer = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredResetPlayer == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if(global.triggeredFristCheckpoint == true) then
|
||||||
|
if(global.triggeredOpenFirstDoor == true) then
|
||||||
|
if(global.openedSecondDoor == true) then
|
||||||
|
if(global.triggeredOpenThirdDoor == true) then
|
||||||
|
level:movePlayer(-169.5,21.5,58.5)
|
||||||
|
else
|
||||||
|
level:movePlayer(-78.5,21.75,4.5)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
level:movePlayer(17.5,21.0,87.0)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
level:movePlayer(18.0, 23.0, 145.0)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
level:resetPlayer()
|
||||||
|
end
|
||||||
|
|
||||||
|
if(printDebug) then
|
||||||
|
print("reset player")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
21
data/levels/scripts/sunStart.lua
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredSunStart == nil) then
|
||||||
|
global.triggeredSunStart = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredSunStart == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local time = os.clock()
|
||||||
|
global.sunStartTime = time
|
||||||
|
global.triggeredSunStart = true
|
||||||
|
level:activateEndgame()
|
||||||
|
if(printDebug) then
|
||||||
|
print("sunStart")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
28
data/levels/scripts/sunUpdate.lua
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
|
||||||
|
function trigger(objectToChange)
|
||||||
|
if(global.triggeredSunStart) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local maxTimeDiff = 30
|
||||||
|
local timeDiff = os.clock()- global.sunStartTime
|
||||||
|
if(timeDiff > maxTimeDiff)then
|
||||||
|
timeDiff = maxTimeDiff
|
||||||
|
end
|
||||||
|
timeDiff = timeDiff/maxTimeDiff
|
||||||
|
local x = 10
|
||||||
|
local y = -18 + math.sqrt(timeDiff) * 29
|
||||||
|
local z = -8 + timeDiff * 15
|
||||||
|
level:setSunDirection(x,y,z)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--local x = 0.7 + 0.3 * timeDiff
|
||||||
|
--local y = math.sqrt(timeDiff) * 2.2 - 1.5
|
||||||
|
--local z = -0.7 - 0.7 * timeDiff
|
||||||
|
--start 1,-6,-2
|
||||||
|
--ziel 10,10,10
|
9
data/shader/debug.fsh
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
in vec3 vColor;
|
||||||
|
|
||||||
|
out vec4 oColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
oColor = vec4(vColor, 1.0);
|
||||||
|
}
|
13
data/shader/debug.vsh
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
uniform mat4 viewProjectionMatrix;
|
||||||
|
|
||||||
|
in vec3 aPosition;
|
||||||
|
in vec3 aColor;
|
||||||
|
|
||||||
|
out vec3 vColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vColor = aColor;
|
||||||
|
gl_Position = viewProjectionMatrix * vec4(aPosition, 1.0);
|
||||||
|
}
|
5
data/shader/depth.fsh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
gl_FragDepth = gl_FragCoord.z;
|
||||||
|
}
|
13
data/shader/depth_cube.fsh
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
in vec4 fragPosition;
|
||||||
|
|
||||||
|
uniform float farPlane;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float nearPlane = 0.1;
|
||||||
|
float A = -(farPlane+nearPlane)/(farPlane-nearPlane);
|
||||||
|
float B = -2*(farPlane*nearPlane)/(farPlane - nearPlane);
|
||||||
|
float value = 0.5*(-A*length(fragPosition) + B)/length(fragPosition) + 0.5;
|
||||||
|
gl_FragDepth = value;
|
||||||
|
}
|
15
data/shader/depth_cube.vsh
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
in vec3 aPosition;
|
||||||
|
in vec3 aNormal;
|
||||||
|
in vec3 aTexcoord;
|
||||||
|
|
||||||
|
uniform mat4 modelViewProjectionMatrix;
|
||||||
|
uniform mat4 modelViewMatrix;
|
||||||
|
|
||||||
|
out vec4 fragPosition;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
fragPosition = modelViewMatrix * vec4(aPosition, 1.0);
|
||||||
|
gl_Position = modelViewProjectionMatrix * vec4(aPosition, 1.0);
|
||||||
|
}
|
17
data/shader/flame.fsh
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
in vec3 fColor;
|
||||||
|
|
||||||
|
out vec4 oColor;
|
||||||
|
|
||||||
|
uniform bool withColor;
|
||||||
|
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
if (withColor) {
|
||||||
|
oColor = vec4(fColor, 0.6);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
oColor = vec4(0.0, 0.0, 0.0, 0.0);
|
||||||
|
}
|
||||||
|
}
|
104
data/shader/flame.gsh
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
uniform mat4 modelViewProjectionMatrix;
|
||||||
|
uniform float time;
|
||||||
|
uniform bool bottom;
|
||||||
|
uniform int circle_index;
|
||||||
|
uniform vec2 skew;
|
||||||
|
|
||||||
|
layout(points) in;
|
||||||
|
layout(triangle_strip, max_vertices = 146) out;
|
||||||
|
|
||||||
|
in vec3 Color[];
|
||||||
|
out vec3 fColor;
|
||||||
|
|
||||||
|
const float PI = 3.1415926;
|
||||||
|
const float transition_point_1 = 0.486946;
|
||||||
|
const float cos_p1_1 = 0.35;
|
||||||
|
const float cos_p2_1 = 2.0;
|
||||||
|
const float ex_p1_1 = -0.193;
|
||||||
|
const float ex_p2_1 = 2.9426;
|
||||||
|
const float begin_1 = -0.8;
|
||||||
|
const float end_1 = 2;
|
||||||
|
|
||||||
|
const float transition_point_2 = 0.549778;
|
||||||
|
const float cos_p1_2 = 0.5;
|
||||||
|
const float cos_p2_2 = 2.0;
|
||||||
|
const float ex_p1_2 = 0.677;
|
||||||
|
const float ex_p2_2 = 3.9314;
|
||||||
|
const float begin_2 = -0.8;
|
||||||
|
const float end_2 = 1.3;
|
||||||
|
|
||||||
|
float flickerFunction() {
|
||||||
|
float windPower = length(skew);
|
||||||
|
if (windPower < 0.8) {
|
||||||
|
windPower += 0.2;
|
||||||
|
}
|
||||||
|
return windPower * pow(sin((20.0/(windPower))*time + gl_in[0].gl_Position.x*gl_in[0].gl_Position.z), 2) + (1-windPower);
|
||||||
|
}
|
||||||
|
|
||||||
|
float radiusFunction(float x) {
|
||||||
|
float value_1 = 0.0;
|
||||||
|
float value_2 = 0.0;
|
||||||
|
if (x < transition_point_1) {
|
||||||
|
value_1 = cos_p1_1 * cos(cos_p2_1 * x);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
value_1 = exp(ex_p1_1 - ex_p2_1 * x);
|
||||||
|
}
|
||||||
|
if (x < transition_point_2) {
|
||||||
|
value_2 = cos_p1_2 * cos(cos_p2_2 * x);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
value_2 = exp(ex_p1_2 - ex_p2_2 * x);
|
||||||
|
}
|
||||||
|
return mix(value_1, value_2, flickerFunction());
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
fColor = Color[0];
|
||||||
|
|
||||||
|
float resolution = 6.0;
|
||||||
|
float this_begin = mix(begin_1, begin_2, flickerFunction());
|
||||||
|
float this_end = mix(end_1, end_2, flickerFunction());
|
||||||
|
float step = abs(this_end-this_begin)/resolution/2.0;
|
||||||
|
float i = 0.0;
|
||||||
|
float render_end = 0.0;
|
||||||
|
if (bottom) {
|
||||||
|
i = this_begin;
|
||||||
|
render_end = (this_end-this_begin)/2.0+step;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
i = (this_end-this_begin)/2.0;
|
||||||
|
render_end = this_end;
|
||||||
|
}
|
||||||
|
for (i; i<render_end; i+=step) {
|
||||||
|
float downRadius = radiusFunction(i);
|
||||||
|
float upRadius = radiusFunction(i+step);
|
||||||
|
int j = int(resolution/2.0) * circle_index;
|
||||||
|
int circle_end = int(resolution/2.0) * (circle_index + 1);
|
||||||
|
for (j; j<circle_end; j++) {
|
||||||
|
float leftAngle = PI * 2.0 / resolution / 4.0 * j;
|
||||||
|
float rightAngle = PI * 2.0 / resolution / 4.0 * (j+1);
|
||||||
|
|
||||||
|
vec4 offset = vec4(cos(rightAngle) * downRadius, i, -sin(rightAngle) * downRadius, 0.0);
|
||||||
|
gl_Position = gl_in[0].gl_Position + modelViewProjectionMatrix * offset;
|
||||||
|
EmitVertex();
|
||||||
|
|
||||||
|
offset = vec4(cos(rightAngle) * upRadius, i + step, -sin(rightAngle) * upRadius, 0.0);
|
||||||
|
gl_Position = gl_in[0].gl_Position + modelViewProjectionMatrix * offset;
|
||||||
|
EmitVertex();
|
||||||
|
|
||||||
|
offset = vec4(cos(leftAngle) * downRadius, i, -sin(leftAngle) * downRadius, 0.0);
|
||||||
|
gl_Position = gl_in[0].gl_Position + modelViewProjectionMatrix * offset;
|
||||||
|
EmitVertex();
|
||||||
|
|
||||||
|
offset = vec4(cos(leftAngle) * upRadius, i + step, -sin(leftAngle) * upRadius, 0.0);
|
||||||
|
gl_Position = gl_in[0].gl_Position + modelViewProjectionMatrix * offset;
|
||||||
|
EmitVertex();
|
||||||
|
|
||||||
|
EndPrimitive();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
17
data/shader/flame.vsh
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
uniform mat4 viewProjectionMatrix;
|
||||||
|
uniform vec2 skew;
|
||||||
|
|
||||||
|
in vec3 aPosition;
|
||||||
|
in vec3 aColor;
|
||||||
|
|
||||||
|
out vec3 Color;
|
||||||
|
|
||||||
|
const float end = 0.8;
|
||||||
|
|
||||||
|
void main () {
|
||||||
|
Color = aColor;
|
||||||
|
vec3 position = aPosition + vec3(-sin(skew.y)*end, 0.0, sin(skew.x)*end);
|
||||||
|
gl_Position = viewProjectionMatrix * vec4(position, 1.0);
|
||||||
|
}
|
21
data/shader/flame_post.fsh
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
in vec2 vTexCoord;
|
||||||
|
|
||||||
|
uniform sampler2D light_fbo;
|
||||||
|
uniform int windowSizeX;
|
||||||
|
uniform int windowSizeY;
|
||||||
|
|
||||||
|
out vec4 oColor;
|
||||||
|
|
||||||
|
const float lookup_offset = 4.0;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 sum = vec4(0.0);
|
||||||
|
for(float i = -lookup_offset; i<=lookup_offset; i+=1.0) {
|
||||||
|
for(float j = -lookup_offset; j<=lookup_offset; j+=1.0) {
|
||||||
|
sum += texture(light_fbo, vec2(vTexCoord.x + i * 1.0/(windowSizeX/2.0), vTexCoord.y + j * 1.0/(windowSizeY/2.0)))/pow(lookup_offset*2+1, 2.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oColor = sum;
|
||||||
|
}
|
11
data/shader/flame_post.vsh
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
in vec2 aPosition;
|
||||||
|
in vec2 aTexCoord;
|
||||||
|
|
||||||
|
out vec2 vTexCoord;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vTexCoord = aTexCoord;
|
||||||
|
gl_Position = vec4(aPosition, 0.0, 1.0);
|
||||||
|
}
|
15
data/shader/loading.fsh
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
in vec2 vTexCoord;
|
||||||
|
|
||||||
|
uniform float time;
|
||||||
|
uniform sampler2D screen;
|
||||||
|
uniform sampler2D screenContinue;
|
||||||
|
|
||||||
|
out vec4 oColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 screenColor = texture(screen, vTexCoord);
|
||||||
|
vec4 screenContinueColor = texture(screenContinue, vTexCoord);
|
||||||
|
oColor = mix(screenColor, screenContinueColor, pow(sin(time), 2));
|
||||||
|
}
|
11
data/shader/loading.vsh
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#version 150
|
||||||
|
|
||||||
|
in vec2 aPosition;
|
||||||
|
in vec2 aTexCoord;
|
||||||
|
|
||||||
|
out vec2 vTexCoord;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vTexCoord = aTexCoord;
|
||||||
|
gl_Position = vec4(aPosition, 0.0, 1.0);
|
||||||
|
}
|