Compare commits
245 Commits
master
...
cube-map-a
Author | SHA1 | Date | |
---|---|---|---|
|
ffcfaf9a2c | ||
|
ca5618bce2 | ||
|
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 |
8
.gitignore
vendored
@ -1,12 +1,8 @@
|
||||
binaries
|
||||
build
|
||||
/Makefile
|
||||
Makefile
|
||||
CMakeLists.txt.user
|
||||
*.cbp
|
||||
*~
|
||||
*.zip
|
||||
*.db
|
||||
*.blend1
|
||||
*.swp
|
||||
*.pyc
|
||||
*.o
|
||||
|
||||
|
@ -3,11 +3,11 @@ CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
|
||||
add_subdirectory(converter)
|
||||
|
||||
# project/binary name:
|
||||
PROJECT(saxum)
|
||||
PROJECT(MarbleRaceGroupC)
|
||||
|
||||
# ACGL setup
|
||||
SET(ACGL_OPENGL_SUPPORT CORE_32)
|
||||
ADD_DEFINITIONS(-DACGL_OPENGL_VERSION_32)
|
||||
SET(ACGL_OPENGL_SUPPORT CORE_40)
|
||||
ADD_DEFINITIONS(-DACGL_OPENGL_VERSION_40)
|
||||
ADD_DEFINITIONS(-DACGL_OPENGL_PROFILE_CORE)
|
||||
# create the newest availabe OpenGL context, independent of the ACGL version:
|
||||
#ADD_DEFINITIONS(-DGLFW_OPENGL_LATEST_VERSION)
|
||||
@ -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})
|
||||
@ -117,7 +106,7 @@ ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
# Linux:
|
||||
#
|
||||
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
SET(LIBRARIES ${LIBRARIES} -lXrandr -lGL -lXi -pthread -lm -lX11 -lXxf86vm -ldl)
|
||||
SET(LIBRARIES ${LIBRARIES} -lXrandr -lGL -lXi -pthread -lm -lX11 -lXxf86vm)
|
||||
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
#
|
||||
#
|
||||
@ -142,20 +131,6 @@ else()
|
||||
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/BulletSoftBody/libBulletSoftBody.a)
|
||||
endif()
|
||||
|
||||
# Include Lua
|
||||
|
||||
FILE(GLOB_RECURSE HEADER_FILES_LUA ${CMAKE_SOURCE_DIR}/extern/lua/src/*.h)
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/lua/src)
|
||||
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_LUA})
|
||||
|
||||
FILE(GLOB_RECURSE HEADER_FILES_LUA_BRIDGE ${CMAKE_SOURCE_DIR}/extern/luabridge/*.h)
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/luabridge)
|
||||
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_LUA_BRIDGE})
|
||||
|
||||
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/lua/src/liblua.a)
|
||||
|
||||
|
||||
ADD_EXECUTABLE(saxum ${SOURCE_FILES} ${HEADER_FILES})
|
||||
TARGET_LINK_LIBRARIES(saxum ${LIBRARIES} ${CMAKE_DL_LIBS})
|
||||
ADD_EXECUTABLE(MarbleRaceGroupC ${SOURCE_FILES} ${HEADER_FILES} ${SHADER_FILES} ${README_FILES})
|
||||
TARGET_LINK_LIBRARIES(MarbleRaceGroupC ${LIBRARIES})
|
||||
|
@ -10,4 +10,3 @@ run apt-get install -y ninja-build
|
||||
run apt-get install -y xorg-dev
|
||||
run apt-get install -y freeglut3-dev
|
||||
run apt-get install -y zip
|
||||
run apt-get install -y libreadline6-dev
|
||||
|
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)
|
721
Levels/Geometry/block.obj
Normal file
@ -0,0 +1,721 @@
|
||||
# Blender v2.72 (sub 0) OBJ File: 'ruins_block.blend'
|
||||
# www.blender.org
|
||||
o Block_Cube
|
||||
v 0.003582 -1.000000 1.000000
|
||||
v 0.003582 -1.000000 -1.000000
|
||||
v 0.003581 1.000000 1.000000
|
||||
v 0.003582 1.000000 -1.000000
|
||||
v 0.003582 -1.000000 1.000000
|
||||
v 0.003582 -1.000000 -1.000000
|
||||
v 0.003581 1.000000 1.000000
|
||||
v 0.003582 1.000000 -1.000000
|
||||
v 2.003582 -0.973911 -0.973911
|
||||
v 1.977493 -1.000000 -1.000000
|
||||
v 1.977493 -1.000000 -1.000000
|
||||
v 2.003316 -0.977624 -0.975900
|
||||
v 2.002525 -0.981261 -0.978115
|
||||
v 2.001224 -0.984749 -0.980509
|
||||
v 1.999440 -0.988016 -0.983034
|
||||
v 1.997210 -0.990996 -0.985640
|
||||
v 1.994578 -0.993628 -0.988272
|
||||
v 1.991598 -0.995859 -0.990877
|
||||
v 1.988331 -0.997642 -0.993402
|
||||
v 1.984843 -0.998943 -0.995797
|
||||
v 1.981206 -0.999735 -0.998011
|
||||
v 1.981206 -0.998011 -0.999734
|
||||
v 1.984843 -0.995797 -0.998943
|
||||
v 1.988331 -0.993402 -0.997642
|
||||
v 1.991598 -0.990877 -0.995858
|
||||
v 1.994578 -0.988272 -0.993628
|
||||
v 1.997210 -0.985640 -0.990996
|
||||
v 1.999440 -0.983034 -0.988016
|
||||
v 2.001224 -0.980509 -0.984749
|
||||
v 2.002525 -0.978115 -0.981261
|
||||
v 2.003316 -0.975900 -0.977624
|
||||
v 1.977493 -1.000000 1.000000
|
||||
v 2.003582 -0.973911 0.973911
|
||||
v 1.977493 -1.000000 1.000000
|
||||
v 1.981206 -0.999735 0.998011
|
||||
v 1.984843 -0.998943 0.995797
|
||||
v 1.988331 -0.997642 0.993402
|
||||
v 1.991598 -0.995859 0.990877
|
||||
v 1.994578 -0.993628 0.988272
|
||||
v 1.997210 -0.990996 0.985640
|
||||
v 1.999440 -0.988016 0.983034
|
||||
v 2.001224 -0.984749 0.980509
|
||||
v 2.002525 -0.981261 0.978115
|
||||
v 2.003316 -0.977624 0.975900
|
||||
v 2.003316 -0.975900 0.977624
|
||||
v 2.002525 -0.978115 0.981261
|
||||
v 2.001224 -0.980509 0.984749
|
||||
v 1.999440 -0.983034 0.988016
|
||||
v 1.997210 -0.985640 0.990996
|
||||
v 1.994578 -0.988272 0.993628
|
||||
v 1.991598 -0.990877 0.995859
|
||||
v 1.988331 -0.993402 0.997642
|
||||
v 1.984843 -0.995797 0.998943
|
||||
v 1.981206 -0.998011 0.999735
|
||||
v 2.003582 0.973911 -0.973911
|
||||
v 1.977494 1.000000 -0.999999
|
||||
v 1.977494 1.000000 -0.999999
|
||||
v 2.003317 0.975900 -0.977623
|
||||
v 2.002526 0.978115 -0.981261
|
||||
v 2.001225 0.980509 -0.984748
|
||||
v 1.999441 0.983034 -0.988015
|
||||
v 1.997210 0.985640 -0.990995
|
||||
v 1.994578 0.988272 -0.993627
|
||||
v 1.991598 0.990877 -0.995858
|
||||
v 1.988331 0.993402 -0.997642
|
||||
v 1.984843 0.995797 -0.998943
|
||||
v 1.981206 0.998011 -0.999734
|
||||
v 1.981206 0.999735 -0.998010
|
||||
v 1.984844 0.998943 -0.995796
|
||||
v 1.988331 0.997642 -0.993402
|
||||
v 1.991598 0.995859 -0.990876
|
||||
v 1.994578 0.993628 -0.988271
|
||||
v 1.997210 0.990996 -0.985639
|
||||
v 1.999441 0.988016 -0.983034
|
||||
v 2.001225 0.984749 -0.980508
|
||||
v 2.002526 0.981261 -0.978114
|
||||
v 2.003317 0.977624 -0.975900
|
||||
v 1.977492 1.000000 1.000001
|
||||
v 2.003581 0.973911 0.973912
|
||||
v 1.977492 1.000000 1.000001
|
||||
v 1.981205 0.998011 0.999735
|
||||
v 1.984842 0.995797 0.998944
|
||||
v 1.988330 0.993402 0.997643
|
||||
v 1.991597 0.990877 0.995859
|
||||
v 1.994577 0.988272 0.993628
|
||||
v 1.997209 0.985640 0.990996
|
||||
v 1.999439 0.983034 0.988017
|
||||
v 2.001224 0.980509 0.984750
|
||||
v 2.002524 0.978115 0.981262
|
||||
v 2.003315 0.975900 0.977625
|
||||
v 2.003315 0.977624 0.975901
|
||||
v 2.002524 0.981261 0.978115
|
||||
v 2.001224 0.984749 0.980510
|
||||
v 1.999439 0.988016 0.983035
|
||||
v 1.997209 0.990996 0.985640
|
||||
v 1.994577 0.993628 0.988272
|
||||
v 1.991597 0.995859 0.990878
|
||||
v 1.988330 0.997642 0.993403
|
||||
v 1.984842 0.998943 0.995797
|
||||
v 1.981205 0.999735 0.998011
|
||||
v -1.996123 -0.973911 0.973911
|
||||
v -1.970034 -1.000000 0.999999
|
||||
v -1.970034 -1.000000 0.999999
|
||||
v -1.995857 -0.977624 0.975900
|
||||
v -1.995066 -0.981262 0.978114
|
||||
v -1.993765 -0.984749 0.980508
|
||||
v -1.991981 -0.988016 0.983034
|
||||
v -1.989750 -0.990996 0.985639
|
||||
v -1.987118 -0.993628 0.988271
|
||||
v -1.984138 -0.995859 0.990876
|
||||
v -1.980871 -0.997643 0.993402
|
||||
v -1.977384 -0.998944 0.995796
|
||||
v -1.973747 -0.999735 0.998010
|
||||
v -1.973747 -0.998011 0.999734
|
||||
v -1.977384 -0.995797 0.998943
|
||||
v -1.980871 -0.993403 0.997642
|
||||
v -1.984138 -0.990877 0.995858
|
||||
v -1.987118 -0.988272 0.993627
|
||||
v -1.989750 -0.985640 0.990995
|
||||
v -1.991981 -0.983035 0.988015
|
||||
v -1.993765 -0.980509 0.984748
|
||||
v -1.995066 -0.978115 0.981261
|
||||
v -1.995857 -0.975901 0.977624
|
||||
v -1.970033 -1.000000 -1.000001
|
||||
v -1.996122 -0.973911 -0.973912
|
||||
v -1.970033 -1.000000 -1.000001
|
||||
v -1.973746 -0.999735 -0.998012
|
||||
v -1.977383 -0.998944 -0.995798
|
||||
v -1.980871 -0.997643 -0.993403
|
||||
v -1.984138 -0.995859 -0.990878
|
||||
v -1.987118 -0.993628 -0.988273
|
||||
v -1.989750 -0.990996 -0.985640
|
||||
v -1.991981 -0.988016 -0.983035
|
||||
v -1.993765 -0.984749 -0.980510
|
||||
v -1.995065 -0.981262 -0.978115
|
||||
v -1.995857 -0.977624 -0.975901
|
||||
v -1.995857 -0.975901 -0.977625
|
||||
v -1.995065 -0.978115 -0.981262
|
||||
v -1.993765 -0.980509 -0.984750
|
||||
v -1.991981 -0.983035 -0.988017
|
||||
v -1.989750 -0.985640 -0.990997
|
||||
v -1.987118 -0.988272 -0.993629
|
||||
v -1.984138 -0.990877 -0.995859
|
||||
v -1.980871 -0.993403 -0.997643
|
||||
v -1.977383 -0.995797 -0.998944
|
||||
v -1.973746 -0.998011 -0.999735
|
||||
v -1.996123 0.973911 0.973910
|
||||
v -1.970034 1.000000 0.999999
|
||||
v -1.970034 1.000000 0.999999
|
||||
v -1.995857 0.975900 0.977623
|
||||
v -1.995066 0.978114 0.981260
|
||||
v -1.993766 0.980509 0.984748
|
||||
v -1.991982 0.983034 0.988015
|
||||
v -1.989751 0.985639 0.990995
|
||||
v -1.987119 0.988271 0.993627
|
||||
v -1.984139 0.990877 0.995858
|
||||
v -1.980872 0.993402 0.997642
|
||||
v -1.977384 0.995796 0.998942
|
||||
v -1.973747 0.998011 0.999734
|
||||
v -1.973747 0.999734 0.998010
|
||||
v -1.977384 0.998943 0.995796
|
||||
v -1.980872 0.997642 0.993402
|
||||
v -1.984139 0.995858 0.990876
|
||||
v -1.987119 0.993628 0.988271
|
||||
v -1.989751 0.990996 0.985639
|
||||
v -1.991982 0.988016 0.983034
|
||||
v -1.993766 0.984749 0.980508
|
||||
v -1.995066 0.981261 0.978114
|
||||
v -1.995857 0.977624 0.975900
|
||||
v -1.970034 1.000000 -1.000000
|
||||
v -1.996123 0.973911 -0.973912
|
||||
v -1.970034 1.000000 -1.000000
|
||||
v -1.973747 0.998011 -0.999735
|
||||
v -1.977384 0.995796 -0.998944
|
||||
v -1.980871 0.993402 -0.997643
|
||||
v -1.984138 0.990877 -0.995859
|
||||
v -1.987118 0.988271 -0.993628
|
||||
v -1.989750 0.985639 -0.990996
|
||||
v -1.991981 0.983034 -0.988016
|
||||
v -1.993765 0.980509 -0.984749
|
||||
v -1.995066 0.978114 -0.981262
|
||||
v -1.995857 0.975900 -0.977625
|
||||
v -1.995857 0.977624 -0.975901
|
||||
v -1.995066 0.981261 -0.978115
|
||||
v -1.993765 0.984749 -0.980509
|
||||
v -1.991981 0.988016 -0.983035
|
||||
v -1.989750 0.990996 -0.985640
|
||||
v -1.987118 0.993628 -0.988272
|
||||
v -1.984138 0.995858 -0.990877
|
||||
v -1.980871 0.997642 -0.993403
|
||||
v -1.977384 0.998943 -0.995797
|
||||
v -1.973747 0.999734 -0.998011
|
||||
vt 0.839733 0.000000
|
||||
vt 0.848833 0.013044
|
||||
vt -0.537296 -0.000000
|
||||
vt -0.546397 0.013044
|
||||
vt 0.151167 0.000000
|
||||
vt 0.839733 0.013044
|
||||
vt 0.839733 0.986956
|
||||
vt 0.160267 0.986956
|
||||
vt 0.160267 0.013044
|
||||
vt 0.848833 0.000000
|
||||
vt 0.160370 0.000000
|
||||
vt 0.151270 0.013045
|
||||
vt 1.537399 0.000000
|
||||
vt 1.546500 0.013044
|
||||
vt 0.974265 0.996942
|
||||
vt -0.001961 0.996942
|
||||
vt -0.001961 -0.003057
|
||||
vt 0.974264 -0.003058
|
||||
vt 0.848834 -0.013044
|
||||
vt -0.546397 -0.013044
|
||||
vt -0.537296 -1.000000
|
||||
vt 0.839733 -1.000000
|
||||
vt 0.947629 -0.000000
|
||||
vt 0.003341 -0.000000
|
||||
vt 0.003341 1.000000
|
||||
vt 0.947629 1.000000
|
||||
vt 0.839732 1.000000
|
||||
vt -0.537296 1.000000
|
||||
vt 0.151167 1.000000
|
||||
vt 0.841028 0.000995
|
||||
vt 0.841028 0.000133
|
||||
vt 0.842297 0.002102
|
||||
vt 0.842297 0.000528
|
||||
vt 0.848011 0.003299
|
||||
vt 0.846532 0.001179
|
||||
vt 0.847367 0.000528
|
||||
vt 0.848465 0.002102
|
||||
vt 0.847389 0.004562
|
||||
vt 0.845651 0.002071
|
||||
vt 0.846610 0.005864
|
||||
vt 0.844742 0.003186
|
||||
vt 0.845692 0.007180
|
||||
vt 0.843824 0.004502
|
||||
vt 0.844653 0.008483
|
||||
vt 0.842915 0.005992
|
||||
vt 0.843513 0.009746
|
||||
vt 0.842034 0.007626
|
||||
vt 0.842297 0.010943
|
||||
vt 0.841199 0.009369
|
||||
vt 0.840427 0.011188
|
||||
vt 0.841028 0.012050
|
||||
vt 0.158972 0.012050
|
||||
vt 0.159573 0.011188
|
||||
vt 0.157703 0.010943
|
||||
vt 0.158801 0.009369
|
||||
vt 0.156487 0.009746
|
||||
vt 0.157966 0.007626
|
||||
vt 0.155347 0.008483
|
||||
vt 0.157085 0.005992
|
||||
vt 0.154308 0.007180
|
||||
vt 0.156176 0.004502
|
||||
vt 0.153389 0.005864
|
||||
vt 0.155258 0.003186
|
||||
vt 0.152611 0.004562
|
||||
vt 0.154349 0.002071
|
||||
vt 0.151989 0.003299
|
||||
vt 0.153468 0.001179
|
||||
vt 0.151535 0.002102
|
||||
vt 0.152633 0.000528
|
||||
vt 0.841028 0.999867
|
||||
vt 0.841028 0.999005
|
||||
vt 0.842297 0.999472
|
||||
vt 0.842297 0.997898
|
||||
vt 0.846532 0.998821
|
||||
vt 0.848011 0.996701
|
||||
vt 0.848464 0.997898
|
||||
vt 0.847367 0.999472
|
||||
vt 0.845651 0.997929
|
||||
vt 0.847388 0.995438
|
||||
vt 0.844742 0.996814
|
||||
vt 0.846610 0.994136
|
||||
vt 0.843824 0.995498
|
||||
vt 0.845692 0.992820
|
||||
vt 0.842915 0.994008
|
||||
vt 0.844653 0.991517
|
||||
vt 0.842034 0.992374
|
||||
vt 0.843513 0.990254
|
||||
vt 0.841199 0.990631
|
||||
vt 0.842296 0.989057
|
||||
vt 0.841028 0.987950
|
||||
vt 0.840426 0.988812
|
||||
vt 0.159573 0.988812
|
||||
vt 0.158972 0.987950
|
||||
vt 0.158801 0.990631
|
||||
vt 0.157703 0.989057
|
||||
vt 0.157966 0.992374
|
||||
vt 0.156487 0.990254
|
||||
vt 0.157085 0.994008
|
||||
vt 0.155347 0.991517
|
||||
vt 0.156176 0.995498
|
||||
vt 0.154307 0.992820
|
||||
vt 0.155258 0.996814
|
||||
vt 0.153389 0.994136
|
||||
vt 0.154349 0.997929
|
||||
vt 0.152611 0.995438
|
||||
vt 0.153468 0.998821
|
||||
vt 0.151989 0.996701
|
||||
vt 0.152633 0.999472
|
||||
vt 0.151535 0.997898
|
||||
vt 0.841028 1.000132
|
||||
vt 0.841028 1.000994
|
||||
vt 0.159075 0.000133
|
||||
vt 0.159075 0.000995
|
||||
vt 0.157807 0.000529
|
||||
vt 0.157807 0.002102
|
||||
vt 0.159075 0.999006
|
||||
vt 0.157807 0.997899
|
||||
vt 0.157807 0.999472
|
||||
vt 0.159075 0.999868
|
||||
vt 0.159075 -0.000994
|
||||
vt 0.159075 -0.000132
|
||||
vt 0.160370 1.000000
|
||||
vt 0.846610 0.992820
|
||||
vt 0.846610 0.007180
|
||||
vt 0.845692 0.005864
|
||||
vt 0.845692 0.994136
|
||||
vt 0.844653 0.004562
|
||||
vt 0.844653 0.995438
|
||||
vt 0.843513 0.003299
|
||||
vt 0.843513 0.996701
|
||||
vt 0.153493 0.007180
|
||||
vt 0.153493 0.992820
|
||||
vt 0.154411 0.994136
|
||||
vt 0.154411 0.005864
|
||||
vt 0.155450 0.995439
|
||||
vt 0.155450 0.004562
|
||||
vt 0.156590 0.996702
|
||||
vt 0.156590 0.003299
|
||||
vt 0.160370 2.000000
|
||||
vt 0.159075 1.999005
|
||||
vt 0.159075 1.000994
|
||||
vt 0.927508 0.000000
|
||||
vt 0.003734 0.000000
|
||||
vt 0.003734 1.000000
|
||||
vt 0.927508 1.000000
|
||||
vn 0.000000 0.240400 -0.970700
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 -0.707100 0.707100
|
||||
vn -0.000000 1.000000 0.000000
|
||||
vn -1.000000 -0.000000 -0.000000
|
||||
vn 0.000000 0.911700 0.410900
|
||||
vn 0.000000 -0.244600 -0.969600
|
||||
vn -0.000000 -0.000000 1.000000
|
||||
vn -0.000000 -0.239800 0.970800
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn -0.000000 0.239200 0.971000
|
||||
vn 0.000000 0.702500 -0.711700
|
||||
vn 0.000000 -0.911800 -0.410700
|
||||
vn 0.394600 -0.649700 -0.649700
|
||||
vn 0.504500 -0.610500 -0.610500
|
||||
vn 0.599600 -0.565900 -0.565900
|
||||
vn 0.682100 -0.517100 -0.517100
|
||||
vn 0.753900 -0.464500 -0.464600
|
||||
vn 0.816500 -0.408300 -0.408200
|
||||
vn 0.870700 -0.347700 -0.347800
|
||||
vn 0.916800 -0.282400 -0.282400
|
||||
vn 0.954400 -0.211000 -0.211100
|
||||
vn 0.982200 -0.132800 -0.132800
|
||||
vn 0.997800 -0.046400 -0.046400
|
||||
vn 0.997800 -0.046400 0.046400
|
||||
vn 0.982200 -0.132800 0.132800
|
||||
vn 0.954400 -0.211100 0.211100
|
||||
vn 0.916800 -0.282400 0.282400
|
||||
vn 0.870700 -0.347700 0.347800
|
||||
vn 0.816500 -0.408200 0.408200
|
||||
vn 0.753900 -0.464600 0.464600
|
||||
vn 0.682100 -0.517100 0.517100
|
||||
vn 0.599600 -0.565900 0.565900
|
||||
vn 0.504500 -0.610500 0.610500
|
||||
vn 0.394600 -0.649800 0.649700
|
||||
vn 0.394600 0.649800 -0.649700
|
||||
vn 0.504500 0.610500 -0.610500
|
||||
vn 0.599600 0.565900 -0.565900
|
||||
vn 0.682100 0.517100 -0.517100
|
||||
vn 0.753900 0.464500 -0.464600
|
||||
vn 0.816500 0.408300 -0.408200
|
||||
vn 0.870700 0.347800 -0.347800
|
||||
vn 0.916800 0.282400 -0.282400
|
||||
vn 0.954400 0.211000 -0.211100
|
||||
vn 0.982200 0.132800 -0.132800
|
||||
vn 0.997800 0.046400 -0.046400
|
||||
vn 0.997800 0.046500 0.046500
|
||||
vn 0.982200 0.132800 0.132800
|
||||
vn 0.954400 0.211100 0.211100
|
||||
vn 0.916800 0.282400 0.282400
|
||||
vn 0.870700 0.347800 0.347800
|
||||
vn 0.816500 0.408200 0.408300
|
||||
vn 0.753900 0.464600 0.464500
|
||||
vn 0.682100 0.517100 0.517100
|
||||
vn 0.599600 0.565900 0.565900
|
||||
vn 0.504500 0.610600 0.610500
|
||||
vn 0.394500 0.649800 0.649700
|
||||
vn -0.394600 -0.649700 0.649800
|
||||
vn -0.504500 -0.610500 0.610500
|
||||
vn -0.599600 -0.565900 0.565900
|
||||
vn -0.682100 -0.517100 0.517100
|
||||
vn -0.753900 -0.464500 0.464500
|
||||
vn -0.816500 -0.408300 0.408300
|
||||
vn -0.870700 -0.347700 0.347800
|
||||
vn -0.916800 -0.282400 0.282400
|
||||
vn -0.954400 -0.211000 0.211100
|
||||
vn -0.982200 -0.132800 0.132800
|
||||
vn -0.997800 -0.046500 0.046500
|
||||
vn -0.997800 -0.046400 -0.046500
|
||||
vn -0.982200 -0.132800 -0.132800
|
||||
vn -0.954400 -0.211100 -0.211100
|
||||
vn -0.916800 -0.282400 -0.282400
|
||||
vn -0.870700 -0.347800 -0.347800
|
||||
vn -0.816500 -0.408300 -0.408300
|
||||
vn -0.753900 -0.464500 -0.464500
|
||||
vn -0.682100 -0.517100 -0.517100
|
||||
vn -0.599600 -0.565900 -0.565900
|
||||
vn -0.504500 -0.610500 -0.610500
|
||||
vn -0.394600 -0.649700 -0.649700
|
||||
vn -0.394600 0.649700 0.649800
|
||||
vn -0.504500 0.610500 0.610600
|
||||
vn -0.599600 0.565900 0.565900
|
||||
vn -0.682100 0.517100 0.517100
|
||||
vn -0.753900 0.464500 0.464500
|
||||
vn -0.816500 0.408300 0.408300
|
||||
vn -0.870700 0.347800 0.347800
|
||||
vn -0.916800 0.282400 0.282400
|
||||
vn -0.954400 0.211100 0.211100
|
||||
vn -0.982200 0.132800 0.132800
|
||||
vn -0.997800 0.046500 0.046500
|
||||
vn -0.997800 0.046400 -0.046500
|
||||
vn -0.982200 0.132700 -0.132800
|
||||
vn -0.954400 0.211100 -0.211100
|
||||
vn -0.916800 0.282400 -0.282400
|
||||
vn -0.870700 0.347800 -0.347800
|
||||
vn -0.816500 0.408200 -0.408300
|
||||
vn -0.753900 0.464500 -0.464500
|
||||
vn -0.682100 0.517100 -0.517100
|
||||
vn -0.599600 0.565900 -0.565900
|
||||
vn -0.504500 0.610500 -0.610500
|
||||
vn -0.394600 0.649700 -0.649800
|
||||
vn 0.997500 -0.071200 0.000000
|
||||
vn 0.977100 -0.212700 0.000000
|
||||
vn 0.937000 -0.349500 0.000000
|
||||
vn 0.877700 -0.479300 0.000000
|
||||
vn 0.800500 -0.599300 0.000000
|
||||
vn 0.707100 -0.707100 0.000000
|
||||
vn 0.599300 -0.800500 0.000000
|
||||
vn 0.479300 -0.877700 0.000000
|
||||
vn 0.349500 -0.937000 -0.000000
|
||||
vn 0.212600 -0.977100 -0.000000
|
||||
vn 0.071300 -0.997500 0.000000
|
||||
vn 0.071400 0.000000 -0.997500
|
||||
vn 0.212600 0.000000 -0.977100
|
||||
vn 0.349500 0.000000 -0.937000
|
||||
vn 0.479300 0.000000 -0.877700
|
||||
vn 0.599300 0.000000 -0.800600
|
||||
vn 0.707100 0.000000 -0.707100
|
||||
vn 0.800500 -0.000000 -0.599300
|
||||
vn 0.877700 -0.000000 -0.479300
|
||||
vn 0.936900 -0.000000 -0.349500
|
||||
vn 0.977100 -0.000000 -0.212600
|
||||
vn 0.997500 -0.000000 -0.071300
|
||||
vn 0.997500 0.000000 0.071300
|
||||
vn 0.977100 0.000000 0.212600
|
||||
vn 0.936900 0.000000 0.349500
|
||||
vn 0.877700 0.000000 0.479300
|
||||
vn 0.800500 0.000000 0.599300
|
||||
vn 0.707100 0.000000 0.707100
|
||||
vn 0.599300 0.000000 0.800600
|
||||
vn 0.479300 -0.000000 0.877700
|
||||
vn 0.349500 -0.000000 0.936900
|
||||
vn 0.212600 -0.000000 0.977100
|
||||
vn 0.071300 -0.000000 0.997500
|
||||
vn 0.071300 0.997500 0.000000
|
||||
vn 0.212600 0.977100 0.000000
|
||||
vn 0.349500 0.936900 0.000000
|
||||
vn 0.479200 0.877700 0.000000
|
||||
vn 0.599300 0.800500 0.000000
|
||||
vn 0.707100 0.707100 0.000000
|
||||
vn 0.800500 0.599300 0.000000
|
||||
vn 0.877700 0.479300 0.000000
|
||||
vn 0.937000 0.349500 0.000000
|
||||
vn 0.977100 0.212600 0.000000
|
||||
vn 0.997500 0.071300 0.000000
|
||||
vn -0.997400 -0.071400 -0.000000
|
||||
vn -0.977200 -0.212500 -0.000000
|
||||
vn -0.937000 -0.349500 -0.000000
|
||||
vn -0.877700 -0.479300 -0.000000
|
||||
vn -0.800500 -0.599300 -0.000000
|
||||
vn -0.707100 -0.707100 -0.000000
|
||||
vn -0.599300 -0.800500 -0.000000
|
||||
vn -0.479200 -0.877700 -0.000000
|
||||
vn -0.349500 -0.936900 -0.000000
|
||||
vn -0.212600 -0.977100 -0.000000
|
||||
vn -0.071300 -0.997500 -0.000000
|
||||
vn -0.071300 0.000000 0.997500
|
||||
vn -0.212600 0.000000 0.977100
|
||||
vn -0.349500 0.000000 0.936900
|
||||
vn -0.479200 -0.000000 0.877700
|
||||
vn -0.599300 -0.000000 0.800500
|
||||
vn -0.707100 -0.000000 0.707100
|
||||
vn -0.800500 -0.000000 0.599300
|
||||
vn -0.877700 -0.000000 0.479300
|
||||
vn -0.936900 -0.000000 0.349500
|
||||
vn -0.977200 -0.000000 0.212500
|
||||
vn -0.997500 -0.000000 0.071400
|
||||
vn -0.997500 -0.000000 -0.071400
|
||||
vn -0.977200 -0.000000 -0.212500
|
||||
vn -0.937000 -0.000000 -0.349500
|
||||
vn -0.877700 -0.000000 -0.479300
|
||||
vn -0.800500 -0.000000 -0.599300
|
||||
vn -0.707100 -0.000000 -0.707100
|
||||
vn -0.599300 0.000000 -0.800500
|
||||
vn -0.479200 0.000000 -0.877700
|
||||
vn -0.349500 0.000000 -0.936900
|
||||
vn -0.212600 0.000000 -0.977100
|
||||
vn -0.071300 0.000000 -0.997500
|
||||
vn -0.071300 0.997500 -0.000000
|
||||
vn -0.212600 0.977100 -0.000000
|
||||
vn -0.349500 0.936900 -0.000000
|
||||
vn -0.479200 0.877700 -0.000000
|
||||
vn -0.599300 0.800500 -0.000000
|
||||
vn -0.707100 0.707100 -0.000000
|
||||
vn -0.800500 0.599300 -0.000000
|
||||
vn -0.877700 0.479300 -0.000000
|
||||
vn -0.936900 0.349500 -0.000000
|
||||
vn -0.977200 0.212500 -0.000000
|
||||
vn -0.997400 0.071400 -0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
s off
|
||||
f 10/1/1 9/2/1 11/1/1 126/3/1 125/4/1 124/3/1 6/5/1 2/5/1
|
||||
f 9/6/2 55/7/2 79/8/2 33/9/2
|
||||
f 1/10/3 5/10/3 102/11/3 101/12/3 103/11/3 34/13/3 33/14/3 32/13/3
|
||||
f 57/15/4 172/16/4 149/17/4 80/18/4
|
||||
f 101/9/5 147/8/5 171/7/5 125/6/5
|
||||
f 3/10/6 7/10/6 148/11/6 147/12/6 149/11/6 80/13/6 79/14/6 78/13/6
|
||||
f 56/1/7 55/19/7 57/1/7 172/3/7 171/20/7 170/3/7 8/5/7 4/5/7
|
||||
f 78/1/8 80/1/8 149/3/8 148/3/8 103/21/8 34/22/8
|
||||
f 2/5/9 6/5/9 124/3/9 126/3/9 11/1/9 10/1/9
|
||||
f 11/23/10 126/24/10 170/25/10 172/25/10 57/26/10 56/26/10
|
||||
f 4/5/11 8/5/11 170/3/11 172/3/11 57/1/11 56/1/11
|
||||
f 32/1/12 34/1/12 103/3/12 102/3/12 5/5/12 1/5/12
|
||||
f 78/27/13 80/27/13 149/28/13 148/28/13 7/29/13 3/29/13
|
||||
f 22/30/14 21/31/14 10/1/14 11/1/14
|
||||
f 23/32/15 20/33/15 21/31/15 22/30/15
|
||||
f 24/34/16 19/35/16 20/36/16 23/37/16
|
||||
f 25/38/17 18/39/17 19/35/17 24/34/17
|
||||
f 26/40/18 17/41/18 18/39/18 25/38/18
|
||||
f 27/42/19 16/43/19 17/41/19 26/40/19
|
||||
f 28/44/20 15/45/20 16/43/20 27/42/20
|
||||
f 29/46/21 14/47/21 15/45/21 28/44/21
|
||||
f 30/48/22 13/49/22 14/47/22 29/46/22
|
||||
f 12/50/23 13/49/23 30/48/23 31/51/23
|
||||
f 9/6/24 12/50/24 31/51/24
|
||||
f 45/52/25 44/53/25 33/9/25
|
||||
f 46/54/26 43/55/26 44/53/26 45/52/26
|
||||
f 47/56/27 42/57/27 43/55/27 46/54/27
|
||||
f 48/58/28 41/59/28 42/57/28 47/56/28
|
||||
f 49/60/29 40/61/29 41/59/29 48/58/29
|
||||
f 50/62/30 39/63/30 40/61/30 49/60/30
|
||||
f 51/64/31 38/65/31 39/63/31 50/62/31
|
||||
f 52/66/32 37/67/32 38/65/32 51/64/32
|
||||
f 53/68/33 36/69/33 37/67/33 52/66/33
|
||||
f 35/30/34 36/32/34 53/33/34 54/31/34
|
||||
f 32/1/35 35/30/35 54/31/35 34/1/35
|
||||
f 68/70/36 67/71/36 56/27/36 57/27/36
|
||||
f 69/72/37 66/73/37 67/71/37 68/70/37
|
||||
f 70/74/38 65/75/38 66/76/38 69/77/38
|
||||
f 71/78/39 64/79/39 65/75/39 70/74/39
|
||||
f 72/80/40 63/81/40 64/79/40 71/78/40
|
||||
f 73/82/41 62/83/41 63/81/41 72/80/41
|
||||
f 74/84/42 61/85/42 62/83/42 73/82/42
|
||||
f 75/86/43 60/87/43 61/85/43 74/84/43
|
||||
f 76/88/44 59/89/44 60/87/44 75/86/44
|
||||
f 58/90/45 59/89/45 76/88/45 77/91/45
|
||||
f 55/7/46 58/90/46 77/91/46
|
||||
f 91/92/47 90/93/47 79/8/47
|
||||
f 92/94/48 89/95/48 90/93/48 91/92/48
|
||||
f 93/96/49 88/97/49 89/95/49 92/94/49
|
||||
f 94/98/50 87/99/50 88/97/50 93/96/50
|
||||
f 95/100/51 86/101/51 87/99/51 94/98/51
|
||||
f 96/102/52 85/103/52 86/101/52 95/100/52
|
||||
f 97/104/53 84/105/53 85/103/53 96/102/53
|
||||
f 98/106/54 83/107/54 84/105/54 97/104/54
|
||||
f 99/108/55 82/109/55 83/107/55 98/106/55
|
||||
f 81/71/56 82/73/56 99/72/56 100/70/56
|
||||
f 78/27/57 81/110/57 100/111/57 80/27/57
|
||||
f 114/112/58 113/113/58 102/11/58 103/11/58
|
||||
f 115/114/59 112/115/59 113/113/59 114/112/59
|
||||
f 116/66/60 111/67/60 112/69/60 115/68/60
|
||||
f 117/64/61 110/65/61 111/67/61 116/66/61
|
||||
f 118/62/62 109/63/62 110/65/62 117/64/62
|
||||
f 119/60/63 108/61/63 109/63/63 118/62/63
|
||||
f 120/58/64 107/59/64 108/61/64 119/60/64
|
||||
f 121/56/65 106/57/65 107/59/65 120/58/65
|
||||
f 122/54/66 105/55/66 106/57/66 121/56/66
|
||||
f 104/53/67 105/55/67 122/54/67 123/52/67
|
||||
f 101/9/68 104/53/68 123/52/68
|
||||
f 137/51/69 136/50/69 125/6/69
|
||||
f 138/48/70 135/49/70 136/50/70 137/51/70
|
||||
f 139/46/71 134/47/71 135/49/71 138/48/71
|
||||
f 140/44/72 133/45/72 134/47/72 139/46/72
|
||||
f 141/42/73 132/43/73 133/45/73 140/44/73
|
||||
f 142/40/74 131/41/74 132/43/74 141/42/74
|
||||
f 143/38/75 130/39/75 131/41/75 142/40/75
|
||||
f 144/34/76 129/35/76 130/39/76 143/38/76
|
||||
f 145/37/77 128/36/77 129/35/77 144/34/77
|
||||
f 127/116/78 128/117/78 145/118/78 146/119/78
|
||||
f 124/11/79 127/120/79 146/121/79 126/11/79
|
||||
f 160/119/80 159/116/80 148/122/80 149/122/80
|
||||
f 161/118/81 158/117/81 159/116/81 160/119/81
|
||||
f 162/106/82 157/107/82 158/109/82 161/108/82
|
||||
f 163/104/83 156/105/83 157/107/83 162/106/83
|
||||
f 164/102/84 155/103/84 156/105/84 163/104/84
|
||||
f 165/100/85 154/101/85 155/103/85 164/102/85
|
||||
f 166/98/86 153/99/86 154/101/86 165/100/86
|
||||
f 167/96/87 152/97/87 153/99/87 166/98/87
|
||||
f 168/94/88 151/95/88 152/97/88 167/96/88
|
||||
f 150/93/89 151/95/89 168/94/89 169/92/89
|
||||
f 147/8/90 150/93/90 169/92/90
|
||||
f 183/91/91 182/90/91 171/7/91
|
||||
f 184/88/92 181/89/92 182/90/92 183/91/92
|
||||
f 185/86/93 180/87/93 181/89/93 184/88/93
|
||||
f 186/84/94 179/85/94 180/87/94 185/86/94
|
||||
f 187/82/95 178/83/95 179/85/95 186/84/95
|
||||
f 188/80/96 177/81/96 178/83/96 187/82/96
|
||||
f 189/78/97 176/79/97 177/81/97 188/80/97
|
||||
f 190/74/98 175/75/98 176/79/98 189/78/98
|
||||
f 191/77/99 174/76/99 175/75/99 190/74/99
|
||||
f 173/116/100 174/117/100 191/118/100 192/119/100
|
||||
f 170/11/101 173/121/101 192/120/101 172/11/101
|
||||
f 9/6/102 33/9/102 44/53/102 12/50/102
|
||||
f 12/50/103 44/53/103 43/55/103 13/49/103
|
||||
f 13/49/104 43/55/104 42/57/104 14/47/104
|
||||
f 14/47/105 42/57/105 41/59/105 15/45/105
|
||||
f 15/45/106 41/59/106 40/61/106 16/43/106
|
||||
f 16/123/107 40/124/107 39/125/107 17/126/107
|
||||
f 17/126/108 39/125/108 38/127/108 18/128/108
|
||||
f 18/128/109 38/127/109 37/129/109 19/130/109
|
||||
f 19/130/110 37/129/110 36/32/110 20/73/110
|
||||
f 20/73/111 36/32/111 35/30/111 21/71/111
|
||||
f 21/71/112 35/30/112 32/1/112 10/27/112
|
||||
f 11/1/113 56/27/113 67/71/113 22/30/113
|
||||
f 22/30/114 67/71/114 66/73/114 23/32/114
|
||||
f 23/32/115 66/73/115 65/130/115 24/129/115
|
||||
f 24/129/116 65/130/116 64/128/116 25/127/116
|
||||
f 25/127/117 64/128/117 63/126/117 26/125/117
|
||||
f 26/125/118 63/126/118 62/123/118 27/124/118
|
||||
f 27/42/119 62/83/119 61/85/119 28/44/119
|
||||
f 28/44/120 61/85/120 60/87/120 29/46/120
|
||||
f 29/46/121 60/87/121 59/89/121 30/48/121
|
||||
f 30/48/122 59/89/122 58/90/122 31/51/122
|
||||
f 31/51/123 58/90/123 55/7/123 9/6/123
|
||||
f 33/9/124 79/8/124 90/93/124 45/52/124
|
||||
f 45/52/125 90/93/125 89/95/125 46/54/125
|
||||
f 46/54/126 89/95/126 88/97/126 47/56/126
|
||||
f 47/56/127 88/97/127 87/99/127 48/58/127
|
||||
f 48/58/128 87/99/128 86/101/128 49/60/128
|
||||
f 49/124/129 86/123/129 85/126/129 50/125/129
|
||||
f 50/125/130 85/126/130 84/128/130 51/127/130
|
||||
f 51/127/131 84/128/131 83/130/131 52/129/131
|
||||
f 52/129/132 83/130/132 82/73/132 53/32/132
|
||||
f 53/32/133 82/73/133 81/71/133 54/30/133
|
||||
f 54/30/134 81/71/134 78/27/134 34/1/134
|
||||
f 57/27/135 80/1/135 100/30/135 68/71/135
|
||||
f 68/71/136 100/30/136 99/32/136 69/73/136
|
||||
f 69/73/137 99/32/137 98/129/137 70/130/137
|
||||
f 70/130/138 98/129/138 97/127/138 71/128/138
|
||||
f 71/128/139 97/127/139 96/125/139 72/126/139
|
||||
f 72/126/140 96/125/140 95/124/140 73/123/140
|
||||
f 73/82/141 95/100/141 94/98/141 74/84/141
|
||||
f 74/84/142 94/98/142 93/96/142 75/86/142
|
||||
f 75/86/143 93/96/143 92/94/143 76/88/143
|
||||
f 76/88/144 92/94/144 91/92/144 77/91/144
|
||||
f 77/91/145 91/92/145 79/8/145 55/7/145
|
||||
f 101/9/146 125/6/146 136/50/146 104/53/146
|
||||
f 104/53/147 136/50/147 135/49/147 105/55/147
|
||||
f 105/55/148 135/49/148 134/47/148 106/57/148
|
||||
f 106/57/149 134/47/149 133/45/149 107/59/149
|
||||
f 107/59/150 133/45/150 132/43/150 108/61/150
|
||||
f 108/131/151 132/132/151 131/133/151 109/134/151
|
||||
f 109/134/152 131/133/152 130/135/152 110/136/152
|
||||
f 110/136/153 130/135/153 129/137/153 111/138/153
|
||||
f 111/138/154 129/137/154 128/117/154 112/115/154
|
||||
f 112/115/155 128/117/155 127/116/155 113/113/155
|
||||
f 113/113/156 127/116/156 124/122/156 102/11/156
|
||||
f 103/122/157 148/139/157 159/140/157 114/141/157
|
||||
f 114/113/158 159/116/158 158/117/158 115/115/158
|
||||
f 115/115/159 158/117/159 157/137/159 116/138/159
|
||||
f 116/138/160 157/137/160 156/135/160 117/136/160
|
||||
f 117/136/161 156/135/161 155/133/161 118/134/161
|
||||
f 118/134/162 155/133/162 154/132/162 119/131/162
|
||||
f 119/60/163 154/101/163 153/99/163 120/58/163
|
||||
f 120/58/164 153/99/164 152/97/164 121/56/164
|
||||
f 121/56/165 152/97/165 151/95/165 122/54/165
|
||||
f 122/54/166 151/95/166 150/93/166 123/52/166
|
||||
f 123/52/167 150/93/167 147/8/167 101/9/167
|
||||
f 125/6/168 171/7/168 182/90/168 137/51/168
|
||||
f 137/51/169 182/90/169 181/89/169 138/48/169
|
||||
f 138/48/170 181/89/170 180/87/170 139/46/170
|
||||
f 139/46/171 180/87/171 179/85/171 140/44/171
|
||||
f 140/44/172 179/85/172 178/83/172 141/42/172
|
||||
f 141/131/173 178/132/173 177/133/173 142/134/173
|
||||
f 142/134/174 177/133/174 176/135/174 143/136/174
|
||||
f 143/136/175 176/135/175 175/137/175 144/138/175
|
||||
f 144/138/176 175/137/176 174/117/176 145/115/176
|
||||
f 145/115/177 174/117/177 173/116/177 146/113/177
|
||||
f 146/113/178 173/116/178 170/122/178 126/11/178
|
||||
f 149/11/179 172/122/179 192/116/179 160/113/179
|
||||
f 160/113/180 192/116/180 191/117/180 161/115/180
|
||||
f 161/115/181 191/117/181 190/137/181 162/138/181
|
||||
f 162/138/182 190/137/182 189/135/182 163/136/182
|
||||
f 163/136/183 189/135/183 188/133/183 164/134/183
|
||||
f 164/134/184 188/133/184 187/132/184 165/131/184
|
||||
f 165/100/185 187/82/185 186/84/185 166/98/185
|
||||
f 166/98/186 186/84/186 185/86/186 167/96/186
|
||||
f 167/96/187 185/86/187 184/88/187 168/94/187
|
||||
f 168/94/188 184/88/188 183/91/188 169/92/188
|
||||
f 169/92/189 183/91/189 171/7/189 147/8/189
|
||||
f 32/142/190 34/142/190 103/143/190 102/143/190 124/144/190 126/144/190 11/145/190 10/145/190
|
12
Levels/Geometry/marbleSmooth.mtl
Normal file
@ -0,0 +1,12 @@
|
||||
# Blender MTL File: 'marbleSmooth.blend'
|
||||
# Material Count: 1
|
||||
|
||||
newmtl Material.001
|
||||
Ns 96.078431
|
||||
Ka 0.000000 0.000000 0.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 1
|
||||
map_Kd /home/sfroitzheim/swp/Blenderfiles/Marbletexture1.jpg
|
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
|
266
Levels/Geometry/torch.obj
Normal file
@ -0,0 +1,266 @@
|
||||
# Blender v2.71 (sub 0) OBJ File: 'torch.blend'
|
||||
# www.blender.org
|
||||
o Cylinder
|
||||
v 0.000000 -1.000000 -0.087051
|
||||
v -0.000000 1.000000 -0.191513
|
||||
v 0.016983 -1.000000 -0.085379
|
||||
v 0.037362 1.000000 -0.187833
|
||||
v 0.033313 -1.000000 -0.080425
|
||||
v 0.073289 1.000000 -0.176935
|
||||
v 0.048363 -1.000000 -0.072380
|
||||
v 0.106399 1.000000 -0.159237
|
||||
v 0.061555 -1.000000 -0.061555
|
||||
v 0.135420 1.000000 -0.135420
|
||||
v 0.072380 -1.000000 -0.048363
|
||||
v 0.159237 1.000000 -0.106399
|
||||
v 0.080425 -1.000000 -0.033313
|
||||
v 0.176935 1.000000 -0.073289
|
||||
v 0.085379 -1.000000 -0.016983
|
||||
v 0.187833 1.000000 -0.037362
|
||||
v 0.087051 -1.000000 -0.000000
|
||||
v 0.191513 1.000000 0.000000
|
||||
v 0.085379 -1.000000 0.016983
|
||||
v 0.187833 1.000000 0.037362
|
||||
v 0.080425 -1.000000 0.033313
|
||||
v 0.176935 1.000000 0.073289
|
||||
v 0.072380 -1.000000 0.048363
|
||||
v 0.159237 1.000000 0.106399
|
||||
v 0.061555 -1.000000 0.061555
|
||||
v 0.135420 1.000000 0.135420
|
||||
v 0.048363 -1.000000 0.072380
|
||||
v 0.106399 1.000000 0.159237
|
||||
v 0.033313 -1.000000 0.080425
|
||||
v 0.073289 1.000000 0.176935
|
||||
v 0.016983 -1.000000 0.085379
|
||||
v 0.037362 1.000000 0.187833
|
||||
v -0.000000 -1.000000 0.087051
|
||||
v -0.000000 1.000000 0.191513
|
||||
v -0.016983 -1.000000 0.085379
|
||||
v -0.037362 1.000000 0.187833
|
||||
v -0.033313 -1.000000 0.080425
|
||||
v -0.073289 1.000000 0.176935
|
||||
v -0.048363 -1.000000 0.072380
|
||||
v -0.106399 1.000000 0.159237
|
||||
v -0.061555 -1.000000 0.061555
|
||||
v -0.135420 1.000000 0.135420
|
||||
v -0.072381 -1.000000 0.048363
|
||||
v -0.159237 1.000000 0.106399
|
||||
v -0.080425 -1.000000 0.033313
|
||||
v -0.176935 1.000000 0.073289
|
||||
v -0.085379 -1.000000 0.016983
|
||||
v -0.187833 1.000000 0.037362
|
||||
v -0.087051 -1.000000 -0.000000
|
||||
v -0.191513 1.000000 -0.000000
|
||||
v -0.085379 -1.000000 -0.016983
|
||||
v -0.187833 1.000000 -0.037362
|
||||
v -0.080425 -1.000000 -0.033313
|
||||
v -0.176935 1.000000 -0.073289
|
||||
v -0.072380 -1.000000 -0.048363
|
||||
v -0.159237 1.000000 -0.106399
|
||||
v -0.061554 -1.000000 -0.061555
|
||||
v -0.135420 1.000000 -0.135420
|
||||
v -0.048363 -1.000000 -0.072381
|
||||
v -0.106399 1.000000 -0.159237
|
||||
v -0.033313 -1.000000 -0.080425
|
||||
v -0.073289 1.000000 -0.176935
|
||||
v -0.016983 -1.000000 -0.085379
|
||||
v -0.037362 1.000000 -0.187833
|
||||
vt 0.173159 0.324353
|
||||
vt 0.355490 0.133897
|
||||
vt 0.388961 0.169345
|
||||
vt 0.188374 0.340465
|
||||
vt 0.418692 0.207984
|
||||
vt 0.201889 0.358028
|
||||
vt 0.444379 0.249421
|
||||
vt 0.213565 0.376862
|
||||
vt 0.465761 0.293235
|
||||
vt 0.223285 0.396777
|
||||
vt 0.482621 0.338980
|
||||
vt 0.230950 0.417570
|
||||
vt 0.494787 0.386190
|
||||
vt 0.236481 0.439028
|
||||
vt 0.502136 0.434385
|
||||
vt 0.239822 0.460935
|
||||
vt 0.504593 0.483075
|
||||
vt 0.240940 0.483066
|
||||
vt 0.502132 0.531764
|
||||
vt 0.239822 0.505197
|
||||
vt 0.494779 0.579957
|
||||
vt 0.236481 0.527103
|
||||
vt 0.482609 0.627165
|
||||
vt 0.230950 0.548561
|
||||
vt 0.465746 0.672906
|
||||
vt 0.223286 0.569353
|
||||
vt 0.444361 0.716715
|
||||
vt 0.213567 0.589266
|
||||
vt 0.418672 0.758148
|
||||
vt 0.201891 0.608099
|
||||
vt 0.388940 0.796782
|
||||
vt 0.188377 0.625660
|
||||
vt 0.355468 0.832224
|
||||
vt 0.173163 0.641770
|
||||
vt 0.318596 0.864115
|
||||
vt 0.156403 0.656266
|
||||
vt 0.278700 0.892129
|
||||
vt 0.138269 0.669000
|
||||
vt 0.236185 0.915982
|
||||
vt 0.118944 0.679843
|
||||
vt 0.191483 0.935431
|
||||
vt 0.098625 0.688683
|
||||
vt 0.145050 0.950278
|
||||
vt 0.077519 0.695432
|
||||
vt 0.097357 0.960373
|
||||
vt 0.055840 0.700021
|
||||
vt 0.048890 0.965612
|
||||
vt 0.033810 0.702402
|
||||
vt 0.000142 0.965943
|
||||
vt 0.011651 0.702553
|
||||
vt 0.011637 0.263556
|
||||
vt 0.000142 0.000142
|
||||
vt 0.048895 0.000476
|
||||
vt 0.033797 0.263708
|
||||
vt 0.097366 0.005719
|
||||
vt 0.055829 0.266091
|
||||
vt 0.145063 0.015817
|
||||
vt 0.077509 0.270681
|
||||
vt 0.191499 0.030670
|
||||
vt 0.098617 0.277432
|
||||
vt 0.236203 0.050124
|
||||
vt 0.118937 0.286274
|
||||
vt 0.278720 0.073982
|
||||
vt 0.138263 0.297119
|
||||
vt 0.635136 0.466957
|
||||
vt 0.594601 0.439872
|
||||
vt 0.560128 0.405399
|
||||
vt 0.533043 0.364864
|
||||
vt 0.514387 0.319824
|
||||
vt 0.504876 0.272009
|
||||
vt 0.504876 0.223258
|
||||
vt 0.514387 0.175443
|
||||
vt 0.533044 0.130402
|
||||
vt 0.560129 0.089866
|
||||
vt 0.594602 0.055394
|
||||
vt 0.635137 0.028309
|
||||
vt 0.680177 0.009653
|
||||
vt 0.727992 0.000142
|
||||
vt 0.776744 0.000142
|
||||
vt 0.824559 0.009653
|
||||
vt 0.869599 0.028309
|
||||
vt 0.910135 0.055395
|
||||
vt 0.944607 0.089867
|
||||
vt 0.971691 0.130402
|
||||
vt 0.990347 0.175442
|
||||
vt 0.999858 0.223257
|
||||
vt 0.999858 0.272009
|
||||
vt 0.990347 0.319823
|
||||
vt 0.971691 0.364863
|
||||
vt 0.944606 0.405398
|
||||
vt 0.910133 0.439871
|
||||
vt 0.869598 0.466956
|
||||
vt 0.824557 0.485613
|
||||
vt 0.776743 0.495124
|
||||
vt 0.727992 0.495124
|
||||
vt 0.680177 0.485613
|
||||
vt 0.156399 0.309855
|
||||
vt 0.318618 0.102002
|
||||
vt 0.545660 0.520522
|
||||
vt 0.564085 0.508211
|
||||
vt 0.584558 0.499731
|
||||
vt 0.606292 0.495408
|
||||
vt 0.628452 0.495407
|
||||
vt 0.650186 0.499730
|
||||
vt 0.670659 0.508211
|
||||
vt 0.689084 0.520522
|
||||
vt 0.704753 0.536191
|
||||
vt 0.717065 0.554616
|
||||
vt 0.725545 0.575089
|
||||
vt 0.729868 0.596823
|
||||
vt 0.729868 0.618983
|
||||
vt 0.725545 0.640717
|
||||
vt 0.717065 0.661190
|
||||
vt 0.704754 0.679615
|
||||
vt 0.689084 0.695284
|
||||
vt 0.670659 0.707596
|
||||
vt 0.650185 0.716076
|
||||
vt 0.628452 0.720399
|
||||
vt 0.606292 0.720399
|
||||
vt 0.584558 0.716076
|
||||
vt 0.564085 0.707595
|
||||
vt 0.545660 0.695284
|
||||
vt 0.529990 0.679615
|
||||
vt 0.517679 0.661190
|
||||
vt 0.509199 0.640717
|
||||
vt 0.504876 0.618983
|
||||
vt 0.504876 0.596824
|
||||
vt 0.509199 0.575090
|
||||
vt 0.517679 0.554617
|
||||
vt 0.529991 0.536192
|
||||
vn 0.097900 -0.051900 -0.993800
|
||||
vn 0.289900 -0.051900 -0.955700
|
||||
vn 0.470800 -0.051900 -0.880700
|
||||
vn 0.633500 -0.051900 -0.772000
|
||||
vn 0.772000 -0.051900 -0.633500
|
||||
vn 0.880700 -0.051900 -0.470800
|
||||
vn 0.955700 -0.051900 -0.289900
|
||||
vn 0.993800 -0.051900 -0.097900
|
||||
vn 0.993800 -0.051900 0.097900
|
||||
vn 0.955700 -0.051900 0.289900
|
||||
vn 0.880700 -0.051900 0.470800
|
||||
vn 0.772000 -0.051900 0.633500
|
||||
vn 0.633500 -0.051900 0.772000
|
||||
vn 0.470800 -0.051900 0.880700
|
||||
vn 0.289900 -0.051900 0.955700
|
||||
vn 0.097900 -0.051900 0.993800
|
||||
vn -0.097900 -0.051900 0.993800
|
||||
vn -0.289900 -0.051900 0.955600
|
||||
vn -0.470800 -0.051900 0.880700
|
||||
vn -0.633500 -0.051900 0.772000
|
||||
vn -0.772000 -0.051900 0.633500
|
||||
vn -0.880700 -0.051900 0.470800
|
||||
vn -0.955700 -0.051900 0.289900
|
||||
vn -0.993800 -0.051900 0.097900
|
||||
vn -0.993800 -0.051900 -0.097900
|
||||
vn -0.955600 -0.051900 -0.289900
|
||||
vn -0.880700 -0.051900 -0.470800
|
||||
vn -0.772000 -0.051900 -0.633500
|
||||
vn -0.633500 -0.051900 -0.772000
|
||||
vn -0.470800 -0.051900 -0.880700
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -0.097900 -0.051900 -0.993800
|
||||
vn -0.289900 -0.051900 -0.955700
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
s off
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
f 3/4/2 4/3/2 6/5/2 5/6/2
|
||||
f 5/6/3 6/5/3 8/7/3 7/8/3
|
||||
f 7/8/4 8/7/4 10/9/4 9/10/4
|
||||
f 9/10/5 10/9/5 12/11/5 11/12/5
|
||||
f 11/12/6 12/11/6 14/13/6 13/14/6
|
||||
f 13/14/7 14/13/7 16/15/7 15/16/7
|
||||
f 15/16/8 16/15/8 18/17/8 17/18/8
|
||||
f 17/18/9 18/17/9 20/19/9 19/20/9
|
||||
f 19/20/10 20/19/10 22/21/10 21/22/10
|
||||
f 21/22/11 22/21/11 24/23/11 23/24/11
|
||||
f 23/24/12 24/23/12 26/25/12 25/26/12
|
||||
f 25/26/13 26/25/13 28/27/13 27/28/13
|
||||
f 27/28/14 28/27/14 30/29/14 29/30/14
|
||||
f 29/30/15 30/29/15 32/31/15 31/32/15
|
||||
f 31/32/16 32/31/16 34/33/16 33/34/16
|
||||
f 33/34/17 34/33/17 36/35/17 35/36/17
|
||||
f 35/36/18 36/35/18 38/37/18 37/38/18
|
||||
f 37/38/19 38/37/19 40/39/19 39/40/19
|
||||
f 39/40/20 40/39/20 42/41/20 41/42/20
|
||||
f 41/42/21 42/41/21 44/43/21 43/44/21
|
||||
f 43/44/22 44/43/22 46/45/22 45/46/22
|
||||
f 45/46/23 46/45/23 48/47/23 47/48/23
|
||||
f 47/48/24 48/47/24 50/49/24 49/50/24
|
||||
f 49/51/25 50/52/25 52/53/25 51/54/25
|
||||
f 51/54/26 52/53/26 54/55/26 53/56/26
|
||||
f 53/56/27 54/55/27 56/57/27 55/58/27
|
||||
f 55/58/28 56/57/28 58/59/28 57/60/28
|
||||
f 57/60/29 58/59/29 60/61/29 59/62/29
|
||||
f 59/62/30 60/61/30 62/63/30 61/64/30
|
||||
f 4/65/31 2/66/31 64/67/31 62/68/31 60/69/31 58/70/31 56/71/31 54/72/31 52/73/31 50/74/31 48/75/31 46/76/31 44/77/31 42/78/31 40/79/31 38/80/31 36/81/31 34/82/31 32/83/31 30/84/31 28/85/31 26/86/31 24/87/31 22/88/31 20/89/31 18/90/31 16/91/31 14/92/31 12/93/31 10/94/31 8/95/31 6/96/31
|
||||
f 63/97/32 64/98/32 2/2/32 1/1/32
|
||||
f 61/64/33 62/63/33 64/98/33 63/97/33
|
||||
f 1/99/34 3/100/34 5/101/34 7/102/34 9/103/34 11/104/34 13/105/34 15/106/34 17/107/34 19/108/34 21/109/34 23/110/34 25/111/34 27/112/34 29/113/34 31/114/34 33/115/34 35/116/34 37/117/34 39/118/34 41/119/34 43/120/34 45/121/34 47/122/34 49/123/34 51/124/34 53/125/34 55/126/34 57/127/34 59/128/34 61/129/34 63/130/34
|
BIN
Levels/ObjectSetups/BackupLevel0.png
Normal file
After Width: | Height: | Size: 158 B |
180
Levels/ObjectSetups/Compositions.xml
Normal file
@ -0,0 +1,180 @@
|
||||
<composition>
|
||||
<typeID>20</typeID>
|
||||
<object>
|
||||
<modelPath>marbleSmooth.obj</modelPath>
|
||||
<xOffset>0.0</xOffset>
|
||||
<yOffset>0.0</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<scale>0.75</scale>
|
||||
<mass>8.0</mass>
|
||||
</object>
|
||||
</composition>
|
||||
|
||||
<composition>
|
||||
<typeID>40</typeID>
|
||||
<object>
|
||||
<modelPath>block.obj</modelPath>
|
||||
<xOffset>0.0</xOffset>
|
||||
<yOffset>1.0</yOffset>
|
||||
<zOffset>2.0</zOffset>
|
||||
<scale>1.0</scale>
|
||||
<mass>2.0</mass>
|
||||
</object>
|
||||
</composition>
|
||||
|
||||
<composition>
|
||||
<typeID>60</typeID>
|
||||
<object>
|
||||
<modelPath>column.obj</modelPath>
|
||||
<xOffset>0.0</xOffset>
|
||||
<yOffset>0.0</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<scale>1.0</scale>
|
||||
<mass>2.0</mass>
|
||||
</object>
|
||||
</composition>
|
||||
|
||||
<composition>
|
||||
<typeID>99</typeID>
|
||||
<object>
|
||||
<modelPath>torch.obj</modelPath>
|
||||
<xOffset>0.0</xOffset>
|
||||
<yOffset>0.0</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<scale>1.0</scale>
|
||||
<mass>0.0</mass>
|
||||
</object>
|
||||
<light>
|
||||
<xOffset>0.0</xOffset>
|
||||
<yOffset>3</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<rColour>1.0</rColour>
|
||||
<gColour>1.0</gColour>
|
||||
<bColour>1.0</bColour>
|
||||
<intensity>4.0</intensity>
|
||||
</light>
|
||||
</composition>
|
||||
|
||||
<composition>
|
||||
<typeID>100</typeID>
|
||||
<object>
|
||||
<modelPath>column.obj</modelPath>
|
||||
<xOffset>0.0</xOffset>
|
||||
<yOffset>0.0</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<scale>1.0</scale>
|
||||
<mass>0.0</mass>
|
||||
</object>
|
||||
<object>
|
||||
<modelPath>column.obj</modelPath>
|
||||
<xOffset>2.0</xOffset>
|
||||
<yOffset>0.0</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<scale>1.0</scale>
|
||||
<mass>0.0</mass>
|
||||
</object>
|
||||
<object>
|
||||
<modelPath>block.obj</modelPath>
|
||||
<xOffset>1.0</xOffset>
|
||||
<yOffset>3.0</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<scale>1.0</scale>
|
||||
<mass>0.0</mass>
|
||||
</object>
|
||||
</composition>
|
||||
|
||||
<composition>
|
||||
<typeID>120</typeID>
|
||||
<object>
|
||||
<modelPath>switch_inner.obj</modelPath>
|
||||
<xOffset>0.0</xOffset>
|
||||
<yOffset>0.0</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<scale>1.0</scale>
|
||||
<mass>1.0</mass>
|
||||
</object>
|
||||
<object>
|
||||
<modelPath>switch_outer.obj</modelPath>
|
||||
<xOffset>0.0</xOffset>
|
||||
<yOffset>0.0</yOffset>
|
||||
<zOffset>0.0</zOffset>
|
||||
<scale>1.0</scale>
|
||||
<mass>0.0</mass>
|
||||
</object>
|
||||
</composition>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<objectData>
|
||||
<modelPath>marbleSmooth.obj</modelPath>
|
||||
<texturePath>MarbleTexture.png</texturePath>
|
||||
<ambientFactor>0.1</ambientFactor>
|
||||
<diffuseFactor>0.5</diffuseFactor>
|
||||
<specularFactor>0.5</specularFactor>
|
||||
<shininess>3.0</shininess>
|
||||
<physicType>Player</physicType>
|
||||
<radius>1.25</radius>
|
||||
</objectData>
|
||||
|
||||
<objectData>
|
||||
<modelPath>block.obj</modelPath>
|
||||
<texturePath>blockTexture_small.png</texturePath>
|
||||
<ambientFactor>0.1</ambientFactor>
|
||||
<diffuseFactor>0.6</diffuseFactor>
|
||||
<specularFactor>0.4</specularFactor>
|
||||
<shininess>2.0</shininess>
|
||||
<physicType>Box</physicType>
|
||||
<width>1.0</width>
|
||||
<height>1.0</height>
|
||||
<length>3.0</length>
|
||||
</objectData>
|
||||
|
||||
<objectData>
|
||||
<modelPath>column.obj</modelPath>
|
||||
<texturePath>columnTexture2.png</texturePath>
|
||||
<ambientFactor>0.1</ambientFactor>
|
||||
<diffuseFactor>0.6</diffuseFactor>
|
||||
<specularFactor>0.4</specularFactor>
|
||||
<shininess>2.0</shininess>
|
||||
<physicType>TriangleMesh</physicType>
|
||||
<dampningL>1.0</dampningL>
|
||||
<dampningA>1.0</dampningA>
|
||||
</objectData>
|
||||
|
||||
<objectData>
|
||||
<modelPath>torch.obj</modelPath>
|
||||
<texturePath>torchTexture.png</texturePath>
|
||||
<ambientFactor>0.1</ambientFactor>
|
||||
<diffuseFactor>0.3</diffuseFactor>
|
||||
<specularFactor>0.7</specularFactor>
|
||||
<shininess>10.0</shininess>
|
||||
<physicType>TriangleMesh</physicType>
|
||||
<dampningL>1.0</dampningL>
|
||||
<dampningA>1.0</dampningA>
|
||||
</objectData>
|
||||
|
||||
<objectData>
|
||||
<modelPath>switch_inner.obj</modelPath>
|
||||
<texturePath>switchTextureInner.png</texturePath>
|
||||
<ambientFactor>0.1</ambientFactor>
|
||||
<diffuseFactor>0.6</diffuseFactor>
|
||||
<specularFactor>0.4</specularFactor>
|
||||
<shininess>2.0</shininess>
|
||||
<physicType>TriangleMesh</physicType>
|
||||
<dampningL>0.5</dampningL>
|
||||
<dampningA>0.5</dampningA>
|
||||
</objectData>
|
||||
|
||||
<objectData>
|
||||
<modelPath>switch_outer.obj</modelPath>
|
||||
<texturePath>switchTextureOuter.png</texturePath>
|
||||
<ambientFactor>0.1</ambientFactor>
|
||||
<diffuseFactor>0.6</diffuseFactor>
|
||||
<specularFactor>0.4</specularFactor>
|
||||
<shininess>2.0</shininess>
|
||||
<physicType>TriangleMesh</physicType>
|
||||
<dampningL>1.0</dampningL>
|
||||
<dampningA>1.0</dampningA>
|
||||
</objectData>
|
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>
|
Before Width: | Height: | Size: 9.5 MiB After Width: | Height: | Size: 11 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 |
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.
|
||||
|
7
Shader/depth.fsh
Normal file
@ -0,0 +1,7 @@
|
||||
#version 150
|
||||
|
||||
out float fragmentDepth;
|
||||
|
||||
void main() {
|
||||
fragmentDepth = gl_FragCoord.z;
|
||||
}
|
134
Shader/phong.fsh
Normal file
@ -0,0 +1,134 @@
|
||||
#version 400
|
||||
|
||||
in vec3 vNormal;
|
||||
in vec2 vTexCoord;
|
||||
in vec4 fragPosition;
|
||||
in vec4 shadowCoord_near;
|
||||
in vec4 shadowCoord_middle;
|
||||
in vec4 shadowCoord_far;
|
||||
|
||||
out vec4 oColor;
|
||||
|
||||
uniform sampler2D uTexture;
|
||||
uniform sampler2DShadow shadowMap_near;
|
||||
uniform sampler2DShadow shadowMap_middle;
|
||||
uniform sampler2DShadow shadowMap_far;
|
||||
uniform vec3 ambientColor;
|
||||
uniform float ambientFactor;
|
||||
uniform float diffuseFactor;
|
||||
uniform float specularFactor;
|
||||
uniform vec3 camera;
|
||||
uniform float shininess;
|
||||
uniform int lightCount;
|
||||
uniform vec3 directionalLightVector;
|
||||
uniform vec3 directionalColor;
|
||||
uniform float directionalIntensity;
|
||||
uniform vec3 lightSources[32];
|
||||
uniform vec3 lightColors[32];
|
||||
uniform float lightIntensities[32];
|
||||
uniform float fogEnd;
|
||||
uniform vec4 fogColor;
|
||||
uniform vec3 cameraCenter;
|
||||
|
||||
vec2 poissonDisk[16] = vec2[](
|
||||
vec2( -0.94201624, -0.39906216 ),
|
||||
vec2( 0.94558609, -0.76890725 ),
|
||||
vec2( -0.094184101, -0.92938870 ),
|
||||
vec2( 0.34495938, 0.29387760 ),
|
||||
vec2( -0.91588581, 0.45771432 ),
|
||||
vec2( -0.81544232, -0.87912464 ),
|
||||
vec2( -0.38277543, 0.27676845 ),
|
||||
vec2( 0.97484398, 0.75648379 ),
|
||||
vec2( 0.44323325, -0.97511554 ),
|
||||
vec2( 0.53742981, -0.47373420 ),
|
||||
vec2( -0.26496911, -0.41893023 ),
|
||||
vec2( 0.79197514, 0.19090188 ),
|
||||
vec2( -0.24188840, 0.99706507 ),
|
||||
vec2( -0.81409955, 0.91437590 ),
|
||||
vec2( 0.19984126, 0.78641367 ),
|
||||
vec2( 0.14383161, -0.14100790 )
|
||||
);
|
||||
|
||||
float sampleShadow(sampler2DShadow shadowMap, vec4 shadowCoord) {
|
||||
float visibility = 1.0;
|
||||
float bias = 0.001*tan(acos(clamp(dot(vNormal, -directionalLightVector), 0.0, 1.0)));
|
||||
bias = clamp(bias, 0.0, 0.01);
|
||||
for (int i=0; i<4; i++) {
|
||||
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (shadowCoord.z - bias)/shadowCoord.w)));
|
||||
}
|
||||
if (visibility == 1.0-(directionalIntensity/16)*4)
|
||||
{
|
||||
visibility = 1.0-directionalIntensity;
|
||||
}
|
||||
else if (visibility != 1.0) {
|
||||
for (int i=0; i<12; i++) {
|
||||
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (shadowCoord.z - bias)/shadowCoord.w)));
|
||||
}
|
||||
}
|
||||
return visibility;
|
||||
}
|
||||
|
||||
float distanceToBorder(vec2 vector) {
|
||||
float xDistance = min(vector.x, 1.0-vector.x);
|
||||
float yDistance = min(vector.y, 1.0-vector.y);
|
||||
return min(xDistance, yDistance);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
vec3 ambientColor = ambientFactor * ambientColor;
|
||||
vec3 diffuseColor = vec3(0.0, 0.0, 0.0);
|
||||
vec3 specularColor = vec3(0.0, 0.0, 0.0);
|
||||
|
||||
|
||||
// direction lighting
|
||||
if(length(directionalLightVector)>0.0f) {
|
||||
vec3 directionalVector = normalize(directionalLightVector);
|
||||
diffuseColor += clamp(dot(normalize(vNormal), directionalVector)
|
||||
*diffuseFactor*directionalIntensity*directionalColor, 0.0, 1.0);
|
||||
vec3 cameraVector = normalize(camera - vec3(fragPosition));
|
||||
specularColor += clamp(pow((dot((cameraVector+directionalVector),normalize(vNormal))/(length(cameraVector+directionalVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
|
||||
*specularFactor*directionalIntensity*directionalColor;
|
||||
}
|
||||
|
||||
// point lights
|
||||
for(int i = 0; i<lightCount; i++) {
|
||||
float distance = distance(lightSources[i], vec3(fragPosition));
|
||||
// only take lights into account with meaningful contribution
|
||||
if (distance > 0.001f) {
|
||||
vec3 lightVector = normalize(lightSources[i]-vec3(fragPosition));
|
||||
float intensity = clamp(exp(-(1/lightIntensities[i])*distance), 0.0, 1.0);
|
||||
diffuseColor += clamp(dot(normalize(vNormal), lightVector)
|
||||
*diffuseFactor*intensity*lightColors[i], 0.0, 1.0);
|
||||
vec3 cameraVector = normalize(camera - vec3(fragPosition));
|
||||
specularColor += clamp(pow((dot((cameraVector+lightVector),normalize(vNormal))/(length(cameraVector+lightVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
|
||||
*specularFactor*intensity*lightColors[i];
|
||||
}
|
||||
}
|
||||
|
||||
// shadows
|
||||
float visibility = 1.0;
|
||||
if (distanceToBorder(shadowCoord_middle.xy) <= 0.5 && distanceToBorder(shadowCoord_middle.xy) > 0.0) {
|
||||
if (distanceToBorder(shadowCoord_near.xy) <= 0.5 && distanceToBorder(shadowCoord_near.xy) > 0.0) {
|
||||
visibility = sampleShadow(shadowMap_near, shadowCoord_near);
|
||||
}
|
||||
else {
|
||||
visibility = sampleShadow(shadowMap_middle, shadowCoord_middle);
|
||||
}
|
||||
}
|
||||
else {
|
||||
visibility = sampleShadow(shadowMap_far, shadowCoord_far);
|
||||
}
|
||||
|
||||
specularColor *= visibility;
|
||||
diffuseColor *= visibility;
|
||||
|
||||
vec3 finalColor = specularColor + diffuseColor + ambientColor;
|
||||
float distanceCameraCenter = distance(cameraCenter, vec3(fragPosition));
|
||||
float fogFactor = clamp((1.0 - (fogEnd-distanceCameraCenter)/30.0), 0.0, 1.0);
|
||||
fogFactor *= clamp((1.0-((fragPosition.y-8.0)/30.0)), 0.0, 1.0);
|
||||
|
||||
vec4 texture = texture(uTexture, vTexCoord).rgba;
|
||||
oColor = vec4(finalColor, 1.0f)*texture;
|
||||
oColor = mix(oColor, fogColor, fogFactor);
|
||||
}
|
@ -11,21 +11,17 @@ 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_near;
|
||||
out vec4 shadowCoord_middle;
|
||||
out vec4 shadowCoord_far;
|
||||
|
||||
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_near = shadowMVPs[0] * vec4(aPosition, 1.0);
|
||||
shadowCoord_middle = shadowMVPs[1] * vec4(aPosition, 1.0);
|
||||
shadowCoord_far = shadowMVPs[2] * vec4(aPosition, 1.0);
|
||||
gl_Position = modelViewProjectionMatrix * vec4(aPosition, 1.0);
|
||||
}
|
71
application.cc
Normal file
@ -0,0 +1,71 @@
|
||||
#include "application.hh"
|
||||
|
||||
|
||||
Application::Application() {
|
||||
graphics = Graphics(glm::uvec2(1024, 786), 0.1f, 150.0f);
|
||||
}
|
||||
|
||||
void Application::init()
|
||||
{
|
||||
// choose Level TODO: Choose this in a menu
|
||||
this->level = Level("0");
|
||||
// Don't change this!
|
||||
ignoredMouseUpdates = 0;
|
||||
cameraLock = true;
|
||||
// set Skybox size
|
||||
level.setSkydomeSize((graphics.getFarPlane())-31.0f);
|
||||
|
||||
// define where shaders and textures can be found:
|
||||
ACGL::Base::Settings::the()->setResourcePath("../");
|
||||
ACGL::Base::Settings::the()->setShaderPath("Shader/");
|
||||
ACGL::Base::Settings::the()->setTexturePath("Levels/Textures/");
|
||||
ACGL::Base::Settings::the()->setGeometryPath("Levels/Geometry/");
|
||||
|
||||
// load Level
|
||||
level.load();
|
||||
|
||||
graphics.init(&level);
|
||||
|
||||
// just in case: check for errors
|
||||
openGLCriticalError();
|
||||
}
|
||||
|
||||
Graphics* Application::getGraphics() {
|
||||
return &graphics;
|
||||
}
|
||||
|
||||
Level* Application::getLevel() {
|
||||
return &level;
|
||||
}
|
||||
|
||||
void Application::setFocused(bool focused) {
|
||||
this->focused = focused;
|
||||
}
|
||||
|
||||
bool Application::isFocused() {
|
||||
return focused;
|
||||
}
|
||||
|
||||
void Application::setCameraLock(bool locked) {
|
||||
// Prevent camera jumping huge distances
|
||||
if (!locked) {
|
||||
ignoreNextMouseUpdate();
|
||||
}
|
||||
cameraLock = locked;
|
||||
}
|
||||
|
||||
void Application::ignoreNextMouseUpdate() {
|
||||
ignoredMouseUpdates++;
|
||||
}
|
||||
|
||||
void Application::ignoredOneMouseUpdate() {
|
||||
ignoredMouseUpdates--;
|
||||
}
|
||||
|
||||
int Application::getIgnoredMouseUpdates() {
|
||||
return ignoredMouseUpdates;
|
||||
}
|
||||
|
||||
bool Application::isLocked() {
|
||||
return cameraLock;
|
||||
}
|
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
|
28
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,28 +15,9 @@ 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))
|
||||
|
||||
#building lua
|
||||
|
||||
cd extern/lua/
|
||||
if [[ $1 == "windows" ]]
|
||||
then
|
||||
make CC=x86_64-w64-mingw32-gcc mingw
|
||||
else
|
||||
make linux
|
||||
fi
|
||||
cd $currentDir
|
||||
|
||||
|
||||
#building bullet
|
||||
|
||||
cd extern/bullet/
|
||||
@ -45,10 +25,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 +40,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;
|
||||
@ -56,11 +48,11 @@ void Camera::updateRotation(glm::vec2 rotation) {
|
||||
}
|
||||
|
||||
void Camera:: updateDistance(float distance) {
|
||||
if (this->distance + distance <= 2.5f) {
|
||||
this->distance = 2.5f;
|
||||
if (this->distance + distance <= 1.0f) {
|
||||
this->distance = 1.0f;
|
||||
}
|
||||
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,31 +26,20 @@ 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);
|
||||
dst << src.rdbuf();
|
||||
|
||||
//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");
|
||||
//Create all global Lightingparameters with Dummy-Values
|
||||
printf("Could not open xml, creating new xml.\n");
|
||||
//Create all global Elements with Dummy-Values
|
||||
std::vector<XMLElement*> lightAttributes;
|
||||
lightAttributes.push_back(doc->NewElement("xOffset"));
|
||||
lightAttributes.push_back(doc->NewElement("yOffset"));
|
||||
@ -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,125 +66,79 @@ 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(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(ambientLight);
|
||||
doc->InsertEndChild(fogColour);
|
||||
doc->InsertEndChild(directionalLight);
|
||||
doc->InsertEndChild(skydome);
|
||||
|
||||
//Create global physics parameters
|
||||
XMLElement* physics = doc->NewElement("physics");
|
||||
XMLElement* playerFriction = doc->NewElement("friction");
|
||||
XMLElement* playerStrength = doc->NewElement("strength");
|
||||
playerFriction->SetText("0.9");
|
||||
playerStrength->SetText("300.0");
|
||||
physics->InsertEndChild(playerFriction);
|
||||
physics->InsertEndChild(playerStrength);
|
||||
doc->InsertEndChild(physics);
|
||||
|
||||
//Create positionConstraint Dummy
|
||||
XMLElement* positionConstraint = doc->NewElement("positionConstraint");
|
||||
XMLElement* positionConstraintObjectNum = doc->NewElement("objectNum");
|
||||
XMLElement* positionConstraintXPos = doc->NewElement("xPosition");
|
||||
XMLElement* positionConstraintYPos = doc->NewElement("yPosition");
|
||||
XMLElement* positionConstraintZPos = doc->NewElement("zPosition");
|
||||
XMLElement* positionConstraintStrength = doc->NewElement("strength");
|
||||
positionConstraintObjectNum->SetText("0");
|
||||
positionConstraintXPos->SetText("0.0");
|
||||
positionConstraintYPos->SetText("0.0");
|
||||
positionConstraintZPos->SetText("0.0");
|
||||
positionConstraintStrength->SetText("100.0");
|
||||
positionConstraint->InsertEndChild(positionConstraintObjectNum);
|
||||
positionConstraint->InsertEndChild(positionConstraintXPos);
|
||||
positionConstraint->InsertEndChild(positionConstraintYPos);
|
||||
positionConstraint->InsertEndChild(positionConstraintZPos);
|
||||
positionConstraint->InsertEndChild(positionConstraintStrength);
|
||||
doc->InsertEndChild(positionConstraint);
|
||||
//Create a Dummy-trigger
|
||||
XMLElement* trigger = doc->NewElement("trigger");
|
||||
doc->InsertEndChild(trigger);
|
||||
XMLElement* name = doc->NewElement("name");
|
||||
XMLElement* xPosition = doc->NewElement("xPosition");
|
||||
XMLElement* yPosition = doc->NewElement("yPosition");
|
||||
XMLElement* zPosition = doc->NewElement("zPosition");
|
||||
XMLElement* distance = doc->NewElement("distance");
|
||||
XMLElement* isBiggerThan = doc->NewElement("isBiggerThan");
|
||||
XMLElement* idGreen = doc->NewElement("idGreen");
|
||||
XMLElement* idBlue = doc->NewElement("idBlue");
|
||||
XMLElement* objectNum = doc->NewElement("objectNum");
|
||||
XMLElement* functionPointer = doc->NewElement("functionPointer");
|
||||
name->SetText("-");
|
||||
xPosition->SetText("0.0");
|
||||
yPosition->SetText("0.0");
|
||||
zPosition->SetText("0.0");
|
||||
distance->SetText("1.0");
|
||||
isBiggerThan->SetText("false");
|
||||
idGreen->SetText("0");
|
||||
idBlue->SetText("0");
|
||||
objectNum->SetText("1");
|
||||
functionPointer->SetText("-");
|
||||
trigger->InsertEndChild(name);
|
||||
trigger->InsertEndChild(xPosition);
|
||||
trigger->InsertEndChild(yPosition);
|
||||
trigger->InsertEndChild(zPosition);
|
||||
trigger->InsertEndChild(distance);
|
||||
trigger->InsertEndChild(isBiggerThan);
|
||||
trigger->InsertEndChild(idGreen);
|
||||
trigger->InsertEndChild(idBlue);
|
||||
trigger->InsertEndChild(objectNum);
|
||||
trigger->InsertEndChild(functionPointer);
|
||||
}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 +150,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");
|
||||
@ -298,71 +189,25 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
||||
newComposition->InsertFirstChild(xRot);
|
||||
newComposition->InsertFirstChild(scale);
|
||||
|
||||
//Create a Dummy-trigger
|
||||
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");
|
||||
XMLElement* targetIdGreen = doc->NewElement("targetIdGreen");
|
||||
XMLElement* targetIdBlue = doc->NewElement("targetIdBlue");
|
||||
XMLElement* distance = doc->NewElement("distance");
|
||||
XMLElement* isBiggerThan = doc->NewElement("isBiggerThan");
|
||||
XMLElement* objectNum = doc->NewElement("objectNum");
|
||||
XMLElement* luaScript = doc->NewElement("luaScript");
|
||||
XMLElement* toChangeIdGreen = doc->NewElement("toChangeIdGreen");
|
||||
XMLElement* toChangeIdBlue = doc->NewElement("toChangeIdBlue");
|
||||
XMLElement* toChangeObjNum = doc->NewElement("toChangeObjNum");
|
||||
|
||||
name->SetText("-");
|
||||
undo->SetText("false");
|
||||
xPosition->SetText("0");
|
||||
yPosition->SetText("0");
|
||||
zPosition->SetText("0");
|
||||
targetIdGreen->SetText("-");
|
||||
targetIdBlue->SetText("-");
|
||||
distance->SetText("1.0");
|
||||
isBiggerThan->SetText("false");
|
||||
objectNum->SetText("0");
|
||||
luaScript->SetText("-");
|
||||
toChangeIdGreen->SetText("0");
|
||||
toChangeIdBlue->SetText("0");
|
||||
toChangeObjNum->SetText("0");
|
||||
|
||||
trigger->InsertEndChild(name);
|
||||
trigger->InsertEndChild(undo);
|
||||
trigger->InsertEndChild(xPosition);
|
||||
trigger->InsertEndChild(yPosition);
|
||||
trigger->InsertEndChild(zPosition);
|
||||
trigger->InsertEndChild(targetIdGreen);
|
||||
trigger->InsertEndChild(targetIdBlue);
|
||||
trigger->InsertEndChild(distance);
|
||||
trigger->InsertEndChild(isBiggerThan);
|
||||
trigger->InsertEndChild(objectNum);
|
||||
trigger->InsertEndChild(luaScript);
|
||||
trigger->InsertEndChild(toChangeIdGreen);
|
||||
trigger->InsertEndChild(toChangeIdBlue);
|
||||
trigger->InsertEndChild(toChangeObjNum);
|
||||
|
||||
idUsed[nextID[0]][nextID[1]] = true;
|
||||
doc->InsertFirstChild(newComposition);
|
||||
return nextID;
|
||||
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);
|
||||
}
|
||||
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 +216,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 +238,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 +260,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,81 +18,44 @@ 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 j=0; j<256; j++){
|
||||
for (int i=1; i<=conv.getNextID()[1]; i++){
|
||||
for (int j=1; 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,54 +0,0 @@
|
||||
# Blender v2.72 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Wall_Cube.001
|
||||
v 0.537791 3.045326 -3.045326
|
||||
v 0.537791 -3.045326 -3.045326
|
||||
v 0.537791 -3.045326 3.045326
|
||||
v -0.537791 3.045326 -3.045326
|
||||
v -0.537791 -3.045326 -3.045326
|
||||
v -0.537791 3.045326 3.045326
|
||||
v -0.537791 -3.045326 3.045326
|
||||
v 0.537791 3.045326 3.045326
|
||||
vt 1.002363 0.998329
|
||||
vt 0.005637 -0.001671
|
||||
vt 1.002363 -0.001671
|
||||
vt 0.394169 0.995358
|
||||
vt 0.605831 -0.004642
|
||||
vt 0.394169 -0.004642
|
||||
vt -0.003002 0.995358
|
||||
vt 0.996752 -0.004642
|
||||
vt -0.003002 -0.004642
|
||||
vt 0.605361 0.992386
|
||||
vt 0.392389 -0.007614
|
||||
vt 0.605361 -0.007614
|
||||
vt 0.001396 0.906027
|
||||
vt 0.998604 0.093973
|
||||
vt 0.001923 0.094175
|
||||
vt 1.000000 0.097080
|
||||
vt 0.000000 0.902920
|
||||
vt 1.000000 0.902920
|
||||
vt 0.005637 0.998329
|
||||
vt 0.605831 0.995358
|
||||
vt 0.996752 0.995358
|
||||
vt 0.392389 0.992386
|
||||
vt 0.998077 0.905824
|
||||
vt 0.000000 0.097080
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 0.000000 -0.000000 1.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
s off
|
||||
f 1/1/1 3/2/1 2/3/1
|
||||
f 4/4/2 2/5/2 5/6/2
|
||||
f 6/7/3 5/8/3 7/9/3
|
||||
f 8/10/4 7/11/4 3/12/4
|
||||
f 2/13/5 7/14/5 5/15/5
|
||||
f 4/16/6 8/17/6 1/18/6
|
||||
f 8/19/1 3/2/1 1/1/1
|
||||
f 1/20/2 2/5/2 4/4/2
|
||||
f 4/21/3 5/8/3 6/7/3
|
||||
f 6/22/4 7/11/4 8/10/4
|
||||
f 3/23/5 7/14/5 2/13/5
|
||||
f 6/24/6 8/17/6 4/16/6
|
@ -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 |
13446
data/levels/Level1.xml
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>
|
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 165 B |
@ -1,39 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredSCRIPTNAME == nil) then
|
||||
global.triggeredSCRIPTNAME = false
|
||||
end
|
||||
if(global.triggeredSCRIPTNAMEUndo == nil) then
|
||||
global.triggeredSCRIPTNAMEUndo = false
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredSCRIPTNAME == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
--enter the scripts code here and replace all occurences of SCRIPTNAME with the name of the script.
|
||||
|
||||
global.triggeredSCRIPTNAME = true
|
||||
if(printDebug) then
|
||||
print("SCRIPTNAME")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function triggerUndo(objectToChange, printDebug)
|
||||
if(global.triggeredSCRIPTNAMEUndo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
--enter the scripts undo code here
|
||||
|
||||
global.triggeredSCRIPTNAMEUndo = true
|
||||
if(printDebug) then
|
||||
print("SCRIPTNAMEUndo")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,17 +0,0 @@
|
||||
local global = require("global")
|
||||
if(global.triggeredFristCheckpoint == nil) then
|
||||
global.triggeredFristCheckpoint = false
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredFristCheckpoint == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
global.triggeredFristCheckpoint = true
|
||||
if(printDebug) then
|
||||
print("firstCheckpoint")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,3 +0,0 @@
|
||||
--global variable space
|
||||
local global = {}
|
||||
return global
|
@ -1,4 +0,0 @@
|
||||
-- Inits search path for require.
|
||||
-- This file needs to stay next to the other scripts.
|
||||
|
||||
package.path = debug.getinfo(1,"S").source:match[[^@?(.*[\/])[^\/]-$]] .."?.lua;".. package.path
|
@ -1,51 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredOpenFirstDoor == nil) then
|
||||
global.triggeredOpenFirstDoor = false
|
||||
end
|
||||
if(global.triggeredOpenFirstDoorUndo == nil) then
|
||||
global.triggeredOpenFirstDoorUndo = true
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredOpenFirstDoor == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
local strength = 100
|
||||
local xPos = 17.5
|
||||
local yPos = 33.0
|
||||
local zPos = 81.5
|
||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||
|
||||
global.triggeredOpenFirstDoorUndo = false
|
||||
|
||||
global.triggeredOpenFirstDoor = true
|
||||
if (printDebug) then
|
||||
print("openFirstDoor")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function triggerUndo(objectToChange, printDebug)
|
||||
if(global.triggeredOpenFirstDoorUndo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
local strength = 100
|
||||
local xPos = 17.5
|
||||
local yPos = 25.0
|
||||
local zPos = 81.5
|
||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||
|
||||
global.triggeredOpenFirstDoor = false
|
||||
|
||||
global.triggeredOpenFirstDoorUndo = true
|
||||
if(printDebug) then
|
||||
print("openFirstDoorUndo")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,58 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredOpenSecondDoor1 == nil) then
|
||||
global.triggeredOpenSecondDoor1 = false
|
||||
end
|
||||
if(global.triggeredOpenSecondDoor1Undo == nil) then
|
||||
global.triggeredOpenSecondDoor1Undo = true
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredOpenSecondDoor1 == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(global.openSecondDoorCounter == nil) then
|
||||
global.openSecondDoorCounter = 0
|
||||
end
|
||||
if(global.openSecondDoorCounter == 0) then
|
||||
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||
end
|
||||
global.triggeredOpenSecondDoor1 = true
|
||||
|
||||
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||
global.triggeredOpenSecondDoor1Undo = false
|
||||
end
|
||||
|
||||
local xPos = -6.5
|
||||
local yPos = 25.0
|
||||
local zPos = 54.5
|
||||
level:preloadLightPosition(xPos, yPos, zPos)
|
||||
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||
if(printDebug) then
|
||||
print("openSecondDoor1")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function triggerUndo(objectToChange, printDebug)
|
||||
if(global.triggeredOpenSecondDoor1Undo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
global.openSecondDoorCounter = 0
|
||||
global.triggeredOpenSecondDoor1 = false
|
||||
global.triggeredOpenSecondDoor2 = false
|
||||
global.triggeredOpenSecondDoor3 = false
|
||||
global.triggeredOpenSecondDoor4 = false
|
||||
level:deleteFourLights()
|
||||
|
||||
global.triggeredOpenSecondDoor1Undo = true
|
||||
if(printDebug) then
|
||||
print("openSecondDoor1Undo")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,58 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredOpenSecondDoor2 == nil) then
|
||||
global.triggeredOpenSecondDoor2 = false
|
||||
end
|
||||
if(global.triggeredOpenSecondDoor2Undo == nil) then
|
||||
global.triggeredOpenSecondDoor2Undo = true
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredOpenSecondDoor2 == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(global.openSecondDoorCounter == nil) then
|
||||
global.openSecondDoorCounter = 0
|
||||
end
|
||||
if(global.openSecondDoorCounter == 1) then
|
||||
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||
end
|
||||
global.triggeredOpenSecondDoor2 = true
|
||||
|
||||
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||
global.triggeredOpenSecondDoor2Undo = false
|
||||
end
|
||||
|
||||
local xPos = -53.5
|
||||
local yPos = 25.0
|
||||
local zPos = 26.5
|
||||
level:preloadLightPosition(xPos, yPos, zPos)
|
||||
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||
if(printDebug) then
|
||||
print("openSecondDoor2")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function triggerUndo(objectToChange, printDebug)
|
||||
if(global.triggeredOpenSecondDoor2Undo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
global.openSecondDoorCounter = 0
|
||||
global.triggeredOpenSecondDoor1 = false
|
||||
global.triggeredOpenSecondDoor2 = false
|
||||
global.triggeredOpenSecondDoor3 = false
|
||||
global.triggeredOpenSecondDoor4 = false
|
||||
level:deleteFourLights()
|
||||
|
||||
global.triggeredOpenSecondDoor2Undo = true
|
||||
if(printDebug) then
|
||||
print("openSecondDoor2Undo")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,58 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredOpenSecondDoor3 == nil) then
|
||||
global.triggeredOpenSecondDoor3 = false
|
||||
end
|
||||
if(global.triggeredOpenSecondDoor3Undo == nil) then
|
||||
global.triggeredOpenSecondDoor3Undo = true
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredOpenSecondDoor3 == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(global.openSecondDoorCounter == nil) then
|
||||
global.openSecondDoorCounter = 0
|
||||
end
|
||||
if(global.openSecondDoorCounter == 2) then
|
||||
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||
end
|
||||
global.triggeredOpenSecondDoor3 = true
|
||||
|
||||
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||
global.triggeredOpenSecondDoor3Undo = false
|
||||
end
|
||||
|
||||
local xPos = -6.5
|
||||
local yPos = 25.0
|
||||
local zPos = 26.5
|
||||
level:preloadLightPosition(xPos, yPos, zPos)
|
||||
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||
if(printDebug) then
|
||||
print("openSecondDoor3")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function triggerUndo(objectToChange, printDebug)
|
||||
if(global.triggeredOpenSecondDoor3Undo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
global.openSecondDoorCounter = 0
|
||||
global.triggeredOpenSecondDoor1 = false
|
||||
global.triggeredOpenSecondDoor2 = false
|
||||
global.triggeredOpenSecondDoor3 = false
|
||||
global.triggeredOpenSecondDoor4 = false
|
||||
level:deleteFourLights()
|
||||
|
||||
global.triggeredOpenSecondDoor3Undo = true
|
||||
if(printDebug) then
|
||||
print("openSecondDoor3Undo")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,67 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredOpenSecondDoor4 == nil) then
|
||||
global.triggeredOpenSecondDoor4 = false
|
||||
end
|
||||
if(global.triggeredOpenSecondDoor4Undo == nil) then
|
||||
global.triggeredOpenSecondDoor4Undo = true
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredOpenSecondDoor4 == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(global.openSecondDoorCounter == nil) then
|
||||
global.openSecondDoorCounter = 0
|
||||
end
|
||||
if(global.openSecondDoorCounter == 3) then
|
||||
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||
end
|
||||
global.triggeredOpenSecondDoor4 = true
|
||||
|
||||
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||
if(global.openSecondDoorCounter == 4) then
|
||||
local strength = 100
|
||||
local xPos = -81.5
|
||||
local yPos = 33
|
||||
local zPos = 4.5
|
||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||
global.openedSecondDoor = true
|
||||
else
|
||||
global.triggeredOpenSecondDoor4Undo = false
|
||||
end
|
||||
end
|
||||
|
||||
local xPos = -53.5
|
||||
local yPos = 25.0
|
||||
local zPos = 54.5
|
||||
level:preloadLightPosition(xPos, yPos, zPos)
|
||||
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||
if(printDebug) then
|
||||
print("openSecondDoor4")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function triggerUndo(objectToChange, printDebug)
|
||||
if(global.triggeredOpenSecondDoor4Undo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
global.openSecondDoorCounter = 0
|
||||
global.triggeredOpenSecondDoor1 = false
|
||||
global.triggeredOpenSecondDoor2 = false
|
||||
global.triggeredOpenSecondDoor3 = false
|
||||
global.triggeredOpenSecondDoor4 = false
|
||||
level:deleteFourLights()
|
||||
|
||||
global.triggeredOpenSecondDoor4Undo = true
|
||||
if(printDebug) then
|
||||
print("openSecondDoor4Undo")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,51 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredOpenThirdDoor == nil) then
|
||||
global.triggeredOpenThirdDoor = false
|
||||
end
|
||||
if(global.triggeredOpenThirdDoorUndo == nil) then
|
||||
global.triggeredOpenThirdDoorUndo = true
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredOpenThirdDoor == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
local strength = 100
|
||||
local xPos = -172.5
|
||||
local yPos = 33
|
||||
local zPos = 58.5
|
||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||
|
||||
global.triggeredOpenThirdDoorUndo = false
|
||||
|
||||
global.triggeredOpenThirdDoor = true
|
||||
if(printDebug) then
|
||||
print("openThirdDoor")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function triggerUndo(objectToChange, printDebug)
|
||||
if(global.triggeredOpenThirdDoorUndo == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
local strength = 100
|
||||
local xPos = -172.5
|
||||
local yPos = 25
|
||||
local zPos = 58.5
|
||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||
|
||||
global.triggeredOpenThirdDoor = false
|
||||
|
||||
global.triggeredOpenThirdDoorUndo = true
|
||||
if(printDebug) then
|
||||
print("openThirdDoorUndo")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,21 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredResetBox == nil) then
|
||||
global.triggeredResetBox = false
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredResetBox == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
local x = -101.5
|
||||
local y = 22.5
|
||||
local z =8.5
|
||||
level:forceMove(x, y, z, objectToChange)
|
||||
|
||||
if(printDebug) then
|
||||
print("reset box")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,35 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredResetPlayer == nil) then
|
||||
global.triggeredResetPlayer = false
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredResetPlayer == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
if(global.triggeredFristCheckpoint == true) then
|
||||
if(global.triggeredOpenFirstDoor == true) then
|
||||
if(global.openedSecondDoor == true) then
|
||||
if(global.triggeredOpenThirdDoor == true) then
|
||||
level:movePlayer(-169.5,21.5,58.5)
|
||||
else
|
||||
level:movePlayer(-78.5,21.75,4.5)
|
||||
end
|
||||
else
|
||||
level:movePlayer(17.5,21.0,87.0)
|
||||
end
|
||||
else
|
||||
level:movePlayer(18.0, 23.0, 145.0)
|
||||
end
|
||||
else
|
||||
level:resetPlayer()
|
||||
end
|
||||
|
||||
if(printDebug) then
|
||||
print("reset player")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,21 +0,0 @@
|
||||
local global = require( "global" )
|
||||
if(global.triggeredSunStart == nil) then
|
||||
global.triggeredSunStart = false
|
||||
end
|
||||
|
||||
function trigger(objectToChange, printDebug)
|
||||
if(global.triggeredSunStart == false) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
local time = os.clock()
|
||||
global.sunStartTime = time
|
||||
global.triggeredSunStart = true
|
||||
level:activateEndgame()
|
||||
if(printDebug) then
|
||||
print("sunStart")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,28 +0,0 @@
|
||||
local global = require( "global" )
|
||||
|
||||
function trigger(objectToChange)
|
||||
if(global.triggeredSunStart) then
|
||||
if(not level) then
|
||||
print("No level found in Lua!")
|
||||
return
|
||||
end
|
||||
|
||||
local maxTimeDiff = 30
|
||||
local timeDiff = os.clock()- global.sunStartTime
|
||||
if(timeDiff > maxTimeDiff)then
|
||||
timeDiff = maxTimeDiff
|
||||
end
|
||||
timeDiff = timeDiff/maxTimeDiff
|
||||
local x = 10
|
||||
local y = -18 + math.sqrt(timeDiff) * 29
|
||||
local z = -8 + timeDiff * 15
|
||||
level:setSunDirection(x,y,z)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--local x = 0.7 + 0.3 * timeDiff
|
||||
--local y = math.sqrt(timeDiff) * 2.2 - 1.5
|
||||
--local z = -0.7 - 0.7 * timeDiff
|
||||
--start 1,-6,-2
|
||||
--ziel 10,10,10
|
@ -1,9 +0,0 @@
|
||||
#version 150
|
||||
|
||||
in vec3 vColor;
|
||||
|
||||
out vec4 oColor;
|
||||
|
||||
void main() {
|
||||
oColor = vec4(vColor, 1.0);
|
||||
}
|