submodule update

This commit is contained in:
elon
2021-02-11 12:38:07 -05:00
1346 changed files with 24015 additions and 17933 deletions
+1
View File
@@ -38,3 +38,4 @@ Thumbs.db
customization.lua
# The COMMIT info is generated everytime CMake is run
COMMIT.md
*_codegen.cpp
+3
View File
@@ -29,3 +29,6 @@
[submodule "ext/date"]
path = ext/date
url = https://github.com/HowardHinnant/date
[submodule "support/coding/codegen"]
path = support/coding/codegen
url = https://github.com/OpenSpace/codegen
+45 -85
View File
@@ -2,7 +2,7 @@
# #
# OpenSpace #
# #
# Copyright (c) 2014-2020 #
# Copyright (c) 2014-2021 #
# #
# 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 #
@@ -29,7 +29,7 @@ project(OpenSpace)
set(OPENSPACE_VERSION_MAJOR 0)
set(OPENSPACE_VERSION_MINOR 16)
set(OPENSPACE_VERSION_PATCH 0)
set(OPENSPACE_VERSION_STRING "Beta-8 RC1")
set(OPENSPACE_VERSION_STRING "Beta-8")
set(OPENSPACE_BASE_DIR "${PROJECT_SOURCE_DIR}")
set(OPENSPACE_CMAKE_EXT_DIR "${OPENSPACE_BASE_DIR}/support/cmake")
@@ -37,14 +37,11 @@ set(GHOUL_BASE_DIR "${OPENSPACE_BASE_DIR}/ext/ghoul")
include(${OPENSPACE_CMAKE_EXT_DIR}/module_common.cmake)
include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake)
include(${OPENSPACE_CMAKE_EXT_DIR}/handle_applications.cmake)
include(${OPENSPACE_CMAKE_EXT_DIR}/handle_modules.cmake)
include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake)
include(${GHOUL_BASE_DIR}/support/cmake/handle_external_library.cmake)
include(${GHOUL_BASE_DIR}/support/cmake/message_macros.cmake)
begin_header("Configuring OpenSpace project")
message(STATUS "CMake version: ${CMAKE_VERSION}")
# Bail out if the user tries to generate a 32 bit project.
if (NOT ${CMAKE_SIZEOF_VOID_P} EQUAL 8)
@@ -55,26 +52,28 @@ endif ()
# Cleanup project #
##########################################################################################
set(OPENSPACE_APPS_DIR "${OPENSPACE_BASE_DIR}/apps")
set(OPENSPACE_EXT_DIR "${OPENSPACE_BASE_DIR}/ext")
if (NOT EXISTS ${OPENSPACE_EXT_DIR}/ghoul/CMakeLists.txt)
message(FATAL_ERROR "Git submodules are missing. Please run \n"
"git submodule update --init --recursive \n"
"to download the missing dependencies."
if (NOT EXISTS "${OPENSPACE_BASE_DIR}/ext/ghoul/CMakeLists.txt")
message(FATAL_ERROR "Git submodules are missing. Please run "
"git submodule update --init --recursive to download the missing dependencies."
)
endif ()
set_property(GLOBAL PROPERTY USE_FOLDERS On)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER CMake)
mark_as_advanced(CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BUILD_TYPE CMAKE_DEBUG_POSTFIX
CMAKE_INSTALL_PREFIX CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET
CMAKE_OSX_SYSROOT CMAKE_RELEASE_POSTFIX)
CMAKE_OSX_SYSROOT CMAKE_RELEASE_POSTFIX
)
# Set build output directories
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${OPENSPACE_CMAKE_EXT_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OPENSPACE_BASE_DIR}/bin)
# "OpenSpace Helper" is not a valid CMake target name under OLD
cmake_policy(SET CMP0037 NEW)
##########################################################################################
# Main #
##########################################################################################
@@ -103,7 +102,7 @@ execute_process(
)
if (NOT OPENSPACE_GIT_STATUS_RETURN EQUAL 0)
set(OPENSPACE_GIT_STATUS "uncommitted changes")
else()
else ()
set(OPENSPACE_GIT_STATUS "")
endif ()
@@ -133,62 +132,35 @@ if (MSVC)
set(GHOUL_OPTIMIZATION_ENABLE_OTHER_OPTIMIZATIONS ${OPENSPACE_OPTIMIZATION_ENABLE_OTHER_OPTIMIZATIONS} CACHE BOOL "" FORCE)
endif ()
option(OPENSPACE_WITH_ABUFFER_RENDERER "Compile ABuffer Renderer" OFF)
if (UNIX AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -stdlib=libc++")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++ -lc++abi")
endif ()
include(src/CMakeLists.txt)
add_subdirectory(ext)
##########################################################################################
# Add external dependencies #
##########################################################################################
# System libraries
if (APPLE)
begin_dependency("Core Libraries")
target_include_directories(openspace-core PUBLIC "/Developer/Headers/FlatCarbon")
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
find_library(CARBON_LIBRARY Carbon)
find_library(COCOA_LIBRARY Carbon)
find_library(APP_SERVICES_LIBRARY ApplicationServices)
mark_as_advanced(CARBON_LIBRARY COCOA_LIBRARY APP_SERVICES_LIBRARY)
target_link_libraries(openspace-core PUBLIC ${CARBON_LIBRARY} ${COREFOUNDATION_LIBRARY}
${COCOA_LIBRARY} ${APP_SERVICES_LIBRARY})
end_dependency()
endif ()
add_subdirectory(src)
# Ghoul
add_subdirectory(${OPENSPACE_EXT_DIR}/ghoul)
target_link_libraries(openspace-core PUBLIC Ghoul)
set_openspace_compile_settings(Ghoul)
set_folder_location(Lua "External")
set_folder_location(lz4 "External")
set_folder_location(GhoulTest "Unit Tests")
link_directories("${GHOUL_LIBRARY_DIRS}")
add_subdirectory(support/coding/codegen)
# It is important that the __codegen.h do not actually exist so
# that this target is never considered as finished
add_custom_target(
run_codegen
ALL DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/__codegen.h"
)
add_dependencies(run_codegen codegen)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/__codegen.h"
COMMAND codegen ARGS "${OPENSPACE_BASE_DIR}/modules" "${OPENSPACE_BASE_DIR}/src"
VERBATIM
)
set_folder_location(codegen-lib "support")
set_folder_location(codegen "support")
set_folder_location(run_codegen "support")
# Spice
begin_dependency("Spice")
add_subdirectory(${OPENSPACE_EXT_DIR}/spice)
target_link_libraries(openspace-core PUBLIC Spice)
set_folder_location(Spice "External")
end_dependency()
# Curl
begin_dependency("CURL")
if (WIN32)
set(CURL_ROOT_DIR "${OPENSPACE_EXT_DIR}/curl")
target_include_directories(openspace-core SYSTEM PUBLIC ${CURL_ROOT_DIR}/include)
target_link_libraries(openspace-core PUBLIC ${CURL_ROOT_DIR}/lib/libcurl.lib)
target_compile_definitions(openspace-core PUBLIC "OPENSPACE_CURL_ENABLED" "CURL_STATICLIB")
else ()
find_package(CURL)
if (CURL_FOUND)
target_include_directories(openspace-core SYSTEM PUBLIC ${CURL_INCLUDE_DIRS})
target_link_libraries(openspace-core PUBLIC ${CURL_LIBRARIES})
target_compile_definitions(openspace-core PUBLIC "OPENSPACE_CURL_ENABLED")
endif ()
endif ()
end_dependency()
# Qt
# Unfortunately, we have to set this value manually; sigh
@@ -202,6 +174,7 @@ if (APPLE)
"~/Qt/5.10/clang_64/lib/cmake"
"~/Qt/5.11/clang_64/lib/cmake"
"~/Qt/5.12/clang_64/lib/cmake"
"~/Qt/5.15.1/clang_64/lib/cmake"
)
endif ()
@@ -217,20 +190,23 @@ if (MSVC)
endif ()
begin_header("Configuring Modules")
set(OPENSPACE_EXTERNAL_MODULES_PATHS "" CACHE STRING "List of external modules")
handle_modules("${OPENSPACE_BASE_DIR}/modules" "${OPENSPACE_EXTERNAL_MODULES_PATHS}")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/modules")
end_header("End: Configuring Modules")
message(STATUS "")
add_subdirectory(support/coding/codegen/tests)
set_folder_location(run_test_codegen "Unit Tests/support")
set_folder_location(codegentest "Unit Tests")
begin_header("Configuring Applications")
handle_applications()
add_subdirectory("${OPENSPACE_APPS_DIR}")
end_header("End: Configuring Applications")
message(STATUS "")
option(OPENSPACE_HAVE_TESTS "Activate the OpenSpace unit tests" ON)
if (OPENSPACE_HAVE_TESTS)
begin_header("Generating OpenSpace unit test")
add_subdirectory("${OPENSPACE_BASE_DIR}/tests")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/tests")
end_header()
endif (OPENSPACE_HAVE_TESTS)
@@ -252,29 +228,13 @@ if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT)
# find CEF to initialize it properly.
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake")
include(webbrowser_helpers)
elseif (OPENSPACE_MODULE_WEBBROWSER)
message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.")
elseif ()
message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again")
endif ()
##########################################################################################
# Misc settings #
##########################################################################################
option(OPENSPACE_WITH_ABUFFER_RENDERER "Compile ABuffer Renderer" OFF)
if (OPENSPACE_WITH_ABUFFER_RENDERER)
target_compile_definitions(openspace-core PUBLIC "OPENSPACE_WITH_ABUFFER_RENDERER")
endif ()
option(OPENSPACE_WITH_INSTRUMENTATION "Add instrumentation options" OFF)
if (OPENSPACE_WITH_INSTRUMENTATION)
target_compile_definitions(openspace-core PUBLIC "OPENSPACE_WITH_INSTRUMENTATION")
endif ()
# Just in case, create the bin directory
add_custom_command(
TARGET openspace-core
PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
)
# Manage the CPack packaging
include(${OPENSPACE_CMAKE_EXT_DIR}/packaging.cmake)
+14 -3
View File
@@ -3,29 +3,38 @@ Alexander Bock
Emil Axelsson
Kalle Bladin
Jonathas Costa
Gene Payne
Jonas Strandstedt
Michal Marcinkowski
Joakim Kilby
Gene Payne
Elon Olsson
Emma Broman
Micah Acinapura
Joakim Kilby
Lovisa Hassler
Mikael Petterson
Erik Sundén
Stefan Lindblad
Malin Ejdbo
Corrie Roe
Eric Myers
Sebastian Piwell
Erik Broberg
Jonathan Bosson
Michael Nilsson
Elon Olsson
Jonathan Franzen
Karin Reidarman
Hans-Christian Helltegen
Anton Arbring
Oskar Carlbaum
Matthew Territo
Jonathan Grangien
Klas Eskilson
Aniisa Bihi
Tomas Forsyth Rosin
Niclas Hultberg
Rickard Lindtstedt
Ingela Rossing
Michael Sjöström
Michael Novén
Christoffer Särevall
@@ -35,8 +44,10 @@ Christoffer Särevall
Anteige
arfon
DavidLaidlaw
johnriedel
mik3caprio
mingenuity
nbartzokas
nealmcb
noahdasanaike
sa5bke
Vendored
+151 -80
View File
@@ -92,100 +92,171 @@ parallel tools: {
)
recordIssues(
id: 'tools-cppcheck',
tool: cppCheck()
tool: cppCheck(pattern: 'build/cppcheck.xml')
)
}
cleanWs()
} // node('tools')
},
linux_gcc: {
node('linux' && 'gcc') {
stage('linux-gcc/scm') {
deleteDir();
gitHelper.checkoutGit(url, branch);
}
stage('linux-gcc/build(make)') {
def cmakeCompileOptions = moduleCMakeFlags();
cmakeCompileOptions += ' -DMAKE_BUILD_TYPE=Release';
// Not sure why the linking of OpenSpaceTest takes so long
compileHelper.build(compileHelper.Make(), compileHelper.Gcc(), cmakeCompileOptions, 'OpenSpace', 'build-make');
compileHelper.recordCompileIssues(compileHelper.Gcc());
}
stage('linux-gcc/build(ninja)') {
def cmakeCompileOptions = moduleCMakeFlags();
cmakeCompileOptions += '-DMAKE_BUILD_TYPE=Release';
// Not sure why the linking of OpenSpaceTest takes so long
compileHelper.build(compileHelper.Ninja(), compileHelper.Gcc(), cmakeCompileOptions, 'OpenSpace', 'build-ninja');
}
stage('linux-gcc/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
}
cleanWs()
} // node('linux')
},
linux_clang: {
node('linux' && 'clang') {
stage('linux-clang/scm') {
deleteDir()
gitHelper.checkoutGit(url, branch);
}
stage('linux-clang/build(make)') {
def cmakeCompileOptions = moduleCMakeFlags()
cmakeCompileOptions += ' -DMAKE_BUILD_TYPE=Release'
// Not sure why the linking of OpenSpaceTest takes so long
compileHelper.build(compileHelper.Make(), compileHelper.Clang(), cmakeCompileOptions, 'OpenSpace', 'build-make');
compileHelper.recordCompileIssues(compileHelper.Clang());
}
stage('linux-clang/build(ninja)') {
def cmakeCompileOptions = moduleCMakeFlags()
cmakeCompileOptions += '-DMAKE_BUILD_TYPE=Release'
// Not sure why the linking of OpenSpaceTest takes so long
compileHelper.build(compileHelper.Ninja(), compileHelper.Clang(), cmakeCompileOptions, 'OpenSpace', 'build-ninja');
}
stage('linux-clang/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
}
cleanWs()
} // node('linux')
},
windows: {
node('windows') {
ws("${env.JENKINS_BASE}/O/${env.BRANCH_NAME}/${env.BUILD_ID}") {
stage('windows/scm') {
linux_gcc_make: {
if (env.USE_BUILD_OS_LINUX == 'true') {
node('linux' && 'gcc') {
stage('linux-gcc-make/scm') {
deleteDir();
gitHelper.checkoutGit(url, branch);
}
stage('windows/build(msvc)') {
stage('linux-gcc-make/build') {
def cmakeCompileOptions = moduleCMakeFlags();
cmakeCompileOptions += ' -DMAKE_BUILD_TYPE=Release';
// Not sure why the linking of OpenSpaceTest takes so long
compileHelper.build(compileHelper.Make(), compileHelper.Gcc(), cmakeCompileOptions, 'OpenSpace', 'build-make');
compileHelper.recordCompileIssues(compileHelper.Gcc());
}
stage('linux-gcc-make/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
// testHelper.runUnitTests('bin/codegentest')
}
cleanWs()
} // node('linux')
}
},
linux_gcc_ninja: {
if (env.USE_BUILD_OS_LINUX == 'true') {
node('linux' && 'gcc') {
stage('linux-gcc-ninja/scm') {
deleteDir();
gitHelper.checkoutGit(url, branch);
}
stage('linux-gcc-ninja/build') {
def cmakeCompileOptions = moduleCMakeFlags();
cmakeCompileOptions += '-DMAKE_BUILD_TYPE=Release';
// Not sure why the linking of OpenSpaceTest takes so long
compileHelper.build(compileHelper.Ninja(), compileHelper.Gcc(), cmakeCompileOptions, 'OpenSpace', 'build-ninja');
}
stage('linux-gcc-ninja/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
// testHelper.runUnitTests('bin/codegentest')
}
cleanWs()
} // node('linux')
}
},
linux_clang_make: {
if (env.USE_BUILD_OS_LINUX == 'true') {
node('linux' && 'clang') {
stage('linux-clang-make/scm') {
deleteDir()
gitHelper.checkoutGit(url, branch);
}
stage('linux-clang-make/build') {
def cmakeCompileOptions = moduleCMakeFlags()
cmakeCompileOptions += ' -DMAKE_BUILD_TYPE=Release'
// Not sure why the linking of OpenSpaceTest takes so long
compileHelper.build(compileHelper.Make(), compileHelper.Clang(), cmakeCompileOptions, 'OpenSpace', 'build-make');
compileHelper.recordCompileIssues(compileHelper.Clang());
}
stage('linux-clang-make/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
// testHelper.runUnitTests('bin/codegentest')
}
cleanWs()
} // node('linux')
}
},
linux_clang_ninja: {
if (env.USE_BUILD_OS_LINUX == 'true') {
node('linux' && 'clang') {
stage('linux-clang-ninja/scm') {
deleteDir()
gitHelper.checkoutGit(url, branch);
}
stage('linux-clang-ninja/build') {
def cmakeCompileOptions = moduleCMakeFlags()
cmakeCompileOptions += '-DMAKE_BUILD_TYPE=Release'
// Not sure why the linking of OpenSpaceTest takes so long
compileHelper.build(compileHelper.Ninja(), compileHelper.Clang(), cmakeCompileOptions, 'OpenSpace', 'build-ninja');
}
stage('linux-clang-ninja/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
// testHelper.runUnitTests('bin/codegentest')
}
cleanWs()
} // node('linux')
}
},
windows_msvc: {
if (env.USE_BUILD_OS_WINDOWS == 'true') {
node('windows') {
stage('windows-msvc/scm') {
deleteDir();
gitHelper.checkoutGit(url, branch);
}
stage('windows-msvc/build') {
compileHelper.build(compileHelper.VisualStudio(), compileHelper.VisualStudio(), moduleCMakeFlags(), '', 'build-msvc');
compileHelper.recordCompileIssues(compileHelper.VisualStudio());
}
stage('windows/build(ninja)') {
compileHelper.build(compileHelper.Ninja(), compileHelper.VisualStudio(), moduleCMakeFlags(), '', 'build-ninja');
}
stage('windows/test') {
stage('windows-msvc/test') {
// Currently, the unit tests are failing on Windows
// testHelper.runUnitTests('bin\\Debug\\OpenSpaceTest')
testHelper.runUnitTests('bin\\Debug\\codegentest')
}
cleanWs()
} // node('windows')
cleanWs()
} // node('windows')
}
},
macos: {
node('macos') {
stage('macos/scm') {
deleteDir();
gitHelper.checkoutGit(url, branch);
}
stage('macos/build(make)') {
compileHelper.build(compileHelper.Make(), compileHelper.Clang(), moduleCMakeFlags(), '', 'build-make');
}
stage('macos/build(xcode)') {
compileHelper.build(compileHelper.Xcode(), compileHelper.Xcode(), moduleCMakeFlags(), '', 'build-xcode');
}
stage('macos/test') {
// Currently, the unit tests are crashing on OS X
// testHelper.runUnitTests('build/Debug/OpenSpaceTest')
}
cleanWs()
} // node('macos')
// windows_ninja: {
// if (env.USE_BUILD_OS_WINDOWS == 'true') {
// node('windows') {
// ws("${env.JENKINS_BASE}/O/${env.BRANCH_NAME}/${env.BUILD_ID}") {
// stage('windows-ninja/scm') {
// deleteDir();
// gitHelper.checkoutGit(url, branch);
// }
// stage('windows-ninja/build') {
// compileHelper.build(compileHelper.Ninja(), compileHelper.VisualStudio(), moduleCMakeFlags(), '', 'build-ninja');
// }
// stage('windows-ninja/test') {
// // Currently, the unit tests are failing on Windows
// // testHelper.runUnitTests('bin\\Debug\\OpenSpaceTest')
// }
// } // node('windows')
// cleanWs()
// } // node('windows')
// }
// },
macos_make: {
if (env.USE_BUILD_OS_MACOS == 'true') {
node('macos') {
stage('macos-make/scm') {
deleteDir();
gitHelper.checkoutGit(url, branch);
}
stage('macos-make/build') {
compileHelper.build(compileHelper.Make(), compileHelper.Clang(), moduleCMakeFlags(), '', 'build-make');
}
stage('macos-make/test') {
// Currently, the unit tests are crashing on OS X
// testHelper.runUnitTests('build/Debug/OpenSpaceTest')
}
cleanWs()
} // node('macos')
}
},
macos_xcode: {
if (env.USE_BUILD_OS_MACOS == 'true') {
node('macos') {
stage('macos-xcode/scm') {
deleteDir();
gitHelper.checkoutGit(url, branch);
}
stage('macos-xcode/build') {
compileHelper.build(compileHelper.Xcode(), compileHelper.Xcode(), moduleCMakeFlags(), '', 'build-xcode');
}
stage('macos-xcode/test') {
// Currently, the unit tests are crashing on OS X
// testHelper.runUnitTests('build/Debug/OpenSpaceTest')
}
cleanWs()
} // node('macos')
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright (c) 2014-2020
Copyright (c) 2014-2021
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
+4 -4
View File
@@ -1,13 +1,13 @@
[OpenSpace](http://openspaceproject.com) 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.
[OpenSpace](http://openspaceproject.com) 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 Swedens [Linköping University](https://www.liu.se) (LiU) and the [American Museum of Natural History](https://www.amnh.org) (AMNH) that led to the creation of Uniview and its parent company [SCISS](http://sciss.se). Development of the software began several years ago through a close collaboration with NASA Goddards [Community Coordinated Modeling Center](https://ccmc.gsfc.nasa.gov) (CCMC) to model space weather forecasting and continued with visualizations of NASAs New Horizons mission to Pluto and ESAs 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 Utahs [Scientific Computing and Imaging](https://www.sci.utah.edu) (SCI) Institute, [New York University](https://www.nyu.edu)s Tandon School of Engineering, multiple informal science institutions across the United States, and multiple, international vendors. Current areas of focus within OpenSpace include:
The project stems from the same academic collaboration between Swedens [Linköping University](https://www.liu.se) (LiU) and the [American Museum of Natural History](https://www.amnh.org) (AMNH) that led to the creation of Uniview and its parent company [SCISS](http://sciss.se). Development of the software began several years ago through a close collaboration with NASA Goddards [Community Coordinated Modeling Center](https://ccmc.gsfc.nasa.gov) (CCMC) to model space weather forecasting and continued with visualizations of NASAs New Horizons mission to Pluto and ESAs 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 Utahs [Scientific Computing and Imaging](https://www.sci.utah.edu) (SCI) Institute, [New York University](https://www.nyu.edu)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 NASAs SPICE observational geometry system with its Planetary Data Service (PDS) to enable space mission visualization that reveal how missions are designed to gather science.
- Utilization of NASAs SPICE observational geometry system with its Planetary Data Service (PDS) to enable space mission visualizations 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.
OpenSpace requires graphics support for [OpenGL](https://www.opengl.org/) version 3.3.
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 [OpenSpace Wiki](http://wiki.openspaceproject.com/), specifically [building](http://wiki.openspaceproject.com/docs/developers/compiling/general) for [Windows](http://wiki.openspaceproject.com/docs/developers/compiling/windows), [Linux (Ubuntu)](http://wiki.openspaceproject.com/docs/developers/compiling/ubuntu), and [MacOS](http://wiki.openspaceproject.com/docs/developers/compiling/macos). Required preexisting dependencies are: [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:).
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 [OpenSpace Wiki](http://wiki.openspaceproject.com/), specifically [building](http://wiki.openspaceproject.com/docs/developers/compiling/general) for [Windows](http://wiki.openspaceproject.com/docs/developers/compiling/windows), [Linux (Ubuntu)](http://wiki.openspaceproject.com/docs/developers/compiling/ubuntu), and [MacOS](http://wiki.openspaceproject.com/docs/developers/compiling/macos). Required preexisting dependencies are: [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:).
Regarding any issues, you are very welcome on our [Slack support channel](https://openspacesupport.slack.com) to which you can freely [sign-up](https://join.slack.com/t/openspacesupport/shared_invite/zt-37niq6y9-T0JaCIk4UoFLI4VF5U9Vsw).
@@ -2,7 +2,7 @@
# #
# OpenSpace #
# #
# Copyright (c) 2014-2020 #
# Copyright (c) 2014-2021 #
# #
# 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 #
@@ -22,63 +22,51 @@
# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #
##########################################################################################
function (handle_applications)
# Get a list of all of the application directories
file(GLOB appDirs RELATIVE ${OPENSPACE_APPS_DIR} ${OPENSPACE_APPS_DIR}/*)
# Remove the .DS_Store present on Mac
list(REMOVE_ITEM appDirs ".DS_Store")
# Print all the enabled modules
# message(STATUS "Enabled modules:")
# list(LENGTH enabled_module_names enabled_module_count)
# math(EXPR enabled_module_count "${enabled_module_count} - 1")
# foreach (val RANGE ${enabled_module_count})
# list(GET enabled_module_names ${val} name)
# list(GET enabled_module_paths ${val} path)
# message(STATUS "\t${name} (${path})")
# endforeach ()
message(STATUS "Enabled applications:")
foreach (app ${appDirs})
string(TOUPPER ${app} upper_app)
if (OPENSPACE_APPLICATION_${upper_app})
message(STATUS "\t${app} (${OPENSPACE_APPS_DIR}/${app})")
endif ()
endforeach ()
# First create all of the options for the applications. In case that one of the
# applications fail to include later, we still want all of them listed
foreach (app ${appDirs})
set(app_dir "${OPENSPACE_APPS_DIR}/${app}")
string(TOUPPER ${app} upper_app)
get_application_attribute_default(${app_dir} is_default_application)
option(OPENSPACE_APPLICATION_${upper_app} "Build ${app} application" ${is_default_application})
endforeach ()
foreach (app ${appDirs})
set(app_dir "${OPENSPACE_APPS_DIR}/${app}")
string(TOUPPER ${app} upper_app)
if (OPENSPACE_APPLICATION_${upper_app})
begin_header("Application: ${app}")
add_subdirectory(${app_dir})
end_header("End: Application: ${app}")
endif ()
endforeach ()
endfunction()
# Returns whether the application located at 'path' is a default application or not
function (get_application_attribute_default path result)
set(${result} OFF PARENT_SCOPE)
if (EXISTS "${path}/include.cmake")
unset(DEFAULT_APPLICATION)
include(${path}/include.cmake)
if (DEFINED DEFAULT_APPLICATION)
set(${result} ${DEFAULT_APPLICATION} PARENT_SCOPE)
endif ()
set(${result} OFF PARENT_SCOPE)
if (EXISTS "${path}/include.cmake")
unset(DEFAULT_APPLICATION)
include(${path}/include.cmake)
if (DEFINED DEFAULT_APPLICATION)
set(${result} ${DEFAULT_APPLICATION} PARENT_SCOPE)
endif ()
endif ()
endfunction()
# Get a list of all of the application directories
file(GLOB app_dirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*)
# Remove the .DS_Store present on Mac
list(REMOVE_ITEM app_dirs ".DS_Store")
list(REMOVE_ITEM app_dirs "CMakeLists.txt")
message(STATUS "Enabled applications:")
foreach (app ${app_dirs})
string(TOUPPER ${app} upper_app)
if (OPENSPACE_APPLICATION_${upper_app})
message(STATUS "\t${app} (${CMAKE_CURRENT_SOURCE_DIR}/${app})")
endif ()
endforeach ()
# First create all of the options for the applications. In case that one of the
# applications fail to include later, we still want all of them listed
foreach (app ${app_dirs})
set(app_dir "${CMAKE_CURRENT_SOURCE_DIR}/${app}")
string(TOUPPER ${app} upper_app)
get_application_attribute_default(${app_dir} is_default_application)
option(OPENSPACE_APPLICATION_${upper_app} "Build ${app} application" ${is_default_application})
endforeach ()
foreach (app ${app_dirs})
set(app_dir "${CMAKE_CURRENT_SOURCE_DIR}/${app}")
string(TOUPPER ${app} upper_app)
if (OPENSPACE_APPLICATION_${upper_app})
begin_header("Application: ${app}")
add_subdirectory(${app_dir})
end_header("End: Application: ${app}")
endif ()
endforeach ()
+1 -1
View File
@@ -2,7 +2,7 @@
# #
# OpenSpace #
# #
# Copyright (c) 2014-2020 #
# Copyright (c) 2014-2021 #
# #
# 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 #
+1 -1
View File
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
+14 -18
View File
@@ -2,7 +2,7 @@
# #
# OpenSpace #
# #
# Copyright (c) 2014-2020 #
# Copyright (c) 2014-2021 #
# #
# 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 #
@@ -27,6 +27,9 @@ include(${GHOUL_BASE_DIR}/support/cmake/message_macros.cmake)
include(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake)
include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake)
# We are getting all_enabled_modules from the handle_applications.cmake file which gets
# it from the main CMakeLists file
#####
# OpenVR
#####
@@ -34,8 +37,6 @@ option(OPENSPACE_OPENVR_SUPPORT "Build OpenSpace application with OpenVR support
if (OPENSPACE_OPENVR_SUPPORT)
begin_header("Dependency: OpenVR")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${OPENSPACE_EXT_DIR}/sgct/cmake/modules/")
find_package(OpenVR REQUIRED)
set(SGCT_OPENVR_DEFINITIONS OPENVR_SUPPORT)
@@ -43,14 +44,14 @@ if (OPENSPACE_OPENVR_SUPPORT)
if (WIN32)
find_path(SGCT_OPENVR_INCLUDE_DIRECTORY
NAMES SGCTOpenVR.h
PATHS ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr NO_DEFAULT_PATH
PATHS ${OPENSPACE_BASE_DIR}/ext/sgct/additional_includes/openvr NO_DEFAULT_PATH
REQUIRED
)
else ()
find_path(SGCT_OPENVR_INCLUDE_DIRECTORY
NAMES SGCTOpenVR.h
PATH_SUFFIXES SGCTOpenVR
PATHS ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr
PATHS ${OPENSPACE_BASE_DIR}/ext/sgct/additional_includes/openvr
REQUIRED
)
endif ()
@@ -89,10 +90,7 @@ create_new_application(OpenSpace
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
)
set_source_files_properties(
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
PROPERTIES MACOSX_PACKAGE_LOCATION "Resources"
)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
target_include_directories(
OpenSpace PRIVATE
@@ -101,7 +99,7 @@ target_include_directories(
${SPOUT_INCLUDE_DIRS}
)
target_link_libraries(OpenSpace PUBLIC openspace-core ${OPENVR_LIBRARY} ${SPOUT_LIBRARY})
target_link_libraries(OpenSpace PRIVATE openspace-core openspace-module-collection ${OPENVR_LIBRARY} ${SPOUT_LIBRARY})
target_compile_definitions(OpenSpace PRIVATE
${SGCT_OPENVR_DEFINITIONS}
@@ -115,8 +113,7 @@ set(SGCT_DEP_INCLUDE_FREETYPE OFF CACHE BOOL "" FORCE)
set(SGCT_DEP_INCLUDE_FMT OFF CACHE BOOL "" FORCE)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/sgct)
target_include_directories(OpenSpace SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ext/sgct/include)
target_link_libraries(OpenSpace PUBLIC sgct)
target_link_libraries(OpenSpace PRIVATE sgct)
set_folder_location(sgct "External")
set_folder_location(glfw "External/SGCT")
@@ -128,15 +125,14 @@ set_folder_location(vrpn "External/SGCT")
set_folder_location(zlibstatic "External/SGCT")
if (UNIX AND (NOT APPLE))
target_link_libraries(OpenSpace PUBLIC Xcursor Xinerama X11)
target_link_libraries(OpenSpace PRIVATE Xcursor Xinerama X11)
endif ()
end_header("Dependency: SGCT")
begin_header("Dependency: Profile Editor")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/launcher)
# target_include_directories(OpenSpace SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ext/launcher/include)
target_link_libraries(OpenSpace PUBLIC openspace-ui-launcher)
target_link_libraries(OpenSpace PRIVATE openspace-ui-launcher)
end_header("Dependency: Profile Editor")
@@ -158,17 +154,17 @@ if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT)
set_cef_targets("${CEF_ROOT}" OpenSpace)
run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}")
elseif (OPENSPACE_MODULE_WEBBROWSER)
elseif ()
message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.")
endif ()
if (MSVC)
begin_header("Dependency: Dbghelp")
# This library is used for being able to output the callstack if an exception escapes
target_link_libraries(OpenSpace PUBLIC Dbghelp.lib)
target_link_libraries(OpenSpace PRIVATE Dbghelp.lib)
end_header()
endif ()
if (OPENSPACE_NVTOOLS_ENABLED)
target_link_libraries(OpenSpace "${OPENSPACE_NVTOOLS_PATH}/lib/x64/nvToolsExt64_1.lib")
target_link_libraries(OpenSpace PRIVATE "${OPENSPACE_NVTOOLS_PATH}/lib/x64/nvToolsExt64_1.lib")
endif ()
+9 -1
View File
@@ -2,7 +2,7 @@
# #
# OpenSpace #
# #
# Copyright (c) 2014-2020 #
# Copyright (c) 2014-2021 #
# #
# 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 #
@@ -90,3 +90,11 @@ set_openspace_compile_settings(openspace-ui-launcher)
target_include_directories(openspace-ui-launcher PUBLIC include)
target_link_libraries(openspace-ui-launcher PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets openspace-core)
if (MSVC)
set(MSVC_WARNINGS
"/wd4619" # #pragma warning: there is no warning number (raised by Qt headers)
"/wd4946" # reinterpret_cast used between related classes:
)
target_compile_options(openspace-ui-launcher INTERFACE ${MSVC_WARNINGS})
endif ()
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -61,7 +61,7 @@ public:
*
* \param evt #QKeyEvent object for the key press event
*/
void keyPressEvent(QKeyEvent* evt);
virtual void keyPressEvent(QKeyEvent* evt) override;
private slots:
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -56,7 +56,7 @@ public:
*
* \param evt #QKeyEvent object for the key press event
*/
void keyPressEvent(QKeyEvent* evt);
virtual void keyPressEvent(QKeyEvent* evt) override;
private slots:
void listItemSelected();
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -51,7 +51,7 @@ public:
*
* \param evt #QKeyEvent object for the key press event
*/
void keyPressEvent(QKeyEvent* evt);
void keyPressEvent(QKeyEvent* evt) override;
private slots:
void listItemSelected();
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -52,7 +52,7 @@ public:
*
* \param evt #QKeyEvent object for the key press event
*/
void keyPressEvent(QKeyEvent* evt);
virtual void keyPressEvent(QKeyEvent* evt) override;
private slots:
void listItemSelected();
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -75,7 +75,7 @@ public:
*
* \param evt #QKeyEvent object for the key press event
*/
void keyPressEvent(QKeyEvent* evt);
virtual void keyPressEvent(QKeyEvent* evt) override;
private slots:
void duplicateProfile();
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -53,7 +53,7 @@ public:
*
* \param evt #QKeyEvent object for the key press event
*/
void keyPressEvent(QKeyEvent* evt);
virtual void keyPressEvent(QKeyEvent* evt) override;
private slots:
void listItemSelected();
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -56,14 +56,13 @@ void FileSystemAccess::parseChildDirElements(QFileInfo fileInfo, std::string spa
QFileInfoList fileList = dir.entryInfoList(_fileFilterOptions);
for (int i = 0; i < fileList.size(); i++) {
QFileInfo fileInfo = fileList[i];
std::string res = space + fileInfo.fileName().toStdString();
QFileInfo fi = fileList[i];
std::string res = space + fi.fileName().toStdString();
if (fileInfo.isDir()) {
if (fi.isDir()) {
if (level != 0 || (level == 0 && isApprovedPath(res))) {
dirNames.push_back(res);
parseChildDirElements(fileInfo, (space + " "), level + 1, dirNames,
output);
parseChildDirElements(fi, (space + " "), level + 1, dirNames, output);
}
}
else {
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -28,6 +28,7 @@
#include <openspace/engine/configuration.h>
#include <ghoul/filesystem/filesystem.h>
#include <ghoul/logging/logmanager.h>
#include <QComboBox>
#include <QFile>
#include <QLabel>
@@ -220,8 +221,17 @@ QWidget* LauncherWindow::createCentralWidget() {
connect(
startButton, &QPushButton::released,
[this]() {
_shouldLaunch = true;
close();
if (_profileBox->currentText().isEmpty()) {
QMessageBox::critical(
this,
"Empty Profile",
"Cannot launch with an empty profile"
);
}
else {
_shouldLaunch = true;
close();
}
}
);
startButton->setObjectName("large");
@@ -301,6 +311,13 @@ void LauncherWindow::populateProfilesList(std::string preset) {
_profileBox->clear();
if (!std::filesystem::exists(_profilePath)) {
LINFOC(
"LauncherWindow",
fmt::format("Could not find profile folder '{}'", _profilePath)
);
return;
}
// Add all the files with the .profile extension to the dropdown
for (const fs::directory_entry& p : fs::directory_iterator(_profilePath)) {
if (p.path().extension() != ".profile") {
@@ -321,12 +338,20 @@ void LauncherWindow::populateWindowConfigsList(std::string preset) {
namespace fs = std::filesystem;
_windowConfigBox->clear();
// Add all the files with the .xml extension to the dropdown
for (const fs::directory_entry& p : fs::directory_iterator(_configPath)) {
if (p.path().extension() != ".xml") {
continue;
if (std::filesystem::exists(_configPath)) {
// Add all the files with the .xml extension to the dropdown
for (const fs::directory_entry& p : fs::directory_iterator(_configPath)) {
if (p.path().extension() != ".xml") {
continue;
}
_windowConfigBox->addItem(QString::fromStdString(p.path().stem().string()));
}
_windowConfigBox->addItem(QString::fromStdString(p.path().stem().string()));
}
else {
LINFOC(
"LauncherWindow",
fmt::format("Could not find config folder '{}'", _configPath)
);
}
// Try to find the requested configuration file and set it as the current one. As we
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -207,12 +207,9 @@ QString AssetsDialog::createTextSummary() {
return "";
}
QString summary;
for (int i = 0; i < summaryItems.size(); ++i) {
for (size_t i = 0; i < summaryItems.size(); ++i) {
bool existsInFilesystem = summaryItems.at(i)->doesExistInFilesystem();
constexpr const char* ExistsFormat = "{}<br>";
constexpr const char* NotExistsFormat = "<font color='{}'>{}</font><br>";
std::string s = existsInFilesystem ?
fmt::format("{}<br>", summaryPaths.at(i)) :
fmt::format("<font color='red'>{}</font><br>", summaryPaths.at(i));
@@ -233,6 +230,6 @@ void AssetsDialog::parseSelections() {
accept();
}
void AssetsDialog::selected(const QModelIndex& sel) {
void AssetsDialog::selected(const QModelIndex&) {
_summary->setText(createTextSummary());
}
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -55,7 +55,7 @@ int AssetTreeItem::row() const {
_parentItem->_childItems.cend(),
this
);
return std::distance(_parentItem->_childItems.cbegin(), it);
return static_cast<int>(std::distance(_parentItem->_childItems.cbegin(), it));
}
else {
return 0;
@@ -63,11 +63,11 @@ int AssetTreeItem::row() const {
}
int AssetTreeItem::columnCount() const {
return _itemData.size();
return static_cast<int>(_itemData.size());
}
QVariant AssetTreeItem::data(int column) const {
if (column < 0 || column >= _itemData.size()) {
if (column < 0 || column >= static_cast<int>(_itemData.size())) {
return QVariant();
}
else {
@@ -76,7 +76,7 @@ QVariant AssetTreeItem::data(int column) const {
}
bool AssetTreeItem::setData(int column, const QVariant& value) {
if (column < 0 || column >= _itemData.size()) {
if (column < 0 || column >= static_cast<int>(_itemData.size())) {
return false;
}
@@ -112,11 +112,11 @@ bool AssetTreeItem::doesExistInFilesystem() const {
}
QString AssetTreeItem::name() const {
return QString(data(0).toString());
return data(0).toString();
}
bool AssetTreeItem::insertChildren(int position, int count, int columns) {
if (position < 0 || position > _childItems.size()) {
if (position < 0 || position > static_cast<int>(_childItems.size())) {
return false;
}
@@ -130,7 +130,7 @@ bool AssetTreeItem::insertChildren(int position, int count, int columns) {
}
bool AssetTreeItem::removeChildren(int position, int count) {
if (position < 0 || position + count > _childItems.size()) {
if (position < 0 || position + count > static_cast<int>(_childItems.size())) {
return false;
}
@@ -143,7 +143,7 @@ bool AssetTreeItem::removeChildren(int position, int count) {
}
bool AssetTreeItem::insertColumns(int position, int columns) {
if (position < 0 || position > _itemData.size()) {
if (position < 0 || position > static_cast<int>(_itemData.size())) {
return false;
}
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -191,22 +191,22 @@ QWidget* CameraDialog::createNavStateWidget() {
QWidget* posBox = new QWidget;
QBoxLayout* posLayout = new QHBoxLayout(posBox);
posLayout->setContentsMargins(0, 0, 0, 0);
posLayout->addWidget(new QLabel("X"));
posLayout->addWidget(new QLabel("X [m]"));
_navState.positionX = new QLineEdit;
_navState.positionX->setValidator(new QDoubleValidator);
_navState.positionX->setToolTip("Camera position vector (x)");
_navState.positionX->setToolTip("Camera position vector (x) [m]");
posLayout->addWidget(_navState.positionX);
posLayout->addWidget(new QLabel("Y"));
posLayout->addWidget(new QLabel("Y [m]"));
_navState.positionY = new QLineEdit;
_navState.positionY->setValidator(new QDoubleValidator);
_navState.positionY->setToolTip("Camera position vector (y)");
_navState.positionY->setToolTip("Camera position vector (y) [m]");
posLayout->addWidget(_navState.positionY);
posLayout->addWidget(new QLabel("Z"));
posLayout->addWidget(new QLabel("Z [m]"));
_navState.positionZ = new QLineEdit;
_navState.positionZ->setValidator(new QDoubleValidator);
_navState.positionZ->setToolTip("Camera position vector (z)");
_navState.positionZ->setToolTip("Camera position vector (z) [m]");
posLayout->addWidget(_navState.positionZ);
layout->addWidget(posBox, 3, 1);
}
@@ -277,7 +277,7 @@ QWidget* CameraDialog::createGeoWidget() {
_geoState.longitude->setToolTip("Longitude of camera focus point (+/- 180 degrees)");
layout->addWidget(_geoState.longitude, 2, 1);
layout->addWidget(new QLabel("Altitude"), 3, 0);
layout->addWidget(new QLabel("Altitude [m]"), 3, 0);
_geoState.altitude = new QLineEdit;
_geoState.altitude->setValidator(new QDoubleValidator);
_geoState.altitude->setToolTip("Altitude of camera (meters)");
@@ -308,7 +308,7 @@ bool CameraDialog::areRequiredFormsFilledAndValid() {
allFormsOk = false;
addErrorMsg("Position Z is empty");
}
int upVectorCount = 0;
const bool hasUpX = !_navState.upX->text().isEmpty();
const bool hasUpY = !_navState.upY->text().isEmpty();
const bool hasUpZ = !_navState.upZ->text().isEmpty();
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -75,7 +75,7 @@ namespace {
break;
}
}
return checkForTimeDescription(i, value);
return checkForTimeDescription(static_cast<int>(i), value);
}
} // namespace
@@ -230,8 +230,8 @@ void DeltaTimesDialog::listItemSelected() {
void DeltaTimesDialog::setLabelForKey(int index, bool editMode, std::string color) {
std::string labelS = "Set Simulation Time Increment for key";
if (index >= _data.size()) {
index = _data.size() - 1;
if (index >= static_cast<int>(_data.size())) {
index = static_cast<int>(_data.size()) - 1;
}
if (editMode) {
labelS += " '" + createSummaryForDeltaTime(index, false) + "':";
@@ -242,14 +242,14 @@ void DeltaTimesDialog::setLabelForKey(int index, bool editMode, std::string colo
}
void DeltaTimesDialog::valueChanged(const QString& text) {
if (_seconds->text().isEmpty()) {
if (text.isEmpty()) {
_errorMsg->setText("");
}
else {
int value = _seconds->text().toDouble();
int value = text.toDouble();
if (value != 0) {
_value->setText(QString::fromStdString(
timeDescription(_seconds->text().toDouble()))
timeDescription(text.toDouble()))
);
_errorMsg->setText("");
}
@@ -358,14 +358,14 @@ void DeltaTimesDialog::parseSelections() {
if ((_data.size() == 1) && (_data.at(0) == 0)) {
_data.clear();
}
int finalNonzeroIndex = _data.size() - 1;
int finalNonzeroIndex = static_cast<int>(_data.size()) - 1;
for (; finalNonzeroIndex >= 0; --finalNonzeroIndex) {
if (_data.at(finalNonzeroIndex) != 0) {
break;
}
}
std::vector<double> tempDt;
for (size_t i = 0; i < (finalNonzeroIndex + 1); ++i) {
for (int i = 0; i < (finalNonzeroIndex + 1); ++i) {
tempDt.push_back(_data[i]);
}
_profile.setDeltaTimes(tempDt);
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -323,7 +323,7 @@ void KeybindingsDialog::keySelected(int index) {
int KeybindingsDialog::indexInKeyMapping(std::vector<int>& mapVector, int keyInt) {
const auto it = std::find(mapVector.cbegin(), mapVector.cend(), keyInt);
return std::distance(mapVector.cbegin(), it);
return static_cast<int>(std::distance(mapVector.cbegin(), it));
}
bool KeybindingsDialog::isLineEmpty(int index) {
@@ -338,8 +338,6 @@ bool KeybindingsDialog::isLineEmpty(int index) {
}
void KeybindingsDialog::listItemAdded() {
int currentListSize = _list->count();
_data.push_back(BlankKey);
_list->addItem(new QListWidgetItem(" (Enter details below & click 'Save')"));
// Scroll down to that blank line highlighted
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -112,7 +112,7 @@ void MarkNodesDialog::listItemAdded() {
std::string itemToAdd = _newNode->text().toStdString();
const auto it = std::find(_data.cbegin(), _data.cend(), itemToAdd);
if (it != _data.end()) {
_list->setCurrentRow(std::distance(_data.cbegin(), it));
_list->setCurrentRow(static_cast<int>(std::distance(_data.cbegin(), it)));
}
else {
_data.push_back(itemToAdd);
@@ -131,7 +131,7 @@ void MarkNodesDialog::listItemRemove() {
QListWidgetItem* item = _list->currentItem();
int index = _list->row(item);
if (index < 0 || index >= _markedNodesListItems.size()) {
if (index < 0 || index >= static_cast<int>(_markedNodesListItems.size())) {
return;
}
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -50,7 +50,7 @@
using namespace openspace;
namespace {
QString labelText(int size, QString title) {
QString labelText(size_t size, QString title) {
QString label;
if (size > 0) {
label = title + " (" + QString::number(size) + ")";
@@ -98,9 +98,9 @@ ProfileEdit::ProfileEdit(Profile& profile, const std::string& profileName,
const std::vector<std::string>& readOnlyProfiles,
QWidget* parent)
: QDialog(parent)
, _profile(profile)
, _assetBasePath(std::move(assetBasePath))
, _profileBasePath(std::move(profileBasePath))
, _profile(profile)
, _readOnlyProfiles(readOnlyProfiles)
{
setWindowTitle("Profile Editor");
@@ -373,7 +373,7 @@ void ProfileEdit::duplicateProfile() {
// will remove the suffix here first
profile = profile.substr(0, it);
}
catch (const std::invalid_argument& e) {
catch (const std::invalid_argument&) {
// If this exception is thrown, we did find a separator character but the
// substring afterwards was not a number, so the user just added a separator
// by themselves. In this case we don't do anything
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
+45 -17
View File
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -41,13 +41,11 @@
#include <ghoul/lua/ghoul_lua.h>
#include <ghoul/misc/assert.h>
#include <ghoul/misc/boolean.h>
//#include <ghoul/opengl/ghoul_gl.h>
#include <GLFW/glfw3.h>
#ifdef _WIN32
#include <ghoul/opengl/ghoul_gl.h>
#ifdef WIN32
#define GLFW_EXPOSE_NATIVE_WIN32
#else
#define GLFW_INCLUDE_NONE
#endif
#include <GLFW/glfw3.h>
#include <GLFW/glfw3native.h>
#include <sgct/clustermanager.h>
#include <sgct/commandline.h>
@@ -224,6 +222,8 @@ void mainInitFunc(GLFWwindow*) {
global::openSpaceEngine->initialize();
LDEBUG("Initializing OpenSpace Engine finished");
#ifndef __APPLE__
// Apparently: "Cocoa: Regular windows do not have icons on macOS"
{
std::string path = absPath("${DATA}/openspace-icon.png");
int x;
@@ -242,6 +242,7 @@ void mainInitFunc(GLFWwindow*) {
stbi_image_free(icons[0].pixels);
}
#endif // __APPLE__
currentWindow = Engine::instance().windows().front().get();
currentViewport = currentWindow->viewports().front().get();
@@ -575,18 +576,18 @@ void mainPostDrawFunc() {
glBindTexture(GL_TEXTURE_2D, texId);
w.leftOrMain.handle->SendTexture(
texId,
GL_TEXTURE_2D,
GLuint(GL_TEXTURE_2D),
window.framebufferResolution().x,
window.framebufferResolution().y
);
}
if (w.right.initialized) {
const GLuint texId = window.frameBufferTexture(Window::TextureIndex::RightEye);
glBindTexture(GL_TEXTURE_2D, texId);
const GLuint tId = window.frameBufferTexture(Window::TextureIndex::RightEye);
glBindTexture(GL_TEXTURE_2D, tId);
w.right.handle->SendTexture(
texId,
GL_TEXTURE_2D,
tId,
GLuint(GL_TEXTURE_2D),
window.framebufferResolution().x,
window.framebufferResolution().y
);
@@ -925,6 +926,9 @@ void setSgctDelegateFunctions() {
return currentWindow->swapGroupFrameNumber();
};
sgctDelegate.setScreenshotFolder = [](std::string path) {
Settings::instance().setCapturePath(std::move(path));
};
}
void checkCommandLineForSettings(int& argc, char** argv, bool& hasSGCT, bool& hasProfile,
@@ -1008,9 +1012,7 @@ std::string selectedSgctProfileFromLauncher(LauncherWindow& lw, bool hasCliSGCTC
return config;
}
int main(int argc, char** argv) {
glfwInit();
int main(int argc, char* argv[]) {
#ifdef WIN32
SetUnhandledExceptionFilter(generateMiniDump);
#endif // WIN32
@@ -1166,19 +1168,38 @@ int main(int argc, char** argv) {
sgctFunctionName
);
// (abock, 2020-12-07) For some reason on Apple the keyboard handler in CEF will call
// the Qt one even if the QApplication was destroyed, leading to invalid memory
// access. The only way we could fix this for the release was to keep the
// QApplication object around until the end of the program. Even though the Qt
// keyboard handler gets called, it doesn't do anything so everything still works.
#ifdef __APPLE__
int qac = 0;
QApplication app(qac, nullptr);
#endif // __APPLE__
bool skipLauncher =
(hasProfile && hasSGCTConfig) || global::configuration->bypassLauncher;
if (!skipLauncher) {
#ifndef __APPLE__
int qac = 0;
QApplication app(qac, nullptr);
LauncherWindow win(!hasProfile,
*global::configuration, !hasSGCTConfig, windowCfgPreset, nullptr);
#endif // __APPLE__
LauncherWindow win(
!hasProfile,
*global::configuration,
!hasSGCTConfig,
windowCfgPreset,
nullptr
);
win.show();
app.exec();
if (!win.wasLaunchSelected()) {
exit(EXIT_SUCCESS);
}
glfwInit();
global::configuration->profile = win.selectedProfile();
windowConfiguration = selectedSgctProfileFromLauncher(
@@ -1188,7 +1209,14 @@ int main(int argc, char** argv) {
labelFromCfgFile,
xmlExt
);
} else {
glfwInit();
}
if (global::configuration->profile.empty()) {
LFATAL("Cannot launch with an empty profile");
exit(EXIT_FAILURE);
}
// Prepend the outgoing sgctArguments with the program name
// as well as the configuration file that sgct is supposed to use
@@ -1197,7 +1225,7 @@ int main(int argc, char** argv) {
arguments.insert(arguments.begin() + 2, absPath(windowConfiguration));
// Need to set this before the creation of the sgct::Engine
Log::instance().setLogToConsole(false);
Log::instance().setShowTime(false);
Log::instance().setShowLogLevel(false);
+2 -2
View File
@@ -2,7 +2,7 @@
# #
# OpenSpace #
# #
# Copyright (c) 2014-2020 #
# Copyright (c) 2014-2021 #
# #
# 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 #
@@ -37,7 +37,7 @@ create_new_application(Sync MACOSX_BUNDLE
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
)
target_link_libraries(Sync PUBLIC openspace-core)
target_link_libraries(Sync PRIVATE openspace-core openspace-module-collection)
# Web Browser and Web gui
# Why not put these in the module's path? Because they do not have access to the
+1 -1
View File
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
+2 -2
View File
@@ -2,7 +2,7 @@
# #
# OpenSpace #
# #
# Copyright (c) 2014-2020 #
# Copyright (c) 2014-2021 #
# #
# 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 #
@@ -37,7 +37,7 @@ create_new_application(TaskRunner MACOSX_BUNDLE
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
)
target_link_libraries(TaskRunner PUBLIC openspace-core)
target_link_libraries(TaskRunner PRIVATE openspace-core openspace-module-collection)
# Web Browser and Web gui
# Why not put these in the module's path? Because they do not have access to the
+7 -4
View File
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
@@ -107,6 +107,7 @@ int main(int argc, char** argv) {
using namespace openspace;
ghoul::initialize();
global::create();
// Register the path of the executable,
// to make it possible to find other files in the same directory.
@@ -117,9 +118,9 @@ int main(int argc, char** argv) {
);
std::string configFile = configuration::findConfiguration();
global::configuration = configuration::loadConfigurationFromFile(configFile);
openspace::global::openSpaceEngine.registerPathTokens();
global::openSpaceEngine.initialize();
*global::configuration = configuration::loadConfigurationFromFile(configFile);
openspace::global::openSpaceEngine->registerPathTokens();
global::openSpaceEngine->initialize();
ghoul::cmdparser::CommandlineParser commandlineParser(
"OpenSpace TaskRunner",
@@ -157,5 +158,7 @@ int main(int argc, char** argv) {
std::cout << "TASK > ";
}
global::destroy();
ghoul::deinitialize();
return 0;
};
+2 -2
View File
@@ -2,7 +2,7 @@
# #
# OpenSpace #
# #
# Copyright (c) 2014-2020 #
# Copyright (c) 2014-2021 #
# #
# 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 #
@@ -38,7 +38,7 @@ create_new_application(
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
)
target_link_libraries(Wormhole PUBLIC openspace-core)
target_link_libraries(Wormhole PRIVATE openspace-core openspace-module-collection)
# Web Browser and Web gui
# Why not put these in the module's path? Because they do not have access to the
+1 -1
View File
@@ -2,7 +2,7 @@
* *
* OpenSpace *
* *
* Copyright (c) 2014-2020 *
* Copyright (c) 2014-2021 *
* *
* 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 *
+44 -4
View File
@@ -7,22 +7,62 @@ asset.require('./base_blank')
-- Specifying which other assets should be loaded in this scene
asset.require('scene/solarsystem/sun/sun')
asset.require('scene/solarsystem/sun/glare')
asset.require('scene/solarsystem/sun/habitablezone')
asset.require('scene/solarsystem/sun/default_layers')
asset.require('scene/solarsystem/planets/planets')
asset.require('scene/solarsystem/planets/default_layers')
asset.require('scene/solarsystem/planets/mars/moons/phobos')
asset.require('scene/solarsystem/planets/mars/moons/deimos')
asset.require('scene/solarsystem/dwarf_planets/pluto/system')
asset.require('scene/solarsystem/dwarf_planets/pluto/default_layers')
asset.require('scene/solarsystem/dwarf_planets/pluto/charon/default_layers')
asset.require('scene/milkyway/milkyway/volume')
asset.require('scene/milkyway/constellations/constellation_art')
asset.require('scene/milkyway/constellations/constellation_keybinds')
asset.require('scene/milkyway/objects/orionnebula/orionnebula')
asset.require('util/launcher_images')
-- For exoplanet system visualizations
asset.require('scene/milkyway/exoplanets/exoplanets_data')
asset.require('scene/milkyway/exoplanets/exoplanets_textures')
local assetHelper = asset.require('util/asset_helper')
assetHelper.requireAll(asset, 'scene/milkyway/exoplanets')
assetHelper.requireAll(asset, 'scene/digitaluniverse')
asset.require('scene/digitaluniverse/2dF')
asset.require('scene/digitaluniverse/2mass')
asset.require('scene/digitaluniverse/6dF')
asset.require('scene/digitaluniverse/abell')
asset.require('scene/digitaluniverse/alternatestarlabels')
asset.require('scene/digitaluniverse/backgroundradiation')
-- asset.require('scene/digitaluniverse/backgroundradiation_multiverse')
asset.require('scene/digitaluniverse/clusters')
asset.require('scene/digitaluniverse/constellationbounds')
asset.require('scene/digitaluniverse/constellations')
asset.require('scene/digitaluniverse/deepsky')
asset.require('scene/digitaluniverse/dwarfs')
asset.require('scene/digitaluniverse/exoplanets')
asset.require('scene/digitaluniverse/globularclusters')
asset.require('scene/digitaluniverse/grids')
asset.require('scene/digitaluniverse/groups')
asset.require('scene/digitaluniverse/h2regions')
asset.require('scene/digitaluniverse/kepler')
asset.require('scene/digitaluniverse/localdwarfs')
asset.require('scene/digitaluniverse/milkyway')
asset.require('scene/digitaluniverse/milkyway_arm_labels')
asset.require('scene/digitaluniverse/milkyway_data')
asset.require('scene/digitaluniverse/milkyway_label')
asset.require('scene/digitaluniverse/milkyway_sphere')
asset.require('scene/digitaluniverse/obassociations')
asset.require('scene/digitaluniverse/openclusters')
asset.require('scene/digitaluniverse/planetarynebulae')
asset.require('scene/digitaluniverse/pulsars')
asset.require('scene/digitaluniverse/quasars')
asset.require('scene/digitaluniverse/sdss')
asset.require('scene/digitaluniverse/starlabels')
asset.require('scene/digitaluniverse/starorbits')
asset.require('scene/digitaluniverse/stars')
asset.require('scene/digitaluniverse/superclusters')
asset.require('scene/digitaluniverse/supernovaremnants')
asset.require('scene/digitaluniverse/tully')
asset.require('scene/digitaluniverse/voids')
asset.require('customization/globebrowsing')
+27 -6
View File
@@ -1,10 +1,13 @@
-- Add require statements for assets exporting the neccessary globes
-- here we add Mars, Moon and Mercury:
asset.require('../scene/solarsystem/planets/mars/mars')
asset.require('../scene/solarsystem/planets/earth/moon/moon')
asset.require('../scene/solarsystem/planets/mercury/mercury')
----------------------------------------
-- Configuration options for this asset
local CreateFocusNodes = false
local AddMarsLayers = true
local AddMoonLayers = true
local AddMercuryLayers = true
----------------------------------------
-- If you add layers for different planets than listed here, be sure to add an
-- asset.require(...) statement in here similar to the ones that are used below
-- Add folders to this list that contain .info files describing patches
-- OBS: Even on Windows, you have to use forward slashes (/) or double backslashes (\\)
@@ -51,6 +54,24 @@ local vrt_folders = {
}
}
-- Add require statements for assets exporting the neccessary globes
-- here we add Mars, Moon and Mercury:
if AddMarsLayers then
asset.require('../scene/solarsystem/planets/mars/mars')
else
vrt_folders['Mars'] = nil
end
if AddMoonLayers then
asset.require('../scene/solarsystem/planets/earth/moon/moon')
else
vrt_folders['Moon'] = nil
end
if AddMercuryLayers then
asset.require('../scene/solarsystem/planets/mercury/mercury')
else
vrt_folders['Mercury'] = nil
end
asset.onInitialize(function ()
-- Add local patches described at the top of this file
for obj, list in pairs(vrt_folders) do
+25
View File
@@ -0,0 +1,25 @@
local assetHelper = asset.require('util/asset_helper')
local color = {0.0, 1.0, 1.0}
-- @TODO (emmbr 2020-02-03) Potential threading issue later on? This will run on the main thread
local singeColorTexturePath = openspace.createSingeColorImage("example_ring_color", color)
local BasicDisc = {
Identifier = "BasicDisc",
Parent = "Root",
Renderable = {
Type = "RenderableDisc",
Texture = singeColorTexturePath,
Size = 1e10,
Width = 0.5
},
GUI = {
Name = "Basic Disc",
Path = "/Examples/Discs"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
BasicDisc
})
+54 -9
View File
@@ -1,6 +1,6 @@
local assetHelper = asset.require('util/asset_helper')
local scale = 3E11
local scale = 149597870700 -- 1 AU
local radialGrid = {
Identifier = "ExampleRadialGrid",
@@ -14,9 +14,10 @@ local radialGrid = {
Renderable = {
Type = "RenderableRadialGrid",
Opacity = 0.8,
GridColor = {0.6, 1.0, 0.7},
Color = { 0.6, 1.0, 0.7 },
LineWidth = 3.0,
GridSegments = {3, 4},
GridSegments = { 3, 4 },
OuterSize = 1.0,
InnerRadius = 0.2,
Enabled = false
},
@@ -36,10 +37,10 @@ local planarGrid = {
},
Renderable = {
Type = "RenderableGrid",
GridColor = {0.0, 1.0, 0.8},
Color = { 0.0, 1.0, 0.8 },
LineWidth = 2.0,
Segments = {5, 10},
Size = {1, 2},
Segments = { 5, 10 },
Size = { 1, 2 },
Enabled = false
},
GUI = {
@@ -48,7 +49,51 @@ local planarGrid = {
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
radialGrid,
planarGrid
local sphericalGrid = {
Identifier = "ExampleSphericalGrid",
Transform = {
Scale = {
Type = "StaticScale",
Scale = scale
}
},
Renderable = {
Type = "RenderableSphericalGrid",
Color = { 1.0, 0.5, 0.2 },
LineWidth = 2.0,
Segments = 40,
Enabled = false
},
GUI = {
Name = "Example Spherical Grid",
Path = "/Examples/Grids"
}
}
local boxGrid = {
Identifier = "ExampleBoxGrid",
Transform = {
Scale = {
Type = "StaticScale",
Scale = scale
}
},
Renderable = {
Type = "RenderableBoxGrid",
Color = { 0.5, 0.0, 1.0 },
LineWidth = 2.0,
Size = { 2, 2, 2 },
Enabled = false
},
GUI = {
Name = "Example Box Grid",
Path = "/Examples/Grids"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
radialGrid,
planarGrid,
sphericalGrid,
boxGrid
})
+1 -1
View File
@@ -30,7 +30,7 @@ local object = {
ColorRange = { { 0.0, 0.075 }, { 1.0, 10.0 } },
Unit = "Mpc",
ScaleFactor = 534.0,
BillboardMaxSize = 7.0,
BillboardMaxSize = 9.0,
EnablePixelSizeControl = true,
},
GUI = {
@@ -1,13 +1,5 @@
local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Background Radiation Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_backgroundradiation_textures",
Version = 2
})
local textures = asset.require('./backgroundradiation_textures').textures
local speck = asset.syncedResource({
Name = "Background Radiation Speck Files",
@@ -94,126 +86,6 @@ local planck = {
}
}
local multiverse_planck_1 = {
Identifier = "PlanckMultiverse1",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 0.0, 2000E23}
},
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck Multiverse 1",
Path = "/Universe/Cosmic Microwave Background"
}
}
local multiverse_planck_2 = {
Identifier = "PlanckMultiverse2",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 2500E23, 0.0, 2000E23}
},
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck Multiverse 2",
Path = "/Universe/Cosmic Microwave Background"
}
}
local multiverse_planck_3 = {
Identifier = "PlanckMultiverse3",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 2500E23, 5000E23, 2000E23}
},
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck Multiverse 3",
Path = "/Universe/Cosmic Microwave Background"
}
}
local multiverse_planck_4 = {
Identifier = "PlanckMultiverse4",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 10000E23, 0.0 }
},
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck Multiverse 4",
Path = "/Universe/Cosmic Microwave Background"
}
}
local Halpha = {
Identifier = "HAlpha",
@@ -244,8 +116,7 @@ local Halpha = {
assetHelper.registerSceneGraphNodesAndExport(asset, {
wmap, cbe, planck, multiverse_planck_1, multiverse_planck_2, multiverse_planck_3,
multiverse_planck_4, Halpha
wmap, cbe, planck, Halpha
})
@@ -254,12 +125,11 @@ asset.meta = {
Version = "2.0",
Description = [[Various AllSky images for the Milky Way and observable Universe.
Included: Wilkinson Microwave Anisotropy Probe (WMAP), Cosmic Background Explorer,
Planck, Planck Multiverse 1-4, and H Alpha <br><br> Data Reference: Planck/ESA and
the Planck Collaboration, Wilkinson Microwave Anisotropy Probe/NASA, Doug
Planck, and H Alpha <br><br> Data Reference: Planck/ESA and the Planck
Collaboration, Wilkinson Microwave Anisotropy Probe/NASA, Doug
Finkbeiner (Princeton)]],
Author = "Brian Abbott (AMNH), OpenSpace Team",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"WMAP", "CBE", "Planck", "PlanckMultiverse1", "PlanckMultiverse2",
"PlanckMultiverse3", "PlanckMultiverse4", "HAlpha"}
Identifiers = {"WMAP", "CBE", "Planck", "HAlpha"}
}
@@ -0,0 +1,141 @@
local assetHelper = asset.require('util/asset_helper')
local textures = asset.require('./backgroundradiation_textures').textures
local multiverse_planck_1 = {
Identifier = "PlanckMultiverse1",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 0.0, 2000E23}
},
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck Multiverse 1",
Path = "/Universe/Cosmic Microwave Background"
}
}
local multiverse_planck_2 = {
Identifier = "PlanckMultiverse2",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 2500E23, 0.0, 2000E23}
},
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck Multiverse 2",
Path = "/Universe/Cosmic Microwave Background"
}
}
local multiverse_planck_3 = {
Identifier = "PlanckMultiverse3",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 2500E23, 5000E23, 2000E23}
},
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck Multiverse 3",
Path = "/Universe/Cosmic Microwave Background"
}
}
local multiverse_planck_4 = {
Identifier = "PlanckMultiverse4",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 10000E23, 0.0 }
},
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck Multiverse 4",
Path = "/Universe/Cosmic Microwave Background"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
multiverse_planck_1, multiverse_planck_2, multiverse_planck_3, multiverse_planck_4
})
asset.meta = {
Name = "Multiverse Background Radiation",
Version = "2.0",
Description = [[ Non-physical representation of the location of hypothetical
cosmic microwave background radiation images how they would be observed from other
locations in the universe. <br> This is not a measured dataset!]],
Author = "Brian Abbott (AMNH), OpenSpace Team",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = { "PlanckMultiverse1", "PlanckMultiverse2",
"PlanckMultiverse3", "PlanckMultiverse4" }
}
@@ -0,0 +1,8 @@
local textures = asset.syncedResource({
Name = "Background Radiation Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_backgroundradiation_textures",
Version = 2
})
asset.export('textures', textures)
@@ -33,7 +33,7 @@ local deepSkyPoints = {
TextColor = { 0.1, 0.4, 0.6 },
TextSize = 20.50,
TextMinSize = 16.0,
Unit = "Mpc",
Unit = "pc",
-- Fade in value in the same unit as "Unit"
--FadeInDistances = { 0.05, 1.0 },
-- Max size in pixels
@@ -68,7 +68,7 @@ local deepSkyImages = {
TexturePath = textures,
Luminosity = "radius",
ScaleLuminosity = 0.001,
Unit = "Mpc",
Unit = "pc",
-- Fade in value in the same unit as "Unit"
--FadeInDistances = {0.001, 0.05010},
PlaneMinSize = 5.0
@@ -0,0 +1,37 @@
asset.require('./2dF')
asset.require('./2mass')
asset.require('./6dF')
asset.require('./abell')
asset.require('./alternatestarlabels')
asset.require('./backgroundradiation')
asset.require('./backgroundradiation_multiverse')
asset.require('./clusters')
asset.require('./constellationbounds')
asset.require('./constellations')
asset.require('./deepsky')
asset.require('./dwarfs')
asset.require('./exoplanets')
asset.require('./globularclusters')
asset.require('./grids')
asset.require('./groups')
asset.require('./h2regions')
asset.require('./kepler')
asset.require('./localdwarfs')
asset.require('./milkyway')
asset.require('./milkyway_arm_labels')
asset.require('./milkyway_data')
asset.require('./milkyway_label')
asset.require('./milkyway_sphere')
asset.require('./obassociations')
asset.require('./openclusters')
asset.require('./planetarynebulae')
asset.require('./pulsars')
asset.require('./quasars')
asset.require('./sdss')
asset.require('./starlabels')
asset.require('./starorbits')
asset.require('./stars')
asset.require('./superclusters')
asset.require('./supernovaremnants')
asset.require('./tully')
asset.require('./voids')
@@ -32,10 +32,10 @@ local object = {
TextColor = { 0.5, 0.1, 0.2 },
TextSize = 14.6,
TextMinSize = 10.0,
ScaleFactor = 370,
ScaleFactor = 372.1,
--CorrectionSizeEndDistance = 16.1,
--CorrectionSizeFactor = 7.75,
BillboardMaxSize = 18.0,
BillboardMaxSize = 20.0,
EnablePixelSizeControl = true,
Unit = "pc"
},
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
Name = "Exoplanets Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_exoplanets_speck",
Version = 1
Version = 2
})
local object = {
@@ -27,7 +27,7 @@ local object = {
Texture = textures .. "/target-blue.png",
File = speck .. "/expl.speck",
LabelFile = speck .. "/expl.label",
ScaleFactor = 392.5,
ScaleFactor = 388.67923,
TextColor = { 0.3, 0.3, 0.8 },
TextSize = 14.8,
TextMaxSize = 200.0,
@@ -35,7 +35,7 @@ local object = {
CorrectionSizeEndDistance = 15.23,
CorrectionSizeFactor = 13.3,
Unit = "pc",
BillboardMaxSize = 52.0,
BillboardMaxSize = 75.0,
EnablePixelSizeControl = true,
},
GUI = {
@@ -40,7 +40,7 @@ local radio = {
Type = "RenderableSphericalGrid",
Enabled = false,
Opacity = 1.0,
GridColor = { 0.3, 0.84, 1.0 },
Color = { 0.3, 0.84, 1.0 },
LineWidth = 2.0
},
GUI = {
@@ -66,7 +66,7 @@ local oort = {
Type = "RenderableSphericalGrid",
Enabled = false,
Opacity = 0.8,
GridColor = { 0.8, 0.4, 0.4 },
Color = { 0.8, 0.4, 0.4 },
LineWidth = 2.0
},
GUI = {
@@ -92,7 +92,7 @@ local ecliptic = {
Type = "RenderableSphericalGrid",
Enabled = false,
Opacity = 1.0,
GridColor = { 0.74, 0.26, 0.26 },
Color = { 0.74, 0.26, 0.26 },
LineWidth = 2.0
},
GUI = {
@@ -146,7 +146,7 @@ local equatorial = {
Type = "RenderableSphericalGrid",
Enabled = false,
Opacity = 0.8,
GridColor = { 0.69, 0.68, 0.29 },
Color = { 0.69, 0.68, 0.29 },
LineWidth = 2.0
},
GUI = {
@@ -197,7 +197,7 @@ local galactic = {
Enabled = false,
LineWidth = 2.0,
Opacity = 1.0,
GridColor = { 0.0, 0.6, 0.6 }
Color = { 0.0, 0.6, 0.6 }
},
GUI = {
Name = "Galactic Sphere",
@@ -550,6 +550,6 @@ asset.meta = {
License = "AMNH Digital Universe",
Identifiers = {"RadioSphere", "OortSphere", "EclipticSphere", "EclipticSphereLabels",
"Equatorial", "EquatorialSphereLabels", "GalacticSphere", "GalacticSphereLabels",
"1ldGrid", "1lmGrid", "1lyGrid", "10lyGrid", "100lyGrid", "1klyGrid" "10klyGrid",
"1ldGrid", "1lmGrid", "1lyGrid", "10lyGrid", "100lyGrid", "1klyGrid", "10klyGrid",
"100klyGrid", "1MlyGrid", "10MlyGrid", "100MlyGrid", "20GlyGrid"}
}
@@ -29,7 +29,7 @@ local object = {
CorrectionSizeEndDistance = 15.86,
CorrectionSizeFactor = 8.59,
Unit = "pc",
BillboardMaxSize = 23.0,
BillboardMaxSize = 30.0,
EnablePixelSizeControl = true
},
GUI = {
@@ -66,7 +66,8 @@ local sunstar = {
MagnitudeExponent = 6.2,
SizeComposition = "Distance Modulus",
RenderMethod = "Texture Based", -- or PSF
FadeInDistances = { 0.0001, 0.1 }
FadeInDistances = { 0.0001, 0.1 },
RenderableType = "PostDeferredTransparent"
},
GUI = {
Name = "Sun",
@@ -23,7 +23,7 @@ local tullyPoints = {
Enabled = true,
Color = { 1.0, 0.4, 0.2 },
Opacity = 0.99,
ScaleFactor = 500.0,
ScaleFactor = 504.0,
File = speck .. "/tully.speck",
Texture = textures .. "/point3A.png",
--ColorMap = speck .. "/tully.cmap",
@@ -46,7 +46,7 @@ local tullyPoints = {
-- Fade in value in the same unit as "Unit"
FadeInDistances = { 0.001, 1.0 },
-- Max size in pixels
BillboardMaxSize = 5,
BillboardMaxSize = 7,
BillboardMinSize = 0,
--CorrectionSizeEndDistance = 22.0,
--CorrectionSizeFactor = 10.45
@@ -2,6 +2,17 @@ local DataPath = asset.syncedResource({
Name = "Exoplanet Data Files",
Type = "HttpSynchronization",
Identifier = "exoplanets_data",
Version = 1
Version = 2
})
asset.export("DataPath", DataPath)
asset.meta = {
Name = "Exoplanet Data",
Version = "2.0",
Description = [[ The data that is used for the exoplanet systems. The data has been
derived from the 'Planetary Systems Composite Data' dataset from the NASA Exoplanet
Archive]],
Author = "OpenSpace Team",
URL = "https://exoplanetarchive.ipac.caltech.edu/docs/data.html",
License = "MIT license",
}
@@ -1,7 +1,19 @@
asset.require('./../habitable_zones/habitable_zone_textures')
local TexturesPath = asset.syncedResource({
Name = "Exoplanet Textures",
Type = "HttpSynchronization",
Identifier = "exoplanets_textures",
Version = 1
Version = 2
})
asset.export("TexturesPath", TexturesPath)
asset.meta = {
Name = "Exoplanet Textures",
Version = "2.0",
Description = [[ Adds all textures that are required for the exoplanet system
visualizations]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
}
@@ -0,0 +1,17 @@
local TexturesPath = asset.syncedResource({
Name = "Habitable Zone Textures",
Type = "HttpSynchronization",
Identifier = "habitable_zone_textures",
Version = 1
})
asset.export("TexturesPath", TexturesPath)
asset.meta = {
Name = "Habitable Zone Textures",
Version = "1.0",
Description = [[ Default textures that can be used for the habitable zone
rendering]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
}
@@ -16,25 +16,16 @@ local OrionClusterStars = {
Type = "RenderableStars",
File = sync .. "/oricluster.speck",
Texture = sync .. "/halo.png",
Texture = sync .. "/colorbv.cmap",
ColorMap = sync .. "/colorbv.cmap",
MagnitudeExponent = 5.02,
SizeComposition = "Distance Modulus",
RenderMethod = "Texture Based"
},
GUI = {
Name = "Orion Nebula Star Cluster",
Path = "/Milky Way/Stars"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { OrionClusterStars })
asset.meta = {
Name = "Orion Nebula Star Cluster",
Version = "1.0",
Description = [[ In order to have an accurate depiction of the Orion nebula, we need
to include the star cluster that was birthed from it. We turned to a study of the
Path = "/Milky Way/Orion",
Description = [[ In order to have an accurate depiction of the Orion nebula, we
need to include the star cluster that was birthed from it. We turned to a study of the
cluster's stellar population by Lynne Hillenbrand, who was working at the University of
California, Berkeley at the time. The catalog from her paper contains more than 1500
stars, about half the stars in the actual cluster. The cluster is very crowded, with a
@@ -45,7 +36,18 @@ Knowing the size of the cluster and approximating the shape to be roughly spheri
placed each star along a line of sight through this imaginary sphere centered on the
cluster. In this sense, these data are observed data and the view from Earth is accurate.
But the distance of each star has been derived from this educated-guess approach for the
cluster distribution. ]],
cluster distribution. ]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { OrionClusterStars })
asset.meta = {
Name = "Orion Nebula Star Cluster",
Version = "1.0",
Description = [[ Digital Universe asset for the Orion star cluster. To be used in
conjunction with nebula model. Use orionnebula.asset to include both.]],
Author = "AMNH Digital Universe",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
@@ -31,7 +31,20 @@ local NebulaHolder = {
},
GUI = {
Name = "Orion Nebula",
Path = "/Milky Way/Objects",
Path = "/Milky Way/Orion",
Description = [[ In the Digital Universe model of the Orion Nebula, we depict the
ionization front effectively as a terrain, with a flat Hubble image of the nebula mapped
on the undulating surface. In reality, the ionization front has a slight thickness to
it - about a third of a light year - but is quite thin compared to the overall size of
the nebula, which stretches about ten light years from side to side.<br><br>Close into
the center, we see small teardrop-shaped structures with their narrow ends pointing away
from the bright star: these are protoplanetary disks, or proplyds, of dense gas and dust
surrounding young stars. The larger formations that one sees farther away from the center
of the nebula take on a cup-like shape, with the narrow end pointing away from the
nebulas center. These enormous structures are bow shocks that delineate the region where
highspeed winds from the central star slow from supersonic to subsonic speeds. You can
think of an HII region as a sort of tremendous explosion, taking place over millennia,
and the bow shocks are part of the outward rush of material. ]]
}
}
@@ -54,15 +67,17 @@ local OrionNebulaModel = {
Opacity = 1.0,
DisableFaceCulling = false,
SpecularIntensity = 0.0,
AmbientIntensity = 0.45,
DiffuseIntensity = 0.0,
AmbientIntensity = 0.0,
DiffuseIntensity = 1.0,
--PerformShading = false,
RotationVector = { 0.000000, 22.300000, 0.000000 },
LightSources = LIGHTS;
},
GUI = {
Name = "Orion Nebula Model",
Path = "/Milky Way/Objects",
Hidden = true
Path = "/Milky Way/Orion",
Hidden = true,
Description = "Orion Nebula 3D model. See Orion Nebula for description."
}
}
@@ -85,15 +100,17 @@ local OrionNebulaShocksModel = {
Opacity = 1.0,
DisableFaceCulling = false,
SpecularIntensity = 0.0,
AmbientIntensity = 0.19,
DiffuseIntensity = 0.4,
AmbientIntensity = 0.0,
DiffuseIntensity = 1.0,
--PerformShading = false,
RotationVector = { 0.000000, 22.300000, 0.000000 },
LightSources = LIGHTS;
},
GUI = {
Name = "Orion Nebula Shocks",
Path = "/Milky Way/Objects",
Hidden = false
Path = "/Milky Way/Orion",
Hidden = false,
Description = "Orion Nebula Shocks 3D model. See Orion Nebula for description."
}
}
@@ -116,15 +133,17 @@ local OrionNebulaProplydsModel = {
Opacity = 1.0,
DisableFaceCulling = false,
SpecularIntensity = 0.0,
AmbientIntensity = 1.0,
AmbientIntensity = 0.0,
DiffuseIntensity = 1.0,
--PerformShading = false,
RotationVector = { 0.000000, 22.300000, 0.000000 },
LightSources = LIGHTS;
},
GUI = {
Name = "Orion Nebula Proplyds",
Path = "/Milky Way/Objects",
Hidden = false
Path = "/Milky Way/Orion",
Hidden = false,
Description = "Orion Nebula Proplyds 3D model. See Orion Nebula for description."
}
}
@@ -139,22 +158,12 @@ assetHelper.registerSceneGraphNodesAndExport(asset, {
asset.meta = {
Name = "Orion Nebula Model",
Version = "1.0",
Description = [[ In the Digital Universe model of the Orion Nebula, we depict the
ionization front effectively as a terrain, with a flat Hubble image of the nebula mapped
on the undulating surface. In reality, the ionization front has a slight thickness to
it - about a third of a light year - but is quite thin compared to the overall size of
the nebula, which stretches about ten light years from side to side.<br><br>Close into
the center, we see small teardrop-shaped structures with their narrow ends pointing away
from the bright star: these are protoplanetary disks, or proplyds, of dense gas and dust
surrounding young stars. The larger formations that one sees farther away from the center
of the nebula take on a cup-like shape, with the narrow end pointing away from the
nebulas center. These enormous structures are bow shocks that delineate the region where
highspeed winds from the central star slow from supersonic to subsonic speeds. You can
think of an HII region as a sort of tremendous explosion, taking place over millennia,
and the bow shocks are part of the outward rush of material. ]],
Description = [[ Digital Universe asset for the Orion nebula 3D model. This asset
contains seperate models for the nebula, proplyds and shocks. To be used in
conjunction with orion star cluster. Use orionnebula.asset to include both.]],
Author = "AMNH Digital Universe",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"OrionNebulaModel", "OrionNebulaModel", "OrionNebulaProplydsModel",
Identifiers = {"OrionNebulaHolder", "OrionNebulaModel", "OrionNebulaProplydsModel",
"OrionNebulaShocksModel"}
}
@@ -18,8 +18,9 @@ local NebulaPosition = {
},
GUI = {
Name = "Orion Nebula Position",
Path = "/Milky Way/Objects",
Hidden = true
Path = "/Milky Way/Orion",
Hidden = true,
Description = "Static position for Orion Nebula"
}
}
@@ -31,16 +31,17 @@ local Charon = {
Enable = false,
FileName = labelsPath .. "/charon.labels",
LabelAlignmentOption = "Horizontally", -- or Circularly
LabelsFontSize = 14.0,
LabelsFontSize = 40.0,
LabelsSize = 8.0,
LabelsMinSize = 1.0,
LabelsMaxSize = 1500.0,
ProximityEnabled = false,
LabelsFadeInEnabled = true,
FadeInStartingDistance = 500000.0,
FadeOutStartingDistance = 1000000.0,
LabelsFadeOutEnabled = true,
FadeInStartingDistance = 2000000.0,
FadeOutStartingDistance = 800000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsDistanceEPS = 250000.0,
LabelsColor = { 1.0, 1.0, 0.0 }
}
},
@@ -31,16 +31,17 @@ local Pluto = {
Enable = false,
FileName = labelsPath .. "/pluto.labels",
LabelAlignmentOption = "Horizontally", -- or Circularly
LabelsFontSize = 14.0,
LabelsFontSize = 28.0,
LabelsSize = 8.0,
LabelsMinSize = 1.0,
LabelsMaxSize = 1500.0,
ProximityEnabled = false,
LabelsFadeInEnabled = true,
FadeInStartingDistance = 500000.0,
FadeOutStartingDistance = 1000000.0,
LabelsFadeOutEnabled = true,
FadeInStartingDistance = 4000000.0,
FadeOutStartingDistance = 650000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsDistanceEPS = 500000.0,
LabelsColor = { 1.0, 1.0, 0.0 }
}
},
@@ -15,7 +15,7 @@ local kernelsList = {kernelsFolder .. '/p10-a.bsp'}
local Pioneer10NAIF = "-23"
local Pioneer10 = {
Identifier = "Pioneer10",
Identifier = "Pioneer_10",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Transform = {
Translation = {
@@ -27,13 +27,15 @@ local Pioneer10 = {
},
Renderable = model.PioneerModel,
GUI = {
Name = "Pioneer 10",
Path = "/Solar System/Missions/Pioneer/10"
Name = "Pioneer 10 Spacecraft",
Path = "/Solar System/Missions/Pioneer",
Description = [[Pioneer 10 Spacecraft. Positioned by SPICE data.]]
}
}
local Pioneer10Trail = {
Identifier = "Pioneer10Trail",
Identifier = "Pioneer_10Trail",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
@@ -51,8 +53,10 @@ local Pioneer10Trail = {
-- 6545 is the number of days between the Start and End time (aka sample every 2d)
},
GUI = {
Name = "Pioneer 10 Trail",
Path = "/Solar System/Missions/Pioneer/10"
Name = "Pioneer 10 Trail (SPICE)",
Path = "/Solar System/Missions/Pioneer",
Description = [[Pioneer 10 Trail, spanning March 3rd, 1972 to January 2nd, 1990.
Data from SPICE]]
}
}
@@ -60,3 +64,15 @@ assetHelper.registerSceneGraphNodesAndExport(asset, {
Pioneer10,
Pioneer10Trail,
})
asset.meta = {
Name = "Pioneer 10",
Version = "1.0",
Description = [[ Pioneer 10 Model and Trail. Driven by SPICE data for high accuracy
from March 3rd, 1972 to January 2nd, 1990.]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = {"Pioneer_10", "Pioneer_10Trail"}
}
@@ -30,13 +30,14 @@ local Pioneer11 = {
},
Renderable = model.PioneerModel,
GUI = {
Name = "Pioneer 11",
Path = "/Solar System/Missions/Pioneer/11"
Name = "Pioneer 11 Spacecraft",
Path = "/Solar System/Missions/Pioneer",
Description = [[Pioneer 11 Spacecraft. Positioned by SPICE data.]]
}
}
local Pioneer11Trail = {
Identifier = "Pioneer11Trail",
Identifier = "Pioneer_11Trail",
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableTrailTrajectory",
@@ -54,8 +55,10 @@ local Pioneer11Trail = {
--6087 is the number of days between the Start and End time (so sample every 2d)
},
GUI = {
Name = "Pioneer 11 Trail",
Path = "/Solar System/Missions/Pioneer/11"
Name = "Pioneer 11 Trail (SPICE)",
Path = "/Solar System/Missions/Pioneer",
Description = [[Pioneer 11 Trail, spanning April 6th, 1973 to January 2nd, 1990.
Data from SPICE.]]
}
}
@@ -63,3 +66,15 @@ assetHelper.registerSceneGraphNodesAndExport(asset, {
Pioneer11,
Pioneer11Trail,
})
asset.meta = {
Name = "Pioneer 11",
Version = "1.0",
Description = [[ Pioneer 11 Model and Trail. Driven by SPICE data for high accuracy
from April 6th, 1973 to January 2nd, 1990.]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = {"Pioneer_11", "Pioneer_11Trail"}
}
@@ -1,5 +1,5 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local modelFolder = asset.syncedResource({
Name = "Pioneer 10/11 Models",
@@ -21,3 +21,13 @@ local ModelRenderable = {
}
asset.export("PioneerModel", ModelRenderable)
asset.meta = {
Name = "Pioneer Model",
Version = "1.0",
Description = [[ Pioneer model asset. Used by both pioneer 10 and pioneer 11 asset.
Untextured version of model from NASA 3D resources.]],
Author = "NASA",
URL = "https://nasa3d.arc.nasa.gov/detail/eoss-pioneer",
License = "NASA"
}
@@ -20,8 +20,10 @@ local voyager1 = {
TimeStampSubsampleFactor = 1
},
GUI = {
Name = "Voyager 1",
Path = "/Solar System/Missions"
Name = "Voyager 1 Trail",
Path = "/Solar System/Missions/Voyager",
Description = [[Voyager 1 Trail, spanning September 6th, 1977 to December 31st,
2030. Data from JPL Horizons.]]
}
}
@@ -43,8 +45,10 @@ local voyager2 = {
TimeStampSubsampleFactor = 1
},
GUI = {
Name = "Voyager 2",
Path = "/Solar System/Missions"
Name = "Voyager 2 Trail",
Path = "/Solar System/Missions/Voyager",
Description = [[Voyager 2 Trail, spanning August 21st, 1977 to December 31st, 2030.
Data from JPL Horizons.]]
}
}
@@ -66,8 +70,10 @@ local pioneer10 = {
TimeStampSubsampleFactor = 1
},
GUI = {
Name = "Pioneer 10",
Path = "/Solar System/Missions"
Name = "Pioneer 10 Trail",
Path = "/Solar System/Missions/Pioneer",
Description = [[Pioneer 10 Trail, spanning March 4th, 1972 to December 31st, 2030.
Data from JPL Horizons.]]
}
}
@@ -89,9 +95,24 @@ local pioneer11 ={
TimeStampSubsampleFactor = 1
},
GUI = {
Name = "Pioneer 11",
Path = "/Solar System/Missions"
Name = "Pioneer 11 Trail",
Path = "/Solar System/Missions/Pioneer",
Description = [[Pioneer 11 Trail, spanning April 7th, 1973 to December 31st, 2030.
Data from JPL Horizons.]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { voyager1, voyager2, pioneer10, pioneer11 })
asset.meta = {
Name = "Pioneer and Voyager Trails",
Version = "1.0",
Description = [[ Pioneer 10, Pioneer 11, Voyager 1 and Voyager 2 trails. Driven by JPL
Horizons data for better performance then spice but lower resolution. Data is from
shortly after mission launches until December 31st, 2030.]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = {"Pioneer10", "Pioneer11", "Voyager1", "Voyager2"}
}
@@ -8,6 +8,8 @@ asset.require('./jupiter/ganymede/default_layers')
asset.require('./jupiter/io/default_layers')
asset.require('./mars/default_layers')
asset.require('./mars/moons/layers/colorlayers/deimos_viking')
asset.require('./mars/moons/layers/colorlayers/phobos_viking')
asset.require('./mercury/default_layers')
@@ -6,110 +6,98 @@ local assetHelper = asset.require('util/asset_helper')
-- local earthEllipsoid = { 6378137.0, 6378137.0, 6356752.314245 }
local earthEllipsoid = { 6378137.0, 6378137.0, 6378137.0 }
local Atmosphere = {
Identifier = "EarthAtmosphere",
Parent = transforms.Earth.Identifier,
Renderable = {
Type = "RenderableAtmosphere",
Atmosphere = {
-- Atmosphere radius in Km
AtmosphereRadius = 6447.0,
PlanetRadius = 6377.0,
PlanetAverageGroundReflectance = 0.1,
GroundRadianceEmittion = 0.6,
SunIntensity = 6.9,
Rayleigh = {
Coefficients = {
-- Wavelengths are given in 10^-9m
Wavelengths = { 680, 550, 440 },
-- Reflection coefficients are given in km^-1
Scattering = { 5.8E-3, 13.5E-3, 33.1E-3 },
-- In Rayleigh scattering, the coefficients of absorption and scattering are the same.
},
-- Thichkness of atmosphere if its density were uniform, in Km
H_R = 8.0
},
--[[
Ozone = {
Coefficients = {
-- Extinction coefficients
Extinction = {3.426, 8.298, 0.356}
},
H_O = 8.0,
},
]]
-- Default
Mie = {
Coefficients = {
-- Reflection coefficients are given in km^-1
Scattering = { 4.0e-3, 4.0e-3, 4.0e-3 },
-- Extinction coefficients are a fraction of the Mie coefficients
Extinction = { 4.0e-3/0.9, 4.0e-3/0.9, 4.0e-3/0.9 }
},
-- Height scale (atmosphere thickness for constant density) in Km
H_M = 1.2,
-- Mie Phase Function Value (G e [-1.0, 1.0]. If G = 1.0, Mie phase function = Rayleigh Phase Function)
G = 0.85
},
-- Clear Sky
-- Mie = {
-- Coefficients = {
-- Scattering = {20e-3, 20e-3, 20e-3},
-- Extinction = 1.0/0.9,
-- }
-- H_M = 1.2,
-- G = 0.76,
-- },
-- Cloudy
-- Mie = {
-- Coefficients = {
-- Scattering = {3e-3, 3e-3, 3e-3},
-- Extinction = 1.0/0.9,
-- }
-- H_M = 3.0,
-- G = 0.65,
-- },
Image = {
ToneMapping = jToneMapping,
Exposure = 0.4,
Background = 1.8,
Gamma = 1.85
},
Debug = {
PreCalculatedTextureScale = 1.0,
SaveCalculatedTextures = false
}
Identifier = "EarthAtmosphere",
Parent = transforms.Earth.Identifier,
Renderable = {
Type = "RenderableAtmosphere",
-- Atmosphere radius in Km
AtmosphereHeight = 6447.0 - 6377.0,
PlanetRadius = 6377.0,
PlanetAverageGroundReflectance = 0.1,
GroundRadianceEmission = 0.6,
SunIntensity = 6.9,
Rayleigh = {
Coefficients = {
-- Wavelengths are given in 10^-9m
Wavelengths = { 680, 550, 440 },
-- Reflection coefficients are given in km^-1
Scattering = { 5.8E-3, 13.5E-3, 33.1E-3 },
-- In Rayleigh scattering, the coefficients of absorption and scattering are the same.
},
ShadowGroup = {
Source1 = {
Name = "Sun",
-- All radius in meters
Radius = 696.3E6
},
--Source2 = { Name = "Monolith", Radius = 0.01E6, },
Caster1 = {
Name = "Moon",
-- All radius in meters
Radius = 1.737E6
}
--Caster2 = { Name = "Independency Day Ship", Radius = 0.0, }
}
-- Thichkness of atmosphere if its density were uniform, in Km
H_R = 8.0
},
--[[
Ozone = {
Coefficients = {
-- Extinction coefficients
Extinction = {3.426, 8.298, 0.356}
},
H_O = 8.0,
},
]]
-- Default
Mie = {
Coefficients = {
-- Reflection coefficients are given in km^-1
Scattering = { 4.0e-3, 4.0e-3, 4.0e-3 },
-- Extinction coefficients are a fraction of the Mie coefficients
Extinction = { 4.0e-3/0.9, 4.0e-3/0.9, 4.0e-3/0.9 }
},
-- Height scale (atmosphere thickness for constant density) in Km
H_M = 1.2,
-- Mie Phase Function Value (G e [-1.0, 1.0]. If G = 1.0, Mie phase function = Rayleigh Phase Function)
G = 0.85
},
-- Clear Sky
-- Mie = {
-- Coefficients = {
-- Scattering = {20e-3, 20e-3, 20e-3},
-- Extinction = 1.0/0.9,
-- }
-- H_M = 1.2,
-- G = 0.76,
-- },
-- Cloudy
-- Mie = {
-- Coefficients = {
-- Scattering = {3e-3, 3e-3, 3e-3},
-- Extinction = 1.0/0.9,
-- }
-- H_M = 3.0,
-- G = 0.65,
-- },
Debug = {
PreCalculatedTextureScale = 1.0,
SaveCalculatedTextures = false
},
GUI = {
Name = "Earth Atmosphere",
Path = "/Solar System/Planets/Earth",
Description = [[ Atmosphere of Earth.]]
ShadowGroup = {
Sources = {
{ Name = "Sun", Radius = 696.3E6 },
-- { Name = "Monolith", Radius = 0.01E6 }
},
Casters = {
{ Name = "Moon", Radius = 1.737E6 },
-- { Name = "Independence Day Ship", Radius = 0.0 }
}
}
},
GUI = {
Name = "Earth Atmosphere",
Path = "/Solar System/Planets/Earth",
Description = [[ Atmosphere of Earth.]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { Atmosphere })
asset.meta = {
Name = "Earth Atmosphere",
Version = "1.0",
Description = [[ RenderableAtmosphere for Earth.]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = {"EarthAtmosphere"}
Name = "Earth Atmosphere",
Version = "1.0",
Description = [[ RenderableAtmosphere for Earth.]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = { "EarthAtmosphere" }
}
@@ -15,30 +15,26 @@ local Earth = {
PerformShading = false,
Layers = {},
ShadowGroup = {
Source1 = {
Name = "Sun",
-- All radius in meters
Radius = 696.3E6
Sources = {
{ Name = "Sun", Radius = 696.3E6 },
},
Caster1 = {
Name = "Moon",
-- All radius in meters
Radius = 1.737E6
Casters = {
{ Name = "Moon", Radius = 1.737E6 },
}
},
Labels = {
Enable = false,
FileName = labelsPath .. "/Earth.labels",
LabelAlignmentOption = "Horizontally", -- or Circularly
LabelsFontSize = 41.0,
LabelsSize = 0.52,
LabelsFontSize = 40.0,
LabelsSize = 4.0,
LabelsMinSize = 1.0,
LabelsMaxSize = 1500.0,
ProximityEnabled = false,
LabelsFadeInEnabled = true,
LabelsFadeOutEnabled = false,
FadeInStartingDistance = 50000.0,
FadeOutStartingDistance = 80000.0,
LabelsFadeOutEnabled = true,
FadeInStartingDistance = 300000.0,
FadeOutStartingDistance = 10000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1500000.0,
LabelsColor = { 1.0, 0.0, 0.0 }
@@ -1,6 +1,6 @@
<GDAL_WMS>
<Service name="TMS">
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Water_Mask/default/2013-08-21/250m/${z}/${y}/${x}.png</ServerUrl>
<ServerUrl>https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_L3_Land_Water_Mask/default/2015-08-21/250m/${z}/${y}/${x}.png</ServerUrl>
</Service>
<DataWindow>
<UpperLeftX>-180.0</UpperLeftX>
@@ -26,15 +26,13 @@ local Moon = {
SegmentsPerPatch = 64,
Layers = {},
ShadowGroup = {
Source1 = {
Name = sunAsset.Sun.Name,
Radius = 696.3E6
Sources = {
{ Name = sunAsset.Sun.Identifier, Radius = 696.3E6 },
},
Caster1 = {
Name = earthAsset.Earth.Name,
Radius = 6.371E6
Casters = {
{ Name = earthAsset.Earth.Identifier, Radius = 6.371E6 },
}
},
},
Labels = {
Enable = false,
FileName = labelsPath .. "/moon.labels",
@@ -45,8 +43,9 @@ local Moon = {
LabelsMaxSize = 1500.0,
ProximityEnabled = false,
LabelsFadeInEnabled = true,
LabelsFadeOutEnabled = true,
FadeInStartingDistance = 500000.0,
FadeOutStartingDistance = 1000000.0,
FadeOutStartingDistance = 100000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = { 1.0, 1.0, 0.0 }
@@ -3,7 +3,7 @@ local satelliteHelper = asset.require('util/tle_helper')
local transforms = asset.require('scene/solarsystem/planets/earth/transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local url = "https://celestrak.com/satcat/tle.php?CATNR=25544"
local url = "http://celestrak.com/satcat/tle.php?CATNR=25544"
local identifier = "ISS"
local filename = "ISS.txt"
local nodes = {}
@@ -3,7 +3,7 @@ local satelliteHelper = asset.require('util/tle_helper')
local transforms = asset.require('scene/solarsystem/planets/earth/transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local url = "https://celestrak.com/satcat/tle.php?CATNR=27424"
local url = "http://celestrak.com/satcat/tle.php?CATNR=27424"
local identifier = "Aqua"
local filename = "Aqua.txt"
local nodes = {}
@@ -3,7 +3,7 @@ local satelliteHelper = asset.require('util/tle_helper')
local transforms = asset.require('scene/solarsystem/planets/earth/transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local url = "https://celestrak.com/satcat/tle.php?CATNR=37849"
local url = "http://celestrak.com/satcat/tle.php?CATNR=37849"
local identifier = "SNPP"
local filename = "SNPP.txt"
local nodes = {}
@@ -3,7 +3,7 @@ local satelliteHelper = asset.require('util/tle_helper')
local transforms = asset.require('scene/solarsystem/planets/earth/transforms')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local url = "https://celestrak.com/satcat/tle.php?CATNR=25994"
local url = "http://celestrak.com/satcat/tle.php?CATNR=25994"
local identifier = "Terra"
local filename = "Terra.txt"
local nodes = {}
@@ -37,8 +37,9 @@ local Callisto = {
LabelsMaxSize = 1500.0,
ProximityEnabled = false,
LabelsFadeInEnabled = true,
LabelsFadeOutEnabled = true,
FadeInStartingDistance = 15000000.0,
FadeOutStartingDistance = 1000000.0,
FadeOutStartingDistance = 5000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsColor = { 1.0, 1.0, 0.0 }
@@ -32,15 +32,16 @@ local Europa = {
FileName = labelsPath .. "/europa.labels",
LabelAlignmentOption = "Horizontally", -- or Circularly
LabelsFontSize = 40.0,
LabelsSize = 10.5,
LabelsSize = 10.0,
LabelsMinSize = 1.0,
LabelsMaxSize = 1500.0,
ProximityEnabled = false,
LabelsFadeInEnabled = true,
FadeInStartingDistance = 15000000.0,
FadeOutStartingDistance = 1000000.0,
LabelsFadeOutEnabled = true,
FadeInStartingDistance = 8000000.0,
FadeOutStartingDistance = 5000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsDistanceEPS = 700000.0,
LabelsColor = { 1.0, 1.0, 0.0 }
}
},
@@ -37,10 +37,11 @@ local Ganymede = {
LabelsMaxSize = 1500.0,
ProximityEnabled = false,
LabelsFadeInEnabled = true,
FadeInStartingDistance = 15000000.0,
FadeOutStartingDistance = 1000000.0,
LabelsFadeOutEnabled = true,
FadeInStartingDistance = 8000000.0,
FadeOutStartingDistance = 2250000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsDistanceEPS = 1750000.0,
LabelsColor = {1.0, 1.0, 0.0}
}
},
@@ -32,15 +32,16 @@ local Io = {
FileName = labelsPath .. "/io.labels",
LabelAlignmentOption = "Horizontally", -- or Circularly
LabelsFontSize = 40.0,
LabelsSize = 10.5,
LabelsSize = 10.0,
LabelsMinSize = 1.0,
LabelsMaxSize = 1500.0,
ProximityEnabled = false,
LabelsFadeInEnabled = true,
FadeInStartingDistance = 15000000.0,
FadeOutStartingDistance = 1000000.0,
LabelsFadeOutEnabled = true,
FadeInStartingDistance = 8500000.0,
FadeOutStartingDistance = 4000000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsDistanceEPS = 1000000.0,
LabelsColor = { 1.0, 1.0, 0.0 }
}
},
@@ -17,7 +17,18 @@ local Jupiter = {
Type = "RenderableGlobe",
Radii = { 71492000.0, 71492000.0, 66854000.0 },
SegmentsPerPatch = 64,
Layers = {}
Layers = {},
ShadowGroup = {
Sources = {
{ Name = "Sun", Radius = 696.3E6 },
},
Casters = {
{ Name = "Ganymede", Radius = 2631000 },
{ Name = "Io", Radius = 1821600 },
{ Name = "Europa", Radius = 1560800 },
{ Name = "Callisto", Radius = 2410000 }
}
}
},
Tag = { "planet_solarSystem", "planet_giants" },
GUI = {
@@ -8,53 +8,43 @@ local Atmosphere = {
Parent = transforms.Mars.Identifier,
Renderable = {
Type = "RenderableAtmosphere",
Atmosphere = {
-- Atmosphere radius in Km
AtmosphereRadius = 3463.17495,
--PlanetRadius = 3396.19,
--PlanetRadius = 3393.0,
PlanetRadius = 3386.190,
PlanetAverageGroundReflectance = 0.1,
GroundRadianceEmittion = 0.37,
SunIntensity = 13.1,
MieScatteringExtinctionPropCoefficient = 0.23862,
Rayleigh = {
Coefficients = {
-- Wavelengths are given in 10^-9m
Wavelengths = { 680, 550, 440 },
-- Reflection coefficients are given in km^-1
Scattering = { 19.918E-3, 13.57E-3, 5.75E-3 }
-- In Rayleigh scattering, the coefficients of
-- absorption and scattering are the same.
},
-- Thichkness of atmosphere if its density were uniform, in Km
H_R = 10.43979
-- Atmosphere radius in Km
AtmosphereHeight = 3463.17495 - 3386.190,
PlanetRadius = 3386.190,
PlanetAverageGroundReflectance = 0.1,
GroundRadianceEmission = 0.37,
SunIntensity = 13.1,
MieScatteringExtinctionPropCoefficient = 0.23862,
Rayleigh = {
Coefficients = {
-- Wavelengths are given in 10^-9m
Wavelengths = { 680, 550, 440 },
-- Reflection coefficients are given in km^-1
Scattering = { 19.918E-3, 13.57E-3, 5.75E-3 }
-- In Rayleigh scattering, the coefficients of
-- absorption and scattering are the same.
},
-- Default
Mie = {
Coefficients = {
-- Reflection coefficients are given in km^-1
Scattering = { 53.61771e-3, 53.61771e-3, 53.61771e-3 },
-- Extinction coefficients are a fraction of the Scattering coefficients
Extinction = { 53.61771e-3/0.98979, 53.61771e-3/0.98979, 53.61771e-3/0.98979 }
},
-- Mie Height scale (atmosphere thickness for constant density) in Km
H_M = 3.09526,
-- Mie Phase Function Value (G e [-1.0, 1.0].
-- If G = 1.0, Mie phase function = Rayleigh Phase Function)
G = 0.85
-- Thichkness of atmosphere if its density were uniform, in Km
H_R = 10.43979
},
-- Default
Mie = {
Coefficients = {
-- Reflection coefficients are given in km^-1
Scattering = { 53.61771e-3, 53.61771e-3, 53.61771e-3 },
-- Extinction coefficients are a fraction of the Scattering coefficients
Extinction = { 53.61771e-3/0.98979, 53.61771e-3/0.98979, 53.61771e-3/0.98979 }
},
Image = {
ToneMapping = jToneMapping,
Exposure = 0.4,
Background = 1.8,
Gamma = 1.85
},
Debug = {
-- PreCalculatedTextureScale is a float from 1.0 to N, with N > 0.0 and N in Naturals (i.e., 1, 2, 3, 4, 5....)
PreCalculatedTextureScale = 1.0,
SaveCalculatedTextures = false
}
-- Mie Height scale (atmosphere thickness for constant density) in Km
H_M = 3.09526,
-- Mie Phase Function Value (G e [-1.0, 1.0].
-- If G = 1.0, Mie phase function = Rayleigh Phase Function)
G = 0.85
},
Debug = {
-- PreCalculatedTextureScale is a float from 1.0 to N, with N > 0.0 and N in Naturals (i.e., 1, 2, 3, 4, 5....)
PreCalculatedTextureScale = 1.0,
SaveCalculatedTextures = false
}
},
GUI = {
@@ -4,7 +4,7 @@ local globeIdentifier = asset.require("./../../mars").Mars.Identifier
local layer = {
Identifier = "HiRISE-LS-DEM",
Name = "HiRISE Local Set DEM",
FilePath = mapServiceConfigs .. "/ESRI/HiRISE/HiRISE_DEM.wms",
FilePath = mapServiceConfigs .. "/ESRI/HiRISE/HiRISE_DEM.dem",
Description = [[ HiRISE (High Resolution Imaging Science Experiment) is the most
powerful camera ever sent to another planet, one of six instruments onboard the
Mars Reconnaissance Orbiter. We launched in 2005, arrived at Mars in 2006 and have
@@ -1,6 +1,6 @@
<GDAL_WMS>
<Service name="TMS">
<ServerUrl>http://astro.arcgis.com/arcgis/rest/services/OnMars/HiRISE_DEM/ImageServer/tile/${z}/${y}/${x}</ServerUrl>
<ServerUrl>http://astro.arcgis.com/arcgis/rest/services/OnMars/HiRISE_DEM/raw/tile/${z}/${y}/${x}</ServerUrl>
</Service>
<DataWindow>
<UpperLeftX>-180</UpperLeftX> <UpperLeftY>90</UpperLeftY>
@@ -11,7 +11,7 @@
<Projection>GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190,0]],PRIMEM["Reference_Meridian",0],UNIT["Degree",0.0174532925199433]]</Projection>
<BlockSizeX>512</BlockSizeX> <BlockSizeY>512</BlockSizeY>
<BandsCount>1</BandsCount> <DataType>Int16</DataType>
<DataValues NoData="-32768" Min="-8528" Max="21226"/>
<DataValues NoData="0" Min="-8528" Max="21226"/>
<MaxConnections>5</MaxConnections>
<ZeroBlockHttpCodes>404,400</ZeroBlockHttpCodes>
</GDAL_WMS>
@@ -1,17 +0,0 @@
<GDAL_WMS>
<Service name="TMS">
<ServerUrl>http://astro.arcgis.com/arcgis/rest/services/OnMars/HiRISE_DEM/ImageServer/tile/${z}/${y}/${x}</ServerUrl>
</Service>
<DataWindow>
<UpperLeftX>-180</UpperLeftX> <UpperLeftY>90</UpperLeftY>
<LowerRightX>180</LowerRightX> <LowerRightY>-90</LowerRightY>
<SizeX>20971520</SizeX> <SizeY>10485760</SizeY>
<TileLevel>15</TileLevel> <YOrigin>top</YOrigin>
</DataWindow>
<Projection>GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190,0]],PRIMEM["Reference_Meridian",0],UNIT["Degree",0.0174532925199433]]</Projection>
<BlockSizeX>512</BlockSizeX> <BlockSizeY>512</BlockSizeY>
<BandsCount>1</BandsCount> <DataType>Int16</DataType>
<DataValues NoData="0" Min="-10000" Max="10000"></DataValues>
<MaxConnections>5</MaxConnections>
<ZeroBlockHttpCodes>404,400</ZeroBlockHttpCodes>
</GDAL_WMS>
@@ -27,15 +27,16 @@ local Mars = {
FileName = labelsPath .. "/mars.labels",
LabelAlignmentOption = "Horizontally", -- or Circularly
LabelsFontSize = 14.0,
LabelsSize = 8.0,
LabelsSize = 9.0,
LabelsMinSize = 1.0,
LabelsMaxSize = 1500.0,
ProximityEnabled = false,
LabelsFadeInEnabled = true,
FadeInStartingDistance = 500000.0,
FadeOutStartingDistance = 1000000.0,
LabelsFadeOutEnabled = true,
FadeInStartingDistance = 2000000.0,
FadeOutStartingDistance = 750000.0,
LabelsForceDomeRendering = true,
LabelsDistanceEPS = 1350000.0,
LabelsDistanceEPS = 2500000.0,
LabelsColor = { 1.0, 1.0, 0.0 }
}
},

Some files were not shown because too many files have changed in this diff Show More