mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-12 06:19:57 -05:00
Merge remote-tracking branch 'origin/master' into feature/launcherconfigs
# Conflicts: # ext/sgct # openspace.cfg
This commit is contained in:
+23
-23
@@ -1,26 +1,26 @@
|
||||
#########################################################################################
|
||||
# #
|
||||
# OpenSpace #
|
||||
# #
|
||||
# Copyright (c) 2014-2016 #
|
||||
# #
|
||||
# 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. #
|
||||
#########################################################################################
|
||||
##########################################################################################
|
||||
# #
|
||||
# OpenSpace #
|
||||
# #
|
||||
# Copyright (c) 2014-2016 #
|
||||
# #
|
||||
# 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. #
|
||||
##########################################################################################
|
||||
|
||||
cmake_minimum_required (VERSION 3.4 FATAL_ERROR)
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
## How to contribute
|
||||
The easiest way to contribute is through a separate fork of the repository and submitting a pull-request. One of the core developers will judge the pull request and integrate it into the main `master` branch. Preferably, there is an accompanying issue (created by you or not) which is solved by the PR. In this case, feel free to use the phrase "(closes #XXX)" in the text of the pull request, where `XXX` is the number of the issue that you have solved. The PR should be in its own separate branch following the naming `pr/feature`, where `feature` is a short, descripting name of the additional feature or bug contained in the PR.
|
||||
|
||||
For more information we refer to the [Wiki](https://github.com/OpenSpace/OpenSpace/wiki). If there are any questions, feel free to contact us via [email](mailto:alexander.bock@me.com?subject=OpenSpace: Contributing).
|
||||
+11
-1
@@ -1,16 +1,26 @@
|
||||
Alexander Bock
|
||||
Joakim Kilby
|
||||
Emil Axelsson
|
||||
Eric Myers
|
||||
Jonathas Costa
|
||||
Matthew Territo
|
||||
Gene Payne
|
||||
Kalle Bladin
|
||||
Erik Sundén
|
||||
|
||||
Jonas Strandstedt
|
||||
Hans-Christian Helltegen
|
||||
Michal Marcinkowski
|
||||
Anton Arbring
|
||||
Tomas Forsyth Rosin
|
||||
Kalle Bladin
|
||||
Erik Broberg
|
||||
Michael Nilsson
|
||||
Sebastian Piwell
|
||||
Niclas Hultberg
|
||||
Rickard Lindtstedt
|
||||
Michael Sjöström
|
||||
Michael Novén
|
||||
Oskar Carlbaum
|
||||
|
||||
Anteige
|
||||
noahdasanaike
|
||||
Vendored
+74
@@ -0,0 +1,74 @@
|
||||
def modules = [
|
||||
"base",
|
||||
"debugging",
|
||||
"fieldlines",
|
||||
"galaxy",
|
||||
"globebrowsing",
|
||||
"iswa",
|
||||
"kameleon",
|
||||
"kameleonvolume",
|
||||
"multiresvolume",
|
||||
"newhorizons",
|
||||
"onscreengui",
|
||||
"space",
|
||||
"toyvolume",
|
||||
"volume"
|
||||
];
|
||||
|
||||
def flags = "-DGHOUL_USE_DEVIL=OFF "
|
||||
|
||||
for (module in modules) {
|
||||
flags += "-DOPENSPACE_OPENSPACE_MODULE_" + module.toUpperCase() + "=ON "
|
||||
}
|
||||
|
||||
echo flags
|
||||
|
||||
stage('Build') {
|
||||
parallel linux: {
|
||||
node('linux') {
|
||||
checkout scm
|
||||
sh 'git submodule update --init --recursive'
|
||||
sh '''
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake .. ''' +
|
||||
flags + ''' ..
|
||||
make
|
||||
'''
|
||||
}
|
||||
},
|
||||
windows: {
|
||||
node('windows') {
|
||||
checkout scm
|
||||
bat '''
|
||||
git submodule update --init --recursive
|
||||
if not exist "build" mkdir "build"
|
||||
cd build
|
||||
cmake -G "Visual Studio 14 2015 Win64" .. ''' +
|
||||
flags + ''' ..
|
||||
msbuild.exe OpenSpace.sln /m:8 /p:Configuration=Debug
|
||||
'''
|
||||
}
|
||||
},
|
||||
osx: {
|
||||
node('osx') {
|
||||
checkout scm
|
||||
sh 'git submodule update --init --recursive'
|
||||
sh '''
|
||||
export PATH=${PATH}:/usr/local/bin:/Applications/CMake.app/Contents/bin
|
||||
export CMAKE_BUILD_TOOL=/Applications/CMake.app/Contents/bin/CMake
|
||||
srcDir=$PWD
|
||||
if [ ! -d ${srcDir} ]; then
|
||||
mkdir ${srcDir}
|
||||
fi
|
||||
if [ ! -d ${srcDir}/build ]; then
|
||||
mkdir ${srcDir}/build
|
||||
fi
|
||||
cd ${srcDir}/build
|
||||
/Applications/CMake.app/Contents/bin/cmake -G Xcode -D NASM=/usr/local/Cellar/nasm/2.11.08/bin/nasm ${srcDir} .. ''' +
|
||||
flags + '''
|
||||
xcodebuild
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2014-2016
|
||||
Copyright (c) 2014-2017
|
||||
|
||||
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
|
||||
@@ -0,0 +1,9 @@
|
||||
OpenSpace is an open source, non-commercial, and freely available interactive data visualization software designed to visualize the entire known universe and portray our ongoing efforts to investigate the cosmos. Bringing the latest techniques from data visualization research to the general public, OpenSpace supports interactive presentation of dynamic data from observations, simulations, and space mission planning and operations. The software works on multiple operating systems (Windows, Linux, MacOS) with an extensible architecture powering high resolution tiled displays and planetarium domes, making use of the latest graphic card technologies for rapid data throughput. In addition, OpenSpace enables simultaneous connections across the globe creating opportunity for shared experiences among audiences worldwide.
|
||||
|
||||
The project stems from the same academic collaboration between Sweden’s Linköping University (LiU) and the American Museum of Natural History (AMNH) that led to the creation of Uniview and its parent company SCISS. Development of the software began several years ago through a close collaboration with NASA Goddard’s Community Coordinated Modeling Center (CCMC) to model space weather forecasting and continued last year with visualization of NASA’s New Horizons mission to Pluto and ESA’s Rosetta mission. This promising set of preliminary work provided a foundation for recent NASA funding, which has extended the collaboration to include the University of Utah’s Scientific Computing and Imaging (SCI) Institute, New York University’s Tandon School of Engineering, multiple informal science institutions across the United States, and multiple, international vendors. Current areas of focus within OpenSpace include:
|
||||
|
||||
- Visualization of dynamic simulations via interactive volumetric rendering, as a priority for communicating research in astrophysics.
|
||||
- Utilization of NASA’s SPICE observational geometry system with its Planetary Data Service (PDS) to enable space mission visualization that reveal how missions are designed to gather science.
|
||||
- Globe browsing techniques across spatial and temporal scales to examine scientific campaigns on multiple planets, including close up surface exploration.
|
||||
|
||||
This repository contains the source code and example scenes for OpenSpace, but does not contain any data. To build and install the client, we refer to the [Wiki](https://github.com/OpenSpace/OpenSpace/wiki) pages here on GitHub, specifically [building](https://github.com/OpenSpace/OpenSpace/wiki/General-Getting-Started-Guide%3A-Compiling-OpenSpace) for [Windows](https://github.com/OpenSpace/OpenSpace/wiki/Guides-Compile-OpenSpace-on-Windows), [Linux](https://github.com/OpenSpace/OpenSpace/wiki/Guides-Compile-OpenSpace-on-Linux), and [MacOS](https://github.com/OpenSpace/OpenSpace/wiki/Guides-Compile-OpenSpace-on-OSX). Required preexisting dependencies are: [NASM](http://www.nasm.us/), [Boost](http://www.boost.org/), and [Qt](http://www.qt.io/download). Feel free to create issues for missing features, bug reports, or compile problems or contact us via [email](mailto:alexander.bock@me.com?subject=OpenSpace:).
|
||||
+112
-26
@@ -1,26 +1,28 @@
|
||||
#########################################################################################
|
||||
# #
|
||||
# OpenSpace #
|
||||
# #
|
||||
# Copyright (c) 2014-2015 #
|
||||
# #
|
||||
# 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. #
|
||||
#########################################################################################
|
||||
##########################################################################################
|
||||
# #
|
||||
# OpenSpace #
|
||||
# #
|
||||
# Copyright (c) 2014-2017 #
|
||||
# #
|
||||
# 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. #
|
||||
##########################################################################################
|
||||
|
||||
include(${GHOUL_BASE_DIR}/support/cmake/CopySharedLibraries.cmake)
|
||||
|
||||
set(APPLICATION_NAME OpenSpace)
|
||||
set(APPLICATION_LINK_TO_OPENSPACE ON)
|
||||
@@ -29,15 +31,99 @@ if (WIN32)
|
||||
set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc)
|
||||
endif ()
|
||||
|
||||
|
||||
########################
|
||||
# OpenVR section start #
|
||||
########################
|
||||
option(OPENSPACE_OPENVR_SUPPORT "Build OpenSpace application with OpenVR support" OFF)
|
||||
|
||||
if (OPENSPACE_OPENVR_SUPPORT)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${OPENSPACE_EXT_DIR}/sgct/cmake/modules/")
|
||||
|
||||
find_package(OpenVR REQUIRED)
|
||||
|
||||
set(SGCT_OPENVR_DEFINITIONS OPENVR_SUPPORT)
|
||||
|
||||
if(NOT SGCT_OPENVR_INCLUDE_DIRECTORY)
|
||||
if( WIN32 )
|
||||
find_path(SGCT_OPENVR_INCLUDE_DIRECTORY
|
||||
NAMES SGCTOpenVR.h
|
||||
PATHS $ENV{SGCT_ROOT_DIR}/additional_includes/openvr ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr NO_DEFAULT_PATH
|
||||
REQUIRED)
|
||||
else()
|
||||
find_path(SGCT_OPENVR_INCLUDE_DIRECTORY
|
||||
NAMES SGCTOpenVR.h
|
||||
PATH_SUFFIXES SGCTOpenVR
|
||||
PATHS $ENV{SGCT_ROOT_DIR}/additional_includes/openvr ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr
|
||||
REQUIRED)
|
||||
endif()
|
||||
else()
|
||||
set(SGCT_OPENVR_FILES ${SGCT_OPENVR_INCLUDE_DIRECTORY}/SGCTOpenVR.h ${SGCT_OPENVR_INCLUDE_DIRECTORY}/SGCTOpenVR.cpp)
|
||||
endif()
|
||||
else()
|
||||
set(OPENVR_INCLUDE_DIRS "")
|
||||
set(SGCT_OPENVR_INCLUDE_DIRECTORY "")
|
||||
set(OPENVR_LIBRARY "")
|
||||
set(SGCT_OPENVR_DEFINITIONS "")
|
||||
endif()
|
||||
########################
|
||||
# OpenVR section end #
|
||||
########################
|
||||
|
||||
########################
|
||||
# Spout section start #
|
||||
########################
|
||||
if (WIN32)
|
||||
option(OPENSPACE_SPOUT_SUPPORT "Build OpenSpace application with Spout support" OFF)
|
||||
endif ()
|
||||
|
||||
set(SPOUT_INCLUDE_DIRS "")
|
||||
set(SPOUT_LIBRARY "")
|
||||
set(SPOUT_DEFINITIONS "")
|
||||
if (OPENSPACE_SPOUT_SUPPORT)
|
||||
set(SPOUT_INCLUDE_DIRS ${OPENSPACE_APPS_DIR}/OpenSpace/ext/spout)
|
||||
set(SPOUT_LIBRARY ${OPENSPACE_APPS_DIR}/OpenSpace/ext/spout/SpoutLibrary.lib)
|
||||
set(SPOUT_DEFINITIONS "OPENSPACE_HAS_SPOUT")
|
||||
endif ()
|
||||
|
||||
########################
|
||||
# Spout section end #
|
||||
########################
|
||||
|
||||
add_executable(${APPLICATION_NAME}
|
||||
${SGCT_OPENVR_FILES}
|
||||
${OPENSPACE_APPS_DIR}/OpenSpace/main.cpp
|
||||
${RESOURCE_FILE}
|
||||
)
|
||||
target_include_directories(${APPLICATION_NAME} PUBLIC ${OPENSPACE_BASE_DIR}/include)
|
||||
target_link_libraries(${APPLICATION_NAME} libOpenSpace)
|
||||
if (OPENSPACE_SPOUT_SUPPORT)
|
||||
copy_files(
|
||||
${APPLICATION_NAME}
|
||||
${OPENSPACE_APPS_DIR}/OpenSpace/ext/spout/SpoutLibrary.dll
|
||||
)
|
||||
endif ()
|
||||
|
||||
target_include_directories(
|
||||
${APPLICATION_NAME} PUBLIC
|
||||
${OPENSPACE_BASE_DIR}/include
|
||||
${OPENVR_INCLUDE_DIRS}
|
||||
${SGCT_OPENVR_INCLUDE_DIRECTORY}
|
||||
${SPOUT_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_link_libraries(${APPLICATION_NAME}
|
||||
libOpenSpace
|
||||
${OPENVR_LIBRARY}
|
||||
${SPOUT_LIBRARY}
|
||||
)
|
||||
|
||||
target_compile_definitions(${APPLICATION_NAME} PUBLIC
|
||||
${SGCT_OPENVR_DEFINITIONS}
|
||||
${SPOUT_DEFINITIONS}
|
||||
)
|
||||
|
||||
if (MSVC)
|
||||
target_link_libraries(${APPLICATION_NAME} Dbghelp.lib)
|
||||
set_target_properties(${APPLICATION_NAME} PROPERTIES LINK_FLAGS
|
||||
"/NODEFAULTLIB:LIBCMTD.lib /NODEFAULTLIB:LIBCMT.lib"
|
||||
)
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
The spout folder is a copy of the folder:
|
||||
SpoutSDK/Source in the repository:
|
||||
https://github.com/leadedge/Spout2.git/SpoutSDK/Source/SPOUT_LIBRARY/Binaries
|
||||
and
|
||||
https://github.com/leadedge/Spout2.git/SpoutSDK/Source/SPOUT_LIBRARY/Include
|
||||
|
||||
Last update:
|
||||
https://github.com/leadedge/Spout2/commit/28dbea6059cd7968c4d2b296d6739a5fdebe9104
|
||||
Binary file not shown.
@@ -0,0 +1,90 @@
|
||||
//
|
||||
// SpoutLibrary.dll
|
||||
//
|
||||
// Spout SDK dll compatible with any C++ compiler
|
||||
//
|
||||
|
||||
#include <windows.h>
|
||||
#include <GL/GL.h>
|
||||
|
||||
#define SPOUTLIBRARY_EXPORTS // defined for this DLL. The application imports rather than exports
|
||||
|
||||
#ifdef SPOUTLIBRARY_EXPORTS
|
||||
#define SPOUTAPI __declspec(dllexport)
|
||||
#else
|
||||
#define SPOUTAPI __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// COM-Like abstract interface.
|
||||
// This interface doesn't require __declspec(dllexport/dllimport) specifier.
|
||||
// Method calls are dispatched via virtual table.
|
||||
// Any C++ compiler can use it.
|
||||
// Instances are obtained via factory function.
|
||||
//
|
||||
struct SPOUTLIBRARY
|
||||
{
|
||||
// Sender
|
||||
virtual bool CreateSender(const char *Sendername, unsigned int width, unsigned int height, DWORD dwFormat = 0) = 0;
|
||||
virtual void ReleaseSender(DWORD dwMsec = 0) = 0;
|
||||
virtual bool UpdateSender(const char* Sendername, unsigned int width, unsigned int height) = 0;
|
||||
virtual bool SendTexture(GLuint TextureID, GLuint TextureTarget, unsigned int width, unsigned int height, bool bInvert = true, GLuint HostFBO = 0) = 0;
|
||||
virtual bool SendImage(const unsigned char* pixels, unsigned int width, unsigned int height, GLenum glFormat = GL_RGBA, bool bInvert=false) = 0;
|
||||
|
||||
// Receiver
|
||||
virtual bool CreateReceiver(char* Sendername, unsigned int &width, unsigned int &height, bool bUseActive = false) = 0;
|
||||
virtual void ReleaseReceiver() = 0;
|
||||
virtual bool ReceiveTexture(char* Sendername, unsigned int &width, unsigned int &height, GLuint TextureID = 0, GLuint TextureTarget = 0, bool bInvert = false, GLuint HostFBO = 0) = 0;
|
||||
virtual bool ReceiveImage(char* Sendername, unsigned int &width, unsigned int &height, unsigned char* pixels, GLenum glFormat = GL_RGBA, bool bInvert = false, GLuint HostFBO=0) = 0;
|
||||
virtual bool CheckReceiver(char* Sendername, unsigned int &width, unsigned int &height, bool &bConnected) = 0;
|
||||
virtual bool GetImageSize(char* sendername, unsigned int &width, unsigned int &height, bool &bMemoryMode) = 0;
|
||||
|
||||
virtual bool BindSharedTexture() = 0;
|
||||
virtual bool UnBindSharedTexture() = 0;
|
||||
|
||||
virtual bool DrawSharedTexture(float max_x = 1.0, float max_y = 1.0, float aspect = 1.0, bool bInvert = true) = 0;
|
||||
virtual bool DrawToSharedTexture(GLuint TextureID, GLuint TextureTarget, unsigned int width, unsigned int height, float max_x = 1.0, float max_y = 1.0, float aspect = 1.0, bool bInvert = false, GLuint HostFBO = 0) = 0;
|
||||
|
||||
virtual int GetSenderCount() = 0;
|
||||
virtual bool GetSenderName(int index, char* sendername, int MaxSize = 256) = 0;
|
||||
virtual bool GetSenderInfo(const char* sendername, unsigned int &width, unsigned int &height, HANDLE &dxShareHandle, DWORD &dwFormat) = 0;
|
||||
virtual bool GetActiveSender(char* Sendername) = 0;
|
||||
virtual bool SetActiveSender(const char* Sendername) = 0;
|
||||
|
||||
// Utilities
|
||||
virtual bool SetDX9(bool bDX9 = true) = 0; // User request to use DirectX 9 (default is DirectX 11)
|
||||
virtual bool GetDX9() = 0; // Return the flag that has been set
|
||||
virtual bool SetMemoryShareMode(bool bMem = true) = 0;
|
||||
virtual bool GetMemoryShareMode() = 0;
|
||||
virtual int GetMaxSenders() = 0; // Get maximum senders allowed
|
||||
virtual void SetMaxSenders(int maxSenders) = 0; // Set maximum senders allowed
|
||||
virtual bool GetHostPath(const char *sendername, char *hostpath, int maxchars) = 0; // The path of the host that produced the sender
|
||||
virtual int GetVerticalSync() = 0;
|
||||
virtual bool SetVerticalSync(bool bSync = true) = 0;
|
||||
virtual bool SelectSenderPanel(const char* message = NULL) = 0;
|
||||
|
||||
// Access to globals
|
||||
virtual bool GetSpoutSenderName(char * sendername, int maxchars) = 0; // get the global sender name
|
||||
virtual bool IsSpoutInitialized() = 0; // has the class been initialized
|
||||
|
||||
// Adapter functions
|
||||
virtual int GetNumAdapters() = 0; // Get the number of graphics adapters in the system
|
||||
virtual bool GetAdapterName(int index, char *adaptername, int maxchars) = 0; // Get an adapter name
|
||||
virtual bool SetAdapter(int index = 0) = 0; // Set required graphics adapter for output
|
||||
virtual int GetAdapter() = 0; // Get the SpoutDirectX global adapter index
|
||||
|
||||
// Library release function
|
||||
virtual void Release() = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
// Handle type. In C++ language the interface type is used.
|
||||
typedef SPOUTLIBRARY* SPOUTHANDLE;
|
||||
|
||||
// Factory function that creates instances of the SPOUT object.
|
||||
extern "C" SPOUTAPI SPOUTHANDLE WINAPI GetSpout(VOID);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
Binary file not shown.
+492
-214
@@ -25,33 +25,151 @@
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <openspace/engine/wrapper/sgctwindowwrapper.h>
|
||||
#include <openspace/util/keys.h>
|
||||
#include <ghoul/filesystem/filesystem.h>
|
||||
|
||||
#include <ghoul/logging/logmanager.h>
|
||||
#include <ghoul/misc/assert.h>
|
||||
#include <ghoul/opengl/ghoul_gl.h>
|
||||
|
||||
#include <sgct.h>
|
||||
#include <chrono>
|
||||
#include <thread>
|
||||
|
||||
sgct::Engine* _sgctEngine;
|
||||
#ifdef WIN32
|
||||
|
||||
#include <openspace/openspace.h>
|
||||
|
||||
#include <ghoul/filesystem/filesystem.h>
|
||||
#include <ghoul/misc/stacktrace.h>
|
||||
|
||||
#include <fmt/format.h>
|
||||
|
||||
#include <Windows.h>
|
||||
#include <dbghelp.h>
|
||||
#include <shellapi.h>
|
||||
#include <shlobj.h>
|
||||
|
||||
#endif // WIN32
|
||||
|
||||
#ifdef OPENVR_SUPPORT
|
||||
#include <SGCTOpenVR.h>
|
||||
#endif // OPENVR_SUPPORT
|
||||
|
||||
#ifdef OPENSPACE_HAS_SPOUT
|
||||
#include "SpoutLibrary.h"
|
||||
#endif // OPENSPACE_HAS_SPOUT
|
||||
|
||||
|
||||
#define DEVELOPER_MODE
|
||||
|
||||
namespace {
|
||||
|
||||
const char* _loggerCat = "main";
|
||||
sgct::Engine* SgctEngine;
|
||||
|
||||
const char* OpenVRTag = "OpenVR";
|
||||
const char* SpoutTag = "Spout";
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
LONG WINAPI generateMiniDump(EXCEPTION_POINTERS* exceptionPointers) {
|
||||
SYSTEMTIME stLocalTime;
|
||||
GetLocalTime(&stLocalTime);
|
||||
|
||||
|
||||
LFATAL("Printing Stack Trace that lead to the crash:");
|
||||
std::vector<std::string> stackTrace = ghoul::stackTrace();
|
||||
for (const std::string& s : stackTrace) {
|
||||
LINFO(s);
|
||||
}
|
||||
|
||||
std::string dumpFile = fmt::format(
|
||||
"OpenSpace_{}_{}_{}-{}-{}-{}-{}-{}-{}--{}--{}.dmp",
|
||||
openspace::OPENSPACE_VERSION_MAJOR,
|
||||
openspace::OPENSPACE_VERSION_MINOR,
|
||||
openspace::OPENSPACE_VERSION_PATCH,
|
||||
stLocalTime.wYear,
|
||||
stLocalTime.wMonth,
|
||||
stLocalTime.wDay,
|
||||
stLocalTime.wHour,
|
||||
stLocalTime.wMinute,
|
||||
stLocalTime.wSecond,
|
||||
GetCurrentProcessId(),
|
||||
GetCurrentThreadId()
|
||||
);
|
||||
|
||||
LINFO("Creating dump file: " << dumpFile);
|
||||
|
||||
HANDLE hDumpFile = CreateFile(
|
||||
dumpFile.c_str(),
|
||||
GENERIC_READ | GENERIC_WRITE,
|
||||
FILE_SHARE_WRITE | FILE_SHARE_READ,
|
||||
0,
|
||||
CREATE_ALWAYS,
|
||||
0,
|
||||
0
|
||||
);
|
||||
|
||||
MINIDUMP_EXCEPTION_INFORMATION exceptionParameter;
|
||||
exceptionParameter.ThreadId = GetCurrentThreadId();
|
||||
exceptionParameter.ExceptionPointers = exceptionPointers;
|
||||
exceptionParameter.ClientPointers = TRUE;
|
||||
|
||||
BOOL success = MiniDumpWriteDump(
|
||||
GetCurrentProcess(),
|
||||
GetCurrentProcessId(),
|
||||
hDumpFile,
|
||||
MiniDumpWithDataSegs,
|
||||
&exceptionParameter,
|
||||
nullptr,
|
||||
nullptr
|
||||
);
|
||||
|
||||
if (success) {
|
||||
LINFO("Created successfully");
|
||||
}
|
||||
else {
|
||||
LERROR("Dumpfile created unsuccessfully");
|
||||
}
|
||||
|
||||
return EXCEPTION_EXECUTE_HANDLER;
|
||||
}
|
||||
|
||||
#endif // WIN32
|
||||
|
||||
#ifdef OPENVR_SUPPORT
|
||||
sgct::SGCTWindow* FirstOpenVRWindow = nullptr;
|
||||
#endif
|
||||
|
||||
#ifdef OPENSPACE_HAS_SPOUT
|
||||
/**
|
||||
* This struct stores all information about a single render window. Depending on the
|
||||
* frame setup, each window can be mono or stereo, the information of which is stored in
|
||||
* the \c leftOrMain and \c right members respectively.
|
||||
*/
|
||||
struct SpoutWindow {
|
||||
struct SpoutData {
|
||||
SPOUTHANDLE handle = nullptr;
|
||||
bool initialized = false;
|
||||
};
|
||||
|
||||
/// The left framebuffer (or main, if there is no stereo rendering)
|
||||
SpoutData leftOrMain;
|
||||
|
||||
/// The right framebuffer
|
||||
SpoutData right;
|
||||
|
||||
/// The window ID of this windows
|
||||
size_t windowId = size_t(-1);
|
||||
};
|
||||
|
||||
/// The list of all windows with spout senders
|
||||
std::vector<SpoutWindow> SpoutWindows;
|
||||
|
||||
#endif // OPENSPACE_HAS_SPOUT
|
||||
|
||||
|
||||
int main_main(int argc, char** argv);
|
||||
void mainInitFunc();
|
||||
void mainPreSyncFunc();
|
||||
void mainPostSyncPreDrawFunc();
|
||||
void mainRenderFunc();
|
||||
void mainPostDrawFunc();
|
||||
void mainKeyboardCallback(int key, int scancode, int action, int mods);
|
||||
void mainCharCallback(unsigned int codepoint, int mods);
|
||||
void mainMouseButtonCallback(int key, int action);
|
||||
void mainMousePosCallback(double x, double y);
|
||||
void mainMouseScrollCallback(double posX, double posY);
|
||||
void mainEncodeFun();
|
||||
void mainDecodeFun();
|
||||
void mainExternalControlCallback(const char * receivedChars, int size);
|
||||
void mainLogCallback(const char* msg);
|
||||
|
||||
std::pair<int, int> supportedOpenGLVersion() {
|
||||
// Just create a window in order to retrieve the available OpenGL version before we
|
||||
// create the real window
|
||||
glfwInit();
|
||||
|
||||
// On OS X we need to explicitly set the version and specify that we are using CORE
|
||||
@@ -66,185 +184,124 @@ std::pair<int, int> supportedOpenGLVersion() {
|
||||
#endif
|
||||
|
||||
glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
|
||||
|
||||
// By creating an offscreen window, the user will not know that we created this window
|
||||
GLFWwindow* offscreen = glfwCreateWindow(128, 128, "", nullptr, nullptr);
|
||||
glfwMakeContextCurrent(offscreen);
|
||||
|
||||
// Get the OpenGL version
|
||||
int major, minor;
|
||||
glGetIntegerv(GL_MAJOR_VERSION, &major);
|
||||
glGetIntegerv(GL_MINOR_VERSION, &minor);
|
||||
|
||||
// And get rid of the window again
|
||||
glfwDestroyWindow(offscreen);
|
||||
glfwWindowHint(GLFW_VISIBLE, GL_TRUE);
|
||||
|
||||
return { major, minor };
|
||||
}
|
||||
|
||||
namespace {
|
||||
const std::string _loggerCat = "main";
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
try {
|
||||
return main_main(argc, argv);
|
||||
}
|
||||
catch (const ghoul::RuntimeError& e) {
|
||||
// Write out all of the information about the exception, flush the logs, and throw
|
||||
LFATALC(e.component, e.message);
|
||||
LogMgr.flushLogs();
|
||||
throw;
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
// Write out all of the information about the exception, flush the logs, and throw
|
||||
LFATALC("Exception", e.what());
|
||||
LogMgr.flushLogs();
|
||||
throw;
|
||||
}
|
||||
catch (...) {
|
||||
// Write out all of the information about the exception, flush the logs, and throw
|
||||
LFATALC("Exception", "Unknown exception");
|
||||
LogMgr.flushLogs();
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
int main_main(int argc, char** argv) {
|
||||
auto glVersion = supportedOpenGLVersion();
|
||||
|
||||
// create the OpenSpace engine and get arguments for the sgct engine
|
||||
std::vector<std::string> sgctArguments;
|
||||
const bool success = openspace::OpenSpaceEngine::create(
|
||||
argc, argv,
|
||||
std::make_unique<openspace::SGCTWindowWrapper>(),
|
||||
sgctArguments
|
||||
);
|
||||
if (!success)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
LINFO("Detected OpenGL version: " << glVersion.first << "." << glVersion.second);
|
||||
|
||||
// create sgct engine c arguments
|
||||
int newArgc = static_cast<int>(sgctArguments.size());
|
||||
char** newArgv = new char*[newArgc];
|
||||
for (int i = 0; i < newArgc; ++i) {
|
||||
newArgv[i] = const_cast<char*>(sgctArguments.at(i).c_str());
|
||||
}
|
||||
|
||||
// Need to set this before the creation of the sgct::Engine
|
||||
sgct::MessageHandler::instance()->setLogToConsole(false);
|
||||
sgct::MessageHandler::instance()->setShowTime(false);
|
||||
sgct::MessageHandler::instance()->setLogToCallback(true);
|
||||
sgct::MessageHandler::instance()->setLogCallback(mainLogCallback);
|
||||
|
||||
#ifdef __APPLE__
|
||||
glfwWindowHint(GLFW_STENCIL_BITS, 8);
|
||||
#endif
|
||||
|
||||
LDEBUG("Creating SGCT Engine");
|
||||
_sgctEngine = new sgct::Engine(newArgc, newArgv);
|
||||
|
||||
// deallocate sgct c arguments
|
||||
delete[] newArgv;
|
||||
|
||||
// Bind functions
|
||||
_sgctEngine->setInitOGLFunction(mainInitFunc);
|
||||
_sgctEngine->setPreSyncFunction(mainPreSyncFunc);
|
||||
_sgctEngine->setPostSyncPreDrawFunction(mainPostSyncPreDrawFunc);
|
||||
_sgctEngine->setDrawFunction(mainRenderFunc);
|
||||
_sgctEngine->setPostDrawFunction(mainPostDrawFunc);
|
||||
_sgctEngine->setKeyboardCallbackFunction(mainKeyboardCallback);
|
||||
_sgctEngine->setMouseButtonCallbackFunction(mainMouseButtonCallback);
|
||||
_sgctEngine->setMousePosCallbackFunction(mainMousePosCallback);
|
||||
_sgctEngine->setMouseScrollCallbackFunction(mainMouseScrollCallback);
|
||||
_sgctEngine->setExternalControlCallback(mainExternalControlCallback);
|
||||
_sgctEngine->setCharCallbackFunction(mainCharCallback);
|
||||
|
||||
// Disable the immediate exit of the application when the ESC key is pressed
|
||||
_sgctEngine->setExitKey(SGCT_KEY_UNKNOWN);
|
||||
|
||||
sgct::MessageHandler::instance()->setNotifyLevel(sgct::MessageHandler::NOTIFY_ALL);
|
||||
|
||||
// set encode and decode functions
|
||||
// NOTE: starts synchronizing before init functions
|
||||
sgct::SharedData::instance()->setEncodeFunction(mainEncodeFun);
|
||||
sgct::SharedData::instance()->setDecodeFunction(mainDecodeFun);
|
||||
|
||||
// try to open a window
|
||||
LDEBUG("Initialize SGCT Engine");
|
||||
std::map<std::pair<int, int>, sgct::Engine::RunMode> versionMapping = {
|
||||
{ { 3, 3 }, sgct::Engine::RunMode::OpenGL_3_3_Core_Profile },
|
||||
{ { 4, 0 }, sgct::Engine::RunMode::OpenGL_4_0_Core_Profile },
|
||||
{ { 4, 1 }, sgct::Engine::RunMode::OpenGL_4_1_Core_Profile },
|
||||
{ { 4, 2 }, sgct::Engine::RunMode::OpenGL_4_2_Core_Profile },
|
||||
{ { 4, 3 }, sgct::Engine::RunMode::OpenGL_4_3_Core_Profile },
|
||||
{ { 4, 4 }, sgct::Engine::RunMode::OpenGL_4_4_Core_Profile },
|
||||
{ { 4, 5 }, sgct::Engine::RunMode::OpenGL_4_5_Core_Profile }
|
||||
};
|
||||
ghoul_assert(
|
||||
versionMapping.find(glVersion) != versionMapping.end(),
|
||||
"Unknown OpenGL version. Missing statement in version mapping map"
|
||||
);
|
||||
sgct::Engine::RunMode rm = versionMapping[glVersion];
|
||||
const bool initSuccess = _sgctEngine->init(rm);
|
||||
|
||||
if (!initSuccess) {
|
||||
LFATAL("Initializing failed");
|
||||
// could not open a window, deallocates and exits
|
||||
delete _sgctEngine;
|
||||
openspace::OpenSpaceEngine::destroy();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
// Main loop
|
||||
LDEBUG("Starting rendering loop");
|
||||
_sgctEngine->render();
|
||||
LDEBUG("Ending rendering loop");
|
||||
|
||||
//clear function bindings to avoid crash after destroying the OpenSpace Engine
|
||||
sgct::MessageHandler::instance()->setLogToCallback(false);
|
||||
sgct::MessageHandler::instance()->setLogCallback(nullptr);
|
||||
|
||||
LDEBUG("Destroying OpenSpaceEngine");
|
||||
openspace::OpenSpaceEngine::destroy();
|
||||
|
||||
// Clean up (deallocate)
|
||||
LDEBUG("Destroying SGCT Engine");
|
||||
delete _sgctEngine;
|
||||
|
||||
// Exit program
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
void mainInitFunc() {
|
||||
LTRACE("main::mainInitFunc(begin)");
|
||||
//is this node the master? (must be set after call to _sgctEngine->init())
|
||||
OsEng.setMaster(_sgctEngine->isMaster());
|
||||
|
||||
LDEBUG("Initializing OpenSpace Engine");
|
||||
bool success = OsEng.initialize();
|
||||
|
||||
LDEBUG("Initializing OpenGL in OpenSpace Engine");
|
||||
if (success) {
|
||||
success = OsEng.initializeGL();
|
||||
LDEBUG("Initializing OpenSpace Engine started");
|
||||
OsEng.initialize();
|
||||
LDEBUG("Initializing OpenSpace Engine finished");
|
||||
|
||||
LDEBUG("Initializing OpenGL in OpenSpace Engine started");
|
||||
OsEng.initializeGL();
|
||||
LDEBUG("Initializing OpenGL in OpenSpace Engine finished");
|
||||
|
||||
// Find if we have at least one OpenVR window
|
||||
// Save reference to first OpenVR window, which is the one we will copy to the HMD.
|
||||
for (size_t i = 0; i < SgctEngine->getNumberOfWindows(); ++i) {
|
||||
if (SgctEngine->getWindowPtr(i)->checkIfTagExists(OpenVRTag)) {
|
||||
#ifdef OPENVR_SUPPORT
|
||||
FirstOpenVRWindow = SgctEngine->getWindowPtr(i);
|
||||
|
||||
// If we have an OpenVRWindow, initialize OpenVR.
|
||||
sgct::SGCTOpenVR::initialize(
|
||||
SgctEngine->getNearClippingPlane(), SgctEngine->getFarClippingPlane()
|
||||
);
|
||||
#else
|
||||
LWARNING(
|
||||
"OpenVR was requested, but OpenSpace was compiled without VR support."
|
||||
);
|
||||
#endif
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!success) {
|
||||
LFATAL("Initializing OpenSpaceEngine failed");
|
||||
LogMgr.flushLogs();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// Set the clear color for all non-linear projection viewports
|
||||
size_t nWindows = _sgctEngine->getNumberOfWindows();
|
||||
// @CLEANUP: Why is this necessary? We can set the clear color in the configuration
|
||||
// files --- abock
|
||||
const size_t nWindows = SgctEngine->getNumberOfWindows();
|
||||
for (size_t i = 0; i < nWindows; ++i) {
|
||||
sgct::SGCTWindow* w = _sgctEngine->getWindowPtr(i);
|
||||
size_t nViewports = w->getNumberOfViewports();
|
||||
sgct::SGCTWindow* w = SgctEngine->getWindowPtr(i);
|
||||
const size_t nViewports = w->getNumberOfViewports();
|
||||
for (size_t j = 0; j < nViewports; ++j) {
|
||||
sgct_core::Viewport* v = w->getViewport(j);
|
||||
ghoul_assert(v != nullptr, "Number of reported viewports was incorrect");
|
||||
sgct_core::NonLinearProjection* p = v->getNonLinearProjectionPtr();
|
||||
if (p)
|
||||
if (p) {
|
||||
p->setClearColor(glm::vec4(0.f, 0.f, 0.f, 1.f));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < nWindows; ++i) {
|
||||
const sgct::SGCTWindow* windowPtr = SgctEngine->getWindowPtr(i);
|
||||
|
||||
if (!windowPtr->checkIfTagExists(SpoutTag)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
#ifdef OPENSPACE_HAS_SPOUT
|
||||
SpoutWindow w;
|
||||
|
||||
w.windowId = i;
|
||||
|
||||
const sgct::SGCTWindow::StereoMode sm = windowPtr->getStereoMode();
|
||||
const bool hasStereo =
|
||||
(sm != sgct::SGCTWindow::No_Stereo) &&
|
||||
(sm < sgct::SGCTWindow::Side_By_Side_Stereo);
|
||||
|
||||
if (hasStereo) {
|
||||
SpoutWindow::SpoutData& left = w.leftOrMain;
|
||||
left.handle = GetSpout();
|
||||
left.initialized = left.handle->CreateSender(
|
||||
(windowPtr->getName() + "_left").c_str(),
|
||||
windowPtr->getXFramebufferResolution(),
|
||||
windowPtr->getYFramebufferResolution()
|
||||
);
|
||||
|
||||
SpoutWindow::SpoutData& right = w.right;
|
||||
right.handle = GetSpout();
|
||||
right.initialized = right.handle->CreateSender(
|
||||
(windowPtr->getName() + "_right").c_str(),
|
||||
windowPtr->getXFramebufferResolution(),
|
||||
windowPtr->getYFramebufferResolution()
|
||||
);
|
||||
}
|
||||
else {
|
||||
SpoutWindow::SpoutData& main = w.leftOrMain;
|
||||
main.handle = GetSpout();
|
||||
main.initialized = main.handle->CreateSender(
|
||||
windowPtr->getName().c_str(),
|
||||
windowPtr->getXFramebufferResolution(),
|
||||
windowPtr->getYFramebufferResolution()
|
||||
);
|
||||
}
|
||||
|
||||
SpoutWindows.push_back(std::move(w));
|
||||
#else
|
||||
LWARNING(
|
||||
"Spout was requested, but OpenSpace was compiled without Spout support."
|
||||
);
|
||||
|
||||
#endif // OPENSPACE_HAS_SPOUT
|
||||
}
|
||||
LTRACE("main::mainInitFunc(end)");
|
||||
}
|
||||
|
||||
@@ -255,59 +312,96 @@ void mainPreSyncFunc() {
|
||||
LTRACE("main::mainPreSyncFunc(end)");
|
||||
}
|
||||
|
||||
volatile bool busyWaitDecode = false;
|
||||
void mainPostSyncPreDrawFunc() {
|
||||
// if (OsEng.useBusyWaitForDecode() && !sgct::Engine::instance()->isMaster()) {
|
||||
// while (minilog.str().size() && minilog.str().back() != DECODE.end) {
|
||||
// std::this_thread::sleep_for(std::chrono::microseconds(10));
|
||||
// }
|
||||
// }
|
||||
LTRACE("main::postSynchronizationPreDraw(begin)");
|
||||
OsEng.postSynchronizationPreDraw();
|
||||
|
||||
#ifdef OPENVR_SUPPORT
|
||||
if (FirstOpenVRWindow) {
|
||||
// Update pose matrices for all tracked OpenVR devices once per frame
|
||||
sgct::SGCTOpenVR::updatePoses();
|
||||
}
|
||||
#endif // OPENVR_SUPPORT
|
||||
|
||||
LTRACE("main::postSynchronizationPreDraw(end)");
|
||||
}
|
||||
|
||||
void mainRenderFunc() {
|
||||
LTRACE("main::mainRenderFunc(begin)");
|
||||
using glm::mat4;
|
||||
using glm::translate;
|
||||
//not the most efficient, but for clarity @JK
|
||||
|
||||
mat4 userMatrix = translate(mat4(1.f), _sgctEngine->getDefaultUserPtr()->getPos());
|
||||
mat4 sceneMatrix = _sgctEngine->getModelMatrix();
|
||||
mat4 viewMatrix = _sgctEngine->getCurrentViewMatrix() * userMatrix;
|
||||
glm::mat4 viewMatrix =
|
||||
SgctEngine->getCurrentViewMatrix() *
|
||||
// User matrix
|
||||
glm::translate(
|
||||
glm::mat4(1.f),
|
||||
SgctEngine->getDefaultUserPtr()->getPos()
|
||||
)
|
||||
;
|
||||
|
||||
//dont shift nav-direction on master, makes it very tricky to navigate @JK
|
||||
if (!OsEng.ref().isMaster())
|
||||
viewMatrix = viewMatrix * sceneMatrix;
|
||||
glm::mat4 projectionMatrix = SgctEngine->getCurrentProjectionMatrix();
|
||||
#ifdef OPENVR_SUPPORT
|
||||
bool currentWindowIsHMD = FirstOpenVRWindow == SgctEngine->getCurrentWindowPtr();
|
||||
if (sgct::SGCTOpenVR::isHMDActive() && currentWindowIsHMD) {
|
||||
projectionMatrix = sgct::SGCTOpenVR::getHMDCurrentViewProjectionMatrix(
|
||||
SgctEngine->getCurrentFrustumMode()
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
mat4 projectionMatrix = _sgctEngine->getCurrentProjectionMatrix();
|
||||
OsEng.render(projectionMatrix, viewMatrix);
|
||||
OsEng.render(
|
||||
SgctEngine->getModelMatrix(),
|
||||
viewMatrix,
|
||||
projectionMatrix
|
||||
);
|
||||
LTRACE("main::mainRenderFunc(end)");
|
||||
}
|
||||
|
||||
void mainPostDrawFunc() {
|
||||
LTRACE("main::mainPostDrawFunc(begin)");
|
||||
OsEng.postDraw();
|
||||
LTRACE("main::mainPostDrawFunc(end)");
|
||||
|
||||
// if (OsEng.logSGCTOutOfOrderErrors()) {
|
||||
// if (sgct::Engine::instance()->isMaster()) {
|
||||
// if (minilog.str() != EXPECTED_MASTER_LOG) {
|
||||
// LERRORC("Minilog", "Bad combination: " << minilog.str());
|
||||
// }
|
||||
// }
|
||||
// else {
|
||||
// if (minilog.str() != EXPECTED_SLAVE_LOG) {
|
||||
// LERRORC("Minilog", "Bad combination: " << minilog.str());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
#ifdef OPENVR_SUPPORT
|
||||
if (FirstOpenVRWindow) {
|
||||
// Copy the first OpenVR window to the HMD
|
||||
sgct::SGCTOpenVR::copyWindowToHMD(FirstOpenVRWindow);
|
||||
}
|
||||
#endif // OPENVR_SUPPORT
|
||||
|
||||
OsEng.postDraw();
|
||||
|
||||
#ifdef OPENSPACE_HAS_SPOUT
|
||||
for (const SpoutWindow& w : SpoutWindows) {
|
||||
sgct::SGCTWindow* window = SgctEngine->getWindowPtr(w.windowId);
|
||||
if (w.leftOrMain.initialized) {
|
||||
GLuint texId = window->getFrameBufferTexture(sgct::Engine::LeftEye);
|
||||
glBindTexture(GL_TEXTURE_2D, texId);
|
||||
w.leftOrMain.handle->SendTexture(
|
||||
texId,
|
||||
GL_TEXTURE_2D,
|
||||
window->getXFramebufferResolution(),
|
||||
window->getYFramebufferResolution()
|
||||
);
|
||||
}
|
||||
|
||||
if (w.right.initialized) {
|
||||
GLuint texId = window->getFrameBufferTexture(sgct::Engine::RightEye);
|
||||
glBindTexture(GL_TEXTURE_2D, texId);
|
||||
w.right.handle->SendTexture(
|
||||
texId,
|
||||
GL_TEXTURE_2D,
|
||||
window->getXFramebufferResolution(),
|
||||
window->getYFramebufferResolution()
|
||||
);
|
||||
}
|
||||
}
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
#endif // OPENSPACE_HAS_SPOUT
|
||||
|
||||
LTRACE("main::mainPostDrawFunc(end)");
|
||||
}
|
||||
|
||||
void mainExternalControlCallback(const char* receivedChars, int size) {
|
||||
LTRACE("main::mainExternalControlCallback(begin)");
|
||||
if (OsEng.isMaster()) {
|
||||
if (SgctEngine->isMaster()) {
|
||||
OsEng.externalControlCallback(receivedChars, size, 0);
|
||||
}
|
||||
LTRACE("main::mainExternalControlCallback(end)");
|
||||
@@ -315,40 +409,45 @@ void mainExternalControlCallback(const char* receivedChars, int size) {
|
||||
|
||||
void mainKeyboardCallback(int key, int, int action, int mods) {
|
||||
LTRACE("main::mainKeyboardCallback(begin)");
|
||||
if (OsEng.isMaster()) {
|
||||
if (SgctEngine->isMaster()) {
|
||||
OsEng.keyboardCallback(
|
||||
openspace::Key(key),
|
||||
openspace::KeyModifier(mods),
|
||||
openspace::KeyAction(action)
|
||||
);
|
||||
);
|
||||
}
|
||||
LTRACE("main::mainKeyboardCallback(begin)");
|
||||
}
|
||||
|
||||
void mainMouseButtonCallback(int key, int action) {
|
||||
LTRACE("main::mainMouseButtonCallback(begin)");
|
||||
if (OsEng.isMaster()) {
|
||||
if (SgctEngine->isMaster()) {
|
||||
OsEng.mouseButtonCallback(
|
||||
openspace::MouseButton(key),
|
||||
openspace::MouseAction(action)
|
||||
);
|
||||
);
|
||||
}
|
||||
LTRACE("main::mainMouseButtonCallback(end)");
|
||||
}
|
||||
|
||||
void mainMousePosCallback(double x, double y) {
|
||||
if (OsEng.isMaster())
|
||||
if (SgctEngine->isMaster()) {
|
||||
OsEng.mousePositionCallback(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
void mainMouseScrollCallback(double posX, double posY) {
|
||||
if (OsEng.isMaster())
|
||||
void mainMouseScrollCallback(double, double posY) {
|
||||
LTRACE("main::mainMouseScrollCallback(begin");
|
||||
if (SgctEngine->isMaster()) {
|
||||
OsEng.mouseScrollWheelCallback(posY);
|
||||
}
|
||||
LTRACE("main::mainMouseScrollCallback(end)");
|
||||
}
|
||||
|
||||
void mainCharCallback(unsigned int codepoint, int mods) {
|
||||
if (OsEng.isMaster())
|
||||
if (SgctEngine->isMaster()) {
|
||||
OsEng.charCallback(codepoint, openspace::KeyModifier(mods));
|
||||
}
|
||||
}
|
||||
|
||||
void mainEncodeFun() {
|
||||
@@ -365,10 +464,189 @@ void mainDecodeFun() {
|
||||
|
||||
void mainLogCallback(const char* msg) {
|
||||
std::string message = msg;
|
||||
if (message.empty() || message == ".")
|
||||
if (message.empty() || message == ".") {
|
||||
// We don't want the empty '.' message that SGCT sends while it is waiting for
|
||||
// connections from other network nodes
|
||||
return;
|
||||
}
|
||||
// Remove the trailing \n that is passed along
|
||||
LINFOC("SGCT", message.substr(0, std::max<size_t>(message.size() - 1, 0)));
|
||||
LINFOC("SGCT", message.substr(0, message.size() - 1));
|
||||
}
|
||||
|
||||
int main_main(int argc, char** argv) {
|
||||
std::pair<int, int> glVersion = supportedOpenGLVersion();
|
||||
|
||||
// Create the OpenSpace engine and get arguments for the SGCT engine
|
||||
// @CLEANUP: Replace the return valua with throwing an exception --abock
|
||||
std::vector<std::string> sgctArguments;
|
||||
bool requestQuit = false;
|
||||
openspace::OpenSpaceEngine::create(
|
||||
argc, argv,
|
||||
std::make_unique<openspace::SGCTWindowWrapper>(),
|
||||
sgctArguments,
|
||||
requestQuit
|
||||
);
|
||||
|
||||
if (requestQuit) {
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
LINFO("Detected OpenGL version: " << glVersion.first << "." << glVersion.second);
|
||||
|
||||
// Create sgct engine c arguments
|
||||
int newArgc = static_cast<int>(sgctArguments.size());
|
||||
|
||||
char** newArgv = new char*[newArgc];
|
||||
for (int i = 0; i < newArgc; ++i) {
|
||||
newArgv[i] = const_cast<char*>(sgctArguments.at(i).c_str());
|
||||
}
|
||||
|
||||
// Need to set this before the creation of the sgct::Engine
|
||||
sgct::MessageHandler::instance()->setLogToConsole(false);
|
||||
sgct::MessageHandler::instance()->setShowTime(false);
|
||||
sgct::MessageHandler::instance()->setLogToCallback(true);
|
||||
sgct::MessageHandler::instance()->setLogCallback(mainLogCallback);
|
||||
|
||||
#ifdef __APPLE__
|
||||
glfwWindowHint(GLFW_STENCIL_BITS, 8);
|
||||
#endif
|
||||
|
||||
LDEBUG("Creating SGCT Engine");
|
||||
SgctEngine = new sgct::Engine(newArgc, newArgv);
|
||||
|
||||
// Deallocate sgct c arguments
|
||||
delete[] newArgv;
|
||||
|
||||
// Bind functions
|
||||
SgctEngine->setInitOGLFunction(mainInitFunc);
|
||||
SgctEngine->setPreSyncFunction(mainPreSyncFunc);
|
||||
SgctEngine->setPostSyncPreDrawFunction(mainPostSyncPreDrawFunc);
|
||||
SgctEngine->setDrawFunction(mainRenderFunc);
|
||||
SgctEngine->setPostDrawFunction(mainPostDrawFunc);
|
||||
SgctEngine->setKeyboardCallbackFunction(mainKeyboardCallback);
|
||||
SgctEngine->setMouseButtonCallbackFunction(mainMouseButtonCallback);
|
||||
SgctEngine->setMousePosCallbackFunction(mainMousePosCallback);
|
||||
SgctEngine->setMouseScrollCallbackFunction(mainMouseScrollCallback);
|
||||
SgctEngine->setExternalControlCallback(mainExternalControlCallback);
|
||||
SgctEngine->setCharCallbackFunction(mainCharCallback);
|
||||
|
||||
// Disable the immediate exit of the application when the ESC key is pressed
|
||||
SgctEngine->setExitKey(SGCT_KEY_UNKNOWN);
|
||||
|
||||
sgct::MessageHandler::instance()->setNotifyLevel(sgct::MessageHandler::NOTIFY_ALL);
|
||||
|
||||
// Set encode and decode functions
|
||||
// NOTE: starts synchronizing before init functions
|
||||
sgct::SharedData::instance()->setEncodeFunction(mainEncodeFun);
|
||||
sgct::SharedData::instance()->setDecodeFunction(mainDecodeFun);
|
||||
|
||||
// Try to open a window
|
||||
LDEBUG("Initialize SGCT Engine");
|
||||
std::map<std::pair<int, int>, sgct::Engine::RunMode> versionMapping = {
|
||||
{ { 3, 3 }, sgct::Engine::RunMode::OpenGL_3_3_Core_Profile },
|
||||
{ { 4, 0 }, sgct::Engine::RunMode::OpenGL_4_0_Core_Profile },
|
||||
{ { 4, 1 }, sgct::Engine::RunMode::OpenGL_4_1_Core_Profile },
|
||||
{ { 4, 2 }, sgct::Engine::RunMode::OpenGL_4_2_Core_Profile },
|
||||
{ { 4, 3 }, sgct::Engine::RunMode::OpenGL_4_3_Core_Profile },
|
||||
{ { 4, 4 }, sgct::Engine::RunMode::OpenGL_4_4_Core_Profile },
|
||||
{ { 4, 5 }, sgct::Engine::RunMode::OpenGL_4_5_Core_Profile }
|
||||
};
|
||||
ghoul_assert(
|
||||
versionMapping.find(glVersion) != versionMapping.end(),
|
||||
"Unknown OpenGL version. Missing statement in version mapping map"
|
||||
);
|
||||
|
||||
auto cleanup = [&](){
|
||||
OsEng.deinitialize();
|
||||
|
||||
// Clear function bindings to avoid crash after destroying the OpenSpace Engine
|
||||
sgct::MessageHandler::instance()->setLogToCallback(false);
|
||||
sgct::MessageHandler::instance()->setLogCallback(nullptr);
|
||||
|
||||
LDEBUG("Destroying OpenSpaceEngine");
|
||||
openspace::OpenSpaceEngine::destroy();
|
||||
|
||||
LDEBUG("Destroying SGCT Engine");
|
||||
delete SgctEngine;
|
||||
|
||||
|
||||
#ifdef OPENVR_SUPPORT
|
||||
// Clean up OpenVR
|
||||
sgct::SGCTOpenVR::shutdown();
|
||||
#endif
|
||||
|
||||
#ifdef OPENSPACE_HAS_SPOUT
|
||||
for (SpoutWindow& w : SpoutWindows) {
|
||||
if (w.leftOrMain.handle) {
|
||||
w.leftOrMain.handle->ReleaseReceiver();
|
||||
w.leftOrMain.handle->Release();
|
||||
}
|
||||
if (w.right.handle) {
|
||||
w.right.handle->ReleaseReceiver();
|
||||
w.right.handle->Release();
|
||||
}
|
||||
}
|
||||
#endif // OPENSPACE_HAS_SPOUT
|
||||
};
|
||||
|
||||
bool initSuccess = SgctEngine->init(versionMapping[glVersion]);
|
||||
|
||||
if (!initSuccess) {
|
||||
LFATAL("Initializing failed");
|
||||
cleanup();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
// Main loop
|
||||
LDEBUG("Starting rendering loop");
|
||||
SgctEngine->render();
|
||||
LDEBUG("Ending rendering loop");
|
||||
|
||||
cleanup();
|
||||
|
||||
// Exit program
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
#ifdef WIN32
|
||||
SetUnhandledExceptionFilter(generateMiniDump);
|
||||
#endif // WIN32
|
||||
|
||||
// If we are working as a developer, we don't want to catch the exceptions in order to
|
||||
// find the locations where the exceptions are raised.
|
||||
// If we are not in developer mode, we want to catch and at least log the error before
|
||||
// dying
|
||||
#ifdef DEVELOPER_MODE
|
||||
return main_main(argc, argv);
|
||||
#else
|
||||
// We wrap the actual main function in a try catch block so that we can get and print
|
||||
// some additional information in case an exception is raised
|
||||
try {
|
||||
return main_main(argc, argv);
|
||||
}
|
||||
catch (const ghoul::RuntimeError& e) {
|
||||
// Write out all of the information about the exception and flush the logs
|
||||
LFATALC(e.component, e.message);
|
||||
LogMgr.flushLogs();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
catch (const ghoul::AssertionException& e) {
|
||||
// We don't want to catch the assertion exception as we won't be able to add a
|
||||
// breakpoint for debugging
|
||||
LFATALC("Assertion failed", e.what());
|
||||
throw;
|
||||
} catch (const std::exception& e) {
|
||||
LFATALC("Exception", e.what());
|
||||
LogMgr.flushLogs();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
catch (...) {
|
||||
LFATALC("Exception", "Unknown exception");
|
||||
LogMgr.flushLogs();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
#endif // DEVELOPER_MODE
|
||||
}
|
||||
|
||||
@@ -22,26 +22,18 @@
|
||||
# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #
|
||||
#########################################################################################
|
||||
|
||||
set(APPLICATION_NAME DataConverter)
|
||||
set(APPLICATION_NAME TaskRunner)
|
||||
set(APPLICATION_LINK_TO_OPENSPACE ON)
|
||||
|
||||
include (${GHOUL_BASE_DIR}/support/cmake/handle_external_library.cmake)
|
||||
|
||||
set(application_path ${OPENSPACE_APPS_DIR}/DataConverter)
|
||||
set(application_path ${OPENSPACE_APPS_DIR}/TaskRunner)
|
||||
|
||||
set(SOURCE_FILES
|
||||
${application_path}/main.cpp
|
||||
${application_path}/milkywayconversiontask.cpp
|
||||
${application_path}/milkywaypointsconversiontask.cpp
|
||||
)
|
||||
set(HEADER_FILES
|
||||
${application_path}/conversiontask.h
|
||||
${application_path}/milkywayconversiontask.h
|
||||
${application_path}/milkywaypointsconversiontask.h
|
||||
)
|
||||
|
||||
add_executable(${APPLICATION_NAME} MACOSX_BUNDLE
|
||||
${SOURCE_FILES}
|
||||
${HEADER_FILES}
|
||||
)
|
||||
|
||||
@@ -33,50 +33,98 @@
|
||||
#include <ghoul/filesystem/filesystem.h>
|
||||
#include <ghoul/ghoul.h>
|
||||
|
||||
#include <openspace/scripting/scriptengine.h>
|
||||
|
||||
#include <openspace/rendering/renderable.h>
|
||||
|
||||
#include <openspace/util/progressbar.h>
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <openspace/engine/configurationmanager.h>
|
||||
#include <openspace/util/taskloader.h>
|
||||
#include <openspace/util/factorymanager.h>
|
||||
#include <openspace/util/task.h>
|
||||
#include <openspace/scene/translation.h>
|
||||
#include <openspace/scene/rotation.h>
|
||||
#include <openspace/scene/scale.h>
|
||||
#include <openspace/engine/moduleengine.h>
|
||||
|
||||
#include <apps/DataConverter/milkywayconversiontask.h>
|
||||
#include <apps/DataConverter/milkywaypointsconversiontask.h>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
using namespace openspace;
|
||||
using namespace dataconverter;
|
||||
|
||||
ghoul::initialize();
|
||||
namespace {
|
||||
const std::string ConfigurationFile = "openspace.cfg";
|
||||
const std::string _loggerCat = "TaskRunner Main";
|
||||
}
|
||||
|
||||
void initTextureReaders() {
|
||||
#ifdef GHOUL_USE_DEVIL
|
||||
ghoul::io::TextureReader::ref().addReader(std::make_shared<ghoul::io::TextureReaderDevIL>());
|
||||
#endif // GHOUL_USE_DEVIL
|
||||
#ifdef GHOUL_USE_FREEIMAGE
|
||||
ghoul::io::TextureReader::ref().addReader(std::make_shared<ghoul::io::TextureReaderFreeImage>());
|
||||
#endif // GHOUL_USE_FREEIMAGE
|
||||
}
|
||||
|
||||
openspace::ProgressBar pb(100);
|
||||
std::function<void(float)> onProgress = [&](float progress) {
|
||||
pb.print(progress * 100);
|
||||
};
|
||||
int main(int argc, char** argv) {
|
||||
using namespace openspace;
|
||||
|
||||
// TODO: Make the converter configurable using either
|
||||
// config files (json, lua dictionaries),
|
||||
// lua scripts,
|
||||
// or at the very least: a command line interface.
|
||||
|
||||
MilkyWayConversionTask mwConversionTask(
|
||||
"F:/mw_june2016/volumeslices/img/comp/v003/frames/primary/0100/cam2_main.",
|
||||
".exr",
|
||||
1385,
|
||||
512,
|
||||
"F:/mw_june2016/mw_512_512_64_june.rawvolume",
|
||||
glm::vec3(512, 512, 64));
|
||||
ghoul::initialize();
|
||||
initTextureReaders();
|
||||
|
||||
FactoryManager::initialize();
|
||||
FactoryManager::ref().addFactory(
|
||||
std::make_unique<ghoul::TemplateFactory<Renderable>>(),
|
||||
"Renderable"
|
||||
);
|
||||
FactoryManager::ref().addFactory(
|
||||
std::make_unique<ghoul::TemplateFactory<Task>>(),
|
||||
"Task"
|
||||
);
|
||||
FactoryManager::ref().addFactory(
|
||||
std::make_unique<ghoul::TemplateFactory<Translation>>(),
|
||||
"Translation"
|
||||
);
|
||||
|
||||
FactoryManager::ref().addFactory(
|
||||
std::make_unique<ghoul::TemplateFactory<Rotation>>(),
|
||||
"Rotation"
|
||||
);
|
||||
|
||||
FactoryManager::ref().addFactory(
|
||||
std::make_unique<ghoul::TemplateFactory<Scale>>(),
|
||||
"Scale"
|
||||
);
|
||||
|
||||
openspace::ConfigurationManager configuration;
|
||||
std::string configurationFile = configuration.findConfiguration(ConfigurationFile);
|
||||
configuration.loadFromFile(configurationFile);
|
||||
|
||||
ModuleEngine moduleEngine;
|
||||
moduleEngine.initialize();
|
||||
|
||||
std::string tasksPath;
|
||||
configuration.getValue(ConfigurationManager::KeyConfigTask, tasksPath);
|
||||
|
||||
LINFO("Initialization done.");
|
||||
|
||||
TaskLoader taskLoader;
|
||||
std::vector<std::unique_ptr<Task>> tasks = taskLoader.tasksFromFile(tasksPath);
|
||||
|
||||
//MilkyWayPointsConversionTask mwpConversionTask("F:/mw_june2016/points.off", "F:/mw_june2016/points.off.binary");
|
||||
size_t nTasks = tasks.size();
|
||||
if (nTasks == 1) {
|
||||
LINFO("Task queue has 1 item");
|
||||
} else {
|
||||
LINFO("Task queue has " << tasks.size() << " items");
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < tasks.size(); i++) {
|
||||
Task& task = *tasks[i].get();
|
||||
LINFO("Performing task " << (i+1) << " out of " << tasks.size() << ": " << task.description());
|
||||
ProgressBar progressBar(100);
|
||||
auto onProgress = [&progressBar](float progress) {
|
||||
progressBar.print(progress * 100);
|
||||
};
|
||||
task.perform(onProgress);
|
||||
}
|
||||
|
||||
mwConversionTask.perform(onProgress);
|
||||
//mwpConversionTask.perform(onProgress);
|
||||
|
||||
|
||||
std::cout << "Done." << std::endl;
|
||||
std::cout << "Done performing tasks." << std::endl;
|
||||
|
||||
std::cin.get();
|
||||
return 0;
|
||||
@@ -1,82 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="127.0.0.1" externalControlPort="20500">
|
||||
<Node address="127.0.0.1" port="20400">
|
||||
<Window fullScreen="false">
|
||||
<Stereo type="none" />
|
||||
<Pos x="0" y="100" />
|
||||
<Size x="910" y="263" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-3.34533" y="-0.965" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-3.34533" y="0.965" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="3.34533" y="0.965" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<Node address="127.0.0.2" port="20401">
|
||||
<Window fullScreen="false">
|
||||
<Stereo type="none" />
|
||||
<Size x="400" y="300" />
|
||||
<Pos x="0" y="400" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-3.34533" y="-0.965" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-3.34533" y="0.965" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="-0.772" y="0.965" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<Node address="127.0.0.3" port="20402">
|
||||
<Window fullScreen="false">
|
||||
<Stereo type="none" />
|
||||
<Size x="400" y="300" />
|
||||
<Pos x="400" y="400" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-1.286667" y="-0.965" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-1.286667" y="0.965" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="1.286667" y="0.965" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<Node address="127.0.0.4" port="20403">
|
||||
<Window fullScreen="false">
|
||||
<Stereo type="none" />
|
||||
<Size x="400" y="300" />
|
||||
<Pos x="800" y="400" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="0.772" y="-0.965" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="0.772" y="0.965" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="3.34533" y="0.965" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<User eyeSeparation="0.065">
|
||||
<Pos x="0.0" y="-0.065" z="4.0" />
|
||||
</User>
|
||||
</Cluster>
|
||||
@@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<Settings>
|
||||
<Display swapInterval="1" />
|
||||
</Settings>
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="true" monitor="0">
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1920" y="1080" />
|
||||
<!--<Size x="640" y="310" />-->
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-3.556" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-3.556" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="-1.778" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
<Window fullScreen="true" monitor="1">
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1920" y="1080" />
|
||||
<!--<Size x="640" y="310" />-->
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-1.778" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-1.778" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="1.778" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
<Window fullScreen="true" monitor="2">
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1920" y="1080" />
|
||||
<!--<Size x="640" y="310" />-->
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="1.778" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="1.778" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="3.556" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<User eyeSeparation="0.065">
|
||||
<Pos x="0.0" y="0.0" z="4.0" />
|
||||
</User>
|
||||
</Cluster>
|
||||
@@ -1,47 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<Settings>
|
||||
<Display swapInterval="1" />
|
||||
</Settings>
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="true" monitor="1">
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1920" y="1080" />
|
||||
<!--<Size x="640" y="310" />-->
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-1.778" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-1.778" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="1.778" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
<Window fullScreen="true" monitor="2">
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1920" y="1080" />
|
||||
<!--<Size x="640" y="310" />-->
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="1.778" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="1.778" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="3.556" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<User eyeSeparation="0.065">
|
||||
<Pos x="0.0" y="0.0" z="4.0" />
|
||||
</User>
|
||||
</Cluster>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<Node address="localhost" port="20401">
|
||||
<Window tags="OpenVR" fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="side_by_side" />
|
||||
<!-- Res is equal to the Recommend target size -->
|
||||
<Size x="1332" y="840" />
|
||||
<Res x="3024" y="1680" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Projectionplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-1.7156" y="-0.965" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-1.7156" y="0.965" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="1.7156" y="0.965" z="0.0" />
|
||||
</Projectionplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
</Cluster>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<Node address="localhost" port="20401">
|
||||
<Window tags="OpenVR" fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="side_by_side" />
|
||||
<!-- Res is equal to the Recommend target size -->
|
||||
<Size x="1332" y="793" />
|
||||
<Res x="2664" y="1586" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Projectionplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-1.7156" y="-0.965" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-1.7156" y="0.965" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="1.7156" y="0.965" z="0.0" />
|
||||
</Projectionplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
</Cluster>
|
||||
@@ -4,7 +4,7 @@
|
||||
<Display swapInterval="0" />
|
||||
</Settings>
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
<Size x="1280" y="720" />
|
||||
<Pos x="50" y="50" />
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost" externalControlPort="20500">
|
||||
<Settings>
|
||||
<Display swapInterval="0" />
|
||||
</Settings>
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
<Size x="1280" y="720" />
|
||||
<Res x="3840" y="2160" />
|
||||
<Pos x="50" y="50" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<PlanarProjection>
|
||||
<FOV down="16.875" left="30.0" right="30.0" up="16.875" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<User eyeSeparation="0.065">
|
||||
<Pos x="0.0" y="0.0" z="0.0" />
|
||||
</User>
|
||||
</Cluster>
|
||||
@@ -4,7 +4,7 @@
|
||||
<Display swapInterval="0" />
|
||||
</Settings>
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Window fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
<Size x="1280" y="720" />
|
||||
<Pos x="50" y="50" />
|
||||
@@ -17,7 +17,7 @@
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="8" name="GUI">
|
||||
<Window fullScreen="false" numberOfSamples="8" name="GUI" tags="GUI">
|
||||
<Stereo type="none" />
|
||||
<Size x="1280" y="720" />
|
||||
<Pos x="50" y="50" />
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="side_by_side" />
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="3840" y="1080" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<PlanarProjection>
|
||||
<FOV down="16.875" left="30.0" right="30.0" up="16.875" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<User eyeSeparation="0.065">
|
||||
<Pos x="0.0" y="0.0" z="4.0" />
|
||||
</User>
|
||||
</Cluster>
|
||||
@@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="test" />
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="640" y="360" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-1.778" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-1.778" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="1.778" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<User eyeSeparation="0.065">
|
||||
<Pos x="0.0" y="0.0" z="4.0" />
|
||||
</User>
|
||||
</Cluster>
|
||||
@@ -3,34 +3,26 @@
|
||||
<Node address="127.0.0.1" port="20401">
|
||||
<Window fullScreen="false" numberOfSamples="8" border="true">
|
||||
<Pos x="10" y="100" />
|
||||
<Size x="320" y="480" />
|
||||
<Size x="1280" y="720" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-1.778" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-1.778" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="0.0" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
<PlanarProjection>
|
||||
<FOV down="16.875" left="30.0" right="30.0" up="16.875" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
<Window fullScreen="false" numberOfSamples="8" border="false">
|
||||
<Pos x="340" y="100" />
|
||||
<Size x="320" y="480" />
|
||||
<Size x="1280" y="720" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="0.0" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="0.0" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="1.778" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
<PlanarProjection>
|
||||
<FOV down="16.875" left="30.0" right="30.0" up="16.875" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
|
||||
+10
-18
@@ -4,18 +4,14 @@
|
||||
<Window fullScreen="false">
|
||||
<Pos x="0" y="300" />
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="640" y="360" />
|
||||
<Size x="1280" y="720" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-1.778" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-1.778" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="1.778" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
<PlanarProjection>
|
||||
<FOV down="16.875" left="30.0" right="30.0" up="16.875" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
@@ -23,18 +19,14 @@
|
||||
<Window fullScreen="false">
|
||||
<Pos x="640" y="300" />
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="640" y="360" />
|
||||
<Size x="1280" y="720" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<Viewplane>
|
||||
<!-- Lower left -->
|
||||
<Pos x="-1.778" y="-1.0" z="0.0" />
|
||||
<!-- Upper left -->
|
||||
<Pos x="-1.778" y="1.0" z="0.0" />
|
||||
<!-- Upper right -->
|
||||
<Pos x="1.778" y="1.0" z="0.0" />
|
||||
</Viewplane>
|
||||
<PlanarProjection>
|
||||
<FOV down="16.875" left="30.0" right="30.0" up="16.875" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
|
||||
@@ -6,7 +6,7 @@ function preInitialization()
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.spice.loadKernel("${SPICE}/naif0011.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/naif0012.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/pck00010.tpc")
|
||||
|
||||
openspace.time.setTime(openspace.time.currentWallTime())
|
||||
|
||||
@@ -30,15 +30,15 @@ return {
|
||||
Source1 = {
|
||||
Name = "Sun",
|
||||
-- All radius in meters
|
||||
Radius = {696.3, 6}
|
||||
Radius = 696.3E6
|
||||
},
|
||||
--Source2 = { Name = "Monolith", Radius = {0.01, 6} },
|
||||
--Source2 = { Name = "Monolith", Radius = 0.01E6 },
|
||||
Caster1 = {
|
||||
Name = "Moon",
|
||||
-- All radius in meters
|
||||
Radius = {1.737, 6}
|
||||
Radius = 1.737E6
|
||||
},
|
||||
--Caster2 = { Name = "Independency Day Ship", Radius = {0.0, 0.0} }
|
||||
--Caster2 = { Name = "Independency Day Ship", Radius = 0 }
|
||||
},
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
@@ -127,7 +127,7 @@ return {
|
||||
Parent = "Earth",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {3.0, 11.0},
|
||||
Size = 3.0E11.0,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/marker.png",
|
||||
@@ -145,7 +145,7 @@ return {
|
||||
-- Renderable = {
|
||||
-- Type = "RenderablePlane",
|
||||
-- Billboard = true,
|
||||
-- Size = { 6.371, 6 },
|
||||
-- Size = 6.371E6,
|
||||
-- Texture = "textures/graph.jpg",
|
||||
-- Atmosphere = {
|
||||
-- Type = "Nishita", -- for example, values missing etc etc
|
||||
|
||||
@@ -6,7 +6,7 @@ function preInitialization()
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.spice.loadKernel("${SPICE}/naif0011.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/naif0012.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/pck00010.tpc")
|
||||
|
||||
openspace.time.setTime("2011 AUG 06 00:00:00")
|
||||
|
||||
@@ -6,12 +6,11 @@ function preInitialization()
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.spice.loadKernel("${SPICE}/naif0011.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/naif0012.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/pck00010.tpc")
|
||||
|
||||
openspace.time.setTime(openspace.time.currentWallTime())
|
||||
dofile(openspace.absPath('${SCRIPTS}/bind_common_keys.lua'))
|
||||
|
||||
end
|
||||
|
||||
function postInitialization()
|
||||
@@ -28,6 +27,8 @@ function postInitialization()
|
||||
openspace.setPropertyValue("MilkyWay.renderable.transparency", 0.55)
|
||||
openspace.setPropertyValue("MilkyWay.renderable.segments", 50)
|
||||
|
||||
openspace.addVirtualProperty("BoolProperty", "Show Trails", "*Trail.renderable.enabled", true, nil, nil)
|
||||
|
||||
openspace.resetCameraDirection()
|
||||
|
||||
openspace.printInfo("Done setting default values")
|
||||
|
||||
@@ -34,7 +34,7 @@ return {
|
||||
Body = "EARTH",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 6.371, 6 },
|
||||
Radius = 6.371E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -49,6 +49,7 @@ return {
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Tag = {"planet_solarSystem", "planet_terrestrial"},
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
@@ -78,9 +79,10 @@ return {
|
||||
-- EndTime = "2017 JAN 01 12:00:00.000",
|
||||
-- SampleInterval = 3600
|
||||
Period = 365.242,
|
||||
Resolution = 1000
|
||||
Resolution = 1000,
|
||||
Tag = {"planetTrail_solarSystem", "planetTrail_terrestrial"}
|
||||
},
|
||||
GuiName = "/Solar/EarthTrail"
|
||||
GuiName = "/Solar/EarthTrail",
|
||||
},
|
||||
--[[
|
||||
{
|
||||
@@ -88,7 +90,7 @@ return {
|
||||
Parent = "Earth",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {3.0, 11.0},
|
||||
Size = 3.0E11,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/marker.png",
|
||||
|
||||
@@ -6,7 +6,7 @@ function preInitialization()
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.spice.loadKernel("${SPICE}/naif0011.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/naif0012.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/pck00010.tpc")
|
||||
|
||||
openspace.time.setTime("2015 JAN 01 12:00:00.000")
|
||||
|
||||
@@ -7,7 +7,7 @@ function preInitialization()
|
||||
]]--
|
||||
|
||||
--openspace.time.setTime(openspace.time.currentWallTime())
|
||||
openspace.spice.loadKernel("${SPICE}/naif0011.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/naif0012.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/pck00010.tpc")
|
||||
|
||||
openspace.time.setTime(openspace.time.currentWallTime())
|
||||
|
||||
@@ -5,7 +5,7 @@ function preInitialization()
|
||||
which the scene should start and other settings that might determine initialization
|
||||
critical objects.
|
||||
]]--
|
||||
openspace.spice.loadKernel("${SPICE}/naif0011.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/naif0012.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/pck00010.tpc")
|
||||
|
||||
openspace.time.setTime("2016-07-05T10:05:00.00")
|
||||
|
||||
@@ -9,7 +9,7 @@ return {
|
||||
Body = "CALLISTO",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 2.631, 6},
|
||||
Radius = 2.631E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -9,7 +9,7 @@ return {
|
||||
Body = "EUROPA",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 1.561, 6},
|
||||
Radius = 1.561E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -9,7 +9,7 @@ return {
|
||||
Body = "JUPITER BARYCENTER",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 2.631, 6},
|
||||
Radius = 2.631E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -9,7 +9,7 @@ return {
|
||||
Body = "IO",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 1.8213, 6 },
|
||||
Radius = 1.8213E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -22,7 +22,7 @@ return {
|
||||
Body = "JUPITER BARYCENTER",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 0.71492, 8 },
|
||||
Radius = 0.71492E8,
|
||||
Segments = 200
|
||||
},
|
||||
Textures = {
|
||||
@@ -35,6 +35,7 @@ return {
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Tag = "planet_solarSystem",
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "StaticTranslation",
|
||||
@@ -64,7 +65,8 @@ return {
|
||||
},
|
||||
Color = { 0.8, 0.7, 0.7 },
|
||||
Period = 4330.595,
|
||||
Resolution = 1000
|
||||
}
|
||||
Resolution = 1000,
|
||||
},
|
||||
Tag = "planetTrail_solarSystem"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,13 +56,14 @@ return {
|
||||
SegmentsPerPatch = 64,
|
||||
Layers = {
|
||||
ColorLayers = {
|
||||
|
||||
{
|
||||
Name = "ESRI VIIRS Combo",
|
||||
Type = "ByLevel",
|
||||
LevelTileProviders = {
|
||||
{
|
||||
MaxLevel = 7,
|
||||
TileProvider = { FilePath = "map_service_configs/GIBS/VIIRS_SNPP_CorrectedReflectance_TrueColor.xml", },
|
||||
MaxLevel = 3,
|
||||
TileProvider = { Type = "Temporal", FilePath = "map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml", },
|
||||
},
|
||||
{
|
||||
MaxLevel = 22,
|
||||
@@ -71,6 +72,10 @@ return {
|
||||
},
|
||||
Enabled = true,
|
||||
},
|
||||
{
|
||||
Name = "ESRI Imagery World",
|
||||
FilePath = "map_service_configs/ESRI/ESRI_Imagery_World_2D.wms"
|
||||
},
|
||||
{
|
||||
Type = "Temporal",
|
||||
Name = "Temporal VIIRS SNPP",
|
||||
@@ -81,6 +86,11 @@ return {
|
||||
Name = "Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature",
|
||||
FilePath = "map_service_configs/GIBS/Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature.xml",
|
||||
},
|
||||
{
|
||||
Type = "Temporal",
|
||||
Name = "Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration",
|
||||
FilePath = "map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml",
|
||||
},
|
||||
-- {
|
||||
-- Type = "SingleImage",
|
||||
-- Name = "Debug Tiles",
|
||||
@@ -104,6 +114,11 @@ return {
|
||||
FilePath = "map_service_configs/GIBS/VIIRS_CityLights_2012.xml",
|
||||
Enabled = true,
|
||||
},
|
||||
{
|
||||
Type = "Temporal",
|
||||
Name = "Temporal Earth at Night",
|
||||
FilePath = "map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml"
|
||||
}
|
||||
},
|
||||
WaterMasks = {
|
||||
{
|
||||
@@ -159,7 +174,7 @@ return {
|
||||
Name = "Terrain tileset",
|
||||
FilePath = "map_service_configs/ESRI/TERRAIN.wms",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 64,
|
||||
TilePixelSize = 64,
|
||||
DoPreProcessing = true,
|
||||
},
|
||||
},
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache_ESRI_Imagery_World_2d</Path>
|
||||
<Depth>10</Depth>
|
||||
<Path>./GDAL_Cache/ESRI_Imagery_World_2d</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.jpg</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TiledWMS">
|
||||
<ServerUrl>http://198.102.45.23/arcgis/rest/services/worldelevation3d/terrain3d?</ServerUrl>
|
||||
<TiledGroupName>GCS_Elevation</TiledGroupName>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<YOrigin>bottom</YOrigin>
|
||||
</DataWindow>
|
||||
<Timeout>2</Timeout>
|
||||
<Service name="TiledWMS">
|
||||
<ServerUrl>http://198.102.45.23/arcgis/rest/services/worldelevation3d/terrain3d?</ServerUrl>
|
||||
<TiledGroupName>GCS_Elevation</TiledGroupName>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<YOrigin>bottom</YOrigin>
|
||||
</DataWindow>
|
||||
<Timeout>2</Timeout>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/TERRAIN</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.jpg</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/Coastlines/default/2013-08-21/EPSG4326_250m/${z}/${y}/${x}.png</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/Coastlines/default/2013-08-21/250m/${z}/${y}/${x}.png</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -16,4 +16,14 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>4</BandsCount>
|
||||
</GDAL_WMS>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/Coastlines</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.png</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/MODIS_Aqua_CorrectedReflectance_TrueColor/default/2013-08-21/EPSG4326_250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Aqua_CorrectedReflectance_TrueColor/default/2013-08-21/250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -16,4 +16,14 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
</GDAL_WMS>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/GIBS_Aqua_MODIS_true</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.jpg</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
|
||||
+12
-2
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/MODIS_Terra_Brightness_Temp_Band31_Day/default/2013-08-21/EPSG4326_1km/${z}/${y}/${x}.png</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_Brightness_Temp_Band31_Day/default/2013-08-21/1km/${z}/${y}/${x}.png</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -16,4 +16,14 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>4</BandsCount>
|
||||
</GDAL_WMS>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/MODIS_Terra_Brightness_Temp_Band31_Day</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.png</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
|
||||
+12
-2
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/MODIS_Terra_CorrectedReflectance_TrueColor/default/2016-05-16/EPSG4326_250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_CorrectedReflectance_TrueColor/default/2013-08-21/250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -16,4 +16,14 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
</GDAL_WMS>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/MODIS_Terra_CorrectedReflectance_TrueColor</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.jpg</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/MODIS_Terra_CorrectedReflectance_TrueColor/default/${t}/EPSG4326_250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90</UpperLeftY>
|
||||
<LowerRightX>396.0</LowerRightX>
|
||||
<LowerRightY>-198</LowerRightY>
|
||||
<TileLevel>8</TileLevel>
|
||||
<TileCountX>2</TileCountX>
|
||||
<TileCountY>1</TileCountY>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>EPSG:4326</Projection>
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
</GDAL_WMS>
|
||||
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/MODIS_Water_Mask/default/2013-08-21/EPSG4326_250m/${z}/${y}/${x}.png</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Water_Mask/default/2013-08-21/250m/${z}/${y}/${x}.png</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -16,4 +16,14 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>4</BandsCount>
|
||||
</GDAL_WMS>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/MODIS_Water_Mask</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.png</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/Reference_Features/default/2013-08-21/EPSG4326_250m/${z}/${y}/${x}.png</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/Reference_Features/default/2013-08-21/250m/${z}/${y}/${x}.png</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -16,4 +16,14 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>4</BandsCount>
|
||||
</GDAL_WMS>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/Reference_Features</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.png</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/Reference_Labels/default/2013-08-21/EPSG4326_250m/${z}/${y}/${x}.png</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/Reference_Labels/default/2013-08-21/250m/${z}/${y}/${x}.png</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -16,4 +16,14 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>4</BandsCount>
|
||||
</GDAL_WMS>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/Reference_Labels</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.png</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TiledWMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/twms-geo/twms.cgi?</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/twms/twms.cgi?</ServerUrl>
|
||||
<TiledGroupName>MODIS TERRA tileset</TiledGroupName>
|
||||
<Change key="${time}">2016-04-12</Change>
|
||||
</Service>
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<OpenSpaceTemporalGDALDataset>
|
||||
<OpenSpaceTimeStart>2012-05-08</OpenSpaceTimeStart>
|
||||
<OpenSpaceTimeEnd></OpenSpaceTimeEnd>
|
||||
<OpenSpaceTimeResolution>1d</OpenSpaceTimeResolution>
|
||||
<OpenSpaceTimeIdFormat>YYYY-MM-DD</OpenSpaceTimeIdFormat>
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/AMSR2_Sea_Ice_Concentration_12km/default/${OpenSpaceTimeId}/2km/${z}/${y}/${x}.png</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90</UpperLeftY>
|
||||
<LowerRightX>396.0</LowerRightX>
|
||||
<LowerRightY>-198</LowerRightY>
|
||||
<TileLevel>8</TileLevel>
|
||||
<TileCountX>2</TileCountX>
|
||||
<TileCountY>1</TileCountY>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>EPSG:4326</Projection>
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
@@ -6,7 +6,7 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="WMS">
|
||||
<Version>1.1.1</Version>
|
||||
<ServerUrl>http://map2.vis.earthdata.nasa.gov/wms/wms.php?TIME=${OpenSpaceTimeId}</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wms/wms.php?TIME=${OpenSpaceTimeId}</ServerUrl>
|
||||
<SRS>EPSG:4326</SRS>
|
||||
<ImageFormat>image/png</ImageFormat>
|
||||
<Transparent>TRUE</Transparent>
|
||||
@@ -26,11 +26,8 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
<!--
|
||||
https://map2.vis.earthdata.nasa.gov/wms/wms.php?TIME=2014-07-17&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=Aqua_Orbit_Asc&WIDTH=512&HEIGHT=512&SRS=EPSG%3A4326&STYLES=&BBOX=46.125%2C48.375%2C46.6875%2C48.9375
|
||||
|
||||
|
||||
https://map2.vis.earthdata.nasa.gov/wms/wms.php?TIME=2015-11-23&service=WMS&request=GetMap&version=1.1.1&layers=Aqua_Orbit_Asc&styles=&srs=EPSG:4326&transparent=FALSE&format=image/png&width=512&height=512&bbox=-180.00000000,18.00000000,-108.00000000,90.00000000
|
||||
-->
|
||||
|
||||
+5
-2
@@ -5,7 +5,7 @@
|
||||
<OpenSpaceTimeIdFormat>YYYY-MM-DD</OpenSpaceTimeIdFormat>
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/GHRSST_L4_MUR_Sea_Surface_Temperature/default/${OpenSpaceTimeId}/EPSG4326_1km/${z}/${y}/${x}.png</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/GHRSST_L4_MUR_Sea_Surface_Temperature/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.png</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -21,5 +21,8 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>4</BandsCount>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
|
||||
+5
-2
@@ -5,7 +5,7 @@
|
||||
<OpenSpaceTimeIdFormat>YYYY-MM-DD</OpenSpaceTimeIdFormat>
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/MODIS_Aqua_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/EPSG4326_250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Aqua_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -21,5 +21,8 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<OpenSpaceTemporalGDALDataset>
|
||||
<OpenSpaceTimeStart>2012-05-08</OpenSpaceTimeStart>
|
||||
<OpenSpaceTimeEnd></OpenSpaceTimeEnd>
|
||||
<OpenSpaceTimeResolution>1d</OpenSpaceTimeResolution>
|
||||
<OpenSpaceTimeIdFormat>YYYY-MM-DD</OpenSpaceTimeIdFormat>
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90</UpperLeftY>
|
||||
<LowerRightX>396.0</LowerRightX>
|
||||
<LowerRightY>-198</LowerRightY>
|
||||
<TileLevel>8</TileLevel>
|
||||
<TileCountX>2</TileCountX>
|
||||
<TileCountY>1</TileCountY>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>EPSG:4326</Projection>
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
+5
-2
@@ -5,7 +5,7 @@
|
||||
<OpenSpaceTimeIdFormat>YYYY-MM-DD</OpenSpaceTimeIdFormat>
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/EPSG4326_250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -21,5 +21,8 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<OpenSpaceTemporalGDALDataset>
|
||||
<OpenSpaceTimeStart>2012-05-08</OpenSpaceTimeStart>
|
||||
<OpenSpaceTimeEnd></OpenSpaceTimeEnd>
|
||||
<OpenSpaceTimeResolution>1d</OpenSpaceTimeResolution>
|
||||
<OpenSpaceTimeIdFormat>YYYY-MM-DD</OpenSpaceTimeIdFormat>
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_DayNightBand_ENCC/default/${OpenSpaceTimeId}/500m/${z}/${y}/${x}.png</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90</UpperLeftY>
|
||||
<LowerRightX>396.0</LowerRightX>
|
||||
<LowerRightY>-198</LowerRightY>
|
||||
<TileLevel>8</TileLevel>
|
||||
<TileCountX>2</TileCountX>
|
||||
<TileCountY>1</TileCountY>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>EPSG:4326</Projection>
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
</OpenSpaceTemporalGDALDataset>
|
||||
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/VIIRS_CityLights_2012/default/2012-01-01/EPSG4326_500m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_CityLights_2012/default/2013-08-21/500m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -16,4 +16,14 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>4</BandsCount>
|
||||
</GDAL_WMS>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/VIIRS_CityLights_2012</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.jpg</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
|
||||
+11
-1
@@ -1,6 +1,6 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://map1.vis.earthdata.nasa.gov/wmts-geo/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/2016-10-01/EPSG4326_250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/2016-08-21/250m/${z}/${y}/${x}.jpg</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
@@ -16,4 +16,14 @@
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/VIIRS_SNPP_CorrectedReflectance_TrueColor</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.jpg</Extension>
|
||||
</Cache>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<UnsafeSSL>true</UnsafeSSL>
|
||||
<ZeroBlockHttpCodes>400</ZeroBlockHttpCodes>
|
||||
<ZeroBlockOnServerException>true</ZeroBlockOnServerException>
|
||||
</GDAL_WMS>
|
||||
@@ -32,7 +32,7 @@ return {
|
||||
Name = "Callisto Texture",
|
||||
FilePath = "textures/callisto.jpg",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 112,
|
||||
TilePixelSize = 112,
|
||||
},
|
||||
},
|
||||
GrayScaleLayers = { },
|
||||
|
||||
@@ -32,7 +32,7 @@ return {
|
||||
Name = "Europa Texture",
|
||||
FilePath = "textures/europa.jpg",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 256,
|
||||
TilePixelSize = 256,
|
||||
},
|
||||
},
|
||||
GrayScaleLayers = { },
|
||||
|
||||
@@ -32,7 +32,7 @@ return {
|
||||
Name = "Ganymede Texture",
|
||||
FilePath = "textures/ganymede.jpg",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 112,
|
||||
TilePixelSize = 112,
|
||||
},
|
||||
},
|
||||
GrayScaleLayers = { },
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<TileLevel>6</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<DataType>Int16</DataType>
|
||||
<Projection>GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
|
||||
@@ -32,20 +32,36 @@ return {
|
||||
Type = "RenderableGlobe",
|
||||
Radii = marsEllipsoid,
|
||||
CameraMinHeight = 10,
|
||||
SegmentsPerPatch = 90,
|
||||
-- Allows camera to go down 10000 meters below the reference ellipsoid
|
||||
InteractionDepthBelowEllipsoid = 10000, -- Useful when having negative height map values
|
||||
SegmentsPerPatch = 64,
|
||||
Layers = {
|
||||
ColorLayers = {
|
||||
{
|
||||
Name = "Viking combo",
|
||||
Type = "ByLevel",
|
||||
LevelTileProviders = {
|
||||
{
|
||||
MaxLevel = 3,
|
||||
TileProvider = { FilePath = "textures/mars.jpg", },
|
||||
},
|
||||
{
|
||||
MaxLevel = 22,
|
||||
TileProvider = { FilePath = "map_service_configs/MARS_Viking_MDIM21.xml" },
|
||||
},
|
||||
},
|
||||
Enabled = true,
|
||||
},
|
||||
-- {
|
||||
-- Type = "SingleImage",
|
||||
-- Name = "Debug Tiles",
|
||||
-- FilePath = "../../debugglobe/textures/test_tile.png",
|
||||
-- },
|
||||
{
|
||||
Name = "MARS_Viking",
|
||||
FilePath = "map_service_configs/MARS_Viking_MDIM21.xml",
|
||||
Enabled = true,
|
||||
},
|
||||
--{
|
||||
-- Name = "MARS_Viking",
|
||||
-- FilePath = "map_service_configs/MARS_Viking_MDIM21.xml",
|
||||
-- Enabled = true,
|
||||
--},
|
||||
{
|
||||
Name = "MOLA Pseudo Color",
|
||||
FilePath = "map_service_configs/Utah/MolaPseudoColor.xml",
|
||||
@@ -66,16 +82,22 @@ return {
|
||||
{
|
||||
Name = "CTX Mosaic [Europe]",
|
||||
FilePath = "map_service_configs/CTX_Mosaic.xml",
|
||||
Enabled = true,
|
||||
}, {
|
||||
--Enabled = true,
|
||||
},
|
||||
{
|
||||
Name = "CTX Mosaic [Utah]",
|
||||
FilePath = "map_service_configs/Utah/CTX_Mosaic.xml",
|
||||
},
|
||||
{
|
||||
Name = "West Candor Chasma",
|
||||
FilePath = "map_datasets/CTX/West_Candor_Chasma_longlat_global.vrt",
|
||||
--Enabled = true,
|
||||
},
|
||||
{
|
||||
Name = "Layered Rock Outcrops in Southwest Candor Chasma",
|
||||
FilePath = "map_datasets/HiRISE/Layered_Rock_Outcrops_in_Southwest_Candor_Chasma_Texture.vrt",
|
||||
},
|
||||
{
|
||||
--[[{
|
||||
Name = "Themis IR Day",
|
||||
FilePath = "map_service_configs/Utah/ThemisIRDay.xml",
|
||||
},
|
||||
@@ -83,12 +105,7 @@ return {
|
||||
Name = "Themis IR Night",
|
||||
FilePath = "map_service_configs/Utah/ThemisIRNight.xml",
|
||||
},
|
||||
--[[
|
||||
{
|
||||
Name = "West Candor Chasma",
|
||||
FilePath = "map_datasets/CTX/West_Candor_Chasma_longlat_global.vrt",
|
||||
--Enabled = true,
|
||||
},
|
||||
|
||||
{
|
||||
Name = "MER_Meridianni_Endeavor_Basemap_25cm",
|
||||
FilePath = "map_datasets/Basemap/MER_Meridianni_Endeavor_Basemap_25cm.vrt",
|
||||
@@ -115,41 +132,49 @@ return {
|
||||
},
|
||||
HeightLayers = {
|
||||
{
|
||||
Name = "Mola Elevation",
|
||||
FilePath = "map_service_configs/Utah/Mola_Elevation.xml",
|
||||
Name = "Mola Elevation [Europe]",
|
||||
FilePath = "map_service_configs/Mola_Elevation.xml",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 90,
|
||||
TilePixelSize = 90,
|
||||
DoPreProcessing = true,
|
||||
},
|
||||
--[[
|
||||
{
|
||||
Name = "Mola Elevation [Utah]",
|
||||
FilePath = "map_service_configs/Utah/Mola_Elevation.xml",
|
||||
Enabled = false,
|
||||
TilePixelSize = 90,
|
||||
DoPreProcessing = true,
|
||||
},
|
||||
{
|
||||
Name = "Mola Elevation CTX",
|
||||
FilePath = "map_service_configs/Utah/MolaCTX_Elevation.xml",
|
||||
-- Enabled = true,
|
||||
MinimumPixelSize = 90,
|
||||
TilePixelSize = 90,
|
||||
DoPreProcessing = true,
|
||||
},
|
||||
},]]
|
||||
{
|
||||
Name = "Layered Rock Outcrops in Southwest Candor Chasma",
|
||||
FilePath = "map_datasets/HiRISE/Layered_Rock_Outcrops_in_Southwest_Candor_Chasma_Heightmap.vrt",
|
||||
MinimumPixelSize = 90,
|
||||
DoPreProcessing = true,
|
||||
},
|
||||
--[[
|
||||
{
|
||||
Name = "Mola Elevation",
|
||||
FilePath = "map_service_configs/Mars_MGS_MOLA_DEM.xml",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 64,
|
||||
DoPreProcessing = true,
|
||||
},
|
||||
--]]
|
||||
--[[ {
|
||||
Name = "West Candor Chasma",
|
||||
FilePath = "map_datasets/CTX/West_Candor_Chasma_DEM_longlat_global.vrt",
|
||||
--Enabled = true,
|
||||
MinimumPixelSize = 90,
|
||||
DoPreProcessing = true,
|
||||
},
|
||||
{
|
||||
Name = "Layered Rock Outcrops in Southwest Candor Chasma",
|
||||
FilePath = "map_datasets/HiRISE/Layered_Rock_Outcrops_in_Southwest_Candor_Chasma_Heightmap.vrt",
|
||||
TilePixelSize = 90,
|
||||
DoPreProcessing = true,
|
||||
},
|
||||
--[[
|
||||
{
|
||||
Name = "West Candor Chasma",
|
||||
FilePath = "map_datasets/CTX/West_Candor_Chasma_DEM_longlat_global.vrt",
|
||||
--Enabled = true,
|
||||
TilePixelSize = 90,
|
||||
DoPreProcessing = true,
|
||||
},]]
|
||||
--[[
|
||||
{
|
||||
Name = "Part of Area Traversed by the Mars Exploration Rover",
|
||||
FilePath = "map_datasets/HiRISE/Part_of_Area_Traversed_by_the_Mars_Exploration_Rover_Heightmap.vrt",
|
||||
|
||||
@@ -42,7 +42,7 @@ return {
|
||||
Name = "Simple Texture",
|
||||
FilePath = "textures/mercury.jpg",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 256,
|
||||
TilePixelSize = 256,
|
||||
},
|
||||
{
|
||||
Name = "Messenger_Mosaic",
|
||||
|
||||
@@ -62,4 +62,10 @@
|
||||
</DataWindow>
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/OnMoonColor</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.png</Extension>
|
||||
</Cache>
|
||||
</GDAL_WMS>
|
||||
@@ -16,4 +16,9 @@
|
||||
<TileCountY>1</TileCountY>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Cache>
|
||||
<Path>./GDAL_Cache/OnMoonHeight</Path>
|
||||
<Depth>4</Depth>
|
||||
<Extension>.png</Extension>
|
||||
</Cache>
|
||||
</GDAL_WMS>
|
||||
@@ -12,6 +12,7 @@
|
||||
<TileLevel>7</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<DataType>Int16</DataType>
|
||||
<Projection>GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
|
||||
@@ -20,8 +20,9 @@ return {
|
||||
Type = "RenderableGlobe",
|
||||
Radii = {1738140, 1738140, 1735970}, -- Moons's radius
|
||||
CameraMinHeight = 300,
|
||||
InteractionDepthBelowEllipsoid = 5000, -- Useful when having negative height map values
|
||||
SegmentsPerPatch = 64,
|
||||
-- Allows camera to go down 10000 meters below the reference ellipsoid
|
||||
InteractionDepthBelowEllipsoid = 10000, -- Useful when having negative height map values
|
||||
Layers = {
|
||||
ColorLayers = {
|
||||
|
||||
@@ -63,10 +64,13 @@ return {
|
||||
FilePath = "map_service_configs/OnMoonHeight.xml",
|
||||
Enabled = true,
|
||||
DoPreProcessing = true,
|
||||
TileSize = 64,
|
||||
},
|
||||
{
|
||||
Name = "LolaDem",
|
||||
FilePath = "map_service_configs/Utah/LolaDem.wms"
|
||||
FilePath = "map_service_configs/Utah/LolaDem.wms",
|
||||
DoPreProcessing = true,
|
||||
TileSize = 64,
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -40,7 +40,7 @@ return {
|
||||
Name = "Texture",
|
||||
FilePath = "textures/neptune.jpg",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 256,
|
||||
TilePixelSize = 256,
|
||||
},
|
||||
},
|
||||
GrayScaleLayers = { },
|
||||
|
||||
@@ -40,7 +40,7 @@ return {
|
||||
Name = "Saturn Texture",
|
||||
FilePath = "textures/saturn.jpg",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 256,
|
||||
TilePixelSize = 256,
|
||||
},
|
||||
},
|
||||
GrayScaleLayers = { },
|
||||
|
||||
@@ -40,7 +40,7 @@ return {
|
||||
Name = "Texture",
|
||||
FilePath = "textures/uranus.jpg",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 256,
|
||||
TilePixelSize = 256,
|
||||
},
|
||||
},
|
||||
GrayScaleLayers = { },
|
||||
|
||||
@@ -45,7 +45,7 @@ return {
|
||||
Name = "Venus Texture",
|
||||
FilePath = "textures/venus.jpg",
|
||||
Enabled = true,
|
||||
MinimumPixelSize = 256,
|
||||
TilePixelSize = 256,
|
||||
},
|
||||
},
|
||||
GrayScaleLayers = { },
|
||||
|
||||
@@ -22,7 +22,7 @@ return {
|
||||
Body = "MARS BARYCENTER",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 6.390, 6 },
|
||||
Radius = 6.390E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -35,12 +35,17 @@ return {
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Tag = {"planet_solarSystem", "planet_terrestrial"},
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
SourceFrame = "IAU_MARS",
|
||||
DestinationFrame = "GALACTIC",
|
||||
},
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 1,
|
||||
},
|
||||
}
|
||||
},
|
||||
-- MarsTrail module
|
||||
@@ -56,7 +61,8 @@ return {
|
||||
},
|
||||
Color = { 0.814, 0.305, 0.220 },
|
||||
Period = 686.973,
|
||||
Resolution = 1000
|
||||
Resolution = 1000,
|
||||
Tag = {"planetTrail_solarSystem", "planetTrail_terrestrial"}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ return {
|
||||
Body = "MERCURY",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 2.440, 6 },
|
||||
Radius = 2.4397E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -35,6 +35,7 @@ return {
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Tag = {"planet_solarSystem", "planet_terrestrial"},
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
@@ -60,7 +61,8 @@ return {
|
||||
},
|
||||
Color = {0.6, 0.5, 0.5 },
|
||||
Period = 87.968,
|
||||
Resolution = 100
|
||||
Resolution = 100,
|
||||
Tag = {"planetTrail_solarSystem", "planetTrail_terrestrial"}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ return {
|
||||
Body = "CERES",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 6.390, 5 },
|
||||
Radius = 6.390E5,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -126,19 +126,16 @@ return {
|
||||
Name = "JunoTrail",
|
||||
Parent = "JupiterBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderableTrail",
|
||||
Body = "JUNO",
|
||||
Frame = "GALACTIC",
|
||||
Observer = "JUPITER BARYCENTER",
|
||||
RGB = { 0.70,0.50,0.20 },
|
||||
TropicalOrbitPeriod = 394250.0,
|
||||
EarthOrbitRatio = 4.5,
|
||||
DayLength = 9.9259,
|
||||
TimeStamps = false,
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "textures/glare_blue.png",
|
||||
},
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Body = "JUNO",
|
||||
Observer = "JUPITER BARYCENTER"
|
||||
},
|
||||
Color = { 0.70, 0.50, 0.20 },
|
||||
StartTime = "2016 JUN 28",
|
||||
EndTime = "2016 APR 01",
|
||||
SampleInterval = 3600
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ return {
|
||||
Body = "CALLISTO",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 1.8213, 6 },
|
||||
Radius = 1.8213E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -58,7 +58,7 @@ return {
|
||||
Parent = "Callisto",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 7.4},
|
||||
Size = 10^7.4,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Callisto-Text.png",
|
||||
|
||||
@@ -9,7 +9,7 @@ return {
|
||||
Body = "EUROPA",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 1.8213, 6 },
|
||||
Radius = 1.8213E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -58,7 +58,7 @@ return {
|
||||
Parent = "Europa",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 7.4},
|
||||
Size = 10^7.4,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Europa-Text.png",
|
||||
|
||||
@@ -9,7 +9,7 @@ return {
|
||||
Body = "GANYMEDE",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 1.8213, 6 },
|
||||
Radius = 1.8213E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -58,7 +58,7 @@ return {
|
||||
Parent = "Ganymede",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 7.4},
|
||||
Size = 10^7.4,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Ganymede-Text.png",
|
||||
|
||||
@@ -9,7 +9,7 @@ return {
|
||||
Body = "IO",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 1.8213, 6 },
|
||||
Radius = 1.8213E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -22,7 +22,7 @@ return {
|
||||
Body = "JUPITER",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 0.71492, 8 },
|
||||
Radius = 0.71492E8,
|
||||
Segments = 200,
|
||||
},
|
||||
Textures = {
|
||||
@@ -101,7 +101,7 @@ return {
|
||||
Parent = "JupiterProjection",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 7.5},
|
||||
Size = 10^7.5,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Jupiter-text.png",
|
||||
|
||||
@@ -295,9 +295,9 @@ return {
|
||||
Type = "RenderableCrawlingLine",
|
||||
Source = "NH_REX",
|
||||
Target = "EARTH",
|
||||
-- Body = "NEW HORIZONS",
|
||||
-- Body = "NEW HORIZONS",
|
||||
Frame = "GALACTIC",
|
||||
RGB = { 1.0, 0.7, 0.0 },
|
||||
Color = { 1.0, 0.7, 0.0 },
|
||||
Instrument = "NH_REX"
|
||||
},
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ return {
|
||||
Type = "RenderablePlanetProjection",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 6.035 , 5 },
|
||||
Radius = 6.035E5,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -72,7 +72,7 @@ return {
|
||||
Parent = "Charon",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 6.3},
|
||||
Size = 10^6.3,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Charon-Text.png",
|
||||
|
||||
@@ -46,7 +46,7 @@ return {
|
||||
Parent = "Hydra",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 6.3},
|
||||
Size = 10.0^6.3,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Hydra-Text.png"
|
||||
|
||||
@@ -46,7 +46,7 @@ return {
|
||||
Parent = "Kerberos",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 6.3},
|
||||
Size = 10^6.3,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Kerberos-Text.png"
|
||||
|
||||
@@ -19,7 +19,7 @@ return {
|
||||
Body = "NIX",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 0.45 , 5 },
|
||||
Radius = 0.45E5,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -46,7 +46,7 @@ return {
|
||||
Parent = "Nix",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 6.3},
|
||||
Size = 10^6.3,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Nix-Text.png"
|
||||
|
||||
@@ -30,15 +30,15 @@ return {
|
||||
},
|
||||
},
|
||||
},
|
||||
-- PlutoProjection module
|
||||
-- Pluto module
|
||||
{
|
||||
Name = "PlutoProjection",
|
||||
Name = "Pluto",
|
||||
Parent = "PlutoBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderablePlanetProjection",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 1.173 , 6 },
|
||||
Radius = 1.173E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -173,7 +173,7 @@ return {
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Billboard = true,
|
||||
Size = { 5, 4 },
|
||||
Size = 5E4,
|
||||
Texture = "textures/barycenter.png",
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
@@ -184,10 +184,10 @@ return {
|
||||
},
|
||||
{
|
||||
Name = "PlutoText",
|
||||
Parent = "PlutoProjection",
|
||||
Parent = "Pluto",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 6.3},
|
||||
Size = 10^6.3,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Pluto-Text.png",
|
||||
@@ -202,7 +202,7 @@ return {
|
||||
},
|
||||
{
|
||||
Name = "PlutoTexture",
|
||||
Parent = "PlutoProjection",
|
||||
Parent = "Pluto",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 6.4},
|
||||
@@ -220,7 +220,7 @@ return {
|
||||
},
|
||||
{
|
||||
Name = "PlutoShadow",
|
||||
Parent = "PlutoProjection",
|
||||
Parent = "Pluto",
|
||||
Renderable = {
|
||||
Type = "RenderableShadowCylinder",
|
||||
TerminatorType = "PENUMBRAL",
|
||||
|
||||
@@ -19,7 +19,7 @@ return {
|
||||
Body = "STYX",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 0.75 , 4 },
|
||||
Radius = 0.75E4,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -46,7 +46,7 @@ return {
|
||||
Parent = "Styx",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 6.3},
|
||||
Size = 10^6.3,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Styx-Text.png",
|
||||
|
||||
@@ -9,17 +9,17 @@ return {
|
||||
Body = "MOON",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 1.737, 6},
|
||||
Radius = 1.737E6,
|
||||
Segments = 100
|
||||
},
|
||||
Shadow_Group = {
|
||||
Source1 = {
|
||||
Name = "Sun",
|
||||
Radius = {696.3, 6}
|
||||
Radius = 696.3E6
|
||||
},
|
||||
Caster1 = {
|
||||
Name = "Earth",
|
||||
Radius = {6.371, 6}
|
||||
Radius = 6.371E6
|
||||
},
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -23,20 +23,25 @@ return {
|
||||
Body = "NEPTUNE BARYCENTER",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 2.4622 , 7 },
|
||||
Radius = 2.4622E7,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "textures/neptune.jpg",
|
||||
},
|
||||
}
|
||||
},
|
||||
Translation = {
|
||||
Tag = "planet_solarSystem",
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
SourceFrame = "IAU_NEPTUNE",
|
||||
DestinationFrame = "GALACTIC"
|
||||
},
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 1,
|
||||
},
|
||||
}
|
||||
},
|
||||
-- NeptuneTrail module
|
||||
@@ -52,7 +57,8 @@ return {
|
||||
},
|
||||
Color = {0.2, 0.5, 1.0 },
|
||||
Period = 60200,
|
||||
Resolution = 1000
|
||||
},
|
||||
Resolution = 1000,
|
||||
Tag = "planetTrail_solarSystem"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ function preInitialization()
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.spice.loadKernel("${SPICE}/naif0011.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/naif0012.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/pck00010.tpc")
|
||||
|
||||
openspace.time.setTime("2015-07-14T10:05:00.00")
|
||||
|
||||
@@ -9,7 +9,7 @@ function preInitialization()
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.spice.loadKernel("${SPICE}/naif0011.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/naif0012.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/pck00010.tpc")
|
||||
|
||||
dofile(openspace.absPath('${SCRIPTS}/bind_keys_osirisrex.lua'))
|
||||
@@ -61,7 +61,7 @@ return {
|
||||
"sun",
|
||||
"mercury",
|
||||
"venus",
|
||||
"lodglobes/lodearth",
|
||||
"lodglobes/earth",
|
||||
"moon",
|
||||
"mars",
|
||||
"jupiter",
|
||||
|
||||
@@ -25,7 +25,7 @@ return {
|
||||
Body = "PLUTO",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 1.173 , 6 },
|
||||
Radius = 1.173E6,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
@@ -61,7 +61,7 @@ return {
|
||||
Body = "CHARON",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 6.035 , 5 },
|
||||
Radius = 6.035E5,
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -6,7 +6,7 @@ function preInitialization()
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.spice.loadKernel("${SPICE}/naif0011.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/naif0012.tls")
|
||||
openspace.spice.loadKernel("${SPICE}/pck00010.tpc")
|
||||
|
||||
-- Usual start
|
||||
|
||||
@@ -8,7 +8,7 @@ return {
|
||||
Body = "DIONE",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 0.563, 3 },
|
||||
Radius = 0.563E3,
|
||||
Segments = 50
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -8,7 +8,7 @@ return {
|
||||
Body = "ENCELADUS",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 0.257, 3 },
|
||||
Radius = 0.257E3,
|
||||
Segments = 50
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -8,7 +8,7 @@ return {
|
||||
Body = "IAPETUS",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 0.746, 3 },
|
||||
Radius = 0.746E3,
|
||||
Segments = 50
|
||||
},
|
||||
Textures = {
|
||||
|
||||
@@ -8,7 +8,7 @@ return {
|
||||
Body = "MIMAS",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 0.28, 3 },
|
||||
Radius = 0.28E3,
|
||||
Segments = 50
|
||||
},
|
||||
Textures = {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user