Compare commits
347 Commits
master
...
world-spac
Author | SHA1 | Date | |
---|---|---|---|
|
30320a16ef | ||
|
812321edec | ||
|
9598a86ffe | ||
|
0203bcb326 | ||
|
094549ce85 | ||
|
342a3691c2 | ||
|
9e825ccc1e | ||
|
cb6fdf19a7 | ||
|
9b52b9badc | ||
|
8c8655c096 | ||
|
e7839b3363 | ||
|
e04aca7841 | ||
|
12ee9a4ac5 | ||
|
d25db437bb | ||
|
9cb0bbfe56 | ||
|
ca98df63ac | ||
|
8d46d98de0 | ||
|
2c8c69a5dc | ||
|
1206a7b801 | ||
|
7160330bfd | ||
|
f83099bb2d | ||
|
6210d2e35b | ||
|
955eee5a60 | ||
|
d26722595e | ||
|
10017bb855 | ||
|
04df8bd22f | ||
|
f496532126 | ||
|
b897dc5457 | ||
|
147ae17789 | ||
|
02a9cd7559 | ||
|
cba7d170da | ||
|
66f892bc15 | ||
|
ed6e257b69 | ||
|
ec29499416 | ||
|
f39fd522ce | ||
|
a83e6155b3 | ||
|
c7cc43a399 | ||
|
a0c73056c6 | ||
|
ed16b4aab7 | ||
|
2c0d4424a2 | ||
|
5df5d5b974 | ||
|
e80a22ebb6 | ||
|
eec5ce85c1 | ||
|
f1b54a258f | ||
|
e54e59e495 | ||
|
4e29a44505 | ||
|
1288c62ce9 | ||
|
c6d4e1d916 | ||
|
b483cb2eb9 | ||
|
4df1b8e3cb | ||
|
46f163d748 | ||
|
e35899523f | ||
|
aee4d4a8ff | ||
|
cc4842a628 | ||
|
a5de8e733e | ||
|
55ba919f7e | ||
|
bbdc6be85d | ||
|
831b0ebbb6 | ||
|
2d4e590308 | ||
|
9deaf22bca | ||
|
1998e2abc9 | ||
|
965e865d92 | ||
|
4f677b427c | ||
|
9f3b11c274 | ||
|
749f8cb2dc | ||
|
46a32b8617 | ||
|
5f87600bfb | ||
|
cb3ccb3668 | ||
|
d91d5e2028 | ||
|
bab84f01c1 | ||
|
9497e99b58 | ||
|
8a40b1705f | ||
|
70aab2a58f | ||
|
13c9893a47 | ||
|
4fe9cc2bf8 | ||
|
8da25e5beb | ||
|
5ad46dd5e9 | ||
|
ebb7045753 | ||
|
c993bd8f77 | ||
|
689a5f3d1c | ||
|
124ae53f59 | ||
|
6d6f798d12 | ||
|
2a1119da79 | ||
|
e00cb787c8 | ||
|
23abffb3ee | ||
|
b43f37f0a0 | ||
|
2e75aff5af | ||
|
9964b9be34 | ||
|
e49e4c2177 | ||
|
15f91a19b9 | ||
|
05cac9c520 | ||
|
0eacb96e81 | ||
|
6b3db436dc | ||
|
df182abd06 | ||
|
db1de34bce | ||
|
66cf9ef8d6 | ||
|
91567fca78 | ||
|
fdeb783055 | ||
|
121f357d23 | ||
|
81bead5a97 | ||
|
2e472f8921 | ||
|
b744d5b440 | ||
|
ca5618bce2 | ||
|
9c92954bc0 | ||
|
acf7325553 | ||
|
7dae5a5e8c | ||
|
f306730920 | ||
|
ad24191000 | ||
|
56be22a460 | ||
|
7a95ddf6bb | ||
|
4d36c9fb97 | ||
|
6ff8f33017 | ||
|
55cc68a333 | ||
|
c2cf71e0e6 | ||
|
cec0043caf | ||
|
ed347725e6 | ||
|
b2241a671e | ||
|
d45ed9060f | ||
|
01212ba007 | ||
|
b5f7e73c4c | ||
|
4ddc21d3c9 | ||
|
3504a2d209 | ||
|
85c6132c3e | ||
|
c406bd4b62 | ||
|
caea9b7181 | ||
|
f8d9ff0919 | ||
|
71a05e5b1e | ||
|
d67b7b5b23 | ||
|
a1981ecbca | ||
|
a05095c9dd | ||
|
20f66d996f | ||
|
cc64a524fc | ||
|
b5e5289511 | ||
|
7cb146dbbb | ||
|
bd1cedcc23 | ||
|
28839b4d3a | ||
|
2790bddd11 | ||
|
030f2f3bdd | ||
|
cf4cbd92fa | ||
|
68202bdef2 | ||
|
b0b43cc2ee | ||
|
b51cc256bd | ||
|
3f90032bf0 | ||
|
1d82412576 | ||
|
4ab04faf68 | ||
|
f4529d1430 | ||
|
a6c65efcee | ||
|
b5deb6b9e7 | ||
|
da197f063f | ||
|
4805a4a3ce | ||
|
e79128a1a5 | ||
|
3268881a13 | ||
|
c899c4e67e | ||
|
41584ef993 | ||
|
24edf1aca9 | ||
|
73d5e5fd52 | ||
|
d4168fb002 | ||
|
5e44f9680e | ||
|
7e7754ca64 | ||
|
b9b7a6e7b4 | ||
|
8eb0f6719a | ||
|
9e4cc5e4f7 | ||
|
1c687f5759 | ||
|
0cb741dbc3 | ||
|
0e06ae9fd3 | ||
|
e005c97439 | ||
|
b38e24c3db | ||
|
a8ac3c064a | ||
|
3b0881f9c1 | ||
|
049819c47a | ||
|
fe0535036f | ||
|
588b499f93 | ||
|
f559eced68 | ||
|
08716abfe8 | ||
|
7a76519edb | ||
|
581e1cd111 | ||
|
965c3f96f9 | ||
|
4adc1198b8 | ||
|
b6c694b350 | ||
|
f38ced6603 | ||
|
64aeae8143 | ||
|
8b21495faa | ||
|
be1abf584f | ||
|
315d5aec04 | ||
|
ed889ebd76 | ||
|
777d33699e | ||
|
02641d7f1c | ||
|
c96d081e3d | ||
|
e1d14c1884 | ||
|
117e3715b4 | ||
|
27080179e4 | ||
|
043205455f | ||
|
4daf4c8ccf | ||
|
81234ca22a | ||
|
8317188314 | ||
|
139945614b | ||
|
f3f870c2d1 | ||
|
edb17a9e67 | ||
|
9f1a931b0b | ||
|
91de258030 | ||
|
c5abdba83e | ||
|
869e1ed415 | ||
|
59bb4a91a7 | ||
|
ad61969176 | ||
|
414da9ba7e | ||
|
150a556c22 | ||
|
00cdbe4c5e | ||
|
594f336204 | ||
|
9d39bec46f | ||
|
d58147a935 | ||
|
4881367004 | ||
|
6a05ec47dd | ||
|
6bb0974c67 | ||
|
6a82bf122c | ||
|
c63382ba29 | ||
|
215b37f15e | ||
|
fab8665424 | ||
|
b9b2f5769e | ||
|
50c08d79ec | ||
|
60ff3452ca | ||
|
65eba6a97a | ||
|
b57b559748 | ||
|
ca4ccaef10 | ||
|
6f44ea1416 | ||
|
cc6818cd65 | ||
|
2a99eb16d5 | ||
|
6af0dcc427 | ||
|
1dc99cdf39 | ||
|
79e8f777b3 | ||
|
76745a1da8 | ||
|
90630c7ab6 | ||
|
afdaa05d27 | ||
|
3621592e4c | ||
|
a49c023305 | ||
|
c6a330f35a | ||
|
bdee3a0740 | ||
|
6ef713107e | ||
|
98d0e955e8 | ||
|
6b80e179f4 | ||
|
b3c285b4c2 | ||
|
e2dd7724ac | ||
|
4335eeb00e | ||
|
8d6483877b | ||
|
99280607e1 | ||
|
d31e50cfa8 | ||
|
24c149b656 | ||
|
fe4563e1d0 | ||
|
ae18362112 | ||
|
45ccc55786 | ||
|
35012faeec | ||
|
f17a9d4374 | ||
|
cdfc6fa94a | ||
|
c6c9c83eb7 | ||
|
1af78cb6e5 | ||
|
3504e10102 | ||
|
28c2347594 | ||
|
e4734ae34a | ||
|
ef80d0124a | ||
|
79440e2edd | ||
|
96c3ea4aac | ||
|
3c2ce439e5 | ||
|
bed712f669 | ||
|
b6c8c7ed57 | ||
|
dd1705b023 | ||
|
d524787cb7 | ||
|
e5c30e464f | ||
|
6b00de67f5 | ||
|
6a593eb319 | ||
|
a5694e0e8c | ||
|
2de9c38ce7 | ||
|
7431d0d63e | ||
|
6b904894c6 | ||
|
7736e7850f | ||
|
4161ae0ec4 | ||
|
b0ed3c467f | ||
|
78de14907a | ||
|
2bf6eb667c | ||
|
8245e0782e | ||
|
7bf1d8eed4 | ||
|
9b5426a6af | ||
|
823da599f3 | ||
|
71cb8300bd | ||
|
1cc47fa4ab | ||
|
97aeb6c965 | ||
|
ed44f71b8c | ||
|
3a9a04d4d6 | ||
|
59796882e4 | ||
|
3d936df227 | ||
|
3be8d78e1a | ||
|
0105a74b5a | ||
|
c65a745603 | ||
|
86c11e339e | ||
|
fa60d52676 | ||
|
3c0deb232f | ||
|
263f59f000 | ||
|
1006f1cbc9 | ||
|
c47ed4646d | ||
|
b74e56fe7d | ||
|
3a677c31da | ||
|
788110aaf1 | ||
|
6f59b1fb59 | ||
|
7bda59920b | ||
|
4af197d74b | ||
|
15a540e3c9 | ||
|
eadc819f80 | ||
|
b12b917a44 | ||
|
faf548d3ee | ||
|
7d0cf9fca2 | ||
|
49dfdff413 | ||
|
a8b6463674 | ||
|
9576a40af6 | ||
|
8968750015 | ||
|
715301552a | ||
|
2638b43b44 | ||
|
5a92765518 | ||
|
6a8182ab8d | ||
|
c54d6cf874 | ||
|
95627d31ae | ||
|
10f51db60f | ||
|
8a9d026aa5 | ||
|
c403814cd6 | ||
|
c58e4d01b1 | ||
|
9611c9ef08 | ||
|
5533d4e4ba | ||
|
9fc515ec24 | ||
|
ca3928e232 | ||
|
39b1ee85b0 | ||
|
94b12ae614 | ||
|
6f89c406f1 | ||
|
d11a2820d6 | ||
|
d4e38b7a41 | ||
|
dbce8c229f | ||
|
c22ae2c244 | ||
|
3086f98ecd | ||
|
bcb594c4cf | ||
|
429223a08e | ||
|
abe9513aa3 | ||
|
8f64f75b67 | ||
|
29f24d6f05 | ||
|
f6b2bd776a | ||
|
6f7486b3f8 | ||
|
4dc7897f8c | ||
|
48691338ba | ||
|
0b7f8e95d3 | ||
|
a77ed38625 | ||
|
0c4184477b | ||
|
29f4cf6279 |
3
.gitignore
vendored
@ -7,6 +7,3 @@ CMakeLists.txt.user
|
||||
*.zip
|
||||
*.db
|
||||
*.blend1
|
||||
*.swp
|
||||
*.pyc
|
||||
*.o
|
||||
|
BIN
Blenderfiles/switch_outer.blend1
Normal file
BIN
Blenderfiles/torch.blend
Normal file
@ -3,7 +3,7 @@ CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
|
||||
add_subdirectory(converter)
|
||||
|
||||
# project/binary name:
|
||||
PROJECT(saxum)
|
||||
PROJECT(MarbleRaceGroupC)
|
||||
|
||||
# ACGL setup
|
||||
SET(ACGL_OPENGL_SUPPORT CORE_32)
|
||||
@ -53,28 +53,21 @@ ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
|
||||
#
|
||||
# Lets the binary get written to a shared folder (which can be ignored by git).
|
||||
# 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(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
|
||||
|
||||
# source and header files
|
||||
FILE(GLOB SOURCE_FILES "${CMAKE_SOURCE_DIR}/game/*.cc")
|
||||
FILE(GLOB SOURCE_FILES "${CMAKE_SOURCE_DIR}/*.cc")
|
||||
SET(SOURCE_FILES ${SOURCE_FILES} ${SOURCE_FILES_SHARED})
|
||||
|
||||
FILE(GLOB HEADER_FILES "${CMAKE_SOURCE_DIR}/game/*.hh")
|
||||
FILE(GLOB HEADER_FILES "${CMAKE_SOURCE_DIR}/*.hh")
|
||||
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_SHARED})
|
||||
|
||||
# tinyxml
|
||||
# shader files
|
||||
FILE(GLOB_RECURSE SHADER_FILES "${CMAKE_SOURCE_DIR}/Shader/*.*")
|
||||
|
||||
FILE(GLOB HEADER_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.hh")
|
||||
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)
|
||||
# Readme
|
||||
FILE(GLOB_RECURSE README_FILES "${CMAKE_SOURCE_DIR}/../Readme.md")
|
||||
#
|
||||
#
|
||||
###############################################################################
|
||||
@ -83,6 +76,7 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/tinyxml)
|
||||
#
|
||||
# all we need for ACGL:
|
||||
#
|
||||
ADD_DEFINITIONS(-DACGL_ERROR_LEVEL_EC3)
|
||||
INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
|
||||
#
|
||||
#
|
||||
@ -93,11 +87,6 @@ INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
|
||||
# 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")
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/glfw/include)
|
||||
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_GLFW})
|
||||
@ -157,5 +146,5 @@ 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})
|
||||
ADD_EXECUTABLE(MarbleRaceGroupC ${SOURCE_FILES} ${HEADER_FILES} ${SHADER_FILES} ${README_FILES})
|
||||
TARGET_LINK_LIBRARIES(MarbleRaceGroupC ${LIBRARIES} ${CMAKE_DL_LIBS})
|
||||
|
471
LICENSE.txt
@ -1,471 +0,0 @@
|
||||
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,54 +1,54 @@
|
||||
# Blender v2.72 (sub 0) OBJ File: ''
|
||||
# Blender v2.72 (sub 0) OBJ File: 'SimpleWall.blend'
|
||||
# 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
|
||||
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.005637 -0.001671
|
||||
vt 0.394169 0.995358
|
||||
vt 0.605831 -0.004642
|
||||
vt 0.394169 -0.004642
|
||||
vt 0.605831 -0.004642
|
||||
vt -0.003002 0.995358
|
||||
vt 0.996752 -0.004642
|
||||
vt -0.003002 -0.004642
|
||||
vt 0.996752 -0.004642
|
||||
vt 0.605361 0.992386
|
||||
vt 0.392389 -0.007614
|
||||
vt 0.605361 -0.007614
|
||||
vt 0.392389 -0.007614
|
||||
vt 0.001396 0.906027
|
||||
vt 0.998604 0.093973
|
||||
vt 0.001923 0.094175
|
||||
vt 0.998604 0.093973
|
||||
vt 1.000000 0.097080
|
||||
vt 0.000000 0.902920
|
||||
vt 1.000000 0.902920
|
||||
vt 0.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 -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
|
||||
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
|
||||
f 6/1/1 2/2/1 1/3/1
|
||||
f 7/4/2 3/5/2 2/6/2
|
||||
f 8/7/3 4/8/3 3/9/3
|
||||
f 5/10/4 1/11/4 4/12/4
|
||||
f 2/13/5 3/14/5 4/15/5
|
||||
f 7/16/6 6/17/6 5/18/6
|
||||
f 5/19/1 6/1/1 1/3/1
|
||||
f 6/20/2 7/4/2 2/6/2
|
||||
f 7/21/3 8/7/3 3/9/3
|
||||
f 8/22/4 5/10/4 4/12/4
|
||||
f 1/23/5 2/13/5 4/15/5
|
||||
f 8/24/6 7/16/6 5/18/6
|
739
Levels/Geometry/block.obj
Normal file
@ -0,0 +1,739 @@
|
||||
# Blender v2.72 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib block.mtl
|
||||
o Block_Cube
|
||||
v 1.977493 -1.057121 -1.000000
|
||||
v 1.977493 -1.057121 -1.000000
|
||||
v -1.970033 -1.057121 -1.000001
|
||||
v 2.003582 -1.031032 -0.973911
|
||||
v 2.003582 0.916790 -0.973911
|
||||
v 2.003581 0.916790 0.973912
|
||||
v 0.003582 -1.057121 1.000000
|
||||
v -1.970034 -1.057121 0.999999
|
||||
v -1.970034 -1.057121 0.999999
|
||||
v 1.977494 0.942879 -0.999999
|
||||
v -1.970034 0.942879 -1.000000
|
||||
v -1.970034 0.942879 0.999999
|
||||
v -1.996123 0.916790 0.973910
|
||||
v -1.996123 0.916790 -0.973912
|
||||
v -1.996122 -1.031032 -0.973912
|
||||
v 1.977492 0.942879 1.000001
|
||||
v 1.977492 0.942879 1.000001
|
||||
v 0.003582 0.942879 -1.000000
|
||||
v 1.977494 0.942879 -0.999999
|
||||
v 1.977493 -1.057121 1.000000
|
||||
v 0.003582 -1.057121 -1.000000
|
||||
v -1.970033 -1.057121 -1.000001
|
||||
v -1.970034 0.942879 -1.000000
|
||||
v 1.977493 -1.057121 1.000000
|
||||
v -1.970034 0.942879 0.999999
|
||||
v 1.981206 -1.056856 -0.998011
|
||||
v 1.984843 -1.052918 -0.998943
|
||||
v 1.984843 -1.056064 -0.995797
|
||||
v 1.988331 -1.050523 -0.997642
|
||||
v 1.988331 -1.054763 -0.993402
|
||||
v 1.991598 -1.047998 -0.995858
|
||||
v 1.991598 -1.052980 -0.990877
|
||||
v 1.994578 -1.045393 -0.993628
|
||||
v 1.994578 -1.050749 -0.988272
|
||||
v 1.997210 -1.042761 -0.990996
|
||||
v 1.997210 -1.048117 -0.985640
|
||||
v 1.999440 -1.040155 -0.988016
|
||||
v 1.999440 -1.045137 -0.983034
|
||||
v 2.001224 -1.037630 -0.984749
|
||||
v 2.001224 -1.041870 -0.980509
|
||||
v 2.002525 -1.035236 -0.981261
|
||||
v 2.002525 -1.038382 -0.978115
|
||||
v 2.003316 -1.033021 -0.977624
|
||||
v 2.003316 -1.034745 -0.975900
|
||||
v 2.003316 -1.033021 0.977624
|
||||
v 2.003316 -1.034745 0.975900
|
||||
v 2.003582 -1.031032 0.973911
|
||||
v 2.002525 -1.035236 0.981261
|
||||
v 2.002525 -1.038382 0.978115
|
||||
v 2.001224 -1.037630 0.984749
|
||||
v 2.001224 -1.041870 0.980509
|
||||
v 1.999440 -1.040155 0.988016
|
||||
v 1.999440 -1.045137 0.983034
|
||||
v 1.997210 -1.048117 0.985640
|
||||
v 1.994578 -1.050749 0.988272
|
||||
v 1.997210 -1.042761 0.990996
|
||||
v 1.991598 -1.047998 0.995859
|
||||
v 1.991598 -1.052980 0.990877
|
||||
v 1.988331 -1.050523 0.997642
|
||||
v 1.988331 -1.054763 0.993402
|
||||
v 1.984843 -1.052918 0.998943
|
||||
v 1.984843 -1.056064 0.995797
|
||||
v 1.981206 -1.055132 0.999735
|
||||
v 1.981206 -1.056856 0.998011
|
||||
v 1.981206 0.940890 -0.999734
|
||||
v 1.984844 0.941822 -0.995796
|
||||
v 1.984843 0.938676 -0.998943
|
||||
v 1.988331 0.940521 -0.993402
|
||||
v 1.988331 0.936281 -0.997642
|
||||
v 1.991598 0.933756 -0.995858
|
||||
v 1.994578 0.936507 -0.988271
|
||||
v 1.994578 0.931151 -0.993627
|
||||
v 1.997210 0.928519 -0.990995
|
||||
v 1.999441 0.925913 -0.988015
|
||||
v 1.997210 0.933875 -0.985639
|
||||
v 2.001225 0.923388 -0.984748
|
||||
v 1.999441 0.930895 -0.983034
|
||||
v 2.002526 0.920994 -0.981261
|
||||
v 2.001225 0.927628 -0.980508
|
||||
v 2.003317 0.918779 -0.977623
|
||||
v 2.002526 0.924140 -0.978114
|
||||
v 2.003317 0.920503 -0.975900
|
||||
v 2.003315 0.920503 0.975901
|
||||
v 2.003315 0.918779 0.977625
|
||||
v 2.002524 0.924140 0.978115
|
||||
v 2.002524 0.920994 0.981262
|
||||
v 2.001224 0.927628 0.980510
|
||||
v 2.001224 0.923388 0.984750
|
||||
v 1.999439 0.925913 0.988017
|
||||
v 1.997209 0.933875 0.985640
|
||||
v 1.997209 0.928519 0.990996
|
||||
v 1.994577 0.936507 0.988272
|
||||
v 1.994577 0.931151 0.993628
|
||||
v 1.991597 0.933756 0.995859
|
||||
v 1.988330 0.940521 0.993403
|
||||
v 1.988330 0.936281 0.997643
|
||||
v 1.984842 0.938676 0.998944
|
||||
v 1.984842 0.941822 0.995797
|
||||
v 1.981205 0.942614 0.998011
|
||||
v 1.981205 0.940890 0.999735
|
||||
v -1.973747 -1.056856 0.998010
|
||||
v -1.977384 -1.052918 0.998943
|
||||
v -1.977384 -1.056065 0.995796
|
||||
v -1.980871 -1.054764 0.993402
|
||||
v -1.984138 -1.047998 0.995858
|
||||
v -1.984138 -1.052980 0.990876
|
||||
v -1.987118 -1.045393 0.993627
|
||||
v -1.987118 -1.050749 0.988271
|
||||
v -1.989750 -1.042761 0.990995
|
||||
v -1.989750 -1.048117 0.985639
|
||||
v -1.991981 -1.045137 0.983034
|
||||
v -1.993765 -1.037630 0.984748
|
||||
v -1.993765 -1.041870 0.980508
|
||||
v -1.995066 -1.035236 0.981261
|
||||
v -1.995066 -1.038383 0.978114
|
||||
v -1.995857 -1.033022 0.977624
|
||||
v -1.996123 -1.031032 0.973911
|
||||
v -1.995857 -1.034745 0.975900
|
||||
v -1.995857 -1.033022 -0.977625
|
||||
v -1.995857 -1.034745 -0.975901
|
||||
v -1.995065 -1.038383 -0.978115
|
||||
v -1.993765 -1.037630 -0.984750
|
||||
v -1.993765 -1.041870 -0.980510
|
||||
v -1.991981 -1.040156 -0.988017
|
||||
v -1.991981 -1.045137 -0.983035
|
||||
v -1.989750 -1.048117 -0.985640
|
||||
v -1.987118 -1.050749 -0.988273
|
||||
v -1.989750 -1.042761 -0.990997
|
||||
v -1.984138 -1.052980 -0.990878
|
||||
v -1.987118 -1.045393 -0.993629
|
||||
v -1.980871 -1.050524 -0.997643
|
||||
v -1.980871 -1.054764 -0.993403
|
||||
v -1.977383 -1.056065 -0.995798
|
||||
v -1.977383 -1.052918 -0.998944
|
||||
v -1.973746 -1.055132 -0.999735
|
||||
v -1.973746 -1.056856 -0.998012
|
||||
v -1.973747 0.940890 0.999734
|
||||
v -1.977384 0.938675 0.998942
|
||||
v -1.973747 0.942613 0.998010
|
||||
v -1.980872 0.936281 0.997642
|
||||
v -1.977384 0.941822 0.995796
|
||||
v -1.984139 0.933756 0.995858
|
||||
v -1.980872 0.940521 0.993402
|
||||
v -1.987119 0.931150 0.993627
|
||||
v -1.984139 0.938737 0.990876
|
||||
v -1.989751 0.928518 0.990995
|
||||
v -1.987119 0.936507 0.988271
|
||||
v -1.991982 0.930895 0.983034
|
||||
v -1.991982 0.925913 0.988015
|
||||
v -1.993766 0.923388 0.984748
|
||||
v -1.995066 0.920993 0.981260
|
||||
v -1.993766 0.927628 0.980508
|
||||
v -1.995857 0.918779 0.977623
|
||||
v -1.995066 0.924140 0.978114
|
||||
v -1.995857 0.920503 0.975900
|
||||
v -1.995857 0.920503 -0.975901
|
||||
v -1.995857 0.918779 -0.977625
|
||||
v -1.995066 0.924140 -0.978115
|
||||
v -1.995066 0.920993 -0.981262
|
||||
v -1.993765 0.927628 -0.980509
|
||||
v -1.993765 0.923388 -0.984749
|
||||
v -1.991981 0.925913 -0.988016
|
||||
v -1.989750 0.933875 -0.985640
|
||||
v -1.989750 0.928518 -0.990996
|
||||
v -1.987118 0.936507 -0.988272
|
||||
v -1.987118 0.931150 -0.993628
|
||||
v -1.984138 0.933756 -0.995859
|
||||
v -1.980871 0.940521 -0.993403
|
||||
v -1.980871 0.936281 -0.997643
|
||||
v -1.977384 0.938675 -0.998944
|
||||
v -1.977384 0.941822 -0.995797
|
||||
v -1.973747 0.942613 -0.998011
|
||||
v -1.973747 0.940890 -0.999735
|
||||
v 1.994578 -1.045393 0.993628
|
||||
v 1.991597 0.938738 0.990878
|
||||
v 1.991598 0.938738 -0.990876
|
||||
v 1.999439 0.930895 0.983035
|
||||
v -1.973747 -1.055132 0.999734
|
||||
v -1.980871 -1.050524 0.997642
|
||||
v -1.991981 -1.040156 0.988015
|
||||
v -1.995065 -1.035236 -0.981262
|
||||
v -1.984138 -1.047998 -0.995859
|
||||
v -1.984138 0.938737 -0.990877
|
||||
v -1.989751 0.933875 0.985639
|
||||
v -1.991981 0.930895 -0.983035
|
||||
v 0.003582 -1.057121 -1.000000
|
||||
v 0.003582 -1.057121 1.000000
|
||||
v 0.003581 0.942879 1.000000
|
||||
v 0.003581 0.942879 1.000000
|
||||
v 0.003582 0.942879 -1.000000
|
||||
v 1.981206 -1.055132 -0.999734
|
||||
v 1.981206 0.942614 -0.998010
|
||||
vt 0.839733 0.000000
|
||||
vt -0.537296 -0.000000
|
||||
vt 0.839733 0.013044
|
||||
vt 0.839733 0.986956
|
||||
vt 0.160267 0.986956
|
||||
vt 0.848833 0.000000
|
||||
vt 0.160370 0.000000
|
||||
vt 0.974265 0.996942
|
||||
vt -0.001961 0.996942
|
||||
vt -0.001961 -0.003057
|
||||
vt 1.537399 -0.000000
|
||||
vt 0.151167 0.000000
|
||||
vt 0.839733 -1.000000
|
||||
vt 0.947629 -0.000000
|
||||
vt 0.003341 -0.000000
|
||||
vt 0.003341 1.000000
|
||||
vt 0.839732 1.000000
|
||||
vt -0.537296 1.000000
|
||||
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.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.841028 0.012050
|
||||
vt 0.840427 0.011188
|
||||
vt 0.158972 0.012050
|
||||
vt 0.159573 0.011188
|
||||
vt 0.160267 0.013044
|
||||
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.156176 0.004502
|
||||
vt 0.155258 0.003186
|
||||
vt 0.154308 0.007180
|
||||
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.000995
|
||||
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.847388 0.995438
|
||||
vt 0.844742 0.996814
|
||||
vt 0.846610 0.994136
|
||||
vt 0.845692 0.992820
|
||||
vt 0.844653 0.991517
|
||||
vt 0.843824 0.995498
|
||||
vt 0.843513 0.990254
|
||||
vt 0.842915 0.994008
|
||||
vt 0.842296 0.989057
|
||||
vt 0.842034 0.992374
|
||||
vt 0.841028 0.987950
|
||||
vt 0.841199 0.990631
|
||||
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.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.152611 0.995438
|
||||
vt 0.153468 0.998821
|
||||
vt 0.151989 0.996701
|
||||
vt 0.151535 0.997898
|
||||
vt 0.841028 0.999867
|
||||
vt 0.841028 1.000132
|
||||
vt 0.841028 1.000994
|
||||
vt 0.159075 0.000995
|
||||
vt 0.157807 0.000529
|
||||
vt 0.157807 0.002102
|
||||
vt 0.153390 0.005864
|
||||
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.159075 0.999005
|
||||
vt 0.160370 1.000000
|
||||
vt 0.152633 0.999472
|
||||
vt 0.154349 0.997929
|
||||
vt 0.157085 0.994008
|
||||
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.846611 0.992820
|
||||
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.153493 0.007180
|
||||
vt 0.003734 0.000000
|
||||
vt 0.003734 1.000000
|
||||
vt -0.546397 0.013044
|
||||
vt 0.848833 0.013044
|
||||
vt 1.546500 0.013044
|
||||
vt 0.151270 0.013045
|
||||
vt 0.974264 -0.003058
|
||||
vt -0.546397 -0.013044
|
||||
vt 0.848834 -0.013044
|
||||
vt -0.537296 -1.000000
|
||||
vt 0.947629 1.000000
|
||||
vt 0.151167 1.000000
|
||||
vt 0.848465 0.002102
|
||||
vt 0.847367 0.999472
|
||||
vt 0.845651 0.997929
|
||||
vt 0.159075 0.000133
|
||||
vt 0.927508 1.000000
|
||||
vt 0.927508 0.000000
|
||||
usemtl None
|
||||
s off
|
||||
f 1/1 2/1 3/2
|
||||
f 4/3 5/4 6/5
|
||||
f 7/6 8/7 9/7
|
||||
f 10/8 11/9 12/10
|
||||
f 13/5 14/4 15/3
|
||||
f 12/7 16/11 17/11
|
||||
f 18/12 19/1 10/1
|
||||
f 20/13 17/1 16/1
|
||||
f 21/12 22/2 3/2
|
||||
f 2/14 3/15 23/16
|
||||
f 11/2 10/1 19/1
|
||||
f 24/1 9/2 7/12
|
||||
f 16/17 12/18 25/18
|
||||
f 26/19 1/1 2/1
|
||||
f 27/20 28/21 26/19
|
||||
f 29/22 30/23 28/24
|
||||
f 31/25 32/26 30/23
|
||||
f 33/27 34/28 32/26
|
||||
f 35/29 36/30 34/28
|
||||
f 37/31 38/32 36/30
|
||||
f 39/33 40/34 38/32
|
||||
f 41/35 42/36 40/34
|
||||
f 42/36 41/35 43/37
|
||||
f 4/3 44/38 43/37
|
||||
f 45/39 46/40 47/41
|
||||
f 48/42 49/43 46/40
|
||||
f 50/44 51/45 49/43
|
||||
f 52/46 53/47 51/45
|
||||
f 54/48 53/47 52/46
|
||||
f 55/49 54/48 56/50
|
||||
f 57/51 58/52 55/49
|
||||
f 59/53 60/54 58/52
|
||||
f 61/55 62/56 60/54
|
||||
f 62/20 61/21 63/19
|
||||
f 64/57 63/19 20/1
|
||||
f 65/58 19/17 10/17
|
||||
f 66/59 67/60 65/58
|
||||
f 68/61 69/62 67/63
|
||||
f 70/64 69/62 68/61
|
||||
f 71/65 72/66 70/64
|
||||
f 73/67 72/66 71/65
|
||||
f 74/68 73/67 75/69
|
||||
f 76/70 74/68 77/71
|
||||
f 78/72 76/70 79/73
|
||||
f 80/74 78/72 81/75
|
||||
f 5/4 80/74 82/76
|
||||
f 83/77 84/78 6/5
|
||||
f 85/79 86/80 84/78
|
||||
f 87/81 88/82 86/80
|
||||
f 89/83 88/82 87/81
|
||||
f 90/84 91/85 89/83
|
||||
f 92/86 93/87 91/85
|
||||
f 94/88 93/87 92/86
|
||||
f 95/89 96/90 94/88
|
||||
f 97/91 96/90 95/89
|
||||
f 97/60 98/59 99/92
|
||||
f 100/93 99/94 16/17
|
||||
f 101/95 8/7 9/7
|
||||
f 102/96 103/97 101/95
|
||||
f 104/54 103/56 102/55
|
||||
f 105/51 106/52 104/54
|
||||
f 107/98 108/49 106/52
|
||||
f 109/50 110/48 108/49
|
||||
f 111/47 110/48 109/50
|
||||
f 112/44 113/45 111/47
|
||||
f 114/42 115/43 113/45
|
||||
f 115/43 114/42 116/39
|
||||
f 117/41 118/40 116/39
|
||||
f 119/37 120/38 15/3
|
||||
f 121/36 120/38 119/37
|
||||
f 122/33 123/34 121/36
|
||||
f 124/31 125/32 123/34
|
||||
f 126/30 125/32 124/31
|
||||
f 127/28 126/30 128/29
|
||||
f 129/26 127/28 130/27
|
||||
f 131/22 132/23 129/26
|
||||
f 133/24 132/23 131/22
|
||||
f 133/99 134/100 135/101
|
||||
f 136/102 135/103 3/7
|
||||
f 137/104 25/105 12/105
|
||||
f 138/99 137/104 139/101
|
||||
f 140/90 138/91 141/106
|
||||
f 142/88 140/90 143/89
|
||||
f 144/87 142/88 145/107
|
||||
f 146/85 144/87 147/86
|
||||
f 148/108 149/83 146/85
|
||||
f 150/82 149/83 148/108
|
||||
f 151/80 150/82 152/81
|
||||
f 153/78 151/80 154/79
|
||||
f 13/5 153/78 155/77
|
||||
f 156/76 157/74 14/4
|
||||
f 158/75 159/72 157/74
|
||||
f 160/73 161/70 159/72
|
||||
f 162/68 161/70 160/73
|
||||
f 163/69 164/67 162/68
|
||||
f 165/65 166/66 164/67
|
||||
f 167/64 166/66 165/65
|
||||
f 168/61 169/62 167/64
|
||||
f 170/63 169/62 168/61
|
||||
f 170/99 171/100 172/101
|
||||
f 173/103 172/102 11/7
|
||||
f 47/41 46/40 44/38
|
||||
f 46/40 49/43 42/36
|
||||
f 49/43 51/45 40/34
|
||||
f 40/34 51/45 53/47
|
||||
f 53/47 54/48 36/30
|
||||
f 54/109 55/110 34/111
|
||||
f 55/110 58/112 32/113
|
||||
f 58/112 60/114 30/115
|
||||
f 30/115 60/114 62/20
|
||||
f 28/60 62/20 64/57
|
||||
f 24/1 1/17 64/57
|
||||
f 2/1 19/17 65/58
|
||||
f 65/58 67/60 27/20
|
||||
f 67/60 69/115 29/114
|
||||
f 69/115 70/113 31/112
|
||||
f 31/112 70/113 72/111
|
||||
f 33/110 72/111 73/116
|
||||
f 35/29 73/67 74/68
|
||||
f 37/31 74/68 76/70
|
||||
f 76/70 78/72 41/35
|
||||
f 78/72 80/74 43/37
|
||||
f 80/74 5/4 4/3
|
||||
f 6/5 84/78 45/39
|
||||
f 45/39 84/78 86/80
|
||||
f 86/80 88/82 50/44
|
||||
f 88/82 89/83 52/46
|
||||
f 89/83 91/85 56/50
|
||||
f 91/116 93/111 174/110
|
||||
f 93/111 94/113 57/112
|
||||
f 57/112 94/113 96/115
|
||||
f 96/115 97/60 61/20
|
||||
f 97/60 100/58 63/57
|
||||
f 63/57 100/58 17/17
|
||||
f 10/17 16/1 99/57
|
||||
f 99/57 98/20 66/60
|
||||
f 98/20 95/114 68/115
|
||||
f 95/114 175/112 176/113
|
||||
f 175/112 92/110 71/111
|
||||
f 71/111 92/110 90/109
|
||||
f 90/84 177/108 77/71
|
||||
f 177/108 87/81 79/73
|
||||
f 87/81 85/79 81/75
|
||||
f 85/79 83/77 82/76
|
||||
f 83/77 6/5 5/4
|
||||
f 15/3 120/38 118/40
|
||||
f 120/38 121/36 115/43
|
||||
f 121/36 123/34 113/45
|
||||
f 123/34 125/32 111/47
|
||||
f 125/32 126/30 110/48
|
||||
f 126/117 127/118 108/119
|
||||
f 127/118 129/120 106/121
|
||||
f 129/120 132/122 104/123
|
||||
f 104/123 132/122 133/99
|
||||
f 133/99 136/104 101/95
|
||||
f 136/104 22/105 8/7
|
||||
f 25/124 137/125 178/126
|
||||
f 137/104 138/99 102/97
|
||||
f 138/99 140/122 179/123
|
||||
f 179/123 140/122 142/120
|
||||
f 142/120 144/118 107/119
|
||||
f 144/118 146/117 109/127
|
||||
f 109/50 146/85 149/83
|
||||
f 180/46 149/83 150/82
|
||||
f 112/44 150/82 151/80
|
||||
f 151/80 153/78 116/39
|
||||
f 153/78 13/5 117/41
|
||||
f 15/3 14/4 157/74
|
||||
f 157/74 159/72 181/35
|
||||
f 181/35 159/72 161/70
|
||||
f 161/70 162/68 124/31
|
||||
f 162/68 164/67 128/29
|
||||
f 164/117 166/118 130/119
|
||||
f 166/118 167/120 182/121
|
||||
f 167/120 169/122 131/123
|
||||
f 131/123 169/122 170/99
|
||||
f 170/99 173/104 135/95
|
||||
f 173/104 23/105 3/7
|
||||
f 11/105 172/104 139/95
|
||||
f 172/104 171/99 141/97
|
||||
f 141/97 171/99 168/122
|
||||
f 143/123 168/122 183/120
|
||||
f 183/120 165/118 147/119
|
||||
f 165/118 163/117 184/127
|
||||
f 163/69 185/71 148/108
|
||||
f 185/71 160/73 152/81
|
||||
f 152/81 160/73 158/75
|
||||
f 158/75 156/76 155/77
|
||||
f 156/76 14/4 13/5
|
||||
f 8/128 22/129 3/129
|
||||
f 186/12 1/1 21/12
|
||||
f 3/2 15/130 22/2
|
||||
f 21/12 1/1 22/2
|
||||
f 1/1 4/131 2/1
|
||||
f 22/2 1/1 3/2
|
||||
f 47/41 4/3 6/5
|
||||
f 20/11 47/132 24/11
|
||||
f 8/7 117/133 9/7
|
||||
f 9/7 20/11 24/11
|
||||
f 24/11 187/6 7/6
|
||||
f 16/134 10/8 12/10
|
||||
f 117/41 13/5 15/3
|
||||
f 16/11 6/132 17/11
|
||||
f 17/11 188/6 189/6
|
||||
f 25/7 13/133 12/7
|
||||
f 17/11 189/6 25/7
|
||||
f 17/11 25/7 12/7
|
||||
f 11/2 14/135 23/2
|
||||
f 19/1 5/136 10/1
|
||||
f 10/1 11/2 23/2
|
||||
f 23/2 190/12 18/12
|
||||
f 12/2 25/2 9/137
|
||||
f 10/1 23/2 18/12
|
||||
f 20/13 16/1 9/137
|
||||
f 10/138 19/138 2/14
|
||||
f 16/1 12/2 9/137
|
||||
f 3/2 1/1 21/12
|
||||
f 19/1 18/12 190/12
|
||||
f 2/14 23/16 10/138
|
||||
f 190/12 23/2 11/2
|
||||
f 190/12 11/2 19/1
|
||||
f 25/18 189/139 188/139
|
||||
f 188/139 17/17 16/17
|
||||
f 191/57 26/19 2/1
|
||||
f 16/17 25/18 188/139
|
||||
f 191/57 27/20 26/19
|
||||
f 27/140 29/22 28/24
|
||||
f 29/22 31/25 30/23
|
||||
f 31/25 33/27 32/26
|
||||
f 33/27 35/29 34/28
|
||||
f 35/29 37/31 36/30
|
||||
f 37/31 39/33 38/32
|
||||
f 39/33 41/35 40/34
|
||||
f 44/38 42/36 43/37
|
||||
f 45/39 48/42 46/40
|
||||
f 48/42 50/44 49/43
|
||||
f 50/44 52/46 51/45
|
||||
f 56/50 54/48 52/46
|
||||
f 174/98 55/49 56/50
|
||||
f 174/98 57/51 55/49
|
||||
f 57/51 59/53 58/52
|
||||
f 59/53 61/55 60/54
|
||||
f 64/57 62/20 63/19
|
||||
f 24/1 64/57 20/1
|
||||
f 192/92 65/58 10/17
|
||||
f 192/92 66/59 65/58
|
||||
f 66/141 68/61 67/63
|
||||
f 176/142 70/64 68/61
|
||||
f 176/142 71/65 70/64
|
||||
f 75/69 73/67 71/65
|
||||
f 77/71 74/68 75/69
|
||||
f 79/73 76/70 77/71
|
||||
f 81/75 78/72 79/73
|
||||
f 82/76 80/74 81/75
|
||||
f 83/77 85/79 84/78
|
||||
f 85/79 87/81 86/80
|
||||
f 177/108 89/83 87/81
|
||||
f 177/108 90/84 89/83
|
||||
f 90/84 92/86 91/85
|
||||
f 175/107 94/88 92/86
|
||||
f 175/107 95/89 94/88
|
||||
f 98/106 97/91 95/89
|
||||
f 100/58 97/60 99/92
|
||||
f 17/17 100/93 16/17
|
||||
f 178/143 101/95 9/7
|
||||
f 178/143 102/96 101/95
|
||||
f 179/53 104/54 102/55
|
||||
f 179/53 105/51 104/54
|
||||
f 105/51 107/98 106/52
|
||||
f 107/98 109/50 108/49
|
||||
f 180/46 111/47 109/50
|
||||
f 180/46 112/44 111/47
|
||||
f 112/44 114/42 113/45
|
||||
f 118/40 115/43 116/39
|
||||
f 181/35 121/36 119/37
|
||||
f 181/35 122/33 121/36
|
||||
f 122/33 124/31 123/34
|
||||
f 128/29 126/30 124/31
|
||||
f 130/27 127/28 128/29
|
||||
f 182/25 129/26 130/27
|
||||
f 182/25 131/22 129/26
|
||||
f 134/140 133/24 131/22
|
||||
f 136/104 133/99 135/101
|
||||
f 22/7 136/102 3/7
|
||||
f 139/101 137/104 12/105
|
||||
f 141/100 138/99 139/101
|
||||
f 143/89 140/90 141/106
|
||||
f 145/107 142/88 143/89
|
||||
f 147/86 144/87 145/107
|
||||
f 184/84 146/85 147/86
|
||||
f 184/84 148/108 146/85
|
||||
f 152/81 150/82 148/108
|
||||
f 154/79 151/80 152/81
|
||||
f 155/77 153/78 154/79
|
||||
f 156/76 158/75 157/74
|
||||
f 158/75 160/73 159/72
|
||||
f 185/71 162/68 160/73
|
||||
f 185/71 163/69 162/68
|
||||
f 163/69 165/65 164/67
|
||||
f 183/142 167/64 165/65
|
||||
f 183/142 168/61 167/64
|
||||
f 171/141 170/63 168/61
|
||||
f 173/104 170/99 172/101
|
||||
f 23/7 173/103 11/7
|
||||
f 4/3 47/41 44/38
|
||||
f 44/38 46/40 42/36
|
||||
f 42/36 49/43 40/34
|
||||
f 38/32 40/34 53/47
|
||||
f 38/32 53/47 36/30
|
||||
f 36/116 54/109 34/111
|
||||
f 34/111 55/110 32/113
|
||||
f 32/113 58/112 30/115
|
||||
f 28/60 30/115 62/20
|
||||
f 26/58 28/60 64/57
|
||||
f 64/57 1/17 26/58
|
||||
f 191/57 2/1 65/58
|
||||
f 191/57 65/58 27/20
|
||||
f 27/20 67/60 29/114
|
||||
f 29/114 69/115 31/112
|
||||
f 33/110 31/112 72/111
|
||||
f 35/109 33/110 73/116
|
||||
f 37/31 35/29 74/68
|
||||
f 39/33 37/31 76/70
|
||||
f 39/33 76/70 41/35
|
||||
f 41/35 78/72 43/37
|
||||
f 43/37 80/74 4/3
|
||||
f 47/41 6/5 45/39
|
||||
f 48/42 45/39 86/80
|
||||
f 48/42 86/80 50/44
|
||||
f 50/44 88/82 52/46
|
||||
f 52/46 89/83 56/50
|
||||
f 56/109 91/116 174/110
|
||||
f 174/110 93/111 57/112
|
||||
f 59/114 57/112 96/115
|
||||
f 59/114 96/115 61/20
|
||||
f 61/20 97/60 63/57
|
||||
f 20/1 63/57 17/17
|
||||
f 192/58 10/17 99/57
|
||||
f 192/58 99/57 66/60
|
||||
f 66/60 98/20 68/115
|
||||
f 68/115 95/114 176/113
|
||||
f 176/113 175/112 71/111
|
||||
f 75/116 71/111 90/109
|
||||
f 75/69 90/84 77/71
|
||||
f 77/71 177/108 79/73
|
||||
f 79/73 87/81 81/75
|
||||
f 81/75 85/79 82/76
|
||||
f 82/76 83/77 5/4
|
||||
f 117/41 15/3 118/40
|
||||
f 118/40 120/38 115/43
|
||||
f 115/43 121/36 113/45
|
||||
f 113/45 123/34 111/47
|
||||
f 111/47 125/32 110/48
|
||||
f 110/127 126/117 108/119
|
||||
f 108/119 127/118 106/121
|
||||
f 106/121 129/120 104/123
|
||||
f 103/97 104/123 133/99
|
||||
f 103/97 133/99 101/95
|
||||
f 101/95 136/104 8/7
|
||||
f 9/105 25/124 178/126
|
||||
f 178/95 137/104 102/97
|
||||
f 102/97 138/99 179/123
|
||||
f 105/121 179/123 142/120
|
||||
f 105/121 142/120 107/119
|
||||
f 107/119 144/118 109/127
|
||||
f 180/46 109/50 149/83
|
||||
f 112/44 180/46 150/82
|
||||
f 114/42 112/44 151/80
|
||||
f 114/42 151/80 116/39
|
||||
f 116/39 153/78 117/41
|
||||
f 119/37 15/3 157/74
|
||||
f 119/37 157/74 181/35
|
||||
f 122/33 181/35 161/70
|
||||
f 122/33 161/70 124/31
|
||||
f 124/31 162/68 128/29
|
||||
f 128/127 164/117 130/119
|
||||
f 130/119 166/118 182/121
|
||||
f 182/121 167/120 131/123
|
||||
f 134/97 131/123 170/99
|
||||
f 134/97 170/99 135/95
|
||||
f 135/95 173/104 3/7
|
||||
f 12/7 11/105 139/95
|
||||
f 139/95 172/104 141/97
|
||||
f 143/123 141/97 168/122
|
||||
f 145/121 143/123 183/120
|
||||
f 145/121 183/120 147/119
|
||||
f 147/119 165/118 184/127
|
||||
f 184/84 163/69 148/108
|
||||
f 148/108 185/71 152/81
|
||||
f 154/79 152/81 158/75
|
||||
f 154/79 158/75 155/77
|
||||
f 155/77 156/76 13/5
|
||||
f 1/144 24/145 20/145
|
||||
f 20/145 9/128 8/128
|
||||
f 3/129 1/144 20/145
|
||||
f 20/145 8/128 3/129
|
1255
Levels/Geometry/skydome.obj
Normal file
@ -1,4 +1,4 @@
|
||||
# Blender v2.73 (sub 0) OBJ File: 'switch_inner.blend'
|
||||
# Blender v2.72 (sub 0) OBJ File: 'switch_inner.blend'
|
||||
# www.blender.org
|
||||
o switch_Cube
|
||||
v 0.952094 -0.488588 -1.000000
|
358
Levels/Geometry/torch.obj
Normal file
@ -0,0 +1,358 @@
|
||||
# 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.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.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.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.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.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.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.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.514387 0.175443
|
||||
vt 0.533044 0.130402
|
||||
vt 0.990347 0.319823
|
||||
vt 0.318618 0.102002
|
||||
vt 0.173159 0.324353
|
||||
vt 0.156399 0.309855
|
||||
vt 0.704754 0.679615
|
||||
vt 0.545660 0.695284
|
||||
vt 0.689084 0.520522
|
||||
vt 0.223285 0.396777
|
||||
vt 0.240940 0.483066
|
||||
vt 0.230950 0.548561
|
||||
vt 0.201891 0.608099
|
||||
vt 0.156403 0.656266
|
||||
vt 0.011637 0.263556
|
||||
vt 0.776743 0.495124
|
||||
vt 0.727992 0.495124
|
||||
vt 0.594601 0.439872
|
||||
vt 0.680177 0.009653
|
||||
vt 0.727992 0.000142
|
||||
vt 0.776744 0.000142
|
||||
vt 0.533043 0.364864
|
||||
vt 0.514387 0.319824
|
||||
vt 0.504876 0.272009
|
||||
vt 0.504876 0.223258
|
||||
vt 0.560128 0.405399
|
||||
vt 0.560129 0.089866
|
||||
vt 0.594602 0.055394
|
||||
vt 0.869598 0.466956
|
||||
vt 0.910133 0.439871
|
||||
vt 0.971691 0.364863
|
||||
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.944606 0.405398
|
||||
vt 0.824557 0.485613
|
||||
vt 0.680177 0.485613
|
||||
vt 0.635136 0.466957
|
||||
vt 0.635137 0.028309
|
||||
vt 0.529991 0.536192
|
||||
vt 0.545660 0.520522
|
||||
vt 0.564085 0.508211
|
||||
vt 0.584558 0.499731
|
||||
vt 0.606292 0.495408
|
||||
vt 0.650186 0.499730
|
||||
vt 0.670659 0.508211
|
||||
vt 0.628452 0.495407
|
||||
vt 0.704753 0.536191
|
||||
vt 0.717065 0.554616
|
||||
vt 0.729868 0.596823
|
||||
vt 0.725545 0.575089
|
||||
vt 0.725545 0.640717
|
||||
vt 0.729868 0.618983
|
||||
vt 0.717065 0.661190
|
||||
vt 0.689084 0.695284
|
||||
vt 0.670659 0.707596
|
||||
vt 0.628452 0.720399
|
||||
vt 0.606292 0.720399
|
||||
vt 0.584558 0.716076
|
||||
vt 0.564085 0.707595
|
||||
vt 0.529990 0.679615
|
||||
vt 0.517679 0.661190
|
||||
vt 0.509199 0.640717
|
||||
vt 0.504876 0.596824
|
||||
vt 0.650185 0.716076
|
||||
vt 0.509199 0.575090
|
||||
vt 0.517679 0.554617
|
||||
vt 0.504876 0.618983
|
||||
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
|
||||
vn -0.955700 -0.051900 -0.289900
|
||||
vn 0.000000 -1.000000 -0.000100
|
||||
s off
|
||||
f 2/1/1 4/2/1 3/3/1
|
||||
f 4/2/2 6/4/2 5/5/2
|
||||
f 6/4/3 8/6/3 7/7/3
|
||||
f 7/7/4 8/6/4 10/8/4
|
||||
f 10/8/5 12/9/5 11/10/5
|
||||
f 12/9/6 14/11/6 13/12/6
|
||||
f 14/11/7 16/13/7 15/14/7
|
||||
f 15/14/8 16/13/8 18/15/8
|
||||
f 18/15/9 20/16/9 19/17/9
|
||||
f 19/17/10 20/16/10 22/18/10
|
||||
f 21/19/11 22/18/11 24/20/11
|
||||
f 24/20/12 26/21/12 25/22/12
|
||||
f 26/21/13 28/23/13 27/24/13
|
||||
f 27/24/14 28/23/14 30/25/14
|
||||
f 30/25/15 32/26/15 31/27/15
|
||||
f 32/26/16 34/28/16 33/29/16
|
||||
f 33/29/17 34/28/17 36/30/17
|
||||
f 36/30/18 38/31/18 37/32/18
|
||||
f 38/31/19 40/33/19 39/34/19
|
||||
f 40/33/20 42/35/20 41/36/20
|
||||
f 42/35/21 44/37/21 43/38/21
|
||||
f 44/37/22 46/39/22 45/40/22
|
||||
f 46/39/23 48/41/23 47/42/23
|
||||
f 48/41/24 50/43/24 49/44/24
|
||||
f 50/45/25 52/46/25 51/47/25
|
||||
f 52/46/26 54/48/26 53/49/26
|
||||
f 54/48/27 56/50/27 55/51/27
|
||||
f 56/50/28 58/52/28 57/53/28
|
||||
f 58/52/29 60/54/29 59/55/29
|
||||
f 60/54/30 62/56/30 61/57/30
|
||||
f 54/58/31 52/59/31 22/60/31
|
||||
f 64/61/32 2/1/32 1/62/32
|
||||
f 62/56/33 64/61/33 63/63/33
|
||||
f 31/64/34 47/65/34 15/66/34
|
||||
f 1/62/1 2/1/1 3/3/1
|
||||
f 3/3/2 4/2/2 5/5/2
|
||||
f 5/5/3 6/4/3 7/7/3
|
||||
f 9/67/4 7/7/4 10/8/4
|
||||
f 9/67/5 10/8/5 11/10/5
|
||||
f 11/10/6 12/9/6 13/12/6
|
||||
f 13/12/7 14/11/7 15/14/7
|
||||
f 17/68/8 15/14/8 18/15/8
|
||||
f 17/68/9 18/15/9 19/17/9
|
||||
f 21/19/10 19/17/10 22/18/10
|
||||
f 23/69/11 21/19/11 24/20/11
|
||||
f 23/69/12 24/20/12 25/22/12
|
||||
f 25/22/13 26/21/13 27/24/13
|
||||
f 29/70/14 27/24/14 30/25/14
|
||||
f 29/70/15 30/25/15 31/27/15
|
||||
f 31/27/16 32/26/16 33/29/16
|
||||
f 35/71/17 33/29/17 36/30/17
|
||||
f 35/71/18 36/30/18 37/32/18
|
||||
f 37/32/19 38/31/19 39/34/19
|
||||
f 39/34/20 40/33/20 41/36/20
|
||||
f 41/36/21 42/35/21 43/38/21
|
||||
f 43/38/22 44/37/22 45/40/22
|
||||
f 45/40/23 46/39/23 47/42/23
|
||||
f 47/42/24 48/41/24 49/44/24
|
||||
f 49/72/25 50/45/25 51/47/25
|
||||
f 51/47/35 52/46/35 53/49/35
|
||||
f 53/49/27 54/48/27 55/51/27
|
||||
f 55/51/28 56/50/28 57/53/28
|
||||
f 57/53/29 58/52/29 59/55/29
|
||||
f 59/55/30 60/54/30 61/57/30
|
||||
f 10/73/31 8/74/31 2/75/31
|
||||
f 44/76/31 42/77/31 40/78/31
|
||||
f 62/79/31 60/80/31 58/81/31
|
||||
f 56/82/31 22/60/31 64/83/31
|
||||
f 50/84/31 48/85/31 52/59/31
|
||||
f 2/75/31 14/86/31 10/73/31
|
||||
f 16/87/31 22/60/31 20/88/31
|
||||
f 38/89/31 44/76/31 40/78/31
|
||||
f 38/89/31 36/90/31 34/91/31
|
||||
f 34/91/31 32/92/31 30/93/31
|
||||
f 30/93/31 28/94/31 26/95/31
|
||||
f 26/95/31 24/96/31 22/60/31
|
||||
f 18/97/31 16/87/31 20/88/31
|
||||
f 14/86/31 22/60/31 16/87/31
|
||||
f 14/86/31 12/98/31 10/73/31
|
||||
f 6/99/31 4/100/31 8/74/31
|
||||
f 22/60/31 38/89/31 34/91/31
|
||||
f 56/82/31 54/58/31 22/60/31
|
||||
f 46/101/31 44/76/31 48/85/31
|
||||
f 44/76/31 38/89/31 48/85/31
|
||||
f 30/93/31 22/60/31 34/91/31
|
||||
f 30/93/31 26/95/31 22/60/31
|
||||
f 52/59/31 48/85/31 38/89/31
|
||||
f 56/82/31 64/83/31 58/81/31
|
||||
f 64/83/31 62/79/31 58/81/31
|
||||
f 61/57/33 62/56/33 63/63/33
|
||||
f 52/59/31 38/89/31 22/60/31
|
||||
f 8/74/31 4/100/31 2/75/31
|
||||
f 63/63/32 64/61/32 1/62/32
|
||||
f 2/75/31 22/60/31 14/86/31
|
||||
f 22/60/31 2/75/31 64/83/31
|
||||
f 63/102/34 1/103/34 3/104/34
|
||||
f 3/104/34 5/105/34 7/106/34
|
||||
f 11/107/34 13/108/34 9/109/34
|
||||
f 15/66/34 7/106/34 13/108/34
|
||||
f 15/66/34 17/110/34 19/111/34
|
||||
f 23/112/34 15/66/34 21/113/34
|
||||
f 27/114/34 31/64/34 25/115/34
|
||||
f 27/114/36 29/116/36 31/64/36
|
||||
f 31/64/34 33/117/34 35/118/34
|
||||
f 39/119/34 41/120/34 43/121/34
|
||||
f 43/121/34 45/122/34 47/65/34
|
||||
f 47/65/34 49/123/34 51/124/34
|
||||
f 53/125/34 57/126/34 63/102/34
|
||||
f 35/118/34 37/127/34 31/64/34
|
||||
f 59/128/34 61/129/34 63/102/34
|
||||
f 63/102/34 3/104/34 7/106/34
|
||||
f 13/108/34 7/106/34 9/109/34
|
||||
f 31/64/34 23/112/34 25/115/34
|
||||
f 37/127/34 39/119/34 43/121/34
|
||||
f 37/127/34 47/65/34 31/64/34
|
||||
f 47/65/34 37/127/34 43/121/34
|
||||
f 53/125/34 55/130/34 57/126/34
|
||||
f 15/66/34 19/111/34 21/113/34
|
||||
f 63/102/34 7/106/34 15/66/34
|
||||
f 15/66/34 23/112/34 31/64/34
|
||||
f 47/65/34 51/124/34 53/125/34
|
||||
f 53/125/34 63/102/34 15/66/34
|
||||
f 57/126/34 59/128/34 63/102/34
|
||||
f 47/65/34 53/125/34 15/66/34
|
BIN
Levels/ObjectSetups/BackupLevel0.png
Normal file
After Width: | Height: | Size: 158 B |
BIN
Levels/ObjectSetups/BackupLevel1.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
Levels/ObjectSetups/BackupLevel1.xcf
Normal file
0
Levels/ObjectSetups/BackupLevel1.xml
Normal file
323
Levels/ObjectSetups/Compositions.xml
Normal file
@ -0,0 +1,323 @@
|
||||
<!-- Marble -->
|
||||
<composition>
|
||||
<typeID>20</typeID>
|
||||
<ignoreHeightmap>false</ignoreHeightmap>
|
||||
<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>8.0</mass>
|
||||
</object>
|
||||
</composition>
|
||||
|
||||
<!-- Block -->
|
||||
<composition>
|
||||
<typeID>40</typeID>
|
||||
<ignoreHeightmap>false</ignoreHeightmap>
|
||||
<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>25.0</mass>
|
||||
</object>
|
||||
</composition>
|
||||
|
||||
<!-- Column -->
|
||||
<composition>
|
||||
<typeID>60</typeID>
|
||||
<ignoreHeightmap>false</ignoreHeightmap>
|
||||
<object>
|
||||
<modelPath>column.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>
|
||||
</composition>
|
||||
|
||||
<!-- Torch with Lightsource -->
|
||||
<composition>
|
||||
<typeID>80</typeID>
|
||||
<ignoreHeightmap>false</ignoreHeightmap>
|
||||
<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>1.0</gColour>
|
||||
<bColour>1.0</bColour>
|
||||
<intensity>4.0</intensity>
|
||||
</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>
|
||||
<object>
|
||||
<modelPath>column.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>
|
||||
<object>
|
||||
<modelPath>column.obj</modelPath>
|
||||
<xOffset>2.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>
|
||||
<object>
|
||||
<modelPath>block.obj</modelPath>
|
||||
<xOffset>1.0</xOffset>
|
||||
<yOffset>3.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>
|
||||
|
||||
<!-- Switch -->
|
||||
<composition>
|
||||
<typeID>120</typeID>
|
||||
<ignoreHeightmap>false</ignoreHeightmap>
|
||||
<object>
|
||||
<modelPath>switch_inner.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>1.0</mass>
|
||||
</object>
|
||||
<object>
|
||||
<modelPath>switch_outer.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>
|
||||
</composition>
|
||||
|
||||
<!-- Bridge Block -->
|
||||
<composition>
|
||||
<typeID>140</typeID>
|
||||
<ignoreHeightmap>true</ignoreHeightmap>
|
||||
<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>
|
||||
<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>
|
||||
<object>
|
||||
<modelPath>SimpleWall.obj</modelPath>
|
||||
<xOffset>0.0</xOffset>
|
||||
<yOffset>40.0</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<scale>1.5</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.5</radius>
|
||||
<dampningL>0.15 </dampningL>
|
||||
<dampningA>0.7</dampningA>
|
||||
</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>6</width>
|
||||
<height>3</height>
|
||||
<length>3</length>
|
||||
<dampningL>0.8</dampningL>
|
||||
<dampningA>0.9</dampningA>
|
||||
</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>Box</physicType>
|
||||
<width>0.5</width>
|
||||
<height>0.5</height>
|
||||
<length>0.5</length>
|
||||
<dampningL>1.0</dampningL>
|
||||
<dampningA>1.0</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>
|
BIN
Levels/ObjectSetups/Level0.png
Normal file
After Width: | Height: | Size: 104 B |
BIN
Levels/ObjectSetups/Level0.xcf
Normal file
67
Levels/ObjectSetups/Level0.xml
Normal file
@ -0,0 +1,67 @@
|
||||
<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>
|
BIN
Levels/ObjectSetups/Level1.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
Levels/ObjectSetups/Level1.xcf
Normal file
Before Width: | Height: | Size: 9.5 MiB After Width: | Height: | Size: 9.5 MiB |
Before Width: | Height: | Size: 3.5 MiB After Width: | Height: | Size: 3.5 MiB |
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 721 KiB After Width: | Height: | Size: 721 KiB |
BIN
Levels/Textures/columnTexture_small.png
Normal file
After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 3.1 MiB |
BIN
Levels/Textures/seamlessTerrain.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
Levels/Textures/skydome.png
Normal file
After Width: | Height: | Size: 650 KiB |
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 2.8 MiB |
BIN
Levels/Textures/torchTexture.png
Normal file
After Width: | Height: | Size: 100 KiB |
BIN
Levels/heightmapLvl0.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
Levels/heightmapLvl02.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
Levels/heightmapLvl1.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
Levels/heightmapLvl1.xcf
Normal file
16
Levels/scripts/Template.lua
Normal file
@ -0,0 +1,16 @@
|
||||
if(triggeredSCRIPTNAME == nil) then
|
||||
triggeredSCRIPTNAME = false
|
||||
end
|
||||
function trigger(objectToChange)
|
||||
if(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.
|
||||
|
||||
triggeredSCRIPTNAME = true
|
||||
print("SCRIPTNAME")
|
||||
end
|
||||
end
|
14
Levels/scripts/deleteObject.lua
Normal file
@ -0,0 +1,14 @@
|
||||
if(triggeredDeleteObject == nil) then
|
||||
triggeredDeleteObject = false
|
||||
end
|
||||
function trigger(objectToChange)
|
||||
if(triggeredDeleteObject == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
level:deleteObject(objectToChange)
|
||||
triggeredDeleteObject = true
|
||||
print("deleteObject")
|
||||
end
|
||||
end
|
16
Levels/scripts/deleteRandomObject.lua
Normal file
@ -0,0 +1,16 @@
|
||||
if(triggeredDeleteRandomObject == nil) then
|
||||
triggeredDeleteRandomObject = false
|
||||
end
|
||||
function trigger(objectToChange)
|
||||
if(triggeredDeleteRandomObject == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
a = level:getObjectCount()
|
||||
rand = math.random(0, a - 1)
|
||||
level:deleteObject(rand)
|
||||
triggeredDeleteRandomObject = true
|
||||
print("deleteRandomObject")
|
||||
end
|
||||
end
|
28
Levels/scripts/openDoor1.lua
Normal file
@ -0,0 +1,28 @@
|
||||
if(triggeredOpenDoor1 == nil) then
|
||||
triggeredOpenDoor1 = false
|
||||
end
|
||||
function trigger(objectToChange)
|
||||
if(triggeredOpenDoor1 == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(not openDoorCounter) then
|
||||
openDoorCounter = 0
|
||||
end
|
||||
openDoorCounter = openDoorCounter + 1
|
||||
if (openDoorCounter == 3) then
|
||||
local strength = 1
|
||||
local xPos = 0
|
||||
local yPos = 0
|
||||
local zPos = 0
|
||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||
print("Opening the door")
|
||||
end
|
||||
triggeredOpenDoor1undo = false
|
||||
|
||||
triggeredOpenDoor1 = true
|
||||
print("openDoor1")
|
||||
end
|
||||
end
|
19
Levels/scripts/openDoor1undo.lua
Normal file
@ -0,0 +1,19 @@
|
||||
if(triggeredOpenDoor1undo == nil) then
|
||||
triggeredOpenDoor1undo = false
|
||||
end
|
||||
function trigger(objectToChange)
|
||||
if(triggeredOpenDoor1undo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(triggeredOpenDoor1) then
|
||||
openDoorCounter = openDoorCounter - 1
|
||||
triggeredOpenDoor1 = false
|
||||
end
|
||||
|
||||
triggeredOpenDoor1undo = true
|
||||
print("openDoor1undo")
|
||||
end
|
||||
end
|
28
Levels/scripts/openDoor2.lua
Normal file
@ -0,0 +1,28 @@
|
||||
if(triggeredOpenDoor2 == nil) then
|
||||
triggeredOpenDoor2 = false
|
||||
end
|
||||
function trigger(objectToChange)
|
||||
if(triggeredOpenDoor2 == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(not openDoorCounter) then
|
||||
openDoorCounter = 0
|
||||
end
|
||||
openDoorCounter = openDoorCounter + 1
|
||||
if (openDoorCounter == 3) then
|
||||
local strength = 1
|
||||
local xPos = 0
|
||||
local yPos = 0
|
||||
local zPos = 0
|
||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||
print("Opening the door")
|
||||
end
|
||||
triggeredOpenDoor2undo = false
|
||||
|
||||
triggeredOpenDoor2 = true
|
||||
print("openDoor2")
|
||||
end
|
||||
end
|
19
Levels/scripts/openDoor2undo.lua
Normal file
@ -0,0 +1,19 @@
|
||||
if(triggeredOpenDoor2undo == nil) then
|
||||
triggeredOpenDoor2undo = false
|
||||
end
|
||||
function trigger(objectToChange)
|
||||
if(triggeredOpenDoor2undo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(triggeredOpenDoor2) then
|
||||
openDoorCounter = openDoorCounter - 1
|
||||
triggeredOpenDoor2 = false
|
||||
end
|
||||
|
||||
triggeredOpenDoor2undo = true
|
||||
print("openDoor2undo")
|
||||
end
|
||||
end
|
28
Levels/scripts/openDoor3.lua
Normal file
@ -0,0 +1,28 @@
|
||||
if(triggeredOpenDoor3 == nil) then
|
||||
triggeredOpenDoor3 = false
|
||||
end
|
||||
function trigger(objectToChange)
|
||||
if(triggeredOpenDoor3 == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(not openDoorCounter) then
|
||||
openDoorCounter = 0
|
||||
end
|
||||
openDoorCounter = openDoorCounter + 1
|
||||
if (openDoorCounter == 3) then
|
||||
local strength = 1
|
||||
local xPos = 0
|
||||
local yPos = 0
|
||||
local zPos = 0
|
||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||
print("Opening the door")
|
||||
end
|
||||
triggeredOpenDoor3undo = false
|
||||
|
||||
triggeredOpenDoor3 = true
|
||||
print("openDoor3")
|
||||
end
|
||||
end
|
19
Levels/scripts/openDoor3undo.lua
Normal file
@ -0,0 +1,19 @@
|
||||
if(triggeredOpenDoor3undo == nil) then
|
||||
triggeredOpenDoor3undo = false
|
||||
end
|
||||
function trigger(objectToChange)
|
||||
if(triggeredOpenDoor3undo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(triggeredOpenDoor3) then
|
||||
openDoorCounter = openDoorCounter - 1
|
||||
triggeredOpenDoor3 = false
|
||||
end
|
||||
|
||||
triggeredOpenDoor3undo = true
|
||||
print("openDoor3undo")
|
||||
end
|
||||
end
|
22
Readme.md
@ -1,24 +1,6 @@
|
||||
![Saxum Logo](https://github.com/Faerbit/Saxum/blob/master/logo/saxum_logo_small.png)
|
||||
#Marble Race Game
|
||||
|
||||
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.
|
||||
This will be a Marble Race Game developed for the Softwarepraktikum at the RWTH Aachen.
|
||||
|
||||
##Building
|
||||
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.
|
||||
|
11
Shader/depth.fsh
Normal file
@ -0,0 +1,11 @@
|
||||
#version 150
|
||||
|
||||
in vec4 fragPosition;
|
||||
|
||||
out float fragmentDepth;
|
||||
|
||||
uniform vec3 cameraPosition;
|
||||
|
||||
void main() {
|
||||
fragmentDepth = length(vec3(fragPosition) - cameraPosition);
|
||||
}
|
@ -4,12 +4,12 @@ in vec3 aPosition;
|
||||
in vec3 aNormal;
|
||||
in vec3 aTexcoord;
|
||||
|
||||
uniform mat4 modelViewProjectionMatrix;
|
||||
uniform mat4 modelViewMatrix;
|
||||
|
||||
out vec4 fragPosition;
|
||||
|
||||
uniform mat4 modelMatrix;
|
||||
uniform mat4 modelViewProjectionMatrix;
|
||||
|
||||
void main() {
|
||||
fragPosition = modelViewMatrix * vec4(aPosition, 1.0);
|
||||
fragPosition = modelMatrix * vec4(aPosition, 1.0);
|
||||
gl_Position = modelViewProjectionMatrix * vec4(aPosition, 1.0);
|
||||
}
|
130
Shader/phong.fsh
Normal file
@ -0,0 +1,130 @@
|
||||
#version 150
|
||||
|
||||
in vec3 vNormal;
|
||||
in vec2 vTexCoord;
|
||||
in vec4 fragPosition;
|
||||
in vec4 shadowCoord;
|
||||
|
||||
out vec4 oColor;
|
||||
|
||||
uniform sampler2D uTexture;
|
||||
uniform sampler2DShadow shadowMap;
|
||||
uniform samplerCubeShadow shadowMap_cube;
|
||||
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 farPlane;
|
||||
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 sampleDirectionalShadow(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)));
|
||||
}
|
||||
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)));
|
||||
}
|
||||
}
|
||||
return visibility;
|
||||
}
|
||||
|
||||
float samplePointShadow(samplerCubeShadow shadowMap, vec3 lightDirection) {
|
||||
float bias = 0.005;
|
||||
float nearPlane = 0.1;
|
||||
float linValue = (2.0*nearPlane) / (farPlane + nearPlane - (length(lightDirection)-nearPlane)/(farPlane-nearPlane) * (farPlane - nearPlane));
|
||||
return texture(shadowMap, vec4(lightDirection.xyz , 0.5/*length(lightDirection)-bias*/));
|
||||
}
|
||||
|
||||
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
|
||||
float visibility = 1.0;
|
||||
for(int i = 0; i<lightCount; i++) {
|
||||
vec3 lightDirection = vec3(fragPosition) - lightSources[i];
|
||||
float distance = length(lightDirection);
|
||||
// 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];
|
||||
visibility = samplePointShadow(shadowMap_cube, lightDirection);
|
||||
}
|
||||
}
|
||||
|
||||
// shadows
|
||||
visibility *= sampleDirectionalShadow(shadowMap, shadowCoord);
|
||||
|
||||
specularColor *= visibility;
|
||||
diffuseColor *= visibility;
|
||||
|
||||
vec3 finalColor = specularColor + diffuseColor + ambientColor;
|
||||
float distanceCameraCenter = distance(cameraCenter, vec3(fragPosition));
|
||||
float fogFactor = clamp((1.0 - ((farPlane - 35.0) -distanceCameraCenter)/30.0), 0.0, 1.0);
|
||||
fogFactor *= clamp((1.0-((fragPosition.y-40.0)/30.0)), 0.0, 1.0);
|
||||
|
||||
vec4 texture = texture(uTexture, vTexCoord).rgba;
|
||||
oColor = vec4(finalColor, 1.0f)*texture;
|
||||
oColor = mix(oColor, fogColor, fogFactor);
|
||||
}
|
@ -11,21 +11,13 @@ in vec2 aTexCoord;
|
||||
out vec3 vNormal;
|
||||
out vec2 vTexCoord;
|
||||
out vec4 fragPosition;
|
||||
out vec4 shadowCoord0;
|
||||
out vec4 shadowCoord1;
|
||||
out vec4 shadowCoord2;
|
||||
out vec4 shadowCoord3;
|
||||
out vec4 shadowCoord4;
|
||||
out vec4 shadowCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
fragPosition = modelMatrix * vec4(aPosition, 1.0);
|
||||
vNormal = inverse(transpose(mat3(modelMatrix))) * aNormal;
|
||||
vTexCoord = aTexCoord;
|
||||
shadowCoord0 = shadowMVPs[0] * vec4(aPosition, 1.0);
|
||||
shadowCoord1 = shadowMVPs[1] * vec4(aPosition, 1.0);
|
||||
shadowCoord2 = shadowMVPs[2] * vec4(aPosition, 1.0);
|
||||
shadowCoord3 = shadowMVPs[3] * vec4(aPosition, 1.0);
|
||||
shadowCoord4 = shadowMVPs[4] * vec4(aPosition, 1.0);
|
||||
shadowCoord = shadowMVPs[0] * vec4(aPosition, 1.0);
|
||||
gl_Position = modelViewProjectionMatrix * vec4(aPosition, 1.0);
|
||||
}
|
73
application.cc
Normal file
@ -0,0 +1,73 @@
|
||||
#include "application.hh"
|
||||
|
||||
|
||||
Application::Application() {
|
||||
graphics = Graphics(glm::uvec2(1024, 786), 0.1f, 150.0f);
|
||||
}
|
||||
|
||||
void Application::init()
|
||||
{
|
||||
// init random generator
|
||||
std::srand(std::time(NULL));
|
||||
// choose Level TODO: Choose this in a menu
|
||||
this->level = Level("1");
|
||||
// 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;
|
||||
}
|
29
application.hh
Normal file
@ -0,0 +1,29 @@
|
||||
#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
|
18
build.sh
@ -5,7 +5,6 @@ then
|
||||
rm -rf build
|
||||
rm -rf binaries
|
||||
rm -rf extern/bullet/build
|
||||
cd extern/lua; make clean; cd ../..
|
||||
exit
|
||||
fi
|
||||
|
||||
@ -16,13 +15,6 @@ 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'"
|
||||
fi
|
||||
|
||||
buildType=$2
|
||||
|
||||
if [[ $2 == "" ]]
|
||||
then
|
||||
buildType="Debug"
|
||||
fi
|
||||
|
||||
currentDir=$(pwd)
|
||||
threads=$(($(nproc)+1))
|
||||
|
||||
@ -31,7 +23,7 @@ threads=$(($(nproc)+1))
|
||||
cd extern/lua/
|
||||
if [[ $1 == "windows" ]]
|
||||
then
|
||||
make CC=x86_64-w64-mingw32-gcc mingw
|
||||
make mingw
|
||||
else
|
||||
make linux
|
||||
fi
|
||||
@ -45,10 +37,10 @@ mkdir -p build
|
||||
cd build
|
||||
if hash ninja 2>/dev/null
|
||||
then
|
||||
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
|
||||
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -GNinja ..
|
||||
ninja
|
||||
else
|
||||
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
|
||||
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 ..
|
||||
make -j$threads
|
||||
fi
|
||||
|
||||
@ -60,9 +52,9 @@ mkdir -p build
|
||||
cd build
|
||||
if hash ninja 2>/dev/null
|
||||
then
|
||||
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
|
||||
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -GNinja ..
|
||||
ninja
|
||||
else
|
||||
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
|
||||
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 ..
|
||||
make -j$threads
|
||||
fi
|
||||
|
@ -3,11 +3,11 @@
|
||||
Camera::Camera(glm::vec2 rotation, float distance) {
|
||||
this->rotation = rotation;
|
||||
this->distance = distance;
|
||||
this->setIsPhysicsCamera(true);
|
||||
}
|
||||
|
||||
Camera::Camera() {
|
||||
Camera(glm::vec2(0.0f, 0.0f), 5.0f);
|
||||
rotation = glm::vec2(0.0f, 0.0f);
|
||||
distance = 1.0f;
|
||||
}
|
||||
|
||||
Camera::~Camera() {
|
||||
@ -31,16 +31,8 @@ void Camera::setRotation(glm::vec2 rotation) {
|
||||
updatePosition();
|
||||
}
|
||||
|
||||
|
||||
bool Camera::getIsPhysicsCamera()
|
||||
{
|
||||
return usePhysicsCamera;
|
||||
}
|
||||
void Camera::setIsPhysicsCamera(bool val)
|
||||
{
|
||||
usePhysicsCamera = val;
|
||||
}
|
||||
void Camera::updateRotation(glm::vec2 rotation) {
|
||||
this->rotation += rotation;
|
||||
if((this->rotation.x + rotation.x) >= 1.57f) {
|
||||
this->rotation.x = 1.57;
|
||||
this->rotation.y += rotation.y;
|
||||
@ -59,8 +51,8 @@ void Camera:: updateDistance(float distance) {
|
||||
if (this->distance + distance <= 2.5f) {
|
||||
this->distance = 2.5f;
|
||||
}
|
||||
else if (this->distance + distance >= 15.0f) {
|
||||
this->distance = 15.f;
|
||||
else if (this->distance + distance >= 30.0f) {
|
||||
this->distance = 30.f;
|
||||
}
|
||||
else {
|
||||
this->distance += distance;
|
||||
@ -68,27 +60,6 @@ void Camera:: updateDistance(float distance) {
|
||||
updatePosition();
|
||||
}
|
||||
|
||||
void Camera::setPosition(glm::vec3 pos)
|
||||
{
|
||||
position = pos;
|
||||
}
|
||||
|
||||
glm::vec3 Camera::getPosition()
|
||||
{
|
||||
return position;
|
||||
}
|
||||
|
||||
void Camera::setDirection(glm::vec3 dir)
|
||||
{
|
||||
direction = dir;
|
||||
}
|
||||
|
||||
glm::vec3 Camera::getDirection()
|
||||
{
|
||||
return direction;
|
||||
}
|
||||
|
||||
|
||||
void Camera::updatePosition() {
|
||||
glm::vec4 cameraVector = glm::vec4(0.0f, 0.0f, distance, 0.0f);
|
||||
// rotate vector
|
@ -15,20 +15,11 @@ class Camera {
|
||||
void setRotation(glm::vec2 rotation);
|
||||
void updateRotation(glm::vec2 rotation); //adds to current rotation
|
||||
glm::vec3 getVector();
|
||||
void setPosition(glm::vec3 pos);
|
||||
glm::vec3 getPosition();
|
||||
void setDirection(glm::vec3 dir);
|
||||
glm::vec3 getDirection();
|
||||
bool getIsPhysicsCamera();
|
||||
void setIsPhysicsCamera(bool val);
|
||||
private:
|
||||
void updatePosition();
|
||||
float distance;
|
||||
glm::vec2 rotation;
|
||||
glm::vec3 vector;
|
||||
glm::vec3 position;
|
||||
glm::vec3 direction;
|
||||
bool usePhysicsCamera;
|
||||
};
|
||||
|
||||
#endif
|
11
circle.yml
@ -19,14 +19,13 @@ database:
|
||||
|
||||
test:
|
||||
override:
|
||||
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh linux
|
||||
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh windows
|
||||
- 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
|
||||
- docker run -v ~/swp:/swp/swp -w=/swp/swp -u=$(id -u) faerbit/swp ./package.sh linux
|
||||
- docker run -v ~/swp:/swp/swp -w=/swp/swp -u=$(id -u) faerbit/swp ./package.sh windows
|
||||
- cp MarbleGame_Windows.zip MarbleGame_Linux.zip $CIRCLE_ARTIFACTS
|
||||
|
||||
deployment:
|
||||
master:
|
||||
branch: master
|
||||
commands:
|
||||
- if [ -f Saxum_Windows.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Windows.zip /; fi
|
||||
- if [ -f Saxum_Linux.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Linux.zip /; fi
|
||||
- ./dropbox_uploader.sh -p upload MarbleGame_Windows.zip /
|
||||
- ./dropbox_uploader.sh -p upload MarbleGame_Linux.zip /
|
||||
|
@ -32,28 +32,13 @@ ADD_DEFINITIONS(-Wall)
|
||||
ENDIF(MSVC)
|
||||
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")
|
||||
SET(SOURCE_FILES_CONV ${SOURCE_FILES_CONV} ${SOURCE_FILES_EXTERN})
|
||||
SET(SOURCE_FILES_CONV ${SOURCE_FILES_CONV})
|
||||
|
||||
FILE(GLOB_RECURSE HEADER_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.hh")
|
||||
SET(HEADER_FILES_CONV ${HEADER_FILES_CONV} ${HEADER_FILES_EXTERN})
|
||||
SET(HEADER_FILES_CONV ${HEADER_FILES})
|
||||
ADD_EXECUTABLE(converter ${SOURCE_FILES_CONV} ${HEADER_FILES_CONV})
|
||||
|
@ -1,25 +1,24 @@
|
||||
#include "converter.hh"
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include <sys/stat.h>
|
||||
#include <iostream>
|
||||
|
||||
using namespace tinyxml2;
|
||||
|
||||
Converter::Converter(std::string levelPath, std::string levelName, std::string compositionsPath){
|
||||
xmlFile = levelPath + levelName + ".xml";
|
||||
Converter::Converter(std::string level){
|
||||
xmlFile = "../Levels/ObjectSetups/Level" + level + ".xml";
|
||||
|
||||
//Load Compositions
|
||||
std::string stringCompositions = compositionsPath;
|
||||
const char* charCompositions = stringCompositions.c_str();
|
||||
const char* charCompositions = "../Levels/ObjectSetups/Compositions.xml";
|
||||
compositions->LoadFile(charCompositions);
|
||||
if (compositions->ErrorID()!=0){
|
||||
printf("Could not open Compositions!\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
//Create a backup of the current Level png file, if no backup exists
|
||||
std::string pngFile = levelPath + levelName + ".png";
|
||||
std::string backupPNG = levelPath + levelName + "Backup.png";
|
||||
std::string pngFile = "../Levels/ObjectSetups/Level" + level + ".png";
|
||||
std::string backupPNG = "../Levels/ObjectSetups/BackupLevel" + level + ".png";
|
||||
struct stat buf;
|
||||
if(stat(backupPNG.c_str(), &buf) != 0){
|
||||
std::ifstream src(pngFile, std::ios::binary);
|
||||
@ -27,30 +26,19 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
|
||||
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);
|
||||
|
||||
|
||||
//Load the Level xml file
|
||||
nextID.push_back(0);
|
||||
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;
|
||||
nextID.push_back(1);
|
||||
const char* charXmlFile = xmlFile.c_str();
|
||||
doc->LoadFile(charXmlFile);
|
||||
//check if the xml file did not already exist
|
||||
if (doc->ErrorID()!=0){
|
||||
std::string answer;
|
||||
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");
|
||||
printf("Could not open xml, creating new xml.\n");
|
||||
//Create all global Lightingparameters with Dummy-Values
|
||||
std::vector<XMLElement*> lightAttributes;
|
||||
lightAttributes.push_back(doc->NewElement("xOffset"));
|
||||
@ -63,18 +51,10 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
|
||||
XMLElement* rColourAmbient = doc->NewElement("rColour");
|
||||
XMLElement* gColourAmbient = doc->NewElement("gColour");
|
||||
XMLElement* bColourAmbient = doc->NewElement("bColour");
|
||||
XMLElement* rColourFogDay = doc->NewElement("rColour");
|
||||
XMLElement* gColourFogDay = doc->NewElement("gColour");
|
||||
XMLElement* bColourFogDay = doc->NewElement("bColour");
|
||||
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");
|
||||
XMLElement* rColourFog = doc->NewElement("rColour");
|
||||
XMLElement* gColourFog = doc->NewElement("gColour");
|
||||
XMLElement* bColourFog = doc->NewElement("bColour");
|
||||
XMLElement* alphaFog = doc->NewElement("alpha");
|
||||
|
||||
lightAttributes[0]->SetText("-1.0");
|
||||
lightAttributes[1]->SetText("1.5");
|
||||
@ -86,83 +66,34 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
|
||||
rColourAmbient->SetText("1.0");
|
||||
gColourAmbient->SetText("1.0");
|
||||
bColourAmbient->SetText("1.0");
|
||||
rColourFogDay->SetText("0.57");
|
||||
gColourFogDay->SetText("0.80");
|
||||
bColourFogDay->SetText("0.98");
|
||||
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");
|
||||
rColourFog->SetText("0.10");
|
||||
gColourFog->SetText("0.14");
|
||||
bColourFog->SetText("0.14");
|
||||
alphaFog->SetText("1.0");
|
||||
|
||||
XMLElement* ambientLight = doc->NewElement("ambientLight");
|
||||
XMLElement* fogColourDay = doc->NewElement("fogColourDay");
|
||||
XMLElement* fogColourRise = doc->NewElement("fogColourRise");
|
||||
XMLElement* fogColourNight = doc->NewElement("fogColourNight");
|
||||
XMLElement* fogColour = doc->NewElement("fogColour");
|
||||
XMLElement* directionalLight = doc->NewElement("directionalLight");
|
||||
|
||||
ambientLight->InsertEndChild(rColourAmbient);
|
||||
ambientLight->InsertEndChild(gColourAmbient);
|
||||
ambientLight->InsertEndChild(bColourAmbient);
|
||||
fogColourDay->InsertEndChild(rColourFogDay);
|
||||
fogColourDay->InsertEndChild(gColourFogDay);
|
||||
fogColourDay->InsertEndChild(bColourFogDay);
|
||||
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);
|
||||
fogColour->InsertEndChild(rColourFog);
|
||||
fogColour->InsertEndChild(gColourFog);
|
||||
fogColour->InsertEndChild(bColourFog);
|
||||
fogColour->InsertEndChild(alphaFog);
|
||||
for(int i=0;i<7;i++){
|
||||
directionalLight->InsertEndChild(lightAttributes[i]);
|
||||
}
|
||||
doc->InsertEndChild(ambientLight);
|
||||
doc->InsertEndChild(fogColourDay);
|
||||
doc->InsertEndChild(fogColourRise);
|
||||
doc->InsertEndChild(fogColourNight);
|
||||
doc->InsertEndChild(fogColour);
|
||||
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);
|
||||
|
||||
//Create global physics parameters
|
||||
@ -170,12 +101,12 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
|
||||
XMLElement* playerFriction = doc->NewElement("friction");
|
||||
XMLElement* playerStrength = doc->NewElement("strength");
|
||||
playerFriction->SetText("0.9");
|
||||
playerStrength->SetText("300.0");
|
||||
playerStrength->SetText("100.0");
|
||||
physics->InsertEndChild(playerFriction);
|
||||
physics->InsertEndChild(playerStrength);
|
||||
doc->InsertEndChild(physics);
|
||||
|
||||
//Create positionConstraint Dummy
|
||||
//create positionConstraint Dummy
|
||||
XMLElement* positionConstraint = doc->NewElement("positionConstraint");
|
||||
XMLElement* positionConstraintObjectNum = doc->NewElement("objectNum");
|
||||
XMLElement* positionConstraintXPos = doc->NewElement("xPosition");
|
||||
@ -194,17 +125,16 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
|
||||
positionConstraint->InsertEndChild(positionConstraintStrength);
|
||||
doc->InsertEndChild(positionConstraint);
|
||||
}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");
|
||||
int idGreen, idBlue;
|
||||
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||
int idGreen = queryInt(thisComposition, "idGreen");
|
||||
int idBlue = queryInt(thisComposition, "idBlue");
|
||||
idUsed[idGreen][idBlue] = true;
|
||||
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
|
||||
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
|
||||
if(idGreen > nextID[0] || (idGreen == nextID[0] && idBlue > nextID[1])){
|
||||
nextID[0] = idGreen;
|
||||
nextID[1] = idBlue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -216,52 +146,9 @@ Converter::~Converter(){
|
||||
}
|
||||
|
||||
std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
||||
int oldIDGreen, oldIDBlue;
|
||||
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");
|
||||
doc->InsertFirstChild(newComposition);
|
||||
|
||||
XMLElement* typeID = doc->NewElement("typeID");
|
||||
XMLElement* idBlue = doc->NewElement("idBlue");
|
||||
XMLElement* idGreen = doc->NewElement("idGreen");
|
||||
@ -302,7 +189,6 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
||||
XMLElement* trigger = doc->NewElement("trigger");
|
||||
newComposition->InsertEndChild(trigger);
|
||||
XMLElement* name = doc->NewElement("name");
|
||||
XMLElement* undo = doc->NewElement("undo");
|
||||
XMLElement* xPosition = doc->NewElement("xPosition");
|
||||
XMLElement* yPosition = doc->NewElement("yPosition");
|
||||
XMLElement* zPosition = doc->NewElement("zPosition");
|
||||
@ -317,7 +203,6 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
||||
XMLElement* toChangeObjNum = doc->NewElement("toChangeObjNum");
|
||||
|
||||
name->SetText("-");
|
||||
undo->SetText("false");
|
||||
xPosition->SetText("0");
|
||||
yPosition->SetText("0");
|
||||
zPosition->SetText("0");
|
||||
@ -332,7 +217,6 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
||||
toChangeObjNum->SetText("0");
|
||||
|
||||
trigger->InsertEndChild(name);
|
||||
trigger->InsertEndChild(undo);
|
||||
trigger->InsertEndChild(xPosition);
|
||||
trigger->InsertEndChild(yPosition);
|
||||
trigger->InsertEndChild(zPosition);
|
||||
@ -346,23 +230,28 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
||||
trigger->InsertEndChild(toChangeIdBlue);
|
||||
trigger->InsertEndChild(toChangeObjNum);
|
||||
|
||||
idUsed[nextID[0]][nextID[1]] = true;
|
||||
doc->InsertFirstChild(newComposition);
|
||||
return nextID;
|
||||
std::vector<int> ret = nextID;
|
||||
nextID[1] += 1;
|
||||
if (nextID[1] == 255){
|
||||
nextID[1] = 0;
|
||||
nextID[0] +=1;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void Converter::updateComposition(int idG, int idB, float posX, float posZ){
|
||||
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||
int idGreen = 0, idBlue = 0;
|
||||
bool compositionExists = false;
|
||||
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||
int idGreen = queryInt(thisComposition, "idGreen");
|
||||
int idBlue = queryInt(thisComposition, "idBlue");
|
||||
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
|
||||
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
|
||||
if(idGreen == idG && idBlue == idB){
|
||||
if (compositionExists){
|
||||
std::cout << "The ID " << idGreen << "," << idBlue << " is used for multiple compositions in the xml." << std::endl;
|
||||
exit(-1);
|
||||
std::cout << "An ID is used for multiple compositions in the xml." << std::endl;
|
||||
}
|
||||
bool manualPos = queryBool(thisComposition, "manualPos");
|
||||
bool manualPos;
|
||||
errorCheck(thisComposition->FirstChildElement("manualPos")->QueryBoolText(&manualPos));
|
||||
if(!manualPos){
|
||||
thisComposition->FirstChildElement("xPos")->SetText(std::to_string(posX).c_str());
|
||||
thisComposition->FirstChildElement("zPos")->SetText(std::to_string(posZ).c_str());
|
||||
@ -371,16 +260,17 @@ void Converter::updateComposition(int idG, int idB, float posX, float posZ){
|
||||
}
|
||||
}
|
||||
if(!compositionExists){
|
||||
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;
|
||||
std::cout << "A composition has an ID in the png, but does'nt exist in the xml." << std::endl;
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
void Converter::deleteComposition(int idG, int idB){
|
||||
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||
int idGreen, idBlue;
|
||||
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||
int idGreen = queryInt(thisComposition, "idGreen");
|
||||
int idBlue = queryInt(thisComposition, "idBlue");
|
||||
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
|
||||
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
|
||||
if(idGreen == idG && idBlue == idB){
|
||||
doc->DeleteChild(thisComposition);
|
||||
}
|
||||
@ -392,70 +282,8 @@ void Converter::save(){
|
||||
doc->SaveFile(charXmlFile);
|
||||
}
|
||||
|
||||
float Converter::queryFloat(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);
|
||||
}
|
||||
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;
|
||||
std::vector<int> Converter::getNextID(){
|
||||
return nextID;
|
||||
}
|
||||
|
||||
void Converter::errorCheck(XMLError error){
|
||||
@ -476,6 +304,5 @@ void Converter::errorCheck(XMLError error){
|
||||
else {
|
||||
printf("Unknown error.\n");
|
||||
}
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
@ -8,26 +8,21 @@
|
||||
using namespace tinyxml2;
|
||||
class Converter {
|
||||
public:
|
||||
Converter(std::string levelPath, std::string levelName, std::string compositionsPath);
|
||||
Converter(std::string level);
|
||||
Converter();
|
||||
~Converter();
|
||||
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
|
||||
void deleteComposition(int idG, int idB);
|
||||
void save(); //writes the xml to file
|
||||
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 save(); //writes the xml to file
|
||||
std::vector<int> getNextID(); //returns the next unused ID
|
||||
|
||||
private:
|
||||
void errorCheck(XMLError error);
|
||||
std::vector<int> nextID;
|
||||
bool idUsed[256][256];
|
||||
std::string xmlFile;
|
||||
XMLDocument* doc = 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
|
||||
|
6096
converter/lodepng.cc
Normal file
1702
converter/lodepng.hh
Normal file
@ -1,21 +1,16 @@
|
||||
#include <lodepng/lodepng.h>
|
||||
#include "lodepng.hh"
|
||||
#include <string>
|
||||
#include "converter.hh"
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include "tinyxml2.hh"
|
||||
|
||||
using namespace tinyxml2;
|
||||
|
||||
int main( int argc, char *argv[] ){
|
||||
if (argc <= 1){
|
||||
std::cout << "Converter needs the levels name (Level1) as input." << std::endl;
|
||||
std::cout << "Converter needs the level (1,2,...) as input." << std::endl;
|
||||
exit(-1);
|
||||
}
|
||||
printf("Initializing.\n");
|
||||
std::string levelString = argv[1];
|
||||
|
||||
|
||||
Converter conv = Converter(levelString);
|
||||
bool idFound[256][256];
|
||||
for (int i=0; i<256; i++){
|
||||
for (int j=0; j<256; j++){
|
||||
@ -23,80 +18,43 @@ int main( int argc, char *argv[] ){
|
||||
}
|
||||
}
|
||||
|
||||
XMLDocument* config = new XMLDocument();
|
||||
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";
|
||||
//read the setup png
|
||||
std::string filePath = "../Levels/ObjectSetups/Level" + levelString + ".png";
|
||||
std::vector<unsigned char> image; //the raw pixels
|
||||
unsigned int width, height;
|
||||
unsigned error = lodepng::decode(image, width, height, filePath);
|
||||
if (error) {
|
||||
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
|
||||
for(unsigned int columnNum = 0; columnNum < width; columnNum++){
|
||||
for(unsigned int rowNum = 0; rowNum < height; rowNum++){
|
||||
for(unsigned int rowNum = 0; rowNum < height; rowNum++){
|
||||
for(unsigned int columnNum = 0; columnNum < width; columnNum++){
|
||||
unsigned int pixel = (rowNum*width+columnNum)*4;
|
||||
//if there is a composition here, adjust the xml and image
|
||||
if(image[pixel]!=0 && image[pixel]!=255){
|
||||
if(image[pixel+1]==0 && image[pixel+2]==0){//composition has no ID
|
||||
std::vector<int> newID;
|
||||
newID = conv.newComposition(image[pixel], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
|
||||
idFound[newID[0]][newID[1]] = true;
|
||||
image[pixel+1] = newID[0];
|
||||
image[pixel+2] = newID[1];
|
||||
}else{//composition has an ID
|
||||
conv.updateComposition(image[pixel+1], image[pixel+2], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
|
||||
if((image[pixel+1]==0 && image[pixel+2]==0) || (image[pixel+1]==255 && image[pixel+2]==255)){
|
||||
std::vector<int> temp;
|
||||
temp = conv.newComposition(image[pixel], 0.5+rowNum-0.5*height, 0.5+columnNum-0.5*width);
|
||||
idFound[temp[0]][temp[1]] = true;
|
||||
image[pixel+1] = temp[0];
|
||||
image[pixel+2] = temp[1];
|
||||
}else{
|
||||
conv.updateComposition(image[pixel+1], image[pixel+2], 0.5+rowNum-0.5*height, 0.5+columnNum-0.5*width);
|
||||
idFound[image[pixel+1]][image[pixel+2]] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
printf("Writing IDs back to the png.\n");
|
||||
|
||||
//write ids back to the setup png
|
||||
error = lodepng::encode(filePath, image, width, height);
|
||||
if(error) {
|
||||
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
|
||||
for (int i=0; i<256; i++){
|
||||
for (int i=0; i<=conv.getNextID()[1]; i++){
|
||||
for (int j=0; j<256; j++){
|
||||
if (! idFound[i][j]){
|
||||
conv.deleteComposition(i,j);
|
||||
@ -107,3 +65,4 @@ int main( int argc, char *argv[] ){
|
||||
//save the xml
|
||||
conv.save();
|
||||
}
|
||||
|
||||
|
0
extern/tinyxml/tinyxml2.cc → converter/tinyxml2.cc
Normal file → Executable file
0
extern/tinyxml/tinyxml2.hh → converter/tinyxml2.hh
Normal file → Executable file
@ -1,42 +0,0 @@
|
||||
<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>
|
@ -1,39 +0,0 @@
|
||||
# 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
|
@ -1,52 +0,0 @@
|
||||
# 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
|
@ -1,41 +0,0 @@
|
||||
# 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
|
@ -1,15 +0,0 @@
|
||||
# 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
|
@ -1,641 +0,0 @@
|
||||
# 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
@ -1 +0,0 @@
|
||||
*Backup*
|
@ -1,903 +0,0 @@
|
||||
<!-- 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>
|
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 135 B |
@ -1,244 +0,0 @@
|
||||
<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>
|