mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-01-08 04:31:08 -06:00
Merge branch 'master' into feature/exoplanets
# Conflicts: # include/openspace/engine/openspaceengine.h # src/scene/sceneinitializer.cpp
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -34,4 +34,5 @@ cmake-build-*
|
||||
x64/
|
||||
customization.lua
|
||||
COMMIT.md
|
||||
screenshots
|
||||
screenshots
|
||||
cache_gdal/
|
||||
|
||||
16
.gitmodules
vendored
16
.gitmodules
vendored
@@ -7,12 +7,22 @@
|
||||
[submodule "ext/spice"]
|
||||
path = ext/spice
|
||||
url = https://github.com/OpenSpace/Spice.git
|
||||
[submodule "ext/sgct"]
|
||||
path = ext/sgct
|
||||
url = https://github.com/opensgct/sgct.git
|
||||
[submodule "modules/touch/ext/libTUIO11"]
|
||||
path = modules/touch/ext/libTUIO11
|
||||
url = https://github.com/mkalten/TUIO11_CPP
|
||||
[submodule "modules/sync/ext/libtorrent"]
|
||||
path = modules/sync/ext/libtorrent
|
||||
url = https://github.com/OpenSpace/libtorrent.git
|
||||
[submodule "apps/OpenSpace-MinVR/ext/minvr"]
|
||||
path = apps/OpenSpace-MinVR/ext/minvr
|
||||
url = https://github.com/OpenSpace/minvr
|
||||
branch = OpenSpace
|
||||
[submodule "apps/OpenSpace/ext/sgct"]
|
||||
path = apps/OpenSpace/ext/sgct
|
||||
url = https://github.com/opensgct/sgct
|
||||
[submodule "modules/fitsfilereader/ext/CCfits"]
|
||||
path = modules/fitsfilereader/ext/CCfits
|
||||
url = https://github.com/OpenSpace/CCfits.git
|
||||
[submodule "modules/fitsfilereader/ext/cfitsio"]
|
||||
path = modules/fitsfilereader/ext/cfitsio
|
||||
url = https://github.com/OpenSpace/cfitsio.git
|
||||
|
||||
189
CMakeLists.txt
189
CMakeLists.txt
@@ -25,35 +25,39 @@
|
||||
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
|
||||
|
||||
project(OpenSpace)
|
||||
message(STATUS "Generating OpenSpace project")
|
||||
|
||||
set(OPENSPACE_VERSION_MAJOR 0)
|
||||
set(OPENSPACE_VERSION_MINOR 12)
|
||||
set(OPENSPACE_VERSION_MINOR 13)
|
||||
set(OPENSPACE_VERSION_PATCH 0)
|
||||
set(OPENSPACE_VERSION_STRING "Beta-2")
|
||||
set(OPENSPACE_VERSION_STRING "Beta-3")
|
||||
|
||||
|
||||
set(OPENSPACE_BASE_DIR "${PROJECT_SOURCE_DIR}")
|
||||
set(OPENSPACE_APPS_DIR "${OPENSPACE_BASE_DIR}/apps")
|
||||
set(OPENSPACE_EXT_DIR "${OPENSPACE_BASE_DIR}/ext")
|
||||
set(OPENSPACE_CMAKE_EXT_DIR "${OPENSPACE_BASE_DIR}/support/cmake")
|
||||
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(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.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)
|
||||
include(${GHOUL_BASE_DIR}/support/cmake/include_gtest.cmake)
|
||||
|
||||
begin_header("Configuring OpenSpace project")
|
||||
|
||||
##########################################################################################
|
||||
# Cleanup project #
|
||||
##########################################################################################
|
||||
set(OPENSPACE_APPS_DIR "${OPENSPACE_BASE_DIR}/apps")
|
||||
set(OPENSPACE_EXT_DIR "${OPENSPACE_BASE_DIR}/ext")
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS On)
|
||||
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER CMake)
|
||||
|
||||
# Test compiler
|
||||
if (MSVC AND (MSVC_VERSION LESS 1910))
|
||||
message(FATAL_ERROR "OpenSpace requires at least Visual Studio 2017.2")
|
||||
endif ()
|
||||
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)
|
||||
|
||||
# Set build output directories
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${OPENSPACE_CMAKE_EXT_DIR})
|
||||
@@ -100,97 +104,50 @@ include(src/CMakeLists.txt)
|
||||
##########################################################################################
|
||||
# System libraries
|
||||
if (APPLE)
|
||||
target_include_directories(libOpenSpace PUBLIC "/Developer/Headers/FlatCarbon")
|
||||
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(libOpenSpace
|
||||
${CARBON_LIBRARY}
|
||||
${COREFOUNDATION_LIBRARY}
|
||||
${COCOA_LIBRARY}
|
||||
${APP_SERVICES_LIBRARY}
|
||||
)
|
||||
target_link_libraries(openspace-core ${CARBON_LIBRARY} ${COREFOUNDATION_LIBRARY}
|
||||
${COCOA_LIBRARY} ${APP_SERVICES_LIBRARY})
|
||||
end_dependency()
|
||||
endif()
|
||||
|
||||
# Ghoul
|
||||
add_subdirectory(${OPENSPACE_EXT_DIR}/ghoul)
|
||||
target_link_libraries(libOpenSpace Ghoul)
|
||||
set_property(TARGET Lua PROPERTY FOLDER "External")
|
||||
set_property(TARGET lz4 PROPERTY FOLDER "External")
|
||||
target_link_libraries(openspace-core Ghoul)
|
||||
set_folder_location(Lua "External")
|
||||
set_folder_location(lz4 "External")
|
||||
set_folder_location(GhoulTest "Unit Tests")
|
||||
link_directories("${GHOUL_LIBRARY_DIRS}")
|
||||
|
||||
# SGCT
|
||||
set(SGCT_TEXT OFF CACHE BOOL "" FORCE)
|
||||
set(SGCT_BUILD_CSHARP_PROJECTS OFF CACHE BOOL "" FORCE)
|
||||
set(SGCT_LIGHT_ONLY ON CACHE BOOL "" FORCE)
|
||||
set(SGCT_CUSTOMOUTPUTDIRS OFF CACHE BOOL "" FORCE)
|
||||
set(JPEG_TURBO_WITH_SIMD OFF CACHE BOOL "" FORCE)
|
||||
|
||||
add_subdirectory(${OPENSPACE_EXT_DIR}/sgct)
|
||||
target_include_directories(libOpenSpace SYSTEM PUBLIC ${OPENSPACE_EXT_DIR}/sgct/include)
|
||||
target_link_libraries(
|
||||
libOpenSpace
|
||||
sgct_light glew glfw png16_static quat tinyxml2static turbojpeg-static
|
||||
vrpn
|
||||
${GLFW_LIBRARIES}
|
||||
)
|
||||
|
||||
if (TARGET sgct_light)
|
||||
set_property(TARGET sgct_light PROPERTY FOLDER "External")
|
||||
endif ()
|
||||
if (TARGET glew)
|
||||
set_property(TARGET glew PROPERTY FOLDER "External/SGCT")
|
||||
endif ()
|
||||
if (TARGET glfw)
|
||||
set_property(TARGET glfw PROPERTY FOLDER "External/SGCT")
|
||||
endif ()
|
||||
if (TARGET png16_static)
|
||||
set_property(TARGET png16_static PROPERTY FOLDER "External/SGCT")
|
||||
endif ()
|
||||
if (TARGET quat)
|
||||
set_property(TARGET quat PROPERTY FOLDER "External/SGCT")
|
||||
endif ()
|
||||
if (TARGET simd)
|
||||
set_property(TARGET simd PROPERTY FOLDER "External/SGCT")
|
||||
endif ()
|
||||
if (TARGET tinyxml2static)
|
||||
set_property(TARGET tinyxml2static PROPERTY FOLDER "External/SGCT")
|
||||
endif ()
|
||||
if (TARGET turbojpeg-static)
|
||||
set_property(TARGET turbojpeg-static PROPERTY FOLDER "External/SGCT")
|
||||
endif ()
|
||||
if (TARGET vrpn)
|
||||
set_property(TARGET vrpn PROPERTY FOLDER "External/SGCT")
|
||||
endif ()
|
||||
if (TARGET zlibstatic)
|
||||
set_property(TARGET zlibstatic PROPERTY FOLDER "External/SGCT")
|
||||
endif ()
|
||||
|
||||
if (UNIX AND (NOT APPLE))
|
||||
target_link_libraries(libOpenSpace Xcursor Xinerama X11)
|
||||
endif ()
|
||||
|
||||
# Spice
|
||||
begin_dependency("Spice")
|
||||
add_subdirectory(${OPENSPACE_EXT_DIR}/spice)
|
||||
target_link_libraries(libOpenSpace Spice)
|
||||
set_property(TARGET Spice PROPERTY FOLDER "External")
|
||||
target_link_libraries(openspace-core 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(libOpenSpace SYSTEM PUBLIC ${CURL_ROOT_DIR}/include)
|
||||
target_link_libraries(libOpenSpace ${CURL_ROOT_DIR}/lib/libcurl_imp.lib)
|
||||
target_compile_definitions(libOpenSpace PUBLIC "OPENSPACE_CURL_ENABLED" "CURL_STATICLIB")
|
||||
target_include_directories(openspace-core SYSTEM PUBLIC ${CURL_ROOT_DIR}/include)
|
||||
target_link_libraries(openspace-core ${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(libOpenSpace SYSTEM PUBLIC ${CURL_INCLUDE_DIRS})
|
||||
target_link_libraries(libOpenSpace ${CURL_LIBRARIES})
|
||||
target_compile_definitions(libOpenSpace PUBLIC "OPENSPACE_CURL_ENABLED")
|
||||
target_include_directories(openspace-core SYSTEM PUBLIC ${CURL_INCLUDE_DIRS})
|
||||
target_link_libraries(openspace-core ${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
|
||||
@@ -200,16 +157,17 @@ if (APPLE)
|
||||
"~/Qt/5.6/clang_64/lib/cmake"
|
||||
"~/Qt/5.7/clang_64/lib/cmake"
|
||||
"~/Qt/5.8/clang_64/lib/cmake"
|
||||
PARENT_SCOPE
|
||||
)
|
||||
endif ()
|
||||
|
||||
if (MSVC)
|
||||
option(OPENSPACE_ENABLE_VLD "Enable the Visual Leak Detector" OFF)
|
||||
if (OPENSPACE_ENABLE_VLD)
|
||||
target_compile_definitions(libOpenSpace PUBLIC "OPENSPACE_ENABLE_VLD")
|
||||
target_link_libraries(libOpenSpace ${OPENSPACE_EXT_DIR}/vld/lib/vld.lib)
|
||||
target_include_directories(libOpenSpace PUBLIC ${OPENSPACE_EXT_DIR}/vld)
|
||||
begin_dependency("Visual Leak Detector")
|
||||
target_compile_definitions(openspace-core PUBLIC "OPENSPACE_ENABLE_VLD")
|
||||
target_link_libraries(openspace-core ${OPENSPACE_EXT_DIR}/vld/lib/vld.lib)
|
||||
target_include_directories(openspace-core PUBLIC ${OPENSPACE_EXT_DIR}/vld)
|
||||
end_dependency()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
@@ -219,30 +177,22 @@ endif ()
|
||||
##########################################################################################
|
||||
option(OPENSPACE_HAVE_TESTS "Activate the OpenSpace unit tests" ON)
|
||||
if (OPENSPACE_HAVE_TESTS)
|
||||
if (NOT TARGET gtest)
|
||||
set(BUILD_GTEST ON CACHE BOOL "")
|
||||
set(BUILD_GMOCK OFF CACHE BOOL "")
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "")
|
||||
add_subdirectory(${OPENSPACE_EXT_DIR}/ghoul/ext/googletest)
|
||||
set_property(TARGET gtest PROPERTY FOLDER "External")
|
||||
set_property(TARGET gtest_main PROPERTY FOLDER "External")
|
||||
endif ()
|
||||
include_gtest("${GHOUL_BASE_DIR}/ext/googletest")
|
||||
|
||||
file(GLOB_RECURSE OPENSPACE_TEST_FILES ${OPENSPACE_BASE_DIR}/tests/*.inl)
|
||||
|
||||
add_executable(OpenSpaceTest ${OPENSPACE_BASE_DIR}/tests/main.cpp ${OPENSPACE_TEST_FILES})
|
||||
|
||||
target_include_directories(OpenSpaceTest PUBLIC
|
||||
"${OPENSPACE_BASE_DIR}/include"
|
||||
"${OPENSPACE_BASE_DIR}/tests"
|
||||
"${OPENSPACE_EXT_DIR}/ghoul/ext/googletest/googletest/include"
|
||||
)
|
||||
target_compile_definitions(OpenSpaceTest PUBLIC
|
||||
"GHL_THROW_ON_ASSERT"
|
||||
"GTEST_HAS_TR1_TUPLE=0"
|
||||
"GHL_THROW_ON_ASSERT" "GTEST_HAS_TR1_TUPLE=0"
|
||||
)
|
||||
target_link_libraries(OpenSpaceTest gtest libOpenSpace)
|
||||
target_link_libraries(OpenSpaceTest gtest openspace-core)
|
||||
|
||||
set_property(TARGET OpenSpaceTest PROPERTY FOLDER "Unit Tests")
|
||||
set_folder_location(OpenSpaceTest "Unit Tests")
|
||||
|
||||
if (MSVC)
|
||||
set_target_properties(OpenSpaceTest PROPERTIES LINK_FLAGS
|
||||
@@ -251,37 +201,60 @@ if (OPENSPACE_HAVE_TESTS)
|
||||
endif ()
|
||||
set_openspace_compile_settings(OpenSpaceTest)
|
||||
endif (OPENSPACE_HAVE_TESTS)
|
||||
if (TARGET GhoulTest)
|
||||
if (NOT TARGET gtest)
|
||||
set(BUILD_GTEST ON CACHE BOOL "")
|
||||
set(BUILD_GMOCK OFF CACHE BOOL "")
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "")
|
||||
add_subdirectory(${OPENSPACE_EXT_DIR}/ghoul/ext/googletest)
|
||||
endif ()
|
||||
|
||||
set_property(TARGET gtest PROPERTY FOLDER "External")
|
||||
set_property(TARGET GhoulTest PROPERTY FOLDER "Unit Tests")
|
||||
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}")
|
||||
end_header("End: Configuring Modules")
|
||||
message(STATUS "")
|
||||
|
||||
begin_header("Configuring Applications")
|
||||
handle_applications()
|
||||
end_header("End: Configuring Applications")
|
||||
message(STATUS "")
|
||||
|
||||
|
||||
# Web Browser and Web gui
|
||||
# Why not put these in the module's path? Because they do not have access to the
|
||||
# target as of July 2017, which is needed.
|
||||
if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT)
|
||||
# wanted by CEF
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE")
|
||||
|
||||
if (WIN32)
|
||||
set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc)
|
||||
endif ()
|
||||
|
||||
# Add the CEF binary distribution's cmake/ directory to the module path and
|
||||
# find CEF to initialize it properly.
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake")
|
||||
include(webbrowser_helpers)
|
||||
|
||||
if (TARGET OpenSpaceTest)
|
||||
set_cef_targets("${CEF_ROOT}" OpenSpaceTest)
|
||||
run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}")
|
||||
endif ()
|
||||
elseif (OPENSPACE_MODULE_WEBBROWSER)
|
||||
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(libOpenSpace PUBLIC "OPENSPACE_WITH_ABUFFER_RENDERER")
|
||||
target_compile_definitions(openspace-core PUBLIC "OPENSPACE_WITH_ABUFFER_RENDERER")
|
||||
endif ()
|
||||
|
||||
|
||||
# Just in case, create the bin directory
|
||||
add_custom_command(
|
||||
TARGET libOpenSpace
|
||||
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)
|
||||
|
||||
end_header("End: Configuring OpenSpace project")
|
||||
|
||||
@@ -7,6 +7,7 @@ Matthew Territo
|
||||
Gene Payne
|
||||
Kalle Bladin
|
||||
Erik Sundén
|
||||
Micah Acinapura
|
||||
|
||||
Jonas Strandstedt
|
||||
Hans-Christian Helltegen
|
||||
|
||||
4
Jenkinsfile
vendored
4
Jenkinsfile
vendored
@@ -45,7 +45,7 @@ stage('Build') {
|
||||
node('windows') {
|
||||
timeout(time: 90, unit: 'MINUTES') {
|
||||
// We specify the workspace directory manually to reduce the path length and thus try to avoid MSB3491 on Visual Studio
|
||||
ws("C:/J/O/${env.BRANCH_NAME}/${env.BUILD_ID}") {
|
||||
ws("${env.JENKINS_BASE}/O/${env.BRANCH_NAME}/${env.BUILD_ID}") {
|
||||
deleteDir()
|
||||
checkout scm
|
||||
bat '''
|
||||
@@ -79,7 +79,7 @@ stage('Build') {
|
||||
cd ${srcDir}/build
|
||||
/Applications/CMake.app/Contents/bin/cmake -G Xcode ${srcDir} .. ''' +
|
||||
flags + '''
|
||||
xcodebuild -quiet -parallelizeTargets -jobs 4
|
||||
xcodebuild -parallelizeTargets -jobs 4 -target OpenSpace
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
89
apps/OpenSpace-MinVR/CMakeLists.txt
Normal file
89
apps/OpenSpace-MinVR/CMakeLists.txt
Normal file
@@ -0,0 +1,89 @@
|
||||
##########################################################################################
|
||||
# #
|
||||
# OpenSpace #
|
||||
# #
|
||||
# Copyright (c) 2014-2018 #
|
||||
# #
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy of this #
|
||||
# software and associated documentation files (the "Software"), to deal in the Software #
|
||||
# without restriction, including without limitation the rights to use, copy, modify, #
|
||||
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to #
|
||||
# permit persons to whom the Software is furnished to do so, subject to the following #
|
||||
# conditions: #
|
||||
# #
|
||||
# The above copyright notice and this permission notice shall be included in all copies #
|
||||
# or substantial portions of the Software. #
|
||||
# #
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, #
|
||||
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A #
|
||||
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT #
|
||||
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF #
|
||||
# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE #
|
||||
# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #
|
||||
##########################################################################################
|
||||
|
||||
include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake)
|
||||
include(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake)
|
||||
include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake)
|
||||
|
||||
set(MACOSX_BUNDLE_ICON_FILE openspace.icns)
|
||||
|
||||
set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ON CACHE BOOL "" FORCE)
|
||||
add_subdirectory(ext/minvr)
|
||||
|
||||
create_new_application(OpenSpace-MinVR
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/openspace.rc
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
|
||||
)
|
||||
|
||||
set_source_files_properties(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
|
||||
PROPERTIES MACOSX_PACKAGE_LOCATION "Resources"
|
||||
)
|
||||
|
||||
target_include_directories(OpenSpace-MinVR PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ext/minvr/src)
|
||||
|
||||
# @FRAGILE: This will break if we ever compile MinVR without GLFW support.
|
||||
# Maybe there is a better way to access glfwGetProcAddress, which is probably
|
||||
# The only thing that we need from this include
|
||||
target_include_directories(OpenSpace-MinVR PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ext/minvr/external/GLFW/src/include)
|
||||
|
||||
|
||||
target_link_libraries(OpenSpace-MinVR libOpenSpace MinVR)
|
||||
|
||||
# Web Browser and Web gui
|
||||
# Why not put these in the module's path? Because they do not have access to the
|
||||
# target as of July 2017, which is needed.
|
||||
if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT)
|
||||
# wanted by CEF
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE")
|
||||
|
||||
if (WIN32)
|
||||
set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace-MinVR/openspace.rc)
|
||||
endif ()
|
||||
|
||||
# Add the CEF binary distribution's cmake/ directory to the module path and
|
||||
# find CEF to initialize it properly.
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake")
|
||||
include(webbrowser_helpers)
|
||||
|
||||
set_cef_targets("${CEF_ROOT}" OpenSpace-MinVR)
|
||||
run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}")
|
||||
elseif (OPENSPACE_MODULE_WEBBROWSER)
|
||||
message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.")
|
||||
endif ()
|
||||
|
||||
if (OPENSPACE_MODULE_WEBGUI AND WEBGUI_MODULE_PATH)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBGUI_MODULE_PATH}/cmake")
|
||||
include(webgui_helpers)
|
||||
build_webgui_source(OpenSpace-MinVR)
|
||||
elseif(OPENSPACE_MODULE_WEBGUI)
|
||||
message(WARNING "WebGui is configured to be included, but the web source could not be found. Try configuring CMake again.")
|
||||
endif()
|
||||
# End Web Browser and Web gui
|
||||
|
||||
if (MSVC)
|
||||
# This library is used for being able to output the callstack if an exception escapes
|
||||
target_link_libraries(OpenSpace-MinVR Dbghelp.lib)
|
||||
endif()
|
||||
1
apps/OpenSpace-MinVR/ext/minvr
Submodule
1
apps/OpenSpace-MinVR/ext/minvr
Submodule
Submodule apps/OpenSpace-MinVR/ext/minvr added at c97f70f635
8
apps/OpenSpace-MinVR/ext/readme.md
Normal file
8
apps/OpenSpace-MinVR/ext/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
The spout folder is a copy of the folder:
|
||||
SpoutSDK/Source in the repository:
|
||||
https://github.com/leadedge/Spout2.git/SpoutSDK/Source/SPOUT_LIBRARY/Binaries
|
||||
and
|
||||
https://github.com/leadedge/Spout2.git/SpoutSDK/Source/SPOUT_LIBRARY/Include
|
||||
|
||||
Last update:
|
||||
https://github.com/leadedge/Spout2/commit/28dbea6059cd7968c4d2b296d6739a5fdebe9104
|
||||
BIN
apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.dll
Normal file
BIN
apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.dll
Normal file
Binary file not shown.
90
apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.h
Normal file
90
apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.h
Normal file
@@ -0,0 +1,90 @@
|
||||
//
|
||||
// SpoutLibrary.dll
|
||||
//
|
||||
// Spout SDK dll compatible with any C++ compiler
|
||||
//
|
||||
|
||||
#include <windows.h>
|
||||
#include <GL/GL.h>
|
||||
|
||||
#define SPOUTLIBRARY_EXPORTS // defined for this DLL. The application imports rather than exports
|
||||
|
||||
#ifdef SPOUTLIBRARY_EXPORTS
|
||||
#define SPOUTAPI __declspec(dllexport)
|
||||
#else
|
||||
#define SPOUTAPI __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// COM-Like abstract interface.
|
||||
// This interface doesn't require __declspec(dllexport/dllimport) specifier.
|
||||
// Method calls are dispatched via virtual table.
|
||||
// Any C++ compiler can use it.
|
||||
// Instances are obtained via factory function.
|
||||
//
|
||||
struct SPOUTLIBRARY
|
||||
{
|
||||
// Sender
|
||||
virtual bool CreateSender(const char *Sendername, unsigned int width, unsigned int height, DWORD dwFormat = 0) = 0;
|
||||
virtual void ReleaseSender(DWORD dwMsec = 0) = 0;
|
||||
virtual bool UpdateSender(const char* Sendername, unsigned int width, unsigned int height) = 0;
|
||||
virtual bool SendTexture(GLuint TextureID, GLuint TextureTarget, unsigned int width, unsigned int height, bool bInvert = true, GLuint HostFBO = 0) = 0;
|
||||
virtual bool SendImage(const unsigned char* pixels, unsigned int width, unsigned int height, GLenum glFormat = GL_RGBA, bool bInvert=false) = 0;
|
||||
|
||||
// Receiver
|
||||
virtual bool CreateReceiver(char* Sendername, unsigned int &width, unsigned int &height, bool bUseActive = false) = 0;
|
||||
virtual void ReleaseReceiver() = 0;
|
||||
virtual bool ReceiveTexture(char* Sendername, unsigned int &width, unsigned int &height, GLuint TextureID = 0, GLuint TextureTarget = 0, bool bInvert = false, GLuint HostFBO = 0) = 0;
|
||||
virtual bool ReceiveImage(char* Sendername, unsigned int &width, unsigned int &height, unsigned char* pixels, GLenum glFormat = GL_RGBA, bool bInvert = false, GLuint HostFBO=0) = 0;
|
||||
virtual bool CheckReceiver(char* Sendername, unsigned int &width, unsigned int &height, bool &bConnected) = 0;
|
||||
virtual bool GetImageSize(char* sendername, unsigned int &width, unsigned int &height, bool &bMemoryMode) = 0;
|
||||
|
||||
virtual bool BindSharedTexture() = 0;
|
||||
virtual bool UnBindSharedTexture() = 0;
|
||||
|
||||
virtual bool DrawSharedTexture(float max_x = 1.0, float max_y = 1.0, float aspect = 1.0, bool bInvert = true) = 0;
|
||||
virtual bool DrawToSharedTexture(GLuint TextureID, GLuint TextureTarget, unsigned int width, unsigned int height, float max_x = 1.0, float max_y = 1.0, float aspect = 1.0, bool bInvert = false, GLuint HostFBO = 0) = 0;
|
||||
|
||||
virtual int GetSenderCount() = 0;
|
||||
virtual bool GetSenderName(int index, char* sendername, int MaxSize = 256) = 0;
|
||||
virtual bool GetSenderInfo(const char* sendername, unsigned int &width, unsigned int &height, HANDLE &dxShareHandle, DWORD &dwFormat) = 0;
|
||||
virtual bool GetActiveSender(char* Sendername) = 0;
|
||||
virtual bool SetActiveSender(const char* Sendername) = 0;
|
||||
|
||||
// Utilities
|
||||
virtual bool SetDX9(bool bDX9 = true) = 0; // User request to use DirectX 9 (default is DirectX 11)
|
||||
virtual bool GetDX9() = 0; // Return the flag that has been set
|
||||
virtual bool SetMemoryShareMode(bool bMem = true) = 0;
|
||||
virtual bool GetMemoryShareMode() = 0;
|
||||
virtual int GetMaxSenders() = 0; // Get maximum senders allowed
|
||||
virtual void SetMaxSenders(int maxSenders) = 0; // Set maximum senders allowed
|
||||
virtual bool GetHostPath(const char *sendername, char *hostpath, int maxchars) = 0; // The path of the host that produced the sender
|
||||
virtual int GetVerticalSync() = 0;
|
||||
virtual bool SetVerticalSync(bool bSync = true) = 0;
|
||||
virtual bool SelectSenderPanel(const char* message = NULL) = 0;
|
||||
|
||||
// Access to globals
|
||||
virtual bool GetSpoutSenderName(char * sendername, int maxchars) = 0; // get the global sender name
|
||||
virtual bool IsSpoutInitialized() = 0; // has the class been initialized
|
||||
|
||||
// Adapter functions
|
||||
virtual int GetNumAdapters() = 0; // Get the number of graphics adapters in the system
|
||||
virtual bool GetAdapterName(int index, char *adaptername, int maxchars) = 0; // Get an adapter name
|
||||
virtual bool SetAdapter(int index = 0) = 0; // Set required graphics adapter for output
|
||||
virtual int GetAdapter() = 0; // Get the SpoutDirectX global adapter index
|
||||
|
||||
// Library release function
|
||||
virtual void Release() = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
// Handle type. In C++ language the interface type is used.
|
||||
typedef SPOUTLIBRARY* SPOUTHANDLE;
|
||||
|
||||
// Factory function that creates instances of the SPOUT object.
|
||||
extern "C" SPOUTAPI SPOUTHANDLE WINAPI GetSpout(VOID);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
BIN
apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.lib
Normal file
BIN
apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.lib
Normal file
Binary file not shown.
1
apps/OpenSpace-MinVR/include.cmake
Normal file
1
apps/OpenSpace-MinVR/include.cmake
Normal file
@@ -0,0 +1 @@
|
||||
set(DEFAULT_APPLICATION OFF)
|
||||
492
apps/OpenSpace-MinVR/main.cpp
Normal file
492
apps/OpenSpace-MinVR/main.cpp
Normal file
@@ -0,0 +1,492 @@
|
||||
/*****************************************************************************************
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2018 *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
|
||||
* software and associated documentation files (the "Software"), to deal in the Software *
|
||||
* without restriction, including without limitation the rights to use, copy, modify, *
|
||||
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to *
|
||||
* permit persons to whom the Software is furnished to do so, subject to the following *
|
||||
* conditions: *
|
||||
* *
|
||||
* The above copyright notice and this permission notice shall be included in all copies *
|
||||
* or substantial portions of the Software. *
|
||||
* *
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
|
||||
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A *
|
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT *
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF *
|
||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#include <openspace/documentation/documentation.h>
|
||||
#include <openspace/engine/configuration.h>
|
||||
#include <openspace/engine/globals.h>
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <openspace/engine/windowdelegate.h>
|
||||
#include <openspace/util/keys.h>
|
||||
#include <openspace/util/mouse.h>
|
||||
#include <ghoul/fmt.h>
|
||||
#include <ghoul/ghoul.h>
|
||||
#include <ghoul/filesystem/file.h>
|
||||
#include <ghoul/filesystem/filesystem.h>
|
||||
#include <ghoul/logging/consolelog.h>
|
||||
#include <ghoul/logging/logmanager.h>
|
||||
#include <ghoul/logging/visualstudiooutputlog.h>
|
||||
#include <api/MinVR.h>
|
||||
#include <GLFW/glfw3.h>
|
||||
#include <numeric>
|
||||
|
||||
// @TODO: Add Spout support
|
||||
// @TODO: Reintroduce commandline-parsing
|
||||
// @TODO: Prevent a third window to open that immediately crashes
|
||||
|
||||
// @TODO: Proper check if the current instance is the master:
|
||||
|
||||
using namespace MinVR;
|
||||
using namespace openspace;
|
||||
|
||||
namespace {
|
||||
|
||||
class Handler : public VREventHandler, public VRRenderHandler, public VRInputDevice {
|
||||
public:
|
||||
void onVREvent(const VRDataIndex& eventData) override;
|
||||
void onVRRenderContext(const VRDataIndex& stateData) override;
|
||||
void onVRRenderScene(const VRDataIndex& stateData) override;
|
||||
|
||||
void appendNewInputEventsSinceLastCall(VRDataQueue* queue) override;
|
||||
};
|
||||
|
||||
constexpr const char* _loggerCat = "main_minvr";
|
||||
|
||||
VRMain engine;
|
||||
Handler handler;
|
||||
VRDataQueue eventQueue;
|
||||
|
||||
struct {
|
||||
int nWindows = 0;
|
||||
glm::ivec2 windowSize;
|
||||
glm::ivec2 framebufferSize;
|
||||
|
||||
glm::vec2 mousePosition;
|
||||
uint32_t mouseButtons = 0;
|
||||
|
||||
float averageDeltatime = -1.f;
|
||||
float deltaTime = -1.f;
|
||||
} windowingGlobals;
|
||||
|
||||
struct {
|
||||
bool modifierShift = false;
|
||||
bool modifierCtrl = false;
|
||||
bool modifierAlt = false;
|
||||
} keyboardState;
|
||||
|
||||
bool HasInitializedGL = false;
|
||||
std::array<float, 30> LastFrametimes = { 1.f / 60.f }; // we can be optimistic here
|
||||
constexpr const char* MasterNode = "/MinVR/Desktop1";
|
||||
bool IsMasterNode = false;
|
||||
uint64_t FrameNumber = 0;
|
||||
std::chrono::time_point<std::chrono::high_resolution_clock> lastFrameTime;
|
||||
|
||||
} // namespace
|
||||
|
||||
#pragma optimize ("", off)
|
||||
|
||||
void Handler::onVREvent(const VRDataIndex& eventData) {
|
||||
std::string type;
|
||||
if (eventData.exists("EventType")) {
|
||||
type = static_cast<VRString>(eventData.getValue("EventType"));
|
||||
}
|
||||
else {
|
||||
LERRORC(
|
||||
"onVREvent()",
|
||||
fmt::format("Received an event named {} of unknown type", eventData.getName())
|
||||
);
|
||||
}
|
||||
|
||||
const bool isButtonEvent = type == "ButtonDown" || type == "ButtonUp" ||
|
||||
type == "ButtonRepeat";
|
||||
|
||||
if (type == "AnalogUpdate") {
|
||||
const VRAnalogEvent& event = static_cast<const VRAnalogEvent&>(eventData);
|
||||
}
|
||||
else if (isButtonEvent) {
|
||||
if (!global::windowDelegate.isMaster()) {
|
||||
return;
|
||||
}
|
||||
const VRButtonEvent& event = static_cast<const VRButtonEvent&>(eventData);
|
||||
|
||||
const std::string& buttonName = event.getName();
|
||||
|
||||
if (buttonName.size() >= 3 && buttonName.substr(0, 3) == "Kbd") {
|
||||
// We have a keyboard event
|
||||
const size_t beg = 3; // "Kbd" prefix
|
||||
const size_t sep = buttonName.find('_');
|
||||
|
||||
std::string keyName = buttonName.substr(beg, sep - beg);
|
||||
std::string actionName = buttonName.substr(sep + 1);
|
||||
|
||||
Key key = KeyMapping.find(keyName)->second;
|
||||
|
||||
KeyAction action;
|
||||
if (actionName == "Up") {
|
||||
action = KeyAction::Release;
|
||||
}
|
||||
else if (actionName == "Down") {
|
||||
action = KeyAction::Press;
|
||||
}
|
||||
else if (actionName == "Repeat") {
|
||||
action = KeyAction::Repeat;
|
||||
}
|
||||
else {
|
||||
LWARNINGC("Key", "Unknown key action " + actionName);
|
||||
}
|
||||
|
||||
if (key == Key::LeftShift || key == Key::RightShift) {
|
||||
keyboardState.modifierShift = action != KeyAction::Release;
|
||||
}
|
||||
if (key == Key::LeftControl || key == Key::RightControl) {
|
||||
keyboardState.modifierCtrl = action != KeyAction::Release;
|
||||
}
|
||||
if (key == Key::LeftAlt || key == Key::RightAlt) {
|
||||
keyboardState.modifierAlt = action != KeyAction::Release;
|
||||
}
|
||||
|
||||
using KM = KeyModifier;
|
||||
KM mod = KM::NoModifier;
|
||||
mod |= keyboardState.modifierShift ? KM::Shift : KM::NoModifier;
|
||||
mod |= keyboardState.modifierCtrl ? KM::Control : KM::NoModifier;
|
||||
mod |= keyboardState.modifierAlt ? KM::Alt : KM::NoModifier;
|
||||
|
||||
openspace::global::openSpaceEngine.keyboardCallback(key, mod, action);
|
||||
}
|
||||
|
||||
if (buttonName.size() >= 8 && buttonName.substr(0, 8) == "MouseBtn") {
|
||||
const size_t beg = 8; // "MouseBtn" prefix
|
||||
const size_t sep = buttonName.find('_');
|
||||
|
||||
std::string keyName = buttonName.substr(beg, sep - beg);
|
||||
std::string actionName = buttonName.substr(sep + 1);
|
||||
|
||||
MouseButton button;
|
||||
if (keyName == "Left") {
|
||||
button = MouseButton::Left;
|
||||
}
|
||||
else if (keyName == "Middle") {
|
||||
button = MouseButton::Middle;
|
||||
}
|
||||
else if (keyName == "Right") {
|
||||
button = MouseButton::Right;
|
||||
}
|
||||
|
||||
MouseAction action;
|
||||
if (actionName == "Down") {
|
||||
action = MouseAction::Press;
|
||||
}
|
||||
else if (actionName == "Up") {
|
||||
action = MouseAction::Release;
|
||||
}
|
||||
|
||||
windowingGlobals.mouseButtons = 0;
|
||||
if (button == MouseButton::Left && action == MouseAction::Press) {
|
||||
windowingGlobals.mouseButtons |= 1 << 0;
|
||||
}
|
||||
if (button == MouseButton::Middle && action == MouseAction::Press) {
|
||||
windowingGlobals.mouseButtons |= 1 << 1;
|
||||
}
|
||||
if (button == MouseButton::Right && action == MouseAction::Press) {
|
||||
windowingGlobals.mouseButtons |= 1 << 2;
|
||||
}
|
||||
global::openSpaceEngine.mouseButtonCallback(button, action);
|
||||
}
|
||||
|
||||
}
|
||||
else if (type == "CursorMove") {
|
||||
if (!global::windowDelegate.isMaster()) {
|
||||
return;
|
||||
}
|
||||
const VRCursorEvent& event = static_cast<const VRCursorEvent&>(eventData);
|
||||
|
||||
const float* pos = event.getPos();
|
||||
windowingGlobals.mousePosition = glm::vec2(pos[0], pos[1]);
|
||||
openspace::global::openSpaceEngine.mousePositionCallback(pos[0], pos[1]);
|
||||
|
||||
// @TODO(abock): Support mouse wheel
|
||||
//openspace::global::openSpaceEngine.mouseScrollWheelCallback(posX, posY);
|
||||
}
|
||||
else if (type == "TrackerMove") {
|
||||
const VRTrackerEvent& event = static_cast<const VRTrackerEvent&>(eventData);
|
||||
}
|
||||
else if (type == "OpenSpaceMessage") {
|
||||
if (global::windowDelegate.isMaster()) {
|
||||
// We don't want the message if we are the master as we already have the state
|
||||
return;
|
||||
}
|
||||
const int frameNumber = eventData.getValue("FrameNumber");
|
||||
const int nBytes = eventData.getValue("NBytes");
|
||||
std::vector<int> intData = eventData.getValue("SynchronizationData");
|
||||
char* data = reinterpret_cast<char*>(intData.data());
|
||||
|
||||
std::vector<char> synchronizationBuffer(nBytes);
|
||||
std::copy(data, data + nBytes, synchronizationBuffer.begin());
|
||||
|
||||
global::openSpaceEngine.decode(std::move(synchronizationBuffer));
|
||||
}
|
||||
else {
|
||||
LERRORC("onVREvent()", fmt::format("Received an event of unknown type {}", type));
|
||||
}
|
||||
}
|
||||
|
||||
void Handler::onVRRenderContext(const VRDataIndex& stateData) {
|
||||
if (stateData.exists("IsGraphics")) {
|
||||
const VRGraphicsState& state = static_cast<const VRGraphicsState&>(stateData);
|
||||
|
||||
if (state.isInitialRenderCall()) {
|
||||
windowingGlobals.nWindows = std::max(
|
||||
windowingGlobals.nWindows,
|
||||
static_cast<int>(stateData.getValue("WindowID")) + 1
|
||||
);
|
||||
windowingGlobals.windowSize.x = stateData.getValue("WindowWidth");
|
||||
windowingGlobals.windowSize.y = stateData.getValue("WindowHeight");
|
||||
|
||||
windowingGlobals.framebufferSize.x = stateData.getValue("FramebufferWidth");
|
||||
windowingGlobals.framebufferSize.y = stateData.getValue("FramebufferHeight");
|
||||
|
||||
global::openSpaceEngine.initializeGL();
|
||||
|
||||
HasInitializedGL = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Handler::onVRRenderScene(const VRDataIndex& stateData) {
|
||||
if (stateData.exists("IsGraphics")) {
|
||||
glClearColor(0.f, 0.f, 0.f, 0.f);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
const VRGraphicsState& state = static_cast<const VRGraphicsState&>(stateData);
|
||||
glm::mat4 projectionMatrix = glm::make_mat4(state.getProjectionMatrix());
|
||||
glm::mat4 viewMatrix = glm::make_mat4(state.getViewMatrix());
|
||||
try {
|
||||
openspace::global::openSpaceEngine.render(
|
||||
// @TODO(abock) we should probably use the user position here?
|
||||
glm::mat4(1.f),
|
||||
viewMatrix,
|
||||
projectionMatrix
|
||||
);
|
||||
openspace::global::openSpaceEngine.drawOverlays();
|
||||
openspace::global::openSpaceEngine.postDraw();
|
||||
}
|
||||
catch (const ghoul::RuntimeError& e) {
|
||||
LERRORC(e.component, e.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Handler::appendNewInputEventsSinceLastCall(VRDataQueue* queue) {
|
||||
queue->addQueue(eventQueue);
|
||||
eventQueue.clear();
|
||||
}
|
||||
|
||||
void setupMinVrDelegateFunctions(VRMain& main) {
|
||||
// Sets up the OpenSpace WindowDelegate callback functions
|
||||
WindowDelegate& delegate = global::windowDelegate;
|
||||
|
||||
delegate.nWindows = []() { return windowingGlobals.nWindows; };
|
||||
delegate.currentWindowSize = []() { return windowingGlobals.windowSize; };
|
||||
delegate.currentWindowResolution = delegate.currentWindowSize;
|
||||
delegate.currentDrawBufferResolution = delegate.currentWindowResolution;
|
||||
delegate.currentViewportSize = delegate.currentWindowResolution;
|
||||
|
||||
delegate.averageDeltaTime = []() -> double {
|
||||
return windowingGlobals.averageDeltatime;
|
||||
};
|
||||
delegate.deltaTime = []() -> double { return windowingGlobals.deltaTime; };
|
||||
|
||||
delegate.mousePosition = []() {
|
||||
return windowingGlobals.mousePosition;
|
||||
};
|
||||
delegate.mouseButtons = [](int) {
|
||||
return windowingGlobals.mouseButtons;
|
||||
};
|
||||
|
||||
delegate.isMaster = []() { return IsMasterNode; };
|
||||
|
||||
delegate.openGLProcedureAddress = [](const char* func) {
|
||||
VRWindowToolkit* wtk = engine.getWindowToolkit("VRGLFWWindowToolkit");
|
||||
VRglproc procAddress = wtk->getProcAddress(func);
|
||||
return procAddress;
|
||||
};
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
// Initialize the LogManager and add the console log as this will be used every time
|
||||
// and we need a fall back if something goes wrong between here and when we add the
|
||||
// logs from the configuration file. If the user requested as specific loglevel in the
|
||||
// configuration file, we will deinitialize this LogManager and reinitialize it later
|
||||
// with the correct LogLevel
|
||||
{
|
||||
using namespace ghoul::logging;
|
||||
LogManager::initialize(LogLevel::Debug, LogManager::ImmediateFlush::Yes);
|
||||
LogMgr.addLog(std::make_unique<ConsoleLog>());
|
||||
#ifdef WIN32
|
||||
if (IsDebuggerPresent()) {
|
||||
LogMgr.addLog(std::make_unique<VisualStudioOutputLog>());
|
||||
}
|
||||
#endif // WIN32
|
||||
}
|
||||
|
||||
ghoul::initialize();
|
||||
|
||||
// Create the OpenSpace engine and get arguments for the SGCT engine
|
||||
std::string windowConfiguration;
|
||||
try {
|
||||
// Find configuration
|
||||
//std::string configurationFilePath = commandlineArguments.configurationName;
|
||||
//if (commandlineArguments.configurationName.empty()) {
|
||||
LDEBUG("Finding configuration");
|
||||
std::string configurationFilePath = configuration::findConfiguration();
|
||||
//}
|
||||
configurationFilePath = absPath(configurationFilePath);
|
||||
|
||||
if (!FileSys.fileExists(configurationFilePath)) {
|
||||
LFATALC("main", "Could not find configuration: " + configurationFilePath);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
LINFO(fmt::format("Configuration Path: '{}'", configurationFilePath));
|
||||
|
||||
// Loading configuration from disk
|
||||
LDEBUG("Loading configuration from disk");
|
||||
global::configuration = configuration::loadConfigurationFromFile(
|
||||
configurationFilePath
|
||||
);
|
||||
|
||||
// If the user requested a commandline-based configuation script that should
|
||||
// overwrite some of the values, this is the time to do it
|
||||
//if (!commandlineArguments.configurationOverride.empty()) {
|
||||
// LDEBUG("Executing Lua script passed through the commandline:");
|
||||
// LDEBUG(commandlineArguments.configurationOverride);
|
||||
// ghoul::lua::runScript(
|
||||
// global::configuration.state,
|
||||
// commandlineArguments.configurationOverride
|
||||
// );
|
||||
// parseLuaState(global::configuration);
|
||||
//}
|
||||
|
||||
// Determining MinVR configuration file
|
||||
LDEBUG("MinVR Configuration file: " + global::configuration.windowConfiguration);
|
||||
|
||||
windowConfiguration = global::configuration.windowConfiguration;
|
||||
}
|
||||
catch (const documentation::SpecificationError& e) {
|
||||
LFATALC("main", "Loading of configuration file failed");
|
||||
for (const documentation::TestResult::Offense& o : e.result.offenses) {
|
||||
LERRORC(o.offender, ghoul::to_string(o.reason));
|
||||
}
|
||||
for (const documentation::TestResult::Warning& w : e.result.warnings) {
|
||||
LWARNINGC(w.offender, ghoul::to_string(w.reason));
|
||||
}
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
catch (const ghoul::RuntimeError& e) {
|
||||
// Write out all of the information about the exception and flush the logs
|
||||
LFATALC(e.component, e.message);
|
||||
if (ghoul::logging::LogManager::isInitialized()) {
|
||||
LogMgr.flushLogs();
|
||||
}
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
global::openSpaceEngine.registerPathTokens();
|
||||
global::openSpaceEngine.initialize();
|
||||
|
||||
engine.addEventHandler(&handler);
|
||||
engine.addRenderHandler(&handler);
|
||||
engine.loadConfig(global::configuration.windowConfiguration);
|
||||
// Yes, this still contains the OpenSpace-specific commandline arguments, but no one
|
||||
// will ever know if we use the remaining arguments or not; both commandline parsers
|
||||
// just ignore the arguments they don't understand
|
||||
engine.initialize(argc, argv);
|
||||
|
||||
setupMinVrDelegateFunctions(engine);
|
||||
|
||||
const std::string& name = engine.getName();
|
||||
IsMasterNode = (name == MasterNode);
|
||||
|
||||
if (global::windowDelegate.isMaster()) {
|
||||
engine.addInputDevice(&handler);
|
||||
}
|
||||
|
||||
lastFrameTime = std::chrono::high_resolution_clock::now();
|
||||
// run loop-di-loop
|
||||
do {
|
||||
if (HasInitializedGL) {
|
||||
auto now = std::chrono::high_resolution_clock::now();
|
||||
std::chrono::nanoseconds dt = now - lastFrameTime;
|
||||
double dtSec = dt.count() / (1000.0 * 1000.0 * 1000.0);
|
||||
windowingGlobals.deltaTime = static_cast<float>(dtSec);
|
||||
std::rotate(
|
||||
LastFrametimes.begin(),
|
||||
LastFrametimes.begin() + 1,
|
||||
LastFrametimes.end()
|
||||
);
|
||||
LastFrametimes.back() = windowingGlobals.deltaTime;
|
||||
lastFrameTime = now;
|
||||
|
||||
windowingGlobals.averageDeltatime = std::accumulate(
|
||||
LastFrametimes.begin(),
|
||||
LastFrametimes.end(),
|
||||
0.f
|
||||
) / LastFrametimes.size();
|
||||
|
||||
|
||||
|
||||
global::openSpaceEngine.preSynchronization();
|
||||
|
||||
if (global::windowDelegate.isMaster()) {
|
||||
std::vector<char> syncBuffer = global::openSpaceEngine.encode();
|
||||
VRDataIndex e("OpenSpace_Sync");
|
||||
|
||||
e.addData("EventType", "OpenSpaceMessage");
|
||||
|
||||
// Pad the buffer to a multiple of 4
|
||||
const int nBytes = syncBuffer.size();
|
||||
const int nInts = nBytes % 4 != 0 ? (nBytes / 4 + 1) : nBytes;
|
||||
syncBuffer.resize((nInts) * 4);
|
||||
|
||||
// Just look away for a bit!
|
||||
int* data = reinterpret_cast<int*>(syncBuffer.data());
|
||||
std::vector<int> intData(nInts);
|
||||
std::copy(data, data + nInts, intData.begin());
|
||||
|
||||
e.addData("NBytes", static_cast<int>(nBytes));
|
||||
e.addData("FrameNumber", static_cast<int>(FrameNumber));
|
||||
e.addData("SynchronizationData", intData);
|
||||
eventQueue.push(e);
|
||||
}
|
||||
|
||||
engine.synchronizeAndProcessEvents();
|
||||
|
||||
engine.updateAllModels();
|
||||
|
||||
// @TODO(abock): Not sure if this should be before updateAllModels or here
|
||||
global::openSpaceEngine.postSynchronizationPreDraw();
|
||||
|
||||
++FrameNumber;
|
||||
}
|
||||
|
||||
engine.renderOnAllDisplays();
|
||||
} while (!engine.getShutdown());
|
||||
|
||||
global::openSpaceEngine.deinitializeGL();
|
||||
|
||||
// This assumes that `shutdown` destroys the OpenGL state and thus have to happen
|
||||
// after the deinitializeGL function
|
||||
engine.shutdown();
|
||||
global::openSpaceEngine.deinitialize();
|
||||
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
BIN
apps/OpenSpace-MinVR/openspace.icns
Normal file
BIN
apps/OpenSpace-MinVR/openspace.icns
Normal file
Binary file not shown.
BIN
apps/OpenSpace-MinVR/openspace.ico
Normal file
BIN
apps/OpenSpace-MinVR/openspace.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 79 KiB |
BIN
apps/OpenSpace-MinVR/openspace.png
Normal file
BIN
apps/OpenSpace-MinVR/openspace.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 MiB |
1
apps/OpenSpace-MinVR/openspace.rc
Normal file
1
apps/OpenSpace-MinVR/openspace.rc
Normal file
@@ -0,0 +1 @@
|
||||
IDI_ICON1 ICON DISCARDABLE "openspace.ico"
|
||||
@@ -23,6 +23,7 @@
|
||||
##########################################################################################
|
||||
|
||||
include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake)
|
||||
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)
|
||||
|
||||
@@ -32,50 +33,43 @@ include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake)
|
||||
option(OPENSPACE_OPENVR_SUPPORT "Build OpenSpace application with OpenVR support" OFF)
|
||||
|
||||
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)
|
||||
|
||||
if (NOT SGCT_OPENVR_INCLUDE_DIRECTORY)
|
||||
if (WIN32)
|
||||
find_path(SGCT_OPENVR_INCLUDE_DIRECTORY
|
||||
NAMES SGCTOpenVR.h
|
||||
PATHS
|
||||
$ENV{SGCT_ROOT_DIR}/additional_includes/openvr
|
||||
${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr
|
||||
NO_DEFAULT_PATH
|
||||
PATHS ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr NO_DEFAULT_PATH
|
||||
REQUIRED
|
||||
)
|
||||
else ()
|
||||
find_path(SGCT_OPENVR_INCLUDE_DIRECTORY
|
||||
NAMES SGCTOpenVR.h
|
||||
PATH_SUFFIXES SGCTOpenVR
|
||||
PATHS
|
||||
$ENV{SGCT_ROOT_DIR}/additional_includes/openvr
|
||||
${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr
|
||||
PATHS ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr
|
||||
REQUIRED
|
||||
)
|
||||
endif ()
|
||||
else()
|
||||
set(
|
||||
SGCT_OPENVR_FILES
|
||||
else ()
|
||||
set(SGCT_OPENVR_FILES
|
||||
${SGCT_OPENVR_INCLUDE_DIRECTORY}/SGCTOpenVR.h
|
||||
${SGCT_OPENVR_INCLUDE_DIRECTORY}/SGCTOpenVR.cpp
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
end_header("Dependency: OpenVR")
|
||||
endif()
|
||||
|
||||
#####
|
||||
# Spout
|
||||
# Spout
|
||||
#####
|
||||
if (SGCT_SPOUT_SUPPORT AND NOT OPENSPACE_MODULE_SPOUT)
|
||||
set(SPOUT_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/spout)
|
||||
set(SPOUT_LIBRARY ${CMAKE_CURRENT_SOURCE_DIR}/ext/spout/SpoutLibrary.lib)
|
||||
set(SPOUT_DEFINITIONS "OPENSPACE_HAS_SPOUT")
|
||||
|
||||
add_external_library_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/ext/spout/SpoutLibrary.dll)
|
||||
message(WARNING "Spout support from SGCT was requested, but OpenSpace Spout module was disabled")
|
||||
message(STATUS "Enabling module as dependency")
|
||||
set(OPENSPACE_MODULE_SPOUT ON CACHE BOOL "Build OPENSPACE_MODULE_SPOUTModule" FORCE)
|
||||
endif ()
|
||||
|
||||
set(MACOSX_BUNDLE_ICON_FILE openspace.icns)
|
||||
@@ -99,17 +93,59 @@ target_include_directories(
|
||||
${SPOUT_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_link_libraries(OpenSpace
|
||||
libOpenSpace
|
||||
${OPENVR_LIBRARY}
|
||||
${SPOUT_LIBRARY}
|
||||
)
|
||||
target_link_libraries(OpenSpace openspace-core ${OPENVR_LIBRARY} ${SPOUT_LIBRARY})
|
||||
|
||||
target_compile_definitions(OpenSpace PRIVATE
|
||||
${SGCT_OPENVR_DEFINITIONS}
|
||||
${SPOUT_DEFINITIONS}
|
||||
)
|
||||
|
||||
begin_header("Dependency: SGCT")
|
||||
|
||||
set(SGCT_TEXT OFF CACHE BOOL "" FORCE)
|
||||
set(SGCT_BUILD_CSHARP_PROJECTS OFF CACHE BOOL "" FORCE)
|
||||
set(SGCT_LIGHT_ONLY ON CACHE BOOL "" FORCE)
|
||||
set(SGCT_CUSTOMOUTPUTDIRS OFF CACHE BOOL "" FORCE)
|
||||
set(JPEG_TURBO_WITH_SIMD 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
|
||||
sgct_light glew glfw png16_static quat tinyxml2static turbojpeg-static
|
||||
vrpn
|
||||
${GLFW_LIBRARIES}
|
||||
)
|
||||
|
||||
mark_as_advanced(EXECUTABLE_OUTPUT_PATH GLFW_BUILD_DOCS GLFW_BUILD_EXAMPLES
|
||||
GLFW_BUILD_TESTS GLFW_INSTALL GLFW_USE_HYBRID_HPG GLFW_USE_OSMESA GLFW_VULKAN_STATIC
|
||||
INSTALL_BIN_DIR INSTALL_INC_DIR INSTALL_LIB_DIR INSTALL_MAN_DIR INSTALL_PKGCONFIG_DIR
|
||||
IOKIT_LIBRARY JPEG_TURBO_FORCE32bit JPEG_TURBO_WITH_12BIT JPEG_TURBO_WITH_ARITH_DEC
|
||||
JPEG_TURBO_WITH_ARITH_ENC JPEG_TURBO_WITH_JPEG7 JPEG_TURBO_WITH_JPEG8
|
||||
JPEG_TURBO_WITH_MEM_SRCDST JPEG_TURBO_WITH_SIMD JPEG_TURBO_WITH_TURBOJPEG LIB_SUFFIX
|
||||
LIBRARY_OUTPUT_PATH M_LIBRARY SGCT_BUILD_ALUT SGCT_BUILD_CSHARP_PROJECTS
|
||||
SGCT_CUSTOMOUTPUTDIRS SGCT_DOXYGEN SGCT_DOXYGEN_QUIET SGCT_EXAMPLES SGCT_INSTALL
|
||||
SGCT_LIGHT_ONLY SGCT_NO_EXTERNAL_LIBRARIES SGCT_SPOUT_SUPPORT SGCT_TEXT
|
||||
SGCT_USE_MSVC_RUNTIMES USE_MSVC_RUNTIME_LIBRARY_DLL)
|
||||
|
||||
set_folder_location(sgct_light "External")
|
||||
set_folder_location(glew "External/SGCT")
|
||||
set_folder_location(glfw "External/SGCT")
|
||||
set_folder_location(png16_static "External/SGCT")
|
||||
set_folder_location(quat "External/SGCT")
|
||||
set_folder_location(simd "External/SGCT")
|
||||
set_folder_location(tinyxml2static "External/SGCT")
|
||||
set_folder_location(turbojpeg-static "External/SGCT")
|
||||
set_folder_location(vrpn "External/SGCT")
|
||||
set_folder_location(zlibstatic "External/SGCT")
|
||||
set_folder_location(miniziplibstatic "External/SGCT")
|
||||
|
||||
if (UNIX AND (NOT APPLE))
|
||||
target_link_libraries(OpenSpace Xcursor Xinerama X11)
|
||||
endif ()
|
||||
|
||||
end_header("Dependency: SGCT")
|
||||
|
||||
|
||||
# Web Browser and Web gui
|
||||
# Why not put these in the module's path? Because they do not have access to the
|
||||
@@ -133,16 +169,9 @@ elseif (OPENSPACE_MODULE_WEBBROWSER)
|
||||
message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.")
|
||||
endif ()
|
||||
|
||||
if (OPENSPACE_MODULE_WEBGUI AND WEBGUI_MODULE_PATH)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBGUI_MODULE_PATH}/cmake")
|
||||
include(webgui_helpers)
|
||||
build_webgui_source(OpenSpace)
|
||||
elseif(OPENSPACE_MODULE_WEBGUI)
|
||||
message(WARNING "WebGui is configured to be included, but the web source could not be found. Try configuring CMake again.")
|
||||
endif()
|
||||
# End Web Browser and Web gui
|
||||
|
||||
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 Dbghelp.lib)
|
||||
endif()
|
||||
end_header()
|
||||
endif ()
|
||||
|
||||
1
apps/OpenSpace/ext/sgct
Submodule
1
apps/OpenSpace/ext/sgct
Submodule
Submodule apps/OpenSpace/ext/sgct added at a29d90e30c
@@ -70,6 +70,7 @@ constexpr const char* SpoutTag = "Spout";
|
||||
constexpr const char* OpenVRTag = "OpenVR";
|
||||
|
||||
sgct::Engine* SgctEngine;
|
||||
sgct::SharedVector<char> _synchronizationBuffer;
|
||||
|
||||
#ifdef OPENVR_SUPPORT
|
||||
sgct::SGCTWindow* FirstOpenVRWindow = nullptr;
|
||||
@@ -142,10 +143,10 @@ LONG WINAPI generateMiniDump(EXCEPTION_POINTERS* exceptionPointers) {
|
||||
dumpFile.c_str(),
|
||||
GENERIC_READ | GENERIC_WRITE,
|
||||
FILE_SHARE_WRITE | FILE_SHARE_READ,
|
||||
0,
|
||||
nullptr,
|
||||
CREATE_ALWAYS,
|
||||
0,
|
||||
0
|
||||
nullptr
|
||||
);
|
||||
|
||||
MINIDUMP_EXCEPTION_INFORMATION exceptionParameter;
|
||||
@@ -309,11 +310,10 @@ void mainInitFunc() {
|
||||
std::tm* nowTime = std::localtime(&now);
|
||||
char mbstr[128];
|
||||
strftime(mbstr, sizeof(mbstr), "%Y-%m-%d-%H-%M", nowTime);
|
||||
screenshotPath += "/" + std::string(mbstr);
|
||||
|
||||
FileSys.registerPathToken(
|
||||
"${SCREENSHOTS}",
|
||||
absPath(screenshotPath),
|
||||
absPath(screenshotPath + '/' + std::string(mbstr)),
|
||||
ghoul::filesystem::FileSystem::Override::Yes
|
||||
);
|
||||
}
|
||||
@@ -358,13 +358,13 @@ void mainPreSyncFunc() {
|
||||
if (!state.isConnected) {
|
||||
// Joystick was added
|
||||
state.isConnected = true;
|
||||
state.name = SgctEngine->getJoystickName(i);
|
||||
state.name = sgct::Engine::getJoystickName(i);
|
||||
|
||||
std::fill(state.axes.begin(), state.axes.end(), 0.f);
|
||||
std::fill(state.buttons.begin(), state.buttons.end(), JoystickAction::Idle);
|
||||
}
|
||||
|
||||
const float* axes = SgctEngine->getJoystickAxes(i, &state.nAxes);
|
||||
const float* axes = sgct::Engine::getJoystickAxes(i, &state.nAxes);
|
||||
if (state.nAxes > JoystickInputState::MaxAxes) {
|
||||
LWARNING(fmt::format(
|
||||
"Joystick/Gamepad {} has {} axes, but only {} axes are supported. "
|
||||
@@ -375,7 +375,10 @@ void mainPreSyncFunc() {
|
||||
}
|
||||
std::memcpy(state.axes.data(), axes, state.nAxes * sizeof(float));
|
||||
|
||||
const unsigned char* buttons = SgctEngine->getJoystickButtons(i, &state.nButtons);
|
||||
const unsigned char* buttons = sgct::Engine::getJoystickButtons(
|
||||
i,
|
||||
&state.nButtons
|
||||
);
|
||||
|
||||
if (state.nButtons > JoystickInputState::MaxButtons) {
|
||||
LWARNING(fmt::format(
|
||||
@@ -441,7 +444,7 @@ void mainRenderFunc() {
|
||||
LTRACE("main::mainRenderFunc(begin)");
|
||||
|
||||
glm::mat4 viewMatrix = SgctEngine->getCurrentViewMatrix() *
|
||||
glm::translate(glm::mat4(1.f), SgctEngine->getDefaultUserPtr()->getPos());
|
||||
glm::translate(glm::mat4(1.f), sgct::Engine::getDefaultUserPtr()->getPos());
|
||||
|
||||
glm::mat4 projectionMatrix = SgctEngine->getCurrentProjectionMatrix();
|
||||
#ifdef OPENVR_SUPPORT
|
||||
@@ -581,7 +584,9 @@ void mainCharCallback(unsigned int codepoint, int mods) {
|
||||
|
||||
void mainEncodeFun() {
|
||||
LTRACE("main::mainEncodeFun(begin)");
|
||||
openspace::global::openSpaceEngine.encode();
|
||||
std::vector<char> data = openspace::global::openSpaceEngine.encode();
|
||||
_synchronizationBuffer.setVal(std::move(data));
|
||||
sgct::SharedData::instance()->writeVector(&_synchronizationBuffer);
|
||||
LTRACE("main::mainEncodeFun(end)");
|
||||
}
|
||||
|
||||
@@ -589,7 +594,9 @@ void mainEncodeFun() {
|
||||
|
||||
void mainDecodeFun() {
|
||||
LTRACE("main::mainDecodeFun(begin)");
|
||||
openspace::global::openSpaceEngine.decode();
|
||||
sgct::SharedData::instance()->readVector(&_synchronizationBuffer);
|
||||
std::vector<char> data = _synchronizationBuffer.getVal();
|
||||
openspace::global::openSpaceEngine.decode(std::move(data));
|
||||
LTRACE("main::mainDecodeFun(end)");
|
||||
}
|
||||
|
||||
@@ -636,14 +643,14 @@ void setSgctDelegateFunctions() {
|
||||
sgctDelegate.mousePosition = []() {
|
||||
int id = sgct::Engine::instance()->getCurrentWindowPtr()->getId();
|
||||
double posX, posY;
|
||||
sgct::Engine::instance()->getMousePos(id, &posX, &posY);
|
||||
sgct::Engine::getMousePos(id, &posX, &posY);
|
||||
return glm::vec2(posX, posY);
|
||||
};
|
||||
sgctDelegate.mouseButtons = [](int maxNumber) {
|
||||
int id = sgct::Engine::instance()->getCurrentWindowPtr()->getId();
|
||||
uint32_t result = 0;
|
||||
for (int i = 0; i < maxNumber; ++i) {
|
||||
bool button = (sgct::Engine::instance()->getMouseButton(id, i) != 0);
|
||||
bool button = (sgct::Engine::getMouseButton(id, i) != 0);
|
||||
if (button) {
|
||||
result |= (1 << i);
|
||||
}
|
||||
@@ -735,10 +742,10 @@ void setSgctDelegateFunctions() {
|
||||
};
|
||||
sgctDelegate.isMaster = []() { return sgct::Engine::instance()->isMaster(); };
|
||||
sgctDelegate.isUsingSwapGroups = []() {
|
||||
return sgct::Engine::instance()->getCurrentWindowPtr()->isUsingSwapGroups();
|
||||
return sgct::SGCTWindow::isUsingSwapGroups();
|
||||
};
|
||||
sgctDelegate.isSwapGroupMaster = []() {
|
||||
return sgct::Engine::instance()->getCurrentWindowPtr()->isSwapGroupMaster();
|
||||
return sgct::SGCTWindow::isSwapGroupMaster();
|
||||
};
|
||||
sgctDelegate.viewProjectionMatrix = []() {
|
||||
return sgct::Engine::instance()->getCurrentModelViewProjectionMatrix();
|
||||
@@ -796,6 +803,9 @@ void setSgctDelegateFunctions() {
|
||||
sgctDelegate.currentWindowId = []() {
|
||||
return sgct::Engine::instance()->getCurrentWindowPtr()->getId();
|
||||
};
|
||||
sgctDelegate.openGLProcedureAddress = [](const char* func) {
|
||||
return glfwGetProcAddress(func);
|
||||
};
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
@@ -822,6 +832,14 @@ int main(int argc, char** argv) {
|
||||
|
||||
ghoul::initialize();
|
||||
|
||||
// Register the path of the executable,
|
||||
// to make it possible to find other files in the same directory.
|
||||
FileSys.registerPathToken(
|
||||
"${BIN}",
|
||||
ghoul::filesystem::File(absPath(argv[0])).directoryName(),
|
||||
ghoul::filesystem::FileSystem::Override::Yes
|
||||
);
|
||||
|
||||
//
|
||||
// Parse commandline arguments
|
||||
//
|
||||
@@ -849,13 +867,18 @@ int main(int argc, char** argv) {
|
||||
"evaluated before it is passed to OpenSpace."
|
||||
));
|
||||
|
||||
std::vector<std::string> sgctArguments = parser.setCommandLine({ argv, argv + argc });
|
||||
// setCommandLine returns a referece to the vector that will be filled later
|
||||
const std::vector<std::string>& sgctArguments = parser.setCommandLine(
|
||||
{ argv, argv + argc }
|
||||
);
|
||||
|
||||
bool showHelp = parser.execute();
|
||||
if (showHelp) {
|
||||
parser.displayHelp(std::cout);
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
// Take an actual copy of the arguments
|
||||
std::vector<std::string> arguments = sgctArguments;
|
||||
|
||||
//
|
||||
// Set up SGCT functions for window delegate
|
||||
@@ -927,9 +950,9 @@ int main(int argc, char** argv) {
|
||||
|
||||
// Prepend the outgoing sgctArguments with the program name
|
||||
// as well as the configuration file that sgct is supposed to use
|
||||
sgctArguments.insert(sgctArguments.begin(), argv[0]);
|
||||
sgctArguments.insert(sgctArguments.begin() + 1, "-config");
|
||||
sgctArguments.insert(sgctArguments.begin() + 2, absPath(windowConfiguration));
|
||||
arguments.insert(arguments.begin(), argv[0]);
|
||||
arguments.insert(arguments.begin() + 1, "-config");
|
||||
arguments.insert(arguments.begin() + 2, absPath(windowConfiguration));
|
||||
|
||||
// Need to set this before the creation of the sgct::Engine
|
||||
sgct::MessageHandler::instance()->setLogToConsole(false);
|
||||
@@ -942,7 +965,7 @@ int main(int argc, char** argv) {
|
||||
#endif
|
||||
|
||||
LDEBUG("Creating SGCT Engine");
|
||||
SgctEngine = new sgct::Engine(sgctArguments);
|
||||
SgctEngine = new sgct::Engine(arguments);
|
||||
|
||||
// Bind functions
|
||||
SgctEngine->setInitOGLFunction(mainInitFunc);
|
||||
@@ -985,6 +1008,32 @@ int main(int argc, char** argv) {
|
||||
LINFO(fmt::format("Detected OpenGL version: {}.{}", version.first, version.second));
|
||||
bool initSuccess = SgctEngine->init(versionMapping[version]);
|
||||
|
||||
#ifdef __APPLE__
|
||||
// Workaround for OpenGL bug that Apple introduced in 10.14 Mojave that prevents an
|
||||
// OpenGL context to display anything until it is first moved or resized in dark
|
||||
// mode. So we are going through all windows here and resize them a bit larger and
|
||||
// then back to the desired resolution. Resizing the window to the same size doesn't
|
||||
// work as GLFW probably has a check for setting the current values.
|
||||
// This can be removed once the OpenGL bug is fixed.
|
||||
// In order to check, comment out the following lines and start OpenSpace on a 10.14
|
||||
// machine. If the loading screen shows up without doing anything to the window, it
|
||||
// is fixed. With the bug, the rendering stays gray even well after the main render
|
||||
// loop has started -- 2018-10-28 abock
|
||||
size_t n = sgct::Engine::instance()->getNumberOfWindows();
|
||||
for (size_t i = 0; i < n; ++i) {
|
||||
GLFWwindow* w = sgct::Engine::instance()->getWindowPtr(i)->getWindowHandle();
|
||||
int x, y;
|
||||
glfwGetWindowPos(w, &x, &y);
|
||||
glfwSetWindowPos(w, x + 1, y + 1);
|
||||
glfwSwapBuffers(w);
|
||||
glfwPollEvents();
|
||||
glfwSetWindowPos(w, x, y);
|
||||
glfwSwapBuffers(w);
|
||||
glfwPollEvents();
|
||||
}
|
||||
#endif // __APPLE__
|
||||
|
||||
|
||||
// Do not print message if slaves are waiting for the master
|
||||
// Only timeout after 15 minutes
|
||||
SgctEngine->setSyncParameters(false, 15.f * 60.f);
|
||||
|
||||
@@ -31,15 +31,32 @@ set_source_files_properties(
|
||||
|
||||
set(MACOSX_BUNDLE_ICON_FILE openspace.icns)
|
||||
|
||||
create_new_application(
|
||||
Sync
|
||||
MACOSX_BUNDLE
|
||||
create_new_application(Sync MACOSX_BUNDLE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/openspace.rc
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
Sync
|
||||
libOpenSpace
|
||||
)
|
||||
target_link_libraries(Sync openspace-core)
|
||||
|
||||
# Web Browser and Web gui
|
||||
# Why not put these in the module's path? Because they do not have access to the
|
||||
# target as of July 2017, which is needed.
|
||||
if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT)
|
||||
# wanted by CEF
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE")
|
||||
|
||||
if (WIN32)
|
||||
set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc)
|
||||
endif ()
|
||||
|
||||
# Add the CEF binary distribution's cmake/ directory to the module path and
|
||||
# find CEF to initialize it properly.
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake")
|
||||
include(webbrowser_helpers)
|
||||
|
||||
set_cef_targets("${CEF_ROOT}" Sync)
|
||||
run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}")
|
||||
elseif (OPENSPACE_MODULE_WEBBROWSER)
|
||||
message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.")
|
||||
endif ()
|
||||
|
||||
@@ -1 +1 @@
|
||||
set(DEFAULT_APPLICATION ON)
|
||||
set(DEFAULT_APPLICATION OFF)
|
||||
|
||||
@@ -31,15 +31,32 @@ set_source_files_properties(
|
||||
|
||||
set(MACOSX_BUNDLE_ICON_FILE openspace.icns)
|
||||
|
||||
create_new_application(
|
||||
TaskRunner
|
||||
MACOSX_BUNDLE
|
||||
create_new_application(TaskRunner MACOSX_BUNDLE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/openspace.rc
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
TaskRunner
|
||||
libOpenSpace
|
||||
)
|
||||
target_link_libraries(TaskRunner openspace-core)
|
||||
|
||||
# Web Browser and Web gui
|
||||
# Why not put these in the module's path? Because they do not have access to the
|
||||
# target as of July 2017, which is needed.
|
||||
if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT)
|
||||
# wanted by CEF
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE")
|
||||
|
||||
if (WIN32)
|
||||
set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc)
|
||||
endif ()
|
||||
|
||||
# Add the CEF binary distribution's cmake/ directory to the module path and
|
||||
# find CEF to initialize it properly.
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake")
|
||||
include(webbrowser_helpers)
|
||||
|
||||
set_cef_targets("${CEF_ROOT}" TaskRunner)
|
||||
run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}")
|
||||
elseif (OPENSPACE_MODULE_WEBBROWSER)
|
||||
message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.")
|
||||
endif ()
|
||||
|
||||
@@ -1 +1 @@
|
||||
set(DEFAULT_APPLICATION ON)
|
||||
set(DEFAULT_APPLICATION OFF)
|
||||
|
||||
@@ -111,7 +111,6 @@ int main(int argc, char** argv) {
|
||||
openspace::global::openSpaceEngine.registerPathTokens();
|
||||
global::openSpaceEngine.initialize();
|
||||
|
||||
|
||||
ghoul::cmdparser::CommandlineParser commandlineParser(
|
||||
"OpenSpace TaskRunner",
|
||||
ghoul::cmdparser::CommandlineParser::AllowUnknownCommands::Yes
|
||||
|
||||
@@ -39,7 +39,26 @@ create_new_application(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
Wormhole
|
||||
libOpenSpace
|
||||
)
|
||||
target_link_libraries(Wormhole openspace-core)
|
||||
|
||||
# Web Browser and Web gui
|
||||
# Why not put these in the module's path? Because they do not have access to the
|
||||
# target as of July 2017, which is needed.
|
||||
if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT)
|
||||
# wanted by CEF
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE")
|
||||
|
||||
if (WIN32)
|
||||
set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc)
|
||||
endif ()
|
||||
|
||||
# Add the CEF binary distribution's cmake/ directory to the module path and
|
||||
# find CEF to initialize it properly.
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake")
|
||||
include(webbrowser_helpers)
|
||||
|
||||
set_cef_targets("${CEF_ROOT}" Wormhole)
|
||||
run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}")
|
||||
elseif (OPENSPACE_MODULE_WEBBROWSER)
|
||||
message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.")
|
||||
endif ()
|
||||
|
||||
45
config/spherical_mirror_gui.xml
Normal file
45
config/spherical_mirror_gui.xml
Normal file
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="127.0.0.1">
|
||||
<Node ip="127.0.0.1" port="20401">
|
||||
<Window fullscreen="false" fxaa="false" msaa="1" name="Spherical Projection">
|
||||
<Stereo type="none" />
|
||||
<Pos x="0" y="100" />
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1280" y="720" />
|
||||
<Res x="2048" y="2048" />
|
||||
<!--
|
||||
quality options (cubemap size):
|
||||
- low (256)
|
||||
- medium (512)
|
||||
- high/1k (1024)
|
||||
- 2k (2048)
|
||||
- 4k (4096)
|
||||
- 8k (8192)
|
||||
tilt specifies the dome tilt angle in degrees from the horizontal
|
||||
-->
|
||||
<Viewport name="warped fisheye" mesh="mesh/standard_16x9.data">
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<FisheyeProjection fov="180" quality="2k" tilt="30.0">
|
||||
<Background r="0.1" g="0.1" b="0.1" a="1.0" />
|
||||
</FisheyeProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
<Window fullScreen="false" msaa="1" name="GUI" tags="GUI">
|
||||
<Stereo type="none" />
|
||||
<Size x="1280" y="720" />
|
||||
<Pos x="50" y="50" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<PlanarProjection>
|
||||
<FOV down="16.875" left="30.0" right="30.0" up="16.875" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<User eyeSeparation="0.06">
|
||||
<Pos x="0.0" y="0.0" z="0.0" />
|
||||
</User>
|
||||
</Cluster>
|
||||
@@ -1,6 +1,9 @@
|
||||
-- Add require statements for assets exporting the neccessary globes
|
||||
-- example:
|
||||
-- asset.require('../scene/solarsystem/planets/mars/mars')
|
||||
asset.require('../scene/solarsystem/planets/mars/mars')
|
||||
asset.require('../scene/solarsystem/planets/earth/moon/moon')
|
||||
asset.require('../scene/solarsystem/planets/mercury/mercury')
|
||||
|
||||
|
||||
local CreateFocusNodes = false
|
||||
|
||||
@@ -14,11 +17,12 @@ local vrt_folders = {
|
||||
-- Add folders here whose contents will be automatically added to the Mars globe
|
||||
-- If multiple folders are added, the results will be added sequentially, meaning that
|
||||
-- if areas overlap (for example CTX and HiRISE) and CTX is specified *after* HiRISE,
|
||||
-- CTX will stomp over the HiRISE
|
||||
--
|
||||
-- CTX will stomp over the HiRISE.
|
||||
|
||||
-- tl;dr: Specify CTX folders first, then HiRISE
|
||||
-- example: 'C:/OpenSpace/GlobeBrowsingData/Mars/CTX'
|
||||
'',
|
||||
openspace.absPath('${BASE}/../OpenSpaceData/Mars/CTX'),
|
||||
openspace.absPath('${BASE}/../OpenSpaceData/Mars/HiRISE'),
|
||||
'',
|
||||
},
|
||||
Moon = {
|
||||
@@ -27,6 +31,16 @@ local vrt_folders = {
|
||||
-- if areas overlap, images from the lower results will overwrite the images from former
|
||||
-- results
|
||||
-- example: 'C:/OpenSpace/GlobeBrowsingData/Moon'
|
||||
openspace.absPath('${BASE}/../OpenSpaceData/Moon'),
|
||||
''
|
||||
},
|
||||
Mercury = {
|
||||
-- Add folders here whose contents will be automatically added to the Mercury globe
|
||||
-- If multiple folders are added, the results will be added sequentially, meaning that
|
||||
-- if areas overlap, images from the lower results will overwrite the images from former
|
||||
-- results
|
||||
-- example: 'C:/OpenSpace/GlobeBrowsingData/Mercury'
|
||||
openspace.absPath('${BASE}/../OpenSpaceData/Mercury'),
|
||||
''
|
||||
}
|
||||
}
|
||||
|
||||
8
data/assets/customization/gui.asset
Normal file
8
data/assets/customization/gui.asset
Normal file
@@ -0,0 +1,8 @@
|
||||
asset.export("webguiDevelopmentMode", false)
|
||||
|
||||
-- To make changes to the webgui:
|
||||
|
||||
-- 1) Set the above `webguiDevelopmentMode` to true
|
||||
-- 2) Clone the repository: https://github.com/OpenSpace/OpenSpace-WebGuiFrontend
|
||||
-- 3) Install nodejs (including npm)
|
||||
-- 4) Within the repository, run `npm install` and `npm start`
|
||||
@@ -15,6 +15,7 @@ asset.require('scene/solarsystem/missions/dawn/vesta')
|
||||
asset.require('util/default_keybindings')
|
||||
asset.require('util/default_dashboard')
|
||||
|
||||
asset.require('util/webgui')
|
||||
|
||||
local DawnAsset = asset.require('scene/solarsystem/missions/dawn/dawn')
|
||||
|
||||
@@ -30,7 +31,7 @@ asset.onInitialize(function ()
|
||||
openspace.addVirtualProperty(
|
||||
"BoolProperty",
|
||||
"Show Trails",
|
||||
"*Trail.renderable.Enabled",
|
||||
"*Trail.Renderable.Enabled",
|
||||
"Disable or enable all trails of the scene at the same time",
|
||||
true,
|
||||
nil,
|
||||
@@ -45,7 +46,7 @@ asset.onInitialize(function ()
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
openspace.removeVirtualProperty("*Trail.renderable.Enabled")
|
||||
openspace.removeVirtualProperty("*Trail.Renderable.Enabled")
|
||||
openspace.removeInterestingNodes({
|
||||
"Dawn", "Ceres", "Vesta"
|
||||
})
|
||||
|
||||
@@ -15,49 +15,63 @@ asset.require('util/default_keybindings')
|
||||
asset.require('util/default_dashboard')
|
||||
asset.require('util/default_joystick')
|
||||
|
||||
asset.require('util/webgui')
|
||||
|
||||
asset.request('customization/globebrowsing')
|
||||
|
||||
-- Keybindings that are specific for this scene
|
||||
local Keybindings = {
|
||||
{
|
||||
Key = "s",
|
||||
Command = propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.Enabled') ..
|
||||
propertyHelper.invert('Scene.Earth.RenderableGlobe.PerformShading') ..
|
||||
propertyHelper.invert('Scene.Earth.RenderableGlobe.Atmosphere') ..
|
||||
propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.Enabled'),
|
||||
Command = propertyHelper.invert('Scene.Earth.Renderable.Layers.NightLayers.Earth at Night 2012.Enabled') ..
|
||||
propertyHelper.invert('Scene.Earth.Renderable.PerformShading') ..
|
||||
propertyHelper.invert('Scene.Earth.Renderable.Atmosphere') ..
|
||||
propertyHelper.invert('Scene.Earth.Renderable.Layers.WaterMasks.MODIS_Water_Mask.Enabled'),
|
||||
Name = "Night for earth",
|
||||
Documentation = "Toggle night texture, shading, atmosphere, and water for Earth.",
|
||||
GuiPath = "/Rendering",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "b",
|
||||
Command = propertyHelper.invert('Scene.MilkyWay.renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.Stars.renderable.Enabled'),
|
||||
Name = "Toggle background",
|
||||
Command = propertyHelper.invert('Scene.MilkyWay.Renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.Stars.Renderable.Enabled'),
|
||||
Documentation = "Toggle background (Stars and Milkyway).",
|
||||
GuiPath = "/Rendering",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "g",
|
||||
Command = propertyHelper.invert('Scene.MilkyWay.renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.Stars.renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.NightLayers.Earth_at_Night_2012.Enabled') ..
|
||||
propertyHelper.invert('Scene.EarthAtmosphere.renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.MarsAtmosphere.renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.Enabled') ..
|
||||
propertyHelper.invert('Scene.Moon.RenderableGlobe.Enabled') ..
|
||||
propertyHelper.invert('Scene.Sun.renderable.Enabled'),
|
||||
Name = "Toggle background/shading",
|
||||
Command = propertyHelper.invert('Scene.MilkyWay.Renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.Stars.Renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Enabled') ..
|
||||
propertyHelper.invert('Scene.EarthAtmosphere.Renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.MarsAtmosphere.Renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.Earth.Renderable.Layers.WaterMasks.MODIS_Water_Mask.Enabled') ..
|
||||
propertyHelper.invert('Scene.Moon.Renderable.Enabled') ..
|
||||
propertyHelper.invert('Scene.Sun.Renderable.Enabled'),
|
||||
Documentation = "Toogles background and shading mode on the Earth and Mars alongside visibility of the Moon and the Sun",
|
||||
GuiPath = "/Rendering",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "h",
|
||||
Command = "openspace.setPropertyValue('Scene.*Trail.renderable.Enabled', false)",
|
||||
Name="Hide Trails",
|
||||
Command = "openspace.setPropertyValue('Scene.*Trail.Renderable.Enabled', false)",
|
||||
Documentation = "Disables visibility of the trails",
|
||||
GuiPath = "/Rendering",
|
||||
Local = false
|
||||
},
|
||||
}
|
||||
|
||||
local earthAsset = asset.require('scene/solarsystem/planets/earth/earth')
|
||||
|
||||
assetHelper.registerInterestingNodes(asset, {
|
||||
"Earth", "Mars", "Moon", "Sun"
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
local now = openspace.time.currentWallTime()
|
||||
-- Jump back one day to show a complete planet
|
||||
@@ -71,14 +85,10 @@ asset.onInitialize(function ()
|
||||
openspace.absPath("${DATA}/globebrowsing_servers.lua")
|
||||
)
|
||||
|
||||
openspace.markInterestingNodes({
|
||||
"Earth", "Mars", "Moon"
|
||||
})
|
||||
|
||||
openspace.addVirtualProperty(
|
||||
"BoolProperty",
|
||||
"Show Trails",
|
||||
"Scene.*Trail.renderable.Enabled",
|
||||
"Scene.*Trail.Renderable.Enabled",
|
||||
"Disable or enable all trails of the scene at the same time",
|
||||
true,
|
||||
nil,
|
||||
@@ -97,9 +107,5 @@ end)
|
||||
asset.onDeinitialize(function ()
|
||||
sceneHelper.unbindKeys(Keybindings)
|
||||
|
||||
openspace.removeVirtualProperty("*Trail.renderable.Enabled")
|
||||
|
||||
openspace.removeInterestingNodes({
|
||||
"Earth", "Mars", "Moon"
|
||||
})
|
||||
openspace.removeVirtualProperty("*Trail.Renderable.Enabled")
|
||||
end)
|
||||
|
||||
@@ -44,7 +44,7 @@ assetHelper.registerDashboardItems(asset, {
|
||||
Type = "DashboardItemPropertyValue",
|
||||
Identifier = "asd",
|
||||
GuiName = "adasd",
|
||||
URI = "Scene.Earth.RenderableGlobe.Enabled",
|
||||
URI = "Scene.Earth.Renderable.Enabled",
|
||||
DisplayString = "Earth is enabled: {}"
|
||||
}
|
||||
})
|
||||
|
||||
19
data/assets/examples/debugcoordinateaxes.asset
Normal file
19
data/assets/examples/debugcoordinateaxes.asset
Normal file
@@ -0,0 +1,19 @@
|
||||
local transforms = asset.require('scene/solarsystem/planets/earth/transforms')
|
||||
local debugHelper = asset.require('util/debug_helper')
|
||||
|
||||
local earthRadius = 6.371E6
|
||||
|
||||
debugHelper.registerCartesianAxes(asset, {
|
||||
Parent = transforms.EarthBarycenter.Identifier,
|
||||
Scale = earthRadius * 3.5
|
||||
})
|
||||
|
||||
debugHelper.registerCartesianAxes(asset, {
|
||||
Parent = transforms.EarthInertial.Identifier,
|
||||
Scale = earthRadius * 2.5
|
||||
})
|
||||
|
||||
debugHelper.registerCartesianAxes(asset, {
|
||||
Parent = transforms.EarthIAU.Identifier,
|
||||
Scale = earthRadius * 1.5
|
||||
})
|
||||
74
data/assets/examples/globetranslation.asset
Normal file
74
data/assets/examples/globetranslation.asset
Normal file
@@ -0,0 +1,74 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local earth = asset.require('scene/solarsystem/planets/earth/earth')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
|
||||
|
||||
local textures = asset.syncedResource({
|
||||
Name = "New Horizons Textures",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "newhorizons_textures",
|
||||
Version = 3
|
||||
})
|
||||
|
||||
local models = asset.syncedResource({
|
||||
Name = "New Horizons Model",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "newhorizons_model",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local Example_Fixed_Height = {
|
||||
Identifier = "Example_Fixed_Height",
|
||||
Parent = earth.Earth.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = earth.Earth.Identifier,
|
||||
Longitude = 0.0,
|
||||
Latitude = 0.0,
|
||||
FixedAltitude = 10000000.0
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Body = "NEW HORIZONS",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models .. "/NewHorizonsCleanModel.obj"
|
||||
},
|
||||
ColorTexture = textures .. "/NHTexture.jpg",
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Example"
|
||||
}
|
||||
}
|
||||
|
||||
local Example_Adaptive_Height = {
|
||||
Identifier = "Example_Adaptive_Height",
|
||||
Parent = earth.Earth.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = earth.Earth.Identifier,
|
||||
Longitude = -74.006,
|
||||
Latitude = 40.7128
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Body = "NEW HORIZONS",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models .. "/NewHorizonsCleanModel.obj"
|
||||
},
|
||||
ColorTexture = textures .. "/NHTexture.jpg",
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Example"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
Example_Fixed_Height,
|
||||
Example_Adaptive_Height
|
||||
})
|
||||
@@ -11,7 +11,7 @@ asset.onInitialize(function ()
|
||||
helper.addSlide(deck, "${DATA}/test2.jpg")
|
||||
helper.addSlide(deck, "${DATA}/test3.jpg")
|
||||
|
||||
local interpolationDuration = 0
|
||||
local interpolationDuration = 0.5
|
||||
|
||||
function nextSlide()
|
||||
helper.goToNextSlide(deck, interpolationDuration)
|
||||
@@ -21,9 +21,14 @@ asset.onInitialize(function ()
|
||||
helper.goToPreviousSlide(deck, interpolationDuration)
|
||||
end
|
||||
|
||||
function toggleSlides()
|
||||
helper.toggleSlides(deck, interpolationDuration)
|
||||
end
|
||||
|
||||
helper.setCurrentSlide(deck, 1)
|
||||
openspace.bindKey("RIGHT", "nextSlide()")
|
||||
openspace.bindKey("LEFT", "previousSlide()")
|
||||
openspace.bindKey("RIGHT", "nextSlide()", "Next slide", "Next slide", "/Slides")
|
||||
openspace.bindKey("LEFT", "previousSlide()", "Previous slide", "Previous slide", "/Slides")
|
||||
openspace.bindKey("UP", "toggleSlides()", "Toggle slides", "Toggle slides", "/Slides")
|
||||
|
||||
end)
|
||||
|
||||
|
||||
@@ -4,21 +4,21 @@ states = {
|
||||
{
|
||||
Title = "Highlight EarthTrail",
|
||||
Play = function ()
|
||||
openspace.setPropertyValue("Scene.EarthTrail.renderable.LineWidth", 10, 1)
|
||||
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 10, 1)
|
||||
end,
|
||||
Rewind = function ()
|
||||
openspace.setPropertyValue("Scene.EarthTrail.renderable.LineWidth", 2, 1)
|
||||
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 2, 1)
|
||||
end
|
||||
},
|
||||
{
|
||||
Title = "Highlight MarsTrail",
|
||||
Play = function ()
|
||||
openspace.setPropertyValue("Scene.EarthTrail.renderable.LineWidth", 2, 1)
|
||||
openspace.setPropertyValue("Scene.MarsTrail.renderable.LineWidth", 10, 1)
|
||||
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 2, 1)
|
||||
openspace.setPropertyValue("Scene.MarsTrail.Renderable.LineWidth", 10, 1)
|
||||
end,
|
||||
Rewind = function ()
|
||||
openspace.setPropertyValue("Scene.MarsTrail.renderable.LineWidth", 2, 1)
|
||||
openspace.setPropertyValue("Scene.EarthTrail.renderable.LineWidth", 10, 1)
|
||||
openspace.setPropertyValue("Scene.MarsTrail.Renderable.LineWidth", 2, 1)
|
||||
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 10, 1)
|
||||
end
|
||||
}
|
||||
}
|
||||
|
||||
40
data/assets/gaia.scene
Normal file
40
data/assets/gaia.scene
Normal file
@@ -0,0 +1,40 @@
|
||||
local has_gaia = openspace.modules.isLoaded('gaia')
|
||||
if not has_gaia then
|
||||
openspace.printFatal('Could not load scene "' .. asset.filePath .. '" due to missing module "gaia"')
|
||||
do return end
|
||||
end
|
||||
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
asset.require('default')
|
||||
|
||||
-- Augment default scene with gaia data, 3D model and trail
|
||||
asset.require('scene/milkyway/gaia/gaiastars')
|
||||
asset.require('scene/milkyway/gaia/apogee')
|
||||
asset.require('scene/milkyway/gaia/galah')
|
||||
asset.require('scene/solarsystem/missions/gaia/gaia')
|
||||
asset.require('scene/solarsystem/missions/gaia/trail')
|
||||
|
||||
assetHelper.registerDashboardItems(asset, {
|
||||
{
|
||||
Type = "DashboardItemDistance",
|
||||
Identifier = "GaiaEarthDistance",
|
||||
GuiName = "Gaia Earth Distance",
|
||||
SourceType = "Node",
|
||||
SourceNodeName = "Gaia",
|
||||
DestinationType = "Node Surface",
|
||||
DestinationNodeName = "Earth"
|
||||
}
|
||||
})
|
||||
|
||||
assetHelper.registerInterestingNodes(asset, { "Gaia" })
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.setPropertyValueSingle('Scene.Stars.Renderable.Enabled', false);
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
Focus = "Gaia",
|
||||
Position = { 1000000000000.0, 1000000000000.0, 1000000000000.0 },
|
||||
Rotation = { 0.683224, -0.765934, -0.601234, -0.418073 },
|
||||
})
|
||||
end)
|
||||
@@ -14,8 +14,14 @@ asset.require('util/default_keybindings')
|
||||
asset.require('util/default_dashboard')
|
||||
asset.require('util/default_joystick')
|
||||
|
||||
asset.require('util/webgui')
|
||||
|
||||
local junoAsset = asset.require('scene/solarsystem/missions/juno/juno')
|
||||
|
||||
assetHelper.registerInterestingNodes(asset, {
|
||||
"Jupiter", "Juno"
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.time.setTime("2016-07-01T10:05:00.00")
|
||||
|
||||
@@ -26,14 +32,10 @@ asset.onInitialize(function ()
|
||||
28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600
|
||||
})
|
||||
|
||||
openspace.markInterestingNodes({
|
||||
"Jupiter", "Juno"
|
||||
})
|
||||
|
||||
openspace.addVirtualProperty(
|
||||
"BoolProperty",
|
||||
"Show Trails",
|
||||
"*Trail.renderable.Enabled",
|
||||
"*Trail.Renderable.Enabled",
|
||||
"Disable or enable all trails of the scene at the same time",
|
||||
true,
|
||||
nil,
|
||||
@@ -48,9 +50,5 @@ asset.onInitialize(function ()
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
openspace.removeVirtualProperty("*Trail.renderable.Enabled")
|
||||
|
||||
openspace.removeInterestingNodes({
|
||||
"Jupiter", "Juno"
|
||||
})
|
||||
openspace.removeVirtualProperty("*Trail.Renderable.Enabled")
|
||||
end)
|
||||
|
||||
@@ -13,6 +13,8 @@ asset.request('scene/digitaluniverse/milkyway')
|
||||
asset.require('util/default_keybindings')
|
||||
asset.require('util/default_dashboard')
|
||||
|
||||
asset.require('util/webgui')
|
||||
|
||||
local MessengerAsset = asset.require('scene/solarsystem/missions/messenger/messengerSC')
|
||||
|
||||
if not openspace.modules.isLoaded("Volume") then
|
||||
@@ -35,6 +37,9 @@ assetHelper.registerDashboardItems(asset, {
|
||||
}
|
||||
})
|
||||
|
||||
assetHelper.registerInterestingNodes(asset, {
|
||||
"Mercury", "Messenger", "Earth", "Sun"
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
|
||||
@@ -47,31 +52,19 @@ asset.onInitialize(function ()
|
||||
28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600
|
||||
})
|
||||
|
||||
openspace.markInterestingNodes({
|
||||
"Mercury", "Messenger", "Earth", "Sun"
|
||||
})
|
||||
|
||||
openspace.addVirtualProperty(
|
||||
openspace.addVirtualProperty(
|
||||
"BoolProperty",
|
||||
"Show Trails",
|
||||
"Scene.*Trail.renderable.Enabled",
|
||||
"Scene.*Trail.Renderable.Enabled",
|
||||
"Disable or enable all trails of the scene at the same time",
|
||||
true,
|
||||
nil,
|
||||
nil
|
||||
)
|
||||
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
Focus = "Mercury",
|
||||
Position = { 526781518487.171326, 257168309890.072144, -1381125204152.817383 },
|
||||
Rotation = {0.180662, 0.021334, 0.979084, 0.091111},
|
||||
})
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
openspace.removeInterestingNodes({
|
||||
"Mercury", "Messenger", "Earth", "Sun"
|
||||
})
|
||||
end)
|
||||
|
||||
|
||||
@@ -16,81 +16,105 @@ asset.require('util/default_keybindings')
|
||||
asset.require('util/default_dashboard')
|
||||
asset.require('util/default_joystick')
|
||||
|
||||
asset.require('util/webgui')
|
||||
|
||||
asset.request('customization/globebrowsing')
|
||||
|
||||
-- Custom Keybindings
|
||||
local Keybindings = {
|
||||
{
|
||||
Key = "a",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.Origin', 'NewHorizons')",
|
||||
Documentation = "Sets the focus of the camera on 'NewHorizons'.",
|
||||
Name = "Focus on New Horizons",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "s",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.Origin', 'Pluto')",
|
||||
Documentation = "Sets the focus of the camera on 'Pluto'",
|
||||
Name = "Focus on Pluto",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "d",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.Origin', 'Charon')",
|
||||
Documentation = "Sets the focus of the camera on 'Charon'.",
|
||||
Name = "Focus on New Charon",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F7",
|
||||
Command =
|
||||
[[local enabled = openspace.getPropertyValue('Scene.Pluto.Renderable.ProjectionComponent.PerformProjection')
|
||||
openspace.setPropertyValue('Scene.Pluto.Renderable.ProjectionComponent.PerformProjection', not enabled)
|
||||
openspace.setPropertyValue('Scene.Charon.Renderable.ProjectionComponent.PerformProjection', not enabled)
|
||||
openspace.setPropertyValueSingle("Dashboard.NewHorizonsInstruments.Enabled", not enabled)]],
|
||||
Documentation = "Toggles New Horizons image projection.",
|
||||
Name = "Toggle NH Image Projection",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F8",
|
||||
Command = "openspace.setPropertyValue('Scene.Pluto.renderable.ProjectionComponent.ClearAllProjections', true);" ..
|
||||
"openspace.setPropertyValue('Scene.Charon.renderable.ProjectionComponent.ClearAllProjections', true);",
|
||||
Command = "openspace.setPropertyValue('Scene.Pluto.Renderable.ProjectionComponent.ClearAllProjections', true);" ..
|
||||
"openspace.setPropertyValue('Scene.Charon.Renderable.ProjectionComponent.ClearAllProjections', true);",
|
||||
Documentation = "Removes all image projections from Pluto and Charon.",
|
||||
Name = "Clear image projections",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F9",
|
||||
Command = "openspace.time.setTime('2015-07-14T09:00:00.00');" ..
|
||||
"openspace.setPropertyValue('Scene.Pluto.renderable.ClearAllProjections', true);" ..
|
||||
"openspace.setPropertyValue('Scene.Charon.renderable.ClearAllProjections', true);",
|
||||
"openspace.setPropertyValue('Scene.Pluto.Renderable.ClearAllProjections', true);" ..
|
||||
"openspace.setPropertyValue('Scene.Charon.Renderable.ClearAllProjections', true);",
|
||||
Documentation = "Jumps to the 14th of July 2015 at 0900 UTC and clears all projections.",
|
||||
Name = "Reset time and projections",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "KP_8",
|
||||
Command = propertyHelper.increment('Scene.Pluto.renderable.HeightExaggeration', 5000000),
|
||||
Command = propertyHelper.increment('Scene.Pluto.Renderable.HeightExaggeration', 5000),
|
||||
Documentation = "Increases the height map exaggeration on Pluto.",
|
||||
Name = "Pluto HeightExaggeration +",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "KP_2",
|
||||
Command = propertyHelper.decrement('Scene.Pluto.renderable.HeightExaggeration', 5000000),
|
||||
Command = propertyHelper.decrement('Scene.Pluto.Renderable.HeightExaggeration', 5000),
|
||||
Documentation = "Decreases the height map exaggeration on Pluto.",
|
||||
Name = "Pluto HeightExaggeration -",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "KP_9",
|
||||
Command = propertyHelper.increment('Scene.Charon.renderable.HeightExaggeration', 5000000),
|
||||
Command = propertyHelper.increment('Scene.Charon.Renderable.HeightExaggeration', 5000),
|
||||
Documentation = "Increases the height map exaggeration on Charon.",
|
||||
Name = "Charon HeightExaggeration +",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "KP_3",
|
||||
Command = propertyHelper.decrement('Scene.Charon.renderable.HeightExaggeration', 5000000),
|
||||
Command = propertyHelper.decrement('Scene.Charon.Renderable.HeightExaggeration', 5000),
|
||||
Documentation = "Decreases the height map exaggeration on Charon.",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "q",
|
||||
Command = propertyHelper.invert('Scene.SunMarker.renderable.Enabled'),
|
||||
Documentation = "Toggles the visibility of the text marking the location of the Sun.",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "e",
|
||||
Command = propertyHelper.invert('Scene.EarthMarker.renderable.Enabled'),
|
||||
Documentation = "Toggles the visibility of the text marking the location of the Earth.",
|
||||
Name = "Charon HeightExaggeration -",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "o",
|
||||
Command = propertyHelper.invert('Scene.PlutoTrail.renderable.Enabled'),
|
||||
Command = propertyHelper.invert('Scene.PlutoTrail.Renderable.Enabled'),
|
||||
Documentation = "Toggles the visibility of the trail behind Pluto.",
|
||||
Name = "Toggle Pluto Trail",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
@@ -99,36 +123,53 @@ local Keybindings = {
|
||||
renderableHelper.toggle('Scene.HydraText') .. renderableHelper.toggle('Scene.NixText') ..
|
||||
renderableHelper.toggle('Scene.KerberosText') .. renderableHelper.toggle('Scene.StyxText'),
|
||||
Documentation = "Toggles the visibility of the text labels of Pluto, Charon, Hydra, Nix, Kerberos, and Styx.",
|
||||
Name = "Toggle Pluto Labels",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "l",
|
||||
Command = propertyHelper.fadeInOut('Scene.Labels.renderable.Opacity', 2.0),
|
||||
Command = propertyHelper.fadeInOut('Scene.Labels.Renderable.Opacity', 2.0),
|
||||
Documentation = "Toggles the visibility of the labels for the New Horizons instruments.",
|
||||
Name = "Toggle New Horizons Labels",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "m",
|
||||
Command = propertyHelper.invert('Scene.NH_LORRI.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_LEISA.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_PAN1.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_PAN2.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_RED.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_BLUE.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_FT.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_METHANE.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_NIR.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_ALICE_AIRGLOW.renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_ALICE_SOC.renderable.SolidDraw'),
|
||||
Command = propertyHelper.invert('Scene.NH_LORRI.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_LEISA.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_PAN1.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_PAN2.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_RED.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_BLUE.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_FT.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_METHANE.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_RALPH_MVIC_NIR.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_ALICE_AIRGLOW.Renderable.SolidDraw') ..
|
||||
propertyHelper.invert('Scene.NH_ALICE_SOC.Renderable.SolidDraw'),
|
||||
Documentation = "Draws the instrument field of views in a solid color or as lines.",
|
||||
Name = "Toggle instrument FOVs",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "Shift+t",
|
||||
Command = renderableHelper.toggle('Scene.PlutoShadow') .. renderableHelper.toggle('Scene.CharonShadow'),
|
||||
Documentation = "Toggles the visibility of the shadow visualization of Pluto and Charon.",
|
||||
Name = "Toggle Shadows",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "t",
|
||||
Command = renderableHelper.toggle('Scene.PlutoShadow') .. renderableHelper.toggle('Scene.CharonShadow'),
|
||||
Documentation = "Toggles the visibility of the shadow visualization of Pluto and Charon.",
|
||||
Command = renderableHelper.toggle('Scene.NewHorizonsTrailPluto'),
|
||||
Documentation = "Toggles the trail of New Horizons.",
|
||||
Name = "Toggle NH Trail",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
local NewHorizonsAsset = asset.require('scene/solarsystem/missions/newhorizons/model')
|
||||
@@ -156,6 +197,10 @@ assetHelper.registerDashboardItems(asset, {
|
||||
}
|
||||
})
|
||||
|
||||
assetHelper.registerInterestingNodes(asset, {
|
||||
"Pluto", "NewHorizons", "Charon"
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.time.setTime("2015-07-14T08:00:00.00")
|
||||
sceneHelper.bindKeys(Keybindings)
|
||||
@@ -167,16 +212,12 @@ asset.onInitialize(function ()
|
||||
2160, 4320, 8640
|
||||
})
|
||||
|
||||
openspace.markInterestingNodes({
|
||||
"Pluto", "NewHorizons", "Charon"
|
||||
})
|
||||
|
||||
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.FollowFocusNodeRotationDistance', 20.000000);
|
||||
|
||||
openspace.addVirtualProperty(
|
||||
"BoolProperty",
|
||||
"Show Trails",
|
||||
"*Trail.renderable.Enabled",
|
||||
"*Trail.Renderable.Enabled",
|
||||
"Disable or enable all trails of the scene at the same time",
|
||||
true,
|
||||
nil,
|
||||
@@ -193,8 +234,5 @@ end)
|
||||
asset.onDeinitialize(function ()
|
||||
sceneHelper.unbindKeys(Keybindings)
|
||||
|
||||
openspace.removeVirtualProperty("*Trail.renderable.Enabled")
|
||||
openspace.removeInterestingNodes({
|
||||
"Pluto", "NewHorizons", "Charon"
|
||||
})
|
||||
openspace.removeVirtualProperty("*Trail.Renderable.Enabled")
|
||||
end)
|
||||
|
||||
@@ -15,6 +15,8 @@ asset.require('util/default_keybindings')
|
||||
asset.require('util/default_dashboard')
|
||||
asset.require('util/default_joystick')
|
||||
|
||||
asset.require('util/webgui')
|
||||
|
||||
-- Custom Keybindings
|
||||
local Keybindings = {
|
||||
{
|
||||
@@ -67,13 +69,13 @@ local Keybindings = {
|
||||
},
|
||||
{
|
||||
Key = "q",
|
||||
Command = propertyHelper.invert('Scene.SunMarker.renderable.Enabled'),
|
||||
Command = propertyHelper.invert('Scene.SunMarker.Renderable.Enabled'),
|
||||
Documentation = "Toggles the visibility of the text marking the location of the Sun.",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "e",
|
||||
Command = propertyHelper.invert('Scene.EarthMarker.renderable.Enabled'),
|
||||
Command = propertyHelper.invert('Scene.EarthMarker.Renderable.Enabled'),
|
||||
Documentation = "Toggles the visibility of the text marking the location of the Earth.",
|
||||
Local = false
|
||||
}
|
||||
@@ -123,7 +125,7 @@ asset.onInitialize(function ()
|
||||
openspace.addVirtualProperty(
|
||||
"BoolProperty",
|
||||
"Show Trails",
|
||||
"*Trail.renderable.Enabled",
|
||||
"*Trail.Renderable.Enabled",
|
||||
"Disable or enable all trails of the scene at the same time",
|
||||
true,
|
||||
nil,
|
||||
@@ -140,7 +142,7 @@ end)
|
||||
asset.onDeinitialize(function ()
|
||||
sceneHelper.unbindKeys(Keybindings)
|
||||
|
||||
openspace.removeVirtualProperty("*Trail.renderable.Enabled")
|
||||
openspace.removeVirtualProperty("*Trail.Renderable.Enabled")
|
||||
openspace.removeInterestingNodes({
|
||||
"OsirisRex", "BennuBarycenter", "Earth"
|
||||
})
|
||||
|
||||
@@ -17,6 +17,10 @@ asset.require('util/default_keybindings')
|
||||
asset.require('util/default_dashboard')
|
||||
asset.require('util/default_joystick')
|
||||
|
||||
asset.require('util/webgui')
|
||||
|
||||
asset.request('customization/globebrowsing')
|
||||
|
||||
-- Custom Keybindings
|
||||
local Keybindings = {
|
||||
{
|
||||
@@ -45,13 +49,13 @@ local Keybindings = {
|
||||
},
|
||||
{
|
||||
Key = "F8",
|
||||
Command = "openspace.setPropertyValue('Scene.67P.renderable.ProjectionComponent.clearAllProjections', true)",
|
||||
Command = "openspace.setPropertyValue('Scene.67P.Renderable.ProjectionComponent.clearAllProjections', true)",
|
||||
Documentation = "Removes all image projections from 67P.",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "q",
|
||||
Command = propertyHelper.invert('Scene.SunMarker.renderable.Enabled'),
|
||||
Command = propertyHelper.invert('Scene.SunMarker.Renderable.Enabled'),
|
||||
Documentation = "Toggles the visibility of the text marking the location of the Sun.",
|
||||
Local = false
|
||||
},
|
||||
@@ -76,7 +80,7 @@ local Keybindings = {
|
||||
},
|
||||
{
|
||||
Key = "p",
|
||||
Command = propertyHelper.invert('Scene.67P.renderable.ProjectionComponent.performProjection'),
|
||||
Command = propertyHelper.invert('Scene.67P.Renderable.ProjectionComponent.performProjection'),
|
||||
Documentation = "Enables or disables the image projection on 67P.",
|
||||
Local = false
|
||||
}
|
||||
@@ -107,6 +111,10 @@ assetHelper.registerDashboardItems(asset, {
|
||||
}
|
||||
})
|
||||
|
||||
assetHelper.registerInterestingNodes(asset, {
|
||||
"67P", "Rosetta", "Philae"
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.time.setTime("2014-08-01T03:05:00.000")
|
||||
sceneHelper.bindKeys(Keybindings)
|
||||
@@ -118,14 +126,10 @@ asset.onInitialize(function ()
|
||||
28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600
|
||||
})
|
||||
|
||||
openspace.markInterestingNodes({
|
||||
"67P", "Rosetta", "Philae"
|
||||
})
|
||||
|
||||
openspace.addVirtualProperty(
|
||||
"BoolProperty",
|
||||
"Show Trails",
|
||||
"*Trail.renderable.Enabled",
|
||||
"*Trail.Renderable.Enabled",
|
||||
"Disable or enable all trails of the scene at the same time",
|
||||
true,
|
||||
nil,
|
||||
@@ -138,14 +142,11 @@ asset.onInitialize(function ()
|
||||
Rotation = { -0.106166, 0.981574, -0.084545, 0.134513 },
|
||||
})
|
||||
|
||||
openspace.setPropertyValue('Scene.67P.renderable.PerformShading', false);
|
||||
openspace.setPropertyValue('Scene.67P.Renderable.PerformShading', false);
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
sceneHelper.unbindKeys(Keybindings)
|
||||
|
||||
openspace.removeVirtualProperty("*Trail.renderable.Enabled")
|
||||
openspace.removeInterestingNodes({
|
||||
"67PBarycenter", "Rosetta", "Philae"
|
||||
})
|
||||
openspace.removeVirtualProperty("*Trail.Renderable.Enabled")
|
||||
end)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local transforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms')
|
||||
|
||||
|
||||
local speck = asset.syncedResource({
|
||||
@@ -9,15 +10,47 @@ local speck = asset.syncedResource({
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local radio = {
|
||||
Identifier = "RadioSphere",
|
||||
Parent = earth_transforms.EarthBarycenter.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "TimeDependentScale",
|
||||
-- First TV signals strong enough to leave the ionosphere
|
||||
ReferenceDate = "1936 AUG 01 12:00:00",
|
||||
Speed = 299792458 -- c
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphericalGrid",
|
||||
Enabled = false,
|
||||
GridColor = { 1.0, 1.0, 0.3, 0.75},
|
||||
LineWidth = 2.0,
|
||||
GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0,
|
||||
-0.9938214 , -0.1109906, -0.0003515167, 0.0,
|
||||
-0.09647644, 0.8622859, 0.4971472 , 0.0,
|
||||
0.0 , 0.0 , 0.0 , 1.0 }
|
||||
},
|
||||
GUI = {
|
||||
Name = "Radio Sphere",
|
||||
Path = "/Other/Grids"
|
||||
}
|
||||
}
|
||||
|
||||
local ecliptic = {
|
||||
Identifier = "EclipticSphere",
|
||||
Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 9.46377307652E17;
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphericalGrid",
|
||||
Enabled = false,
|
||||
GridColor = { 0.7, 0.0, 0.0, 0.5},
|
||||
LineWidth = 2.0,
|
||||
Radius = 9.46377307652E17;
|
||||
GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0,
|
||||
-0.9938214 , -0.1109906, -0.0003515167, 0.0,
|
||||
-0.09647644, 0.8622859, 0.4971472 , 0.0,
|
||||
@@ -38,9 +71,11 @@ local eclipticLabels = {
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
LabelFile = speck .. "/eclip.label",
|
||||
DrawLabels = true,
|
||||
TextColor = { 0.5, 0.5, 0.5, 1.0 },
|
||||
TextSize = 15.4,
|
||||
TextMinSize = 5.0,
|
||||
TextSize = 14.75,
|
||||
TextMinSize = 1.3,
|
||||
TextMaxSize = 50.0,
|
||||
Unit = "pc",
|
||||
TransformationMatrix = {
|
||||
-0.05487554, 0.4941095, -0.8676661, 0.0,
|
||||
@@ -58,12 +93,17 @@ local eclipticLabels = {
|
||||
local equatorial = {
|
||||
Identifier = "EquatorialSphere",
|
||||
Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 6.2440846E17;
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphericalGrid",
|
||||
Enabled = false,
|
||||
GridColor = { 0.0, 0.0, 1.0, 0.8},
|
||||
LineWidth = 2.0,
|
||||
Radius = 6.2440846E17,
|
||||
GridMatrix = { -0.05487554, 0.4941095, -0.8676661, 0.0,
|
||||
-0.8734371 , -0.4448296, -0.1980764, 0.0,
|
||||
-0.483835 , 0.7469823, 0.4559838, 0.0,
|
||||
@@ -84,15 +124,17 @@ local equatorialLabels = {
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
LabelFile = speck .. "/radec.label",
|
||||
DrawLabels = true,
|
||||
TextColor = { 0.5, 0.5, 0.5, 1.0 },
|
||||
TextSize = 15.3,
|
||||
TextMinSize = 5.0,
|
||||
TextSize = 14.5,
|
||||
TextMinSize = 1.7,
|
||||
TextMaxSize = 70.0,
|
||||
Unit = "pc",
|
||||
TransformationMatrix = {
|
||||
-0.05487554, 0.4941095, -0.8676661, 0.0,
|
||||
-0.9938214 , -0.1109906, -0.0003515167, 0.0,
|
||||
-0.09647644, 0.8622859, 0.4971472, 0.0,
|
||||
0.0, 0.0, 0.0, 1.0
|
||||
-0.05487554, 0.4941095, -0.8676661, 0.0,
|
||||
-0.8734371 , -0.4448296, -0.1980764, 0.0,
|
||||
-0.483835 , 0.7469823, 0.4559838, 0.0,
|
||||
0.0 , 0.0 , 0.0 , 1.0
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
@@ -104,11 +146,16 @@ local equatorialLabels = {
|
||||
local galactic = {
|
||||
Identifier = "GalacticSphere",
|
||||
Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 9.46377307652E18;
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphericalGrid",
|
||||
Enabled = false,
|
||||
LineWidth = 2.0,
|
||||
Radius = 9.46377307652E18;
|
||||
GridColor = { 0.0, 0.6, 0.6, 0.6}
|
||||
},
|
||||
GUI = {
|
||||
@@ -126,9 +173,11 @@ local galacticLabels = {
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.65,
|
||||
LabelFile = speck .. "/galac.label",
|
||||
DrawLabels = true,
|
||||
TextColor = { 0.5, 0.5, 0.5, 1.0 },
|
||||
TextSize = 16.25,
|
||||
TextMinSize = 5.0,
|
||||
TextSize = 15.8,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 100.0,
|
||||
Unit = "pc"
|
||||
},
|
||||
GUI = {
|
||||
@@ -150,7 +199,8 @@ local plane100kly = {
|
||||
LabelFile = speck .. "/100kly.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 18.6,
|
||||
TextMinSize = 7.0,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "Mpc"
|
||||
},
|
||||
GUI = {
|
||||
@@ -172,7 +222,8 @@ local plane1Mly = {
|
||||
LabelFile = speck .. "/1Mly.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 19.6,
|
||||
TextMinSize = 7.0,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "Mpc"
|
||||
},
|
||||
GUI = {
|
||||
@@ -194,7 +245,8 @@ local plane10Mly = {
|
||||
LabelFile = speck .. "/10Mly.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 20.6,
|
||||
TextMinSize = 7.0,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "Mpc"
|
||||
},
|
||||
GUI = {
|
||||
@@ -216,7 +268,8 @@ local plane100Mly = {
|
||||
LabelFile = speck .. "/100Mly.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 21.6,
|
||||
TextMinSize = 7.0,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "Mpc"
|
||||
},
|
||||
GUI = {
|
||||
@@ -238,7 +291,8 @@ local plane20Gly = {
|
||||
LabelFile = speck .. "/20Gly.label",
|
||||
TextColor = { 0.0, 0.2, 0.5, 1.0 },
|
||||
TextSize = 23.6,
|
||||
TextMinSize = 7.0,
|
||||
TextMinSize = 0.5,
|
||||
TextMaxSize = 30.0,
|
||||
Unit = "Mpc"
|
||||
},
|
||||
GUI = {
|
||||
@@ -248,6 +302,6 @@ local plane20Gly = {
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
ecliptic, eclipticLabels, equatorial, equatorialLabels, galactic, galacticLabels,
|
||||
plane100kly, plane1Mly, plane10Mly, plane100Mly, plane20Gly
|
||||
radio, ecliptic, eclipticLabels, equatorial, equatorialLabels, galactic,
|
||||
galacticLabels, plane100kly, plane1Mly, plane10Mly, plane100Mly, plane20Gly
|
||||
})
|
||||
|
||||
@@ -20,10 +20,10 @@ local colorLUT = asset.syncedResource({
|
||||
Name = "Stars Color Table",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars_colormap",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
local stars = {
|
||||
Identifier = "Stars",
|
||||
Renderable = {
|
||||
Type = "RenderableStars",
|
||||
@@ -36,6 +36,4 @@ local object = {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { stars })
|
||||
|
||||
46
data/assets/scene/milkyway/gaia/apogee.asset
Normal file
46
data/assets/scene/milkyway/gaia/apogee.asset
Normal file
@@ -0,0 +1,46 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
|
||||
|
||||
local textures = asset.syncedResource({
|
||||
Name = "Stars Textures",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars_textures",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local speck = asset.syncedResource({
|
||||
Name = "Apogee Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_apogee",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local colorLUT = asset.syncedResource({
|
||||
Name = "Stars Color Table",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars_colormap",
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local gaia_abundance_apogee = {
|
||||
Identifier = "Gaia Abundance Apogee",
|
||||
Renderable = {
|
||||
Type = "RenderableStars",
|
||||
Enabled = false,
|
||||
File = speck .. "/GaiaAbundApogee.speck",
|
||||
ColorOption = "Other Data",
|
||||
OtherData = "FeH",
|
||||
ScaleFactor = 100,
|
||||
Texture = textures .. "/halo.png",
|
||||
ColorMap = colorLUT .. "/colorbv.cmap",
|
||||
OtherDataColorMap = colorLUT .. "/viridis.cmap",
|
||||
StaticFilter = -9999,
|
||||
StaticFilterReplacement = 0.0
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Milky Way/Gaia"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { gaia_abundance_apogee })
|
||||
@@ -0,0 +1,19 @@
|
||||
-- Download a dataset of 618 million stars (28 GB), already preprocessed and stored in a binary octree.
|
||||
-- The octree was generated from the full DR2 by filtering away all stars with a parallax error higher than 0.5
|
||||
-- Max Star Per Node = 50,000 and max distance = 500kpc
|
||||
asset.syncedResource({
|
||||
Name = "Gaia DR2 618M Octree",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_stars_618M_octree",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
-- Download the full DR2 dataset with 24 values per star (preprocessed with theReadFitsTask (gaia_read.task) into 8 binary files).
|
||||
-- From these files new subsets can be created with the ConstructOctreeTask (gaia_octree.task).
|
||||
-- Total size of download is 151 GB.
|
||||
asset.syncedResource({
|
||||
Name = "Gaia DR2 Full Raw",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_stars_dr2_raw",
|
||||
Version = 1
|
||||
})
|
||||
60
data/assets/scene/milkyway/gaia/gaiastars.asset
Normal file
60
data/assets/scene/milkyway/gaia/gaiastars.asset
Normal file
@@ -0,0 +1,60 @@
|
||||
local assetHelper = asset.require("util/asset_helper")
|
||||
|
||||
local textures = asset.syncedResource({
|
||||
Name = "Stars Textures",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars_textures",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local colorLUT = asset.syncedResource({
|
||||
Name = "Stars Color Table",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars_colormap",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
-- Download a preprocessed binary octree of Radial Velocity subset values per star (preprocessed into 8 binary files).
|
||||
local starsFolder = asset.syncedResource({
|
||||
Name = "Gaia Stars RV",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_stars_rv_octree",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local GaiaStars = {
|
||||
Identifier = "GaiaStars",
|
||||
Renderable = {
|
||||
Type = "RenderableGaiaStars",
|
||||
File = starsFolder .. "/",
|
||||
FileReaderOption = "StreamOctree",
|
||||
RenderOption = "Motion",
|
||||
ShaderOption = "Point_SSBO",
|
||||
Texture = textures .. "/halo.png",
|
||||
ColorMap = colorLUT .. "/colorbv.cmap",
|
||||
LuminosityMultiplier = 35,
|
||||
MagnitudeBoost = 25,
|
||||
CutOffThreshold = 38,
|
||||
BillboardSize = 1,
|
||||
CloseUpBoostDist = 250,
|
||||
Sharpness = 1.45,
|
||||
LodPixelThreshold = 0,
|
||||
MaxGpuMemoryPercent = 0.24,
|
||||
MaxCpuMemoryPercent = 0.4,
|
||||
FilterSize = 5,
|
||||
Sigma = 0.5,
|
||||
AdditionalNodes = {3.0, 2.0},
|
||||
FilterPosX = {0.0, 0.0},
|
||||
FilterPosY = {0.0, 0.0},
|
||||
FilterPosZ = {0.0, 0.0},
|
||||
FilterGMag = {20.0, 20.0},
|
||||
FilterBpRp = {0.0, 0.0},
|
||||
FilterDist = {9.0, 9.0},
|
||||
},
|
||||
GUI = {
|
||||
Name = "Gaia Stars",
|
||||
Path = "/Milky Way"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaStars })
|
||||
46
data/assets/scene/milkyway/gaia/galah.asset
Normal file
46
data/assets/scene/milkyway/gaia/galah.asset
Normal file
@@ -0,0 +1,46 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
|
||||
|
||||
local textures = asset.syncedResource({
|
||||
Name = "Stars Textures",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars_textures",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local speck = asset.syncedResource({
|
||||
Name = "Galah Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_galah",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local colorLUT = asset.syncedResource({
|
||||
Name = "Stars Color Table",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars_colormap",
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local gaia_abundance_galah = {
|
||||
Identifier = "Gaia Abundance Galah",
|
||||
Renderable = {
|
||||
Type = "RenderableStars",
|
||||
Enabled = false,
|
||||
File = speck .. "/GaiaAbundGalah.speck",
|
||||
Texture = textures .. "/halo.png",
|
||||
ColorOption = "Other Data",
|
||||
OtherData = "FeH",
|
||||
ScaleFactor = 100,
|
||||
ColorMap = colorLUT .. "/colorbv.cmap",
|
||||
OtherDataColorMap = colorLUT .. "/viridis.cmap",
|
||||
StaticFilter = -9999,
|
||||
StaticFilterReplacement = 0.0
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Milky Way/Gaia"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { gaia_abundance_galah })
|
||||
@@ -20,7 +20,7 @@ local colorLUT = asset.syncedResource({
|
||||
Name = "Stars Color Table",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars-denver_colormap",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
|
||||
67
data/assets/scene/solarsystem/missions/gaia/gaia.asset
Normal file
67
data/assets/scene/solarsystem/missions/gaia/gaia.asset
Normal file
@@ -0,0 +1,67 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local transforms = asset.require('./transforms')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
|
||||
|
||||
local textures = asset.syncedResource({
|
||||
Name = "Gaia Textures",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_textures",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local model = asset.syncedResource({
|
||||
Name = "Gaia Model",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_model",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
|
||||
local Gaia = {
|
||||
Identifier = "Gaia",
|
||||
Parent = transforms.GaiaPosition.Identifier,
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "FixedRotation",
|
||||
Attached = "Gaia",
|
||||
XAxis = { 1.0, 0.0, 0.0 },
|
||||
XAxisOrthogonal = true,
|
||||
YAxis = "Sun",
|
||||
YAxisInverted = true
|
||||
},
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 10.0
|
||||
}
|
||||
},
|
||||
-- X Orthogonal
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Body = "GAIA",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = model .. "/gaia.obj"
|
||||
},
|
||||
ColorTexture = textures .. "/gaia-baked.png",
|
||||
LightSources = {
|
||||
{
|
||||
Type = "SceneGraphLightSource",
|
||||
Identifier = "Sun",
|
||||
Node = sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
Intensity = 0.3
|
||||
},
|
||||
{
|
||||
Identifier = "Camera",
|
||||
Type = "CameraLightSource",
|
||||
Intensity = 0.4
|
||||
}
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Gaia",
|
||||
Path = "/Solar System/Missions/Gaia"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { Gaia })
|
||||
64
data/assets/scene/solarsystem/missions/gaia/trail.asset
Normal file
64
data/assets/scene/solarsystem/missions/gaia/trail.asset
Normal file
@@ -0,0 +1,64 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
|
||||
local trail = asset.syncedResource({
|
||||
Name = "Gaia Trail",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_trail",
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local GaiaTrail = {
|
||||
Identifier = "GaiaTrail",
|
||||
Parent = earthTransforms.EarthBarycenter.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Enabled = false,
|
||||
Translation = {
|
||||
Type = "HorizonsTranslation",
|
||||
HorizonsTextFile = trail .. "/gaia_orbit_horizons.dat"
|
||||
},
|
||||
Color = { 0.0, 0.8, 0.7 },
|
||||
ShowFullTrail = false,
|
||||
StartTime = "2013 DEC 19 09:55:10",
|
||||
EndTime = "2019 JUN 20 05:55:10",
|
||||
PointSize = 5,
|
||||
SampleInterval = 12000,
|
||||
TimeStampSubsampleFactor = 1,
|
||||
EnableFade = false,
|
||||
Rendering = "Lines"
|
||||
},
|
||||
GUI = {
|
||||
Name = "Gaia Trail",
|
||||
Path = "/Solar System/Missions/Gaia"
|
||||
}
|
||||
}
|
||||
|
||||
local GaiaTrailEclip = {
|
||||
Identifier = "GaiaTrail_Eclip",
|
||||
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Enabled = false,
|
||||
Translation = {
|
||||
Type = "HorizonsTranslation",
|
||||
HorizonsTextFile = trail .. "/gaia_orbit_horizons_sun.dat"
|
||||
},
|
||||
Color = { 1.0, 0.0, 0.0 },
|
||||
ShowFullTrail = false,
|
||||
StartTime = "2013 DEC 19 09:55:10",
|
||||
EndTime = "2019 JUN 20 05:55:10",
|
||||
PointSize = 5,
|
||||
SampleInterval = 6000,
|
||||
TimeStampSubsampleFactor = 1,
|
||||
EnableFade = false,
|
||||
Rendering = "Lines"
|
||||
},
|
||||
GUI = {
|
||||
Name = "Gaia Ecliptic Trail",
|
||||
Path = "/Solar System/Missions/Gaia"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaTrail, GaiaTrailEclip } )
|
||||
27
data/assets/scene/solarsystem/missions/gaia/transforms.asset
Normal file
27
data/assets/scene/solarsystem/missions/gaia/transforms.asset
Normal file
@@ -0,0 +1,27 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms')
|
||||
|
||||
|
||||
local trail = asset.syncedResource({
|
||||
Name = "Gaia Trail",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_trail",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local GaiaPosition = {
|
||||
Identifier = "GaiaPosition",
|
||||
Parent = earthTransforms.EarthBarycenter.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "HorizonsTranslation",
|
||||
HorizonsTextFile = trail .. "/gaia_orbit_horizons.dat"
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Name = "Position",
|
||||
Path = "/Solar System/Missions/Gaia"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaPosition })
|
||||
@@ -13,6 +13,5 @@
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<Timeout>5</Timeout>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -5,5 +5,4 @@
|
||||
</Service>
|
||||
<Timeout>2</Timeout>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -17,6 +17,5 @@
|
||||
<BlockSizeY>256</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>5</MaxConnections>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<Timeout>5</Timeout>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -5,6 +5,8 @@ asset.request('./trail')
|
||||
local kernel = asset.require('../kernels').jup310
|
||||
|
||||
|
||||
local map_service_configs = asset.localResource("map_service_configs")
|
||||
|
||||
|
||||
local textures = asset.syncedResource({
|
||||
Name = "Europa Textures",
|
||||
@@ -39,8 +41,15 @@ local Europa = {
|
||||
{
|
||||
Identifier = "Texture",
|
||||
FilePath = textures .. "/europa.jpg",
|
||||
-- Enabled = true
|
||||
},
|
||||
{
|
||||
Identifier = "Voyager_Global_Mosaic",
|
||||
Name = "Voyager Global Mosaic [Sweden]",
|
||||
FilePath = map_service_configs .. "/LiU/Voyager_GalileoSSI_global_mosaic_500m.wms",
|
||||
BlendMode = "Color",
|
||||
Enabled = true
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://wms.itn.liu.se/Europa/Voyager_GalileoSSI_global_mosaic_500m/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>19631</SizeX>
|
||||
<SizeY>9816</SizeY>
|
||||
<TileLevel>7</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>EPSG:4326</Projection>
|
||||
<BlockSizeX>256</BlockSizeX>
|
||||
<BlockSizeY>256</BlockSizeY>
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
@@ -16,7 +16,5 @@
|
||||
<BlockSizeX>256</BlockSizeX>
|
||||
<BlockSizeY>256</BlockSizeY>
|
||||
<BandsCount>2</BandsCount>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<Path>./gdal-cache/ctx</Path>
|
||||
<Timeout>5</Timeout>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -10,14 +10,13 @@
|
||||
<SizeX>46080</SizeX>
|
||||
<SizeY>23040</SizeY>
|
||||
<TileLevel>6</TileLevel>
|
||||
<YOrigin>bottom</YOrigin>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<DataType>Int16</DataType>
|
||||
<Projection>GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>256</BlockSizeX>
|
||||
<BlockSizeY>256</BlockSizeY>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>1</BandsCount>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<Path>./gdal-cache/mola_elevation</Path>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
<Timeout>5</Timeout>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
<TileLevel>6</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
<Projection>GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
<ServerUrl>http:/wms.itn.liu.se/Mars/Themis_IR_Day/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>213390</SizeX>
|
||||
<SizeY>106695</SizeY>
|
||||
<TileLevel>9</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>213390</SizeX>
|
||||
<SizeY>106695</SizeY>
|
||||
<TileLevel>9</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>256</BlockSizeX>
|
||||
|
||||
@@ -10,6 +10,5 @@
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<YOrigin>bottom</YOrigin>
|
||||
</DataWindow>
|
||||
<OfflineMode>false</OfflineMode>
|
||||
<Timeout>5</Timeout>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -79,24 +79,6 @@ local color_layers = {
|
||||
Name = "MOLA HRSC [Sweden]",
|
||||
FilePath = mapServiceConfigs .. "/LiU/Mola_HRSC.wms"
|
||||
},
|
||||
{
|
||||
Identifier = "CTX_Mosaic_Utah",
|
||||
Name = "CTX Mosaic [Utah]",
|
||||
FilePath = mapServiceConfigs .. "/Utah/CTX.wms",
|
||||
BlendMode = "Color"
|
||||
},
|
||||
{
|
||||
Identifier = "CTX_Mosaic_Sweden",
|
||||
Name = "CTX Mosaic [Sweden]",
|
||||
FilePath = mapServiceConfigs .. "/LiU/CTX.wms",
|
||||
BlendMode = "Color"
|
||||
},
|
||||
{
|
||||
Identifier = "CTX_Mosaic_AWS",
|
||||
Name = "CTX Mosaic [AWS]",
|
||||
FilePath = mapServiceConfigs .. "/AWS/CTX.wms",
|
||||
BlendMode = "Color"
|
||||
},
|
||||
{
|
||||
Identifier = "Themis_IR_Day_Utah",
|
||||
Name = "Themis IR Day [Utah]",
|
||||
@@ -132,6 +114,24 @@ local color_layers = {
|
||||
Name = "Themis IR Night [AWS]",
|
||||
FilePath = mapServiceConfigs .. "/AWS/Themis_IR_Night.wms",
|
||||
BlendMode = "Color"
|
||||
},
|
||||
{
|
||||
Identifier = "CTX_Mosaic_Utah",
|
||||
Name = "CTX Mosaic [Utah]",
|
||||
FilePath = mapServiceConfigs .. "/Utah/CTX.wms",
|
||||
BlendMode = "Color"
|
||||
},
|
||||
{
|
||||
Identifier = "CTX_Mosaic_Sweden",
|
||||
Name = "CTX Mosaic [Sweden]",
|
||||
FilePath = mapServiceConfigs .. "/LiU/CTX.wms",
|
||||
BlendMode = "Color"
|
||||
},
|
||||
{
|
||||
Identifier = "CTX_Mosaic_AWS",
|
||||
Name = "CTX Mosaic [AWS]",
|
||||
FilePath = mapServiceConfigs .. "/AWS/CTX.wms",
|
||||
BlendMode = "Color"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerBDR/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>92160</SizeX>
|
||||
<SizeY>46080</SizeY>
|
||||
<TileLevel>7</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerBDR/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>92160</SizeX>
|
||||
<SizeY>46080</SizeY>
|
||||
<TileLevel>7</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerDEM/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>23040</SizeX>
|
||||
<SizeY>11520</SizeY>
|
||||
<TileLevel>5</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerDEM/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>23040</SizeX>
|
||||
<SizeY>11520</SizeY>
|
||||
<TileLevel>5</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -18,4 +18,3 @@
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
|
||||
@@ -18,4 +18,3 @@
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
|
||||
@@ -18,4 +18,3 @@
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerMDR/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>23040</SizeX>
|
||||
<SizeY>11521</SizeY>
|
||||
<TileLevel>5</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>PROJCS["Equirectangular Mercury",GEOGCS["GCS_Mercury",DATUM["D_Mercury",SPHEROID["Mercury_localRadius",2439400,0]],PRIMEM["Reference_Meridian",0],UNIT["degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["standard_parallel_1",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerMDR/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>23040</SizeX>
|
||||
<SizeY>11521</SizeY>
|
||||
<TileLevel>5</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>PROJCS["Equirectangular Mercury",GEOGCS["GCS_Mercury",DATUM["D_Mercury",SPHEROID["Mercury_localRadius",2439400,0]],PRIMEM["Reference_Meridian",0],UNIT["degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["standard_parallel_1",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerMP3/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>46080</SizeX>
|
||||
<SizeY>17122</SizeY>
|
||||
<TileLevel>6</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>PROJCS["Equirectangular Mercury",GEOGCS["GCS_Mercury",DATUM["D_Mercury",SPHEROID["Mercury_localRadius",2439400,0]],PRIMEM["Reference_Meridian",0],UNIT["degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["standard_parallel_1",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerMP3/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>46080</SizeX>
|
||||
<SizeY>17122</SizeY>
|
||||
<TileLevel>6</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>PROJCS["Equirectangular Mercury",GEOGCS["GCS_Mercury",DATUM["D_Mercury",SPHEROID["Mercury_localRadius",2439400,0]],PRIMEM["Reference_Meridian",0],UNIT["degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["standard_parallel_1",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerMosaic2/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>23040</SizeX>
|
||||
<SizeY>11520</SizeY>
|
||||
<TileLevel>5</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerMosaic2/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>23040</SizeX>
|
||||
<SizeY>11520</SizeY>
|
||||
<TileLevel>5</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerSHADE/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>7664</SizeX>
|
||||
<SizeY>3832</SizeY>
|
||||
<TileLevel>4</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://openspace.sci.utah.edu/Mercury/MessengerSHADE/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>7664</SizeX>
|
||||
<SizeY>3832</SizeY>
|
||||
<TileLevel>4</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]]</Projection>
|
||||
<BlockSizeX>360</BlockSizeX>
|
||||
<BlockSizeY>360</BlockSizeY>
|
||||
<BandsCount>3</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ local textures = asset.syncedResource({
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local mapServiceConfigsPath = asset.localResource("map_service_configs")
|
||||
|
||||
local Enceladus = {
|
||||
Identifier = "Enceladus",
|
||||
Parent = transforms.SaturnBarycenter.Identifier,
|
||||
@@ -37,8 +39,13 @@ local Enceladus = {
|
||||
{
|
||||
Identifier = "Texture",
|
||||
FilePath = textures .. "/enceladus.jpg",
|
||||
Enabled = true
|
||||
}
|
||||
},
|
||||
{
|
||||
Identifier = "Global_Mosaic_100m_HPF",
|
||||
Name = "Cassini Global Mosaic 100m HPF",
|
||||
FilePath = mapServiceConfigsPath .. "/Cassini_ISS_Global_Mosaic_100m_HPF.wms",
|
||||
Enabled = true,
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://wms.itn.liu.se/Enceladus/Cassini_ISS_Global_Mosaic_100m_HPF/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>15840</SizeX>
|
||||
<SizeY>7920</SizeY>
|
||||
<TileLevel>5</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>EPSG:4326</Projection>
|
||||
<BlockSizeX>512</BlockSizeX>
|
||||
<BlockSizeY>512</BlockSizeY>
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
@@ -21,12 +21,12 @@ local Hyperion = {
|
||||
Target = "HYPERION",
|
||||
Observer = "SATURN BARYCENTER",
|
||||
Kernels = kernel
|
||||
},
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
SourceFrame = "IAU_HYPERION",
|
||||
DestinationFrame = "GALACTIC"
|
||||
}
|
||||
--[[
|
||||
The IAU report does not give an orientation model for Hyperion.
|
||||
Hyperion's rotation is in chaotic and is not predictable for
|
||||
long periods.
|
||||
]]--
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableGlobe",
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
asset.request('./dione/dione')
|
||||
asset.request('./enceladus/enceladus')
|
||||
asset.request('./hyperion/hyperion')
|
||||
asset.request('./iapetus/iapetus')
|
||||
asset.request('./mimas/mimas')
|
||||
asset.request('./rhea/rhea')
|
||||
asset.request('./tethys/tethys')
|
||||
asset.request('./titan/titan')
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<GDAL_WMS>
|
||||
<Service name="TMS">
|
||||
<ServerUrl>http://wms.itn.liu.se/Titan/ISS_P19658_Mosaic_Global_4km/tile/${z}/${y}/${x}</ServerUrl>
|
||||
</Service>
|
||||
<DataWindow>
|
||||
<UpperLeftX>-180.0</UpperLeftX>
|
||||
<UpperLeftY>90.0</UpperLeftY>
|
||||
<LowerRightX>180.0</LowerRightX>
|
||||
<LowerRightY>-90.0</LowerRightY>
|
||||
<SizeX>4040</SizeX>
|
||||
<SizeY>2020</SizeY>
|
||||
<TileLevel>4</TileLevel>
|
||||
<YOrigin>top</YOrigin>
|
||||
</DataWindow>
|
||||
<Projection>EPSG:4326</Projection>
|
||||
<BlockSizeX>256</BlockSizeX>
|
||||
<BlockSizeY>256</BlockSizeY>
|
||||
<BandsCount>1</BandsCount>
|
||||
<MaxConnections>10</MaxConnections>
|
||||
</GDAL_WMS>
|
||||
@@ -4,6 +4,7 @@ local kernel = asset.require('../kernels').sat375
|
||||
asset.request('./trail')
|
||||
|
||||
|
||||
local map_service_configs = asset.localResource("map_service_configs")
|
||||
|
||||
local textures = asset.syncedResource({
|
||||
Type = "HttpSynchronization",
|
||||
@@ -37,6 +38,12 @@ local Titan = {
|
||||
{
|
||||
Identifier = "Texture",
|
||||
FilePath = textures .. "/titan.jpg",
|
||||
-- Enabled = true
|
||||
},
|
||||
{
|
||||
Identifier = "Cassini_ISS_Global_Mosaic_4km_LiU",
|
||||
Name = "Cassini ISS Global Mosaic [Sweden]",
|
||||
FilePath = map_service_configs .. "/LiU/ISS_P19658_Mosaic_Global_4km.wms",
|
||||
Enabled = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,6 +88,15 @@ local registerSceneGraphNodesAndExport = function (sceneAsset, nodes, override)
|
||||
end
|
||||
end
|
||||
|
||||
local registerInterestingNodes = function (sceneAsset, nodes)
|
||||
sceneAsset.onInitialize(function ()
|
||||
openspace.markInterestingNodes(nodes)
|
||||
end)
|
||||
sceneAsset.onDeinitialize(function ()
|
||||
openspace.removeInterestingNodes(nodes)
|
||||
end)
|
||||
end
|
||||
|
||||
local requireAll = function (sceneAsset, directory)
|
||||
function string.ends(String,End)
|
||||
return End=='' or string.sub(String,-string.len(End))==End
|
||||
@@ -125,5 +134,6 @@ asset.export("registerSceneGraphNodes", registerSceneGraphNodes)
|
||||
asset.export("registerSceneGraphNodesAndExport", registerSceneGraphNodesAndExport)
|
||||
asset.export("registerSpiceKernels", registerSpiceKernels)
|
||||
asset.export("registerDashboardItems", registerDashboardItems)
|
||||
asset.export("registerInterestingNodes", registerInterestingNodes)
|
||||
asset.export("requireAll", requireAll)
|
||||
asset.export("requestAll", requestAll)
|
||||
|
||||
133
data/assets/util/debug_helper.asset
Normal file
133
data/assets/util/debug_helper.asset
Normal file
@@ -0,0 +1,133 @@
|
||||
local identifierGeneratorFunction = function (suffix)
|
||||
local nextIndex = 0
|
||||
return function (specification)
|
||||
nextIndex = nextIndex + 1
|
||||
return specification.Identifier or
|
||||
(specification.Parent .. suffix .. nextIndex)
|
||||
end
|
||||
end
|
||||
|
||||
local generateGridIdentifier = identifierGeneratorFunction("Grid")
|
||||
|
||||
local addGrid = function (specification)
|
||||
local identifier = specification.Identifier or
|
||||
generateGridIdentifier(specification)
|
||||
|
||||
local name = specification.Name
|
||||
local color = specification.Color
|
||||
local parent = specification.Parent
|
||||
local scale = specification.Scale
|
||||
local position = specification.Position
|
||||
local rotation = specification.Rotation
|
||||
|
||||
local grid = {
|
||||
Identifier = identifier,
|
||||
Parent = parent,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = scale;
|
||||
},
|
||||
Translation = {
|
||||
Type = "StaticTranslation",
|
||||
Position = position
|
||||
},
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = rotation
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphericalGrid",
|
||||
Enabled = true,
|
||||
LineWidth = 2.0,
|
||||
GridColor = color
|
||||
},
|
||||
GUI = {
|
||||
Name = name,
|
||||
Path = "/Other/Grids"
|
||||
}
|
||||
}
|
||||
openspace.addSceneGraphNode(grid)
|
||||
return identifier;
|
||||
end
|
||||
|
||||
local generateAxesIdentifier = identifierGeneratorFunction("Axes")
|
||||
|
||||
local addCartesianAxes = function (specification)
|
||||
local identifier = specification.Identifier or
|
||||
generateAxesIdentifier(specification)
|
||||
|
||||
local name = specification.Name or specification.Identifier
|
||||
local parent = specification.Parent or "Root"
|
||||
local scale = specification.Scale or 1.0
|
||||
local position = specification.Position or {0.0, 0.0, 0.0}
|
||||
local rotation = specification.Rotation or {0.0, 0.0, 0.0}
|
||||
|
||||
local axes = {
|
||||
Identifier = identifier,
|
||||
Parent = parent,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = scale;
|
||||
},
|
||||
Translation = {
|
||||
Type = "StaticTranslation",
|
||||
Position = position
|
||||
},
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = rotation
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableCartesianAxes",
|
||||
Enabled = true,
|
||||
XColor = {1.0, 0.0, 0.0, 1.0},
|
||||
YColor = {0.0, 1.0, 0.0, 1.0},
|
||||
ZColor = {0.0, 0.0, 1.0, 1.0}
|
||||
},
|
||||
GUI = {
|
||||
Name = name,
|
||||
Path = "/Other/Coordinate Systems"
|
||||
}
|
||||
}
|
||||
openspace.addSceneGraphNode(axes)
|
||||
return identifier;
|
||||
end
|
||||
|
||||
|
||||
local registerNode = function(
|
||||
containerAsset,
|
||||
nodeCreationFunction,
|
||||
identifierGeneratorFunction,
|
||||
specification
|
||||
)
|
||||
local identifier = specification.Identifier or
|
||||
identifierGeneratorFunction(specification)
|
||||
|
||||
specification.Identifier = identifier
|
||||
|
||||
containerAsset.onInitialize(function ()
|
||||
nodeCreationFunction(specification)
|
||||
end)
|
||||
containerAsset.onDeinitialize(function ()
|
||||
openspace.removeSceneGraphNode(identifier)
|
||||
end)
|
||||
end
|
||||
|
||||
local registerGrid = function(gridAsset, specification)
|
||||
registerNode(gridAsset, addGrid, generateGridIdentifier, specification)
|
||||
end
|
||||
|
||||
local registerCartesianAxes = function(axesAsset, specification)
|
||||
registerNode(axesAsset, addCartesianAxes, generateAxesIdentifier, specification)
|
||||
end
|
||||
|
||||
asset.export("addGrid", addGrid)
|
||||
asset.export("registerGrid", registerGrid)
|
||||
|
||||
asset.export("addCartesianAxes", addGrid)
|
||||
asset.export("registerCartesianAxes", registerCartesianAxes)
|
||||
|
||||
@@ -3,87 +3,111 @@ local propertyHelper = asset.require('./property_helper')
|
||||
|
||||
local Keybindings = {
|
||||
{
|
||||
Key = "F2",
|
||||
Command =
|
||||
[[local b = openspace.getPropertyValue('Modules.ImGUI.Main.SceneProperties.Enabled');
|
||||
local c = openspace.getPropertyValue('Modules.ImGUI.Main.IsHidden');
|
||||
openspace.setPropertyValue('Modules.ImGUI.*.Enabled', false);
|
||||
if b and c then
|
||||
-- This can happen if the main properties window is enabled, the main gui is enabled
|
||||
-- and then closed again. So the main properties window is enabled, but also all
|
||||
-- windows are hidden
|
||||
openspace.setPropertyValueSingle('Modules.ImGUI.Main.IsHidden', false);
|
||||
openspace.setPropertyValueSingle('Modules.ImGUI.Main.SceneProperties.Enabled', true);
|
||||
openspace.setPropertyValueSingle('Modules.ImGUI.Main.SpaceTime.Enabled', true);
|
||||
else
|
||||
openspace.setPropertyValueSingle('Modules.ImGUI.Main.SceneProperties.Enabled', not b);
|
||||
openspace.setPropertyValueSingle('Modules.ImGUI.Main.SpaceTime.Enabled', not b);
|
||||
openspace.setPropertyValueSingle('Modules.ImGUI.Main.IsHidden', b);
|
||||
end]],
|
||||
Documentation = "Shows or hides the properties window",
|
||||
Local = true
|
||||
},
|
||||
{
|
||||
Key = "F3",
|
||||
Command =
|
||||
[[local b = openspace.getPropertyValue('Modules.ImGUI.Main.Enabled');
|
||||
openspace.setPropertyValueSingle('Modules.ImGUI.Main.Enabled', not b);
|
||||
openspace.setPropertyValueSingle('Modules.ImGUI.Main.IsHidden', b);]],
|
||||
Documentation = "Shows or hides the entire user interface",
|
||||
Key = "F1",
|
||||
Name = "Show Native GUI",
|
||||
Command = propertyHelper.invert('Modules.ImGUI.Main.Enabled'),
|
||||
Documentation = "Shows or hides the native UI",
|
||||
GuiPath = "/Native GUI",
|
||||
Local = true
|
||||
},
|
||||
{
|
||||
Key = "F4",
|
||||
Name = "Show Performance Measurements",
|
||||
Command = propertyHelper.invert("RenderEngine.PerformanceMeasurements"),
|
||||
Documentation = "Toogles performance measurements that shows rendering time informations.",
|
||||
GuiPath = "/Native GUI",
|
||||
Local = true
|
||||
},
|
||||
{
|
||||
Key = "ESC",
|
||||
Name = "Toggle Shutdown",
|
||||
Command = "openspace.toggleShutdown()",
|
||||
Documentation = "Toggles the shutdown that will stop OpenSpace after a grace period. Press again to cancel the shutdown during this period.",
|
||||
Local = true
|
||||
},
|
||||
{
|
||||
Key = "PRINT_SCREEN",
|
||||
Name = "Take Screenshot",
|
||||
Command = "openspace.setPropertyValueSingle('RenderEngine.TakeScreenshot', nil)",
|
||||
Documentation = "Saves the contents of the screen to a file in the working directory.",
|
||||
GuiPath = "/Rendering",
|
||||
Local = true
|
||||
},
|
||||
{
|
||||
Key = "SPACE",
|
||||
Name = "Toggle Pause (Interpolated)",
|
||||
Command = "openspace.time.interpolateTogglePause()",
|
||||
Documentation = "Smoothly starts and stops the simulation time.",
|
||||
GuiPath = "/Simulation Speed",
|
||||
Local = true
|
||||
},
|
||||
{
|
||||
Key = "Shift+SPACE",
|
||||
Name = "Toggle Pause (Immediate)",
|
||||
Command = "openspace.time.togglePause()",
|
||||
Documentation = "Immediately starts and stops the simulation time.",
|
||||
GuiPath = "/Simulation Speed",
|
||||
Local = true
|
||||
},
|
||||
{
|
||||
Key = "f",
|
||||
Name = "Toggle roation friction",
|
||||
Command = propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RotationalFriction'),
|
||||
Documentation = "Toggles the rotational friction of the camera. If it is disabled, the camera rotates around the focus object indefinitely.",
|
||||
GuiPath = "/Navigation",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "Shift+f",
|
||||
Name = "Toggle Zoom Friction",
|
||||
Command = propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.ZoomFriction'),
|
||||
Documentation = "Toggles the zoom friction of the camera. If it is disabled, the camera rises up from or closes in towards the focus object indefinitely.",
|
||||
GuiPath = "/Navigation",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "Ctrl+f",
|
||||
Name = "Toggle Roll Friction",
|
||||
Command = propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RollFriction'),
|
||||
Documentation = "Toggles the roll friction of the camera. If it is disabled, the camera rolls around its own axis indefinitely.",
|
||||
GuiPath = "/Navigation",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "w",
|
||||
Name = "Fade to/from black",
|
||||
Command = "openspace.toggleFade(3)",
|
||||
Documentation = "Toggles the fade to black within 3 seconds or shows the rendering after 3 seconds.",
|
||||
GuiPath = "/Rendering",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "Tab",
|
||||
Name = "Toggle main GUI",
|
||||
Command = propertyHelper.invert('Modules.CefWebGui.Visible'),
|
||||
Documentation = "Toggles the main GUI",
|
||||
GuiPath = "/GUI",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "Shift+Tab",
|
||||
Name = "Toggle dashboard and overlays",
|
||||
Command =
|
||||
[[local isEnabled = openspace.getPropertyValue('Dashboard.IsEnabled');
|
||||
openspace.setPropertyValueSingle('Dashboard.IsEnabled', not isEnabled);
|
||||
openspace.setPropertyValueSingle("RenderEngine.ShowLog", not isEnabled);
|
||||
openspace.setPropertyValueSingle("RenderEngine.ShowVersion", not isEnabled);
|
||||
openspace.setPropertyValueSingle("RenderEngine.ShowCamera", not isEnabled)]],
|
||||
Documentation = "Toggles the dashboard and overlays",
|
||||
GuiPath = "/GUI",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "Alt+R",
|
||||
Name = "Toggle rendering on master",
|
||||
Command = propertyHelper.invert('RenderEngine.DisableMasterRendering'),
|
||||
Documentation = "Toggles the rendering on master",
|
||||
GuiPath = "/Rendering",
|
||||
Local = false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ local propertyHelper = asset.require('./property_helper')
|
||||
|
||||
-- Function that returns the string that enables/disables the renderable 'renderable'
|
||||
local toggle = function(renderable)
|
||||
return propertyHelper.invert(renderable .. ".renderable.Enabled")
|
||||
return propertyHelper.invert(renderable .. ".Renderable.Enabled")
|
||||
end
|
||||
|
||||
-- Function that returns the string that sets the enabled property of <renderable> to <enabled>
|
||||
local setEnabled = function(renderable, enabled)
|
||||
return "openspace.setPropertyValue('" .. renderable .. ".renderable.Enabled', " .. (enabled and "true" or "false") .. ");";
|
||||
return "openspace.setPropertyValue('" .. renderable .. ".Renderable.Enabled', " .. (enabled and "true" or "false") .. ");";
|
||||
end
|
||||
|
||||
|
||||
|
||||
@@ -6,8 +6,13 @@ local bindKeys = function(t)
|
||||
else
|
||||
bindFunction = openspace.bindKey
|
||||
end
|
||||
|
||||
bindFunction(k.Key, k.Command, k.Documentation)
|
||||
if k.Name == nil then
|
||||
k.Name = k.Key
|
||||
end
|
||||
if k.GuiPath == nil then
|
||||
k.GuiPath = ""
|
||||
end
|
||||
bindFunction(k.Key, k.Command, k.Documentation, k.Name, k.GuiPath)
|
||||
end
|
||||
end
|
||||
asset.export("bindKeys", bindKeys)
|
||||
@@ -44,7 +49,9 @@ local setDeltaTimeKeys = function(t)
|
||||
openspace.bindKeyLocal(
|
||||
Keys[i],
|
||||
'openspace.time.interpolateDeltaTime(' .. v .. ")",
|
||||
'Setting the simulation speed to ' .. v .. ' seconds per realtime second'
|
||||
'Setting the simulation speed to ' .. v .. ' seconds per realtime second',
|
||||
'Set sim speed ' .. v,
|
||||
'/Simulation Speed'
|
||||
)
|
||||
table.insert(result, Keys[i])
|
||||
end
|
||||
|
||||
@@ -4,6 +4,7 @@ local createDeck = function (identifier, defaultRenderableProperties)
|
||||
IdentifierPrefix = identifier,
|
||||
CurrentSlideIndex = 1,
|
||||
DefaultRenderableProperties = defaultRenderableProperties,
|
||||
Visible = true
|
||||
}
|
||||
end
|
||||
|
||||
@@ -49,6 +50,10 @@ local setCurrentSlide = function (deck, index, interpolationDuration)
|
||||
|
||||
deck.CurrentSlideIndex = index
|
||||
|
||||
if not deck.Visible then
|
||||
return
|
||||
end
|
||||
|
||||
for i, identifier in pairs(deck.SlideIdentifiers) do
|
||||
local opacity = 0
|
||||
if (index == i) then
|
||||
@@ -56,7 +61,7 @@ local setCurrentSlide = function (deck, index, interpolationDuration)
|
||||
end
|
||||
openspace.setPropertyValueSingle(
|
||||
"ScreenSpace." .. identifier .. ".Alpha", opacity,
|
||||
interpolationDuration)
|
||||
interpolationDuration, "QuadraticEaseOut")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -68,9 +73,31 @@ local goToPreviousSlide = function (deck, interpolationDuration)
|
||||
setCurrentSlide(deck, deck.CurrentSlideIndex - 1, interpolationDuration)
|
||||
end
|
||||
|
||||
local toggleSlides = function (deck, interpolationDuration)
|
||||
deck.Visible = not deck.Visible
|
||||
if deck.Visible then
|
||||
for i, identifier in pairs(deck.SlideIdentifiers) do
|
||||
local opacity = 0
|
||||
if (i == deck.CurrentSlideIndex) then
|
||||
opacity = 1
|
||||
end
|
||||
openspace.setPropertyValueSingle(
|
||||
"ScreenSpace." .. identifier .. ".Alpha", opacity,
|
||||
interpolationDuration, "QuadraticEaseOut")
|
||||
end
|
||||
else
|
||||
for i, identifier in pairs(deck.SlideIdentifiers) do
|
||||
openspace.setPropertyValueSingle(
|
||||
"ScreenSpace." .. identifier .. ".Alpha", 0,
|
||||
interpolationDuration, "QuadraticEaseOut")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
asset.export('createDeck', createDeck)
|
||||
asset.export('removeDeck', removeDeck)
|
||||
asset.export('addSlide', addSlide)
|
||||
asset.export('setCurrentSlide', setCurrentSlide)
|
||||
asset.export('goToNextSlide', goToNextSlide)
|
||||
asset.export('goToPreviousSlide', goToPreviousSlide)
|
||||
asset.export('toggleSlides', toggleSlides)
|
||||
|
||||
58
data/assets/util/webgui.asset
Normal file
58
data/assets/util/webgui.asset
Normal file
@@ -0,0 +1,58 @@
|
||||
local guiCustomization = asset.require('customization/gui')
|
||||
|
||||
-- Select which commit hashes to use for the frontend and backend
|
||||
local frontendHash = "abf5fe23ef29af408d6c071057f1cc706c9b09a3"
|
||||
local backendHash = "6e773425b3e90ba93f0090e44427e474fe5c633f"
|
||||
|
||||
local dataProvider = "data.openspaceproject.com/files/webgui"
|
||||
|
||||
local backend = asset.syncedResource({
|
||||
Identifier = "WebGuiBackend",
|
||||
Name = "Web Gui Backend",
|
||||
Type = "UrlSynchronization",
|
||||
Url = dataProvider .. "/backend/" .. backendHash .. "/backend.zip"
|
||||
})
|
||||
|
||||
local frontend = asset.syncedResource({
|
||||
Identifier = "WebGuiFrontend",
|
||||
Name = "Web Gui Frontend",
|
||||
Type = "UrlSynchronization",
|
||||
Url = dataProvider .. "/frontend/" .. frontendHash .. "/frontend.zip"
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
-- Unzip the frontend bundle
|
||||
local dest = frontend .. "/frontend"
|
||||
if not openspace.directoryExists(dest) then
|
||||
openspace.unzipFile(frontend .. "/frontend.zip", dest, true)
|
||||
end
|
||||
|
||||
-- Unzip the frontend bundle
|
||||
dest = backend .. "/backend"
|
||||
if not openspace.directoryExists(dest) then
|
||||
openspace.unzipFile(backend .. "/backend.zip", dest, true)
|
||||
end
|
||||
|
||||
-- Do not serve the files if we are in webgui development mode.
|
||||
-- In that case, you have to serve the webgui manually, using `npm start`.
|
||||
if not guiCustomization.webguiDevelopmentMode then
|
||||
openspace.setPropertyValueSingle(
|
||||
"Modules.WebGui.ServerProcessEntryPoint", backend .. "/backend/backend.js"
|
||||
)
|
||||
openspace.setPropertyValueSingle(
|
||||
"Modules.WebGui.WebDirectory", frontend .. "/frontend"
|
||||
)
|
||||
openspace.setPropertyValueSingle("Modules.WebGui.ServerProcessEnabled", true)
|
||||
end
|
||||
|
||||
-- The GUI contains date and simulation increment,
|
||||
-- so let's remove these from the dashboard.
|
||||
if openspace.getPropertyValue('Modules.CefWebGui.Visible') then
|
||||
openspace.setPropertyValueSingle('Dashboard.Date.Enabled', false)
|
||||
openspace.setPropertyValueSingle('Dashboard.SimulationIncrement.Enabled', false)
|
||||
end
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
openspace.setPropertyValueSingle("Modules.WebGui.ServerProcessEnabled", false)
|
||||
end)
|
||||
@@ -21,6 +21,8 @@ asset.require('util/default_keybindings')
|
||||
asset.require('util/default_dashboard')
|
||||
asset.require('util/default_joystick')
|
||||
|
||||
asset.require('util/webgui')
|
||||
|
||||
local VoyagerAsset = asset.require('scene/solarsystem/missions/voyager/voyager1')
|
||||
|
||||
assetHelper.registerDashboardItems(asset, {
|
||||
@@ -61,7 +63,7 @@ asset.onInitialize(function ()
|
||||
openspace.addVirtualProperty(
|
||||
"BoolProperty",
|
||||
"Show Trails",
|
||||
"*Trail.renderable.Enabled",
|
||||
"*Trail.Renderable.Enabled",
|
||||
"Disable or enable all trails of the scene at the same time",
|
||||
true,
|
||||
nil,
|
||||
@@ -76,7 +78,7 @@ asset.onInitialize(function ()
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
openspace.removeVirtualProperty("*Trail.renderable.Enabled")
|
||||
openspace.removeVirtualProperty("*Trail.Renderable.Enabled")
|
||||
openspace.removeInterestingNodes({
|
||||
"Earth", "Voyager 1", "Voyager 2", "Jupiter", "Saturn", "Uranus", "Neptune"
|
||||
})
|
||||
|
||||
@@ -9,10 +9,10 @@ return {
|
||||
},
|
||||
},
|
||||
Moon = {
|
||||
{
|
||||
Name = "OnMoon LMMP",
|
||||
URL = "https://onmoon.lmmp.nasa.gov/wms.cgi?request=GetCapabilities"
|
||||
},
|
||||
-- {
|
||||
-- Name = "OnMoon LMMP",
|
||||
-- URL = "https://onmoon.lmmp.nasa.gov/wms.cgi?request=GetCapabilities"
|
||||
-- },
|
||||
},
|
||||
Mercury = {
|
||||
{
|
||||
|
||||
6
data/tasks/gaia/gaia_download.task
Normal file
6
data/tasks/gaia/gaia_download.task
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
{
|
||||
Type = "SyncAssetTask",
|
||||
Asset = "scene/milkyway/gaia/gaia_dr2_download_stars"
|
||||
}
|
||||
}
|
||||
45
data/tasks/gaia/gaia_octree.task
Normal file
45
data/tasks/gaia/gaia_octree.task
Normal file
@@ -0,0 +1,45 @@
|
||||
local dataFolder = "E:/gaia_sync_data"
|
||||
return {
|
||||
{
|
||||
Type = "ConstructOctreeTask",
|
||||
InFileOrFolderPath = dataFolder .. "/Gaia_DR2_full_24columns/",
|
||||
OutFileOrFolderPath = dataFolder .. "/DR2_full_Octree_test_50,50/",
|
||||
MaxDist = 500,
|
||||
MaxStarsPerNode = 50000,
|
||||
SingleFileInput = false,
|
||||
-- Specify filter thresholds
|
||||
--FilterPosX = {0.0, 0.0},
|
||||
--FilterPosY = {0.0, 0.0},
|
||||
--FilterPosZ = {0.0, 0.0},
|
||||
FilterGMag = {20.0, 20.0},
|
||||
FilterBpRp = {0.0, 0.0},
|
||||
--FilterVelX = {0.0, 0.0},
|
||||
--FilterVelY = {0.0, 0.0},
|
||||
--FilterVelZ = {0.0, 0.0},
|
||||
--FilterBpMag = {20.0, 20.0},
|
||||
--FilterRpMag = {20.0, 20.0},
|
||||
--FilterBpG = {0.0, 0.0},
|
||||
--FilterGRp = {0.0, 0.0},
|
||||
--FilterRa = {0.0, 0.0},
|
||||
--FilterRaError = {0.0, 0.0},
|
||||
--FilterDec = {0.0, 0.0},
|
||||
--FilterDecError = {0.0, 0.0},
|
||||
FilterParallax = {0.01, 0.0},
|
||||
FilterParallaxError = {0.00001, 0.5},
|
||||
--FilterPmra = {0.0, 0.0},
|
||||
--FilterPmraError = {0.0, 0.0},
|
||||
--FilterPmdec = {0.0, 0.0},
|
||||
--FilterPmdecError = {0.0, 0.0},
|
||||
--FilterRv = {0.0, 0.0},
|
||||
--FilterRvError = {0.0, 0.0},
|
||||
},
|
||||
|
||||
-- {
|
||||
-- Type = "ConstructOctreeTask",
|
||||
-- InFileOrFolderPath = dataFolder .. "/AMNH/Binary/GaiaUMS.bin",
|
||||
-- OutFileOrFolderPath = dataFolder .. "/AMNH/Octree/GaiaUMS_Octree.bin",
|
||||
-- MaxDist = 10,
|
||||
-- MaxStarsPerNode = 20000,
|
||||
-- SingleFileInput = true,
|
||||
-- },
|
||||
}
|
||||
16
data/tasks/gaia/gaia_read.task
Normal file
16
data/tasks/gaia/gaia_read.task
Normal file
@@ -0,0 +1,16 @@
|
||||
local dataFolder = "E:/gaia_sync_data"
|
||||
return {
|
||||
{
|
||||
Type = "ReadFitsTask",
|
||||
InFileOrFolderPath = "L:/Gaia_DR2/gaia_source/fits/",
|
||||
OutFileOrFolderPath = dataFolder .. "/Gaia_DR2_full_24columns/",
|
||||
SingleFileProcess = false,
|
||||
ThreadsToUse = 8,
|
||||
},
|
||||
|
||||
--{
|
||||
-- Type = "ReadSpeckTask",
|
||||
-- InFilePath = dataFolder .. "/AMNH/GaiaUMS/GaiaUMS.speck",
|
||||
-- OutFilePath = dataFolder .. "/AMNH/Binary/GaiaUMS.bin",
|
||||
--},
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
###########################################################################
|
||||
pkginclude_HEADERS = \
|
||||
curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
|
||||
typecheck-gcc.h curlbuild.h curlrules.h
|
||||
|
||||
pkgincludedir= $(includedir)/curl
|
||||
|
||||
# curlbuild.h does not exist in the git tree. When the original libcurl
|
||||
# source code distribution archive file is created, curlbuild.h.dist is
|
||||
# renamed to curlbuild.h and included in the tarball so that it can be
|
||||
# used directly on non-configure systems.
|
||||
#
|
||||
# The distributed curlbuild.h will be overwritten on configure systems
|
||||
# when the configure script runs, with one that is suitable and specific
|
||||
# to the library being configured and built.
|
||||
#
|
||||
# curlbuild.h.in is the distributed template file from which the configure
|
||||
# script creates curlbuild.h at library configuration time, overwiting the
|
||||
# one included in the distribution archive.
|
||||
#
|
||||
# curlbuild.h.dist is not included in the source code distribution archive.
|
||||
|
||||
EXTRA_DIST = curlbuild.h.in
|
||||
|
||||
DISTCLEANFILES = curlbuild.h
|
||||
|
||||
checksrc:
|
||||
@@PERL@ $(top_srcdir)/lib/checksrc.pl -Wcurlbuild.h -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) $(EXTRA_DIST)
|
||||
|
||||
if CURLDEBUG
|
||||
# for debug builds, we scan the sources on all regular make invokes
|
||||
all-local: checksrc
|
||||
endif
|
||||
@@ -1,692 +0,0 @@
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = include/curl
|
||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
$(srcdir)/curlbuild.h.in $(top_srcdir)/mkinstalldirs \
|
||||
$(pkginclude_HEADERS)
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
|
||||
$(top_srcdir)/m4/curl-confopts.m4 \
|
||||
$(top_srcdir)/m4/curl-functions.m4 \
|
||||
$(top_srcdir)/m4/curl-openssl.m4 \
|
||||
$(top_srcdir)/m4/curl-override.m4 \
|
||||
$(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/m4/libtool.m4 \
|
||||
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/m4/xc-am-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-cc-check.m4 \
|
||||
$(top_srcdir)/m4/xc-lt-iface.m4 \
|
||||
$(top_srcdir)/m4/xc-translit.m4 \
|
||||
$(top_srcdir)/m4/xc-val-flgs.m4 \
|
||||
$(top_srcdir)/m4/zz40-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz50-xc-ovr.m4 \
|
||||
$(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/lib/curl_config.h curlbuild.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(pkgincludedir)"
|
||||
HEADERS = $(pkginclude_HEADERS)
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
|
||||
$(LISP)curlbuild.h.in
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
pkgincludedir = $(includedir)/curl
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BLANK_AT_MAKETIME = @BLANK_AT_MAKETIME@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
|
||||
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@
|
||||
CURLVERSION = @CURLVERSION@
|
||||
CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
|
||||
CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
|
||||
CURL_DISABLE_DICT = @CURL_DISABLE_DICT@
|
||||
CURL_DISABLE_FILE = @CURL_DISABLE_FILE@
|
||||
CURL_DISABLE_FTP = @CURL_DISABLE_FTP@
|
||||
CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@
|
||||
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
|
||||
CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@
|
||||
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
|
||||
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
|
||||
CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@
|
||||
CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@
|
||||
CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@
|
||||
CURL_DISABLE_SMB = @CURL_DISABLE_SMB@
|
||||
CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@
|
||||
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
|
||||
CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
|
||||
CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@
|
||||
CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
|
||||
CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ENABLE_SHARED = @ENABLE_SHARED@
|
||||
ENABLE_STATIC = @ENABLE_STATIC@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
|
||||
HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
|
||||
HAVE_LIBZ = @HAVE_LIBZ@
|
||||
HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
|
||||
IDN_ENABLED = @IDN_ENABLED@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
IPV6_ENABLED = @IPV6_ENABLED@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBMETALINK_CPPFLAGS = @LIBMETALINK_CPPFLAGS@
|
||||
LIBMETALINK_LDFLAGS = @LIBMETALINK_LDFLAGS@
|
||||
LIBMETALINK_LIBS = @LIBMETALINK_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MANOPT = @MANOPT@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NROFF = @NROFF@
|
||||
NSS_LIBS = @NSS_LIBS@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
PKGADD_NAME = @PKGADD_NAME@
|
||||
PKGADD_PKG = @PKGADD_PKG@
|
||||
PKGADD_VENDOR = @PKGADD_VENDOR@
|
||||
PKGCONFIG = @PKGCONFIG@
|
||||
RANDOM_FILE = @RANDOM_FILE@
|
||||
RANLIB = @RANLIB@
|
||||
REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SSL_ENABLED = @SSL_ENABLED@
|
||||
SSL_LIBS = @SSL_LIBS@
|
||||
STRIP = @STRIP@
|
||||
SUPPORT_FEATURES = @SUPPORT_FEATURES@
|
||||
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
|
||||
USE_ARES = @USE_ARES@
|
||||
USE_AXTLS = @USE_AXTLS@
|
||||
USE_CYASSL = @USE_CYASSL@
|
||||
USE_DARWINSSL = @USE_DARWINSSL@
|
||||
USE_GNUTLS = @USE_GNUTLS@
|
||||
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
|
||||
USE_LIBRTMP = @USE_LIBRTMP@
|
||||
USE_LIBSSH2 = @USE_LIBSSH2@
|
||||
USE_NGHTTP2 = @USE_NGHTTP2@
|
||||
USE_NSS = @USE_NSS@
|
||||
USE_OPENLDAP = @USE_OPENLDAP@
|
||||
USE_POLARSSL = @USE_POLARSSL@
|
||||
USE_SCHANNEL = @USE_SCHANNEL@
|
||||
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
|
||||
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
|
||||
VERSION = @VERSION@
|
||||
VERSIONNUM = @VERSIONNUM@
|
||||
ZLIB_LIBS = @ZLIB_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
libext = @libext@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
###########################################################################
|
||||
pkginclude_HEADERS = \
|
||||
curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
|
||||
typecheck-gcc.h curlbuild.h curlrules.h
|
||||
|
||||
|
||||
# curlbuild.h does not exist in the git tree. When the original libcurl
|
||||
# source code distribution archive file is created, curlbuild.h.dist is
|
||||
# renamed to curlbuild.h and included in the tarball so that it can be
|
||||
# used directly on non-configure systems.
|
||||
#
|
||||
# The distributed curlbuild.h will be overwritten on configure systems
|
||||
# when the configure script runs, with one that is suitable and specific
|
||||
# to the library being configured and built.
|
||||
#
|
||||
# curlbuild.h.in is the distributed template file from which the configure
|
||||
# script creates curlbuild.h at library configuration time, overwiting the
|
||||
# one included in the distribution archive.
|
||||
#
|
||||
# curlbuild.h.dist is not included in the source code distribution archive.
|
||||
EXTRA_DIST = curlbuild.h.in
|
||||
DISTCLEANFILES = curlbuild.h
|
||||
all: curlbuild.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/curl/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign include/curl/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
curlbuild.h: stamp-h2
|
||||
@test -f $@ || rm -f stamp-h2
|
||||
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h2
|
||||
|
||||
stamp-h2: $(srcdir)/curlbuild.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h2
|
||||
cd $(top_builddir) && $(SHELL) ./config.status include/curl/curlbuild.h
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f curlbuild.h stamp-h2
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-pkgincludeHEADERS: $(pkginclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
|
||||
$(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-pkgincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir)
|
||||
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-am
|
||||
TAGS: tags
|
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: ctags-am
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
cscopelist: cscopelist-am
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
@CURLDEBUG_FALSE@all-local:
|
||||
all-am: Makefile $(HEADERS) curlbuild.h all-local
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-pkgincludeHEADERS
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-pkgincludeHEADERS
|
||||
|
||||
.MAKE: all install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
|
||||
clean-generic clean-libtool cscopelist-am ctags ctags-am \
|
||||
distclean distclean-generic distclean-hdr distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-pkgincludeHEADERS \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||
uninstall-am uninstall-pkgincludeHEADERS
|
||||
|
||||
|
||||
checksrc:
|
||||
@@PERL@ $(top_srcdir)/lib/checksrc.pl -Wcurlbuild.h -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) $(EXTRA_DIST)
|
||||
|
||||
# for debug builds, we scan the sources on all regular make invokes
|
||||
@CURLDEBUG_TRUE@all-local: checksrc
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,197 +0,0 @@
|
||||
#ifndef __CURL_CURLBUILD_H
|
||||
#define __CURL_CURLBUILD_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/* ================================================================ */
|
||||
/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */
|
||||
/* ================================================================ */
|
||||
|
||||
/*
|
||||
* NOTE 1:
|
||||
* -------
|
||||
*
|
||||
* Nothing in this file is intended to be modified or adjusted by the
|
||||
* curl library user nor by the curl library builder.
|
||||
*
|
||||
* If you think that something actually needs to be changed, adjusted
|
||||
* or fixed in this file, then, report it on the libcurl development
|
||||
* mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/
|
||||
*
|
||||
* This header file shall only export symbols which are 'curl' or 'CURL'
|
||||
* prefixed, otherwise public name space would be polluted.
|
||||
*
|
||||
* NOTE 2:
|
||||
* -------
|
||||
*
|
||||
* Right now you might be staring at file include/curl/curlbuild.h.in or
|
||||
* at file include/curl/curlbuild.h, this is due to the following reason:
|
||||
*
|
||||
* On systems capable of running the configure script, the configure process
|
||||
* will overwrite the distributed include/curl/curlbuild.h file with one that
|
||||
* is suitable and specific to the library being configured and built, which
|
||||
* is generated from the include/curl/curlbuild.h.in template file.
|
||||
*
|
||||
*/
|
||||
|
||||
/* ================================================================ */
|
||||
/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */
|
||||
/* ================================================================ */
|
||||
|
||||
#ifdef CURL_SIZEOF_LONG
|
||||
#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_TYPEOF_CURL_SOCKLEN_T
|
||||
#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_SIZEOF_CURL_SOCKLEN_T
|
||||
#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_TYPEOF_CURL_OFF_T
|
||||
#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_FORMAT_CURL_OFF_T
|
||||
#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_FORMAT_CURL_OFF_TU
|
||||
#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_FORMAT_OFF_T
|
||||
#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_SIZEOF_CURL_OFF_T
|
||||
#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_SUFFIX_CURL_OFF_T
|
||||
#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_SUFFIX_CURL_OFF_TU
|
||||
#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined
|
||||
#endif
|
||||
|
||||
/* ================================================================ */
|
||||
/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */
|
||||
/* ================================================================ */
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file ws2tcpip.h must be included by the external interface. */
|
||||
#cmakedefine CURL_PULL_WS2TCPIP_H
|
||||
#ifdef CURL_PULL_WS2TCPIP_H
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <windows.h>
|
||||
# include <winsock2.h>
|
||||
# include <ws2tcpip.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file sys/types.h must be included by the external interface. */
|
||||
#cmakedefine CURL_PULL_SYS_TYPES_H
|
||||
#ifdef CURL_PULL_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file stdint.h must be included by the external interface. */
|
||||
#cmakedefine CURL_PULL_STDINT_H
|
||||
#ifdef CURL_PULL_STDINT_H
|
||||
# include <stdint.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file inttypes.h must be included by the external interface. */
|
||||
#cmakedefine CURL_PULL_INTTYPES_H
|
||||
#ifdef CURL_PULL_INTTYPES_H
|
||||
# include <inttypes.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file sys/socket.h must be included by the external interface. */
|
||||
#cmakedefine CURL_PULL_SYS_SOCKET_H
|
||||
#ifdef CURL_PULL_SYS_SOCKET_H
|
||||
# include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file sys/poll.h must be included by the external interface. */
|
||||
#cmakedefine CURL_PULL_SYS_POLL_H
|
||||
#ifdef CURL_PULL_SYS_POLL_H
|
||||
# include <sys/poll.h>
|
||||
#endif
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#define CURL_SIZEOF_LONG ${CURL_SIZEOF_LONG}
|
||||
|
||||
/* Integral data type used for curl_socklen_t. */
|
||||
#define CURL_TYPEOF_CURL_SOCKLEN_T ${CURL_TYPEOF_CURL_SOCKLEN_T}
|
||||
|
||||
/* The size of `curl_socklen_t', as computed by sizeof. */
|
||||
#define CURL_SIZEOF_CURL_SOCKLEN_T ${CURL_SIZEOF_CURL_SOCKLEN_T}
|
||||
|
||||
/* Data type definition of curl_socklen_t. */
|
||||
typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
|
||||
|
||||
/* Signed integral data type used for curl_off_t. */
|
||||
#define CURL_TYPEOF_CURL_OFF_T ${CURL_TYPEOF_CURL_OFF_T}
|
||||
|
||||
/* Data type definition of curl_off_t. */
|
||||
typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
|
||||
|
||||
/* curl_off_t formatting string directive without "%" conversion specifier. */
|
||||
#define CURL_FORMAT_CURL_OFF_T "${CURL_FORMAT_CURL_OFF_T}"
|
||||
|
||||
/* unsigned curl_off_t formatting string without "%" conversion specifier. */
|
||||
#define CURL_FORMAT_CURL_OFF_TU "${CURL_FORMAT_CURL_OFF_TU}"
|
||||
|
||||
/* curl_off_t formatting string directive with "%" conversion specifier. */
|
||||
#define CURL_FORMAT_OFF_T "${CURL_FORMAT_OFF_T}"
|
||||
|
||||
/* The size of `curl_off_t', as computed by sizeof. */
|
||||
#define CURL_SIZEOF_CURL_OFF_T ${CURL_SIZEOF_CURL_OFF_T}
|
||||
|
||||
/* curl_off_t constant suffix. */
|
||||
#define CURL_SUFFIX_CURL_OFF_T ${CURL_SUFFIX_CURL_OFF_T}
|
||||
|
||||
/* unsigned curl_off_t constant suffix. */
|
||||
#define CURL_SUFFIX_CURL_OFF_TU ${CURL_SUFFIX_CURL_OFF_TU}
|
||||
|
||||
#endif /* __CURL_CURLBUILD_H */
|
||||
@@ -1,197 +0,0 @@
|
||||
#ifndef __CURL_CURLBUILD_H
|
||||
#define __CURL_CURLBUILD_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/* ================================================================ */
|
||||
/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */
|
||||
/* ================================================================ */
|
||||
|
||||
/*
|
||||
* NOTE 1:
|
||||
* -------
|
||||
*
|
||||
* Nothing in this file is intended to be modified or adjusted by the
|
||||
* curl library user nor by the curl library builder.
|
||||
*
|
||||
* If you think that something actually needs to be changed, adjusted
|
||||
* or fixed in this file, then, report it on the libcurl development
|
||||
* mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/
|
||||
*
|
||||
* This header file shall only export symbols which are 'curl' or 'CURL'
|
||||
* prefixed, otherwise public name space would be polluted.
|
||||
*
|
||||
* NOTE 2:
|
||||
* -------
|
||||
*
|
||||
* Right now you might be staring at file include/curl/curlbuild.h.in or
|
||||
* at file include/curl/curlbuild.h, this is due to the following reason:
|
||||
*
|
||||
* On systems capable of running the configure script, the configure process
|
||||
* will overwrite the distributed include/curl/curlbuild.h file with one that
|
||||
* is suitable and specific to the library being configured and built, which
|
||||
* is generated from the include/curl/curlbuild.h.in template file.
|
||||
*
|
||||
*/
|
||||
|
||||
/* ================================================================ */
|
||||
/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */
|
||||
/* ================================================================ */
|
||||
|
||||
#ifdef CURL_SIZEOF_LONG
|
||||
#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_TYPEOF_CURL_SOCKLEN_T
|
||||
#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_SIZEOF_CURL_SOCKLEN_T
|
||||
#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_TYPEOF_CURL_OFF_T
|
||||
#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_FORMAT_CURL_OFF_T
|
||||
#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_FORMAT_CURL_OFF_TU
|
||||
#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_FORMAT_OFF_T
|
||||
#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_SIZEOF_CURL_OFF_T
|
||||
#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_SUFFIX_CURL_OFF_T
|
||||
#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined
|
||||
#endif
|
||||
|
||||
#ifdef CURL_SUFFIX_CURL_OFF_TU
|
||||
#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h"
|
||||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined
|
||||
#endif
|
||||
|
||||
/* ================================================================ */
|
||||
/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */
|
||||
/* ================================================================ */
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file ws2tcpip.h must be included by the external interface. */
|
||||
#undef CURL_PULL_WS2TCPIP_H
|
||||
#ifdef CURL_PULL_WS2TCPIP_H
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <windows.h>
|
||||
# include <winsock2.h>
|
||||
# include <ws2tcpip.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file sys/types.h must be included by the external interface. */
|
||||
#undef CURL_PULL_SYS_TYPES_H
|
||||
#ifdef CURL_PULL_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file stdint.h must be included by the external interface. */
|
||||
#undef CURL_PULL_STDINT_H
|
||||
#ifdef CURL_PULL_STDINT_H
|
||||
# include <stdint.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file inttypes.h must be included by the external interface. */
|
||||
#undef CURL_PULL_INTTYPES_H
|
||||
#ifdef CURL_PULL_INTTYPES_H
|
||||
# include <inttypes.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file sys/socket.h must be included by the external interface. */
|
||||
#undef CURL_PULL_SYS_SOCKET_H
|
||||
#ifdef CURL_PULL_SYS_SOCKET_H
|
||||
# include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
/* Configure process defines this to 1 when it finds out that system */
|
||||
/* header file sys/poll.h must be included by the external interface. */
|
||||
#undef CURL_PULL_SYS_POLL_H
|
||||
#ifdef CURL_PULL_SYS_POLL_H
|
||||
# include <sys/poll.h>
|
||||
#endif
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#undef CURL_SIZEOF_LONG
|
||||
|
||||
/* Integral data type used for curl_socklen_t. */
|
||||
#undef CURL_TYPEOF_CURL_SOCKLEN_T
|
||||
|
||||
/* The size of `curl_socklen_t', as computed by sizeof. */
|
||||
#undef CURL_SIZEOF_CURL_SOCKLEN_T
|
||||
|
||||
/* Data type definition of curl_socklen_t. */
|
||||
typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
|
||||
|
||||
/* Signed integral data type used for curl_off_t. */
|
||||
#undef CURL_TYPEOF_CURL_OFF_T
|
||||
|
||||
/* Data type definition of curl_off_t. */
|
||||
typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
|
||||
|
||||
/* curl_off_t formatting string directive without "%" conversion specifier. */
|
||||
#undef CURL_FORMAT_CURL_OFF_T
|
||||
|
||||
/* unsigned curl_off_t formatting string without "%" conversion specifier. */
|
||||
#undef CURL_FORMAT_CURL_OFF_TU
|
||||
|
||||
/* curl_off_t formatting string directive with "%" conversion specifier. */
|
||||
#undef CURL_FORMAT_OFF_T
|
||||
|
||||
/* The size of `curl_off_t', as computed by sizeof. */
|
||||
#undef CURL_SIZEOF_CURL_OFF_T
|
||||
|
||||
/* curl_off_t constant suffix. */
|
||||
#undef CURL_SUFFIX_CURL_OFF_T
|
||||
|
||||
/* unsigned curl_off_t constant suffix. */
|
||||
#undef CURL_SUFFIX_CURL_OFF_TU
|
||||
|
||||
#endif /* __CURL_CURLBUILD_H */
|
||||
@@ -1,262 +0,0 @@
|
||||
#ifndef __CURL_CURLRULES_H
|
||||
#define __CURL_CURLRULES_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/* ================================================================ */
|
||||
/* COMPILE TIME SANITY CHECKS */
|
||||
/* ================================================================ */
|
||||
|
||||
/*
|
||||
* NOTE 1:
|
||||
* -------
|
||||
*
|
||||
* All checks done in this file are intentionally placed in a public
|
||||
* header file which is pulled by curl/curl.h when an application is
|
||||
* being built using an already built libcurl library. Additionally
|
||||
* this file is also included and used when building the library.
|
||||
*
|
||||
* If compilation fails on this file it is certainly sure that the
|
||||
* problem is elsewhere. It could be a problem in the curlbuild.h
|
||||
* header file, or simply that you are using different compilation
|
||||
* settings than those used to build the library.
|
||||
*
|
||||
* Nothing in this file is intended to be modified or adjusted by the
|
||||
* curl library user nor by the curl library builder.
|
||||
*
|
||||
* Do not deactivate any check, these are done to make sure that the
|
||||
* library is properly built and used.
|
||||
*
|
||||
* You can find further help on the libcurl development mailing list:
|
||||
* http://cool.haxx.se/mailman/listinfo/curl-library/
|
||||
*
|
||||
* NOTE 2
|
||||
* ------
|
||||
*
|
||||
* Some of the following compile time checks are based on the fact
|
||||
* that the dimension of a constant array can not be a negative one.
|
||||
* In this way if the compile time verification fails, the compilation
|
||||
* will fail issuing an error. The error description wording is compiler
|
||||
* dependent but it will be quite similar to one of the following:
|
||||
*
|
||||
* "negative subscript or subscript is too large"
|
||||
* "array must have at least one element"
|
||||
* "-1 is an illegal array size"
|
||||
* "size of array is negative"
|
||||
*
|
||||
* If you are building an application which tries to use an already
|
||||
* built libcurl library and you are getting this kind of errors on
|
||||
* this file, it is a clear indication that there is a mismatch between
|
||||
* how the library was built and how you are trying to use it for your
|
||||
* application. Your already compiled or binary library provider is the
|
||||
* only one who can give you the details you need to properly use it.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Verify that some macros are actually defined.
|
||||
*/
|
||||
|
||||
#ifndef CURL_SIZEOF_LONG
|
||||
# error "CURL_SIZEOF_LONG definition is missing!"
|
||||
Error Compilation_aborted_CURL_SIZEOF_LONG_is_missing
|
||||
#endif
|
||||
|
||||
#ifndef CURL_TYPEOF_CURL_SOCKLEN_T
|
||||
# error "CURL_TYPEOF_CURL_SOCKLEN_T definition is missing!"
|
||||
Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_is_missing
|
||||
#endif
|
||||
|
||||
#ifndef CURL_SIZEOF_CURL_SOCKLEN_T
|
||||
# error "CURL_SIZEOF_CURL_SOCKLEN_T definition is missing!"
|
||||
Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_is_missing
|
||||
#endif
|
||||
|
||||
#ifndef CURL_TYPEOF_CURL_OFF_T
|
||||
# error "CURL_TYPEOF_CURL_OFF_T definition is missing!"
|
||||
Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_is_missing
|
||||
#endif
|
||||
|
||||
#ifndef CURL_FORMAT_CURL_OFF_T
|
||||
# error "CURL_FORMAT_CURL_OFF_T definition is missing!"
|
||||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_is_missing
|
||||
#endif
|
||||
|
||||
#ifndef CURL_FORMAT_CURL_OFF_TU
|
||||
# error "CURL_FORMAT_CURL_OFF_TU definition is missing!"
|
||||
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_is_missing
|
||||
#endif
|
||||
|
||||
#ifndef CURL_FORMAT_OFF_T
|
||||
# error "CURL_FORMAT_OFF_T definition is missing!"
|
||||
Error Compilation_aborted_CURL_FORMAT_OFF_T_is_missing
|
||||
#endif
|
||||
|
||||
#ifndef CURL_SIZEOF_CURL_OFF_T
|
||||
# error "CURL_SIZEOF_CURL_OFF_T definition is missing!"
|
||||
Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_is_missing
|
||||
#endif
|
||||
|
||||
#ifndef CURL_SUFFIX_CURL_OFF_T
|
||||
# error "CURL_SUFFIX_CURL_OFF_T definition is missing!"
|
||||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_is_missing
|
||||
#endif
|
||||
|
||||
#ifndef CURL_SUFFIX_CURL_OFF_TU
|
||||
# error "CURL_SUFFIX_CURL_OFF_TU definition is missing!"
|
||||
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_is_missing
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Macros private to this header file.
|
||||
*/
|
||||
|
||||
#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1
|
||||
|
||||
#define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1
|
||||
|
||||
/*
|
||||
* Verify that the size previously defined and expected for long
|
||||
* is the same as the one reported by sizeof() at compile time.
|
||||
*/
|
||||
|
||||
typedef char
|
||||
__curl_rule_01__
|
||||
[CurlchkszEQ(long, CURL_SIZEOF_LONG)];
|
||||
|
||||
/*
|
||||
* Verify that the size previously defined and expected for
|
||||
* curl_off_t is actually the the same as the one reported
|
||||
* by sizeof() at compile time.
|
||||
*/
|
||||
|
||||
typedef char
|
||||
__curl_rule_02__
|
||||
[CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)];
|
||||
|
||||
/*
|
||||
* Verify at compile time that the size of curl_off_t as reported
|
||||
* by sizeof() is greater or equal than the one reported for long
|
||||
* for the current compilation.
|
||||
*/
|
||||
|
||||
typedef char
|
||||
__curl_rule_03__
|
||||
[CurlchkszGE(curl_off_t, long)];
|
||||
|
||||
/*
|
||||
* Verify that the size previously defined and expected for
|
||||
* curl_socklen_t is actually the the same as the one reported
|
||||
* by sizeof() at compile time.
|
||||
*/
|
||||
|
||||
typedef char
|
||||
__curl_rule_04__
|
||||
[CurlchkszEQ(curl_socklen_t, CURL_SIZEOF_CURL_SOCKLEN_T)];
|
||||
|
||||
/*
|
||||
* Verify at compile time that the size of curl_socklen_t as reported
|
||||
* by sizeof() is greater or equal than the one reported for int for
|
||||
* the current compilation.
|
||||
*/
|
||||
|
||||
typedef char
|
||||
__curl_rule_05__
|
||||
[CurlchkszGE(curl_socklen_t, int)];
|
||||
|
||||
/* ================================================================ */
|
||||
/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */
|
||||
/* ================================================================ */
|
||||
|
||||
/*
|
||||
* CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow
|
||||
* these to be visible and exported by the external libcurl interface API,
|
||||
* while also making them visible to the library internals, simply including
|
||||
* curl_setup.h, without actually needing to include curl.h internally.
|
||||
* If some day this section would grow big enough, all this should be moved
|
||||
* to its own header file.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Figure out if we can use the ## preprocessor operator, which is supported
|
||||
* by ISO/ANSI C and C++. Some compilers support it without setting __STDC__
|
||||
* or __cplusplus so we need to carefully check for them too.
|
||||
*/
|
||||
|
||||
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
|
||||
defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
|
||||
defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
|
||||
defined(__ILEC400__)
|
||||
/* This compiler is believed to have an ISO compatible preprocessor */
|
||||
#define CURL_ISOCPP
|
||||
#else
|
||||
/* This compiler is believed NOT to have an ISO compatible preprocessor */
|
||||
#undef CURL_ISOCPP
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Macros for minimum-width signed and unsigned curl_off_t integer constants.
|
||||
*/
|
||||
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551)
|
||||
# define __CURL_OFF_T_C_HLPR2(x) x
|
||||
# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x)
|
||||
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \
|
||||
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T)
|
||||
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \
|
||||
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU)
|
||||
#else
|
||||
# ifdef CURL_ISOCPP
|
||||
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix
|
||||
# else
|
||||
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix
|
||||
# endif
|
||||
# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix)
|
||||
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T)
|
||||
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Get rid of macros private to this header file.
|
||||
*/
|
||||
|
||||
#undef CurlchkszEQ
|
||||
#undef CurlchkszGE
|
||||
|
||||
/*
|
||||
* Get rid of macros not intended to exist beyond this point.
|
||||
*/
|
||||
|
||||
#undef CURL_PULL_WS2TCPIP_H
|
||||
#undef CURL_PULL_SYS_TYPES_H
|
||||
#undef CURL_PULL_SYS_SOCKET_H
|
||||
#undef CURL_PULL_SYS_POLL_H
|
||||
#undef CURL_PULL_STDINT_H
|
||||
#undef CURL_PULL_INTTYPES_H
|
||||
|
||||
#undef CURL_TYPEOF_CURL_SOCKLEN_T
|
||||
#undef CURL_TYPEOF_CURL_OFF_T
|
||||
|
||||
#ifdef CURL_NO_OLDIES
|
||||
#undef CURL_FORMAT_OFF_T /* not required since 7.19.0 - obsoleted in 7.20.0 */
|
||||
#endif
|
||||
|
||||
#endif /* __CURL_CURLRULES_H */
|
||||
@@ -7,11 +7,11 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
@@ -26,17 +26,17 @@
|
||||
a script at release-time. This was made its own header file in 7.11.2 */
|
||||
|
||||
/* This is the global package copyright */
|
||||
#define LIBCURL_COPYRIGHT "1996 - 2015 Daniel Stenberg, <daniel@haxx.se>."
|
||||
#define LIBCURL_COPYRIGHT "1996 - 2018 Daniel Stenberg, <daniel@haxx.se>."
|
||||
|
||||
/* This is the version number of the libcurl package from which this header
|
||||
file origins: */
|
||||
#define LIBCURL_VERSION "7.42.1"
|
||||
#define LIBCURL_VERSION "7.63.0-DEV"
|
||||
|
||||
/* The numeric version number is also available "in parts" by using these
|
||||
defines: */
|
||||
#define LIBCURL_VERSION_MAJOR 7
|
||||
#define LIBCURL_VERSION_MINOR 42
|
||||
#define LIBCURL_VERSION_PATCH 1
|
||||
#define LIBCURL_VERSION_MINOR 63
|
||||
#define LIBCURL_VERSION_PATCH 0
|
||||
|
||||
/* This is the numeric version of the libcurl version number, meant for easier
|
||||
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
|
||||
@@ -52,18 +52,26 @@
|
||||
This 6-digit (24 bits) hexadecimal number does not show pre-release number,
|
||||
and it is always a greater number in a more recent release. It makes
|
||||
comparisons with greater than and less than work.
|
||||
|
||||
Note: This define is the full hex number and _does not_ use the
|
||||
CURL_VERSION_BITS() macro since curl's own configure script greps for it
|
||||
and needs it to contain the full number.
|
||||
*/
|
||||
#define LIBCURL_VERSION_NUM 0x072a01
|
||||
#define LIBCURL_VERSION_NUM 0x073F00
|
||||
|
||||
/*
|
||||
* This is the date and time when the full source package was created. The
|
||||
* timestamp is not stored in git, as the timestamp is properly set in the
|
||||
* tarballs by the maketgz script.
|
||||
*
|
||||
* The format of the date should follow this template:
|
||||
* The format of the date follows this template:
|
||||
*
|
||||
* "Mon Feb 12 11:35:33 UTC 2007"
|
||||
* "2007-11-23"
|
||||
*/
|
||||
#define LIBCURL_TIMESTAMP "Wed Apr 29 06:07:13 UTC 2015"
|
||||
#define LIBCURL_TIMESTAMP "[unreleased]"
|
||||
|
||||
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z)
|
||||
#define CURL_AT_LEAST_VERSION(x,y,z) \
|
||||
(LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z))
|
||||
|
||||
#endif /* __CURL_CURLVER_H */
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
@@ -58,7 +58,7 @@ CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...);
|
||||
* curl_easy_duphandle() for each new thread to avoid a series of identical
|
||||
* curl_easy_setopt() invokes in every thread.
|
||||
*/
|
||||
CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl);
|
||||
CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl);
|
||||
|
||||
/*
|
||||
* NAME curl_easy_reset()
|
||||
@@ -95,6 +95,16 @@ CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen,
|
||||
CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer,
|
||||
size_t buflen, size_t *n);
|
||||
|
||||
|
||||
/*
|
||||
* NAME curl_easy_upkeep()
|
||||
*
|
||||
* DESCRIPTION
|
||||
*
|
||||
* Performs connection upkeep for the given session handle.
|
||||
*/
|
||||
CURL_EXTERN CURLcode curl_easy_upkeep(CURL *curl);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
@@ -24,8 +24,7 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h> /* needed for FILE */
|
||||
|
||||
#include "curl.h"
|
||||
#include "curl.h" /* for CURL_EXTERN */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -44,29 +43,6 @@ CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength,
|
||||
CURL_EXTERN char *curl_maprintf(const char *format, ...);
|
||||
CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args);
|
||||
|
||||
#ifdef _MPRINTF_REPLACE
|
||||
# undef printf
|
||||
# undef fprintf
|
||||
# undef sprintf
|
||||
# undef vsprintf
|
||||
# undef snprintf
|
||||
# undef vprintf
|
||||
# undef vfprintf
|
||||
# undef vsnprintf
|
||||
# undef aprintf
|
||||
# undef vaprintf
|
||||
# define printf curl_mprintf
|
||||
# define fprintf curl_mfprintf
|
||||
# define sprintf curl_msprintf
|
||||
# define vsprintf curl_mvsprintf
|
||||
# define snprintf curl_msnprintf
|
||||
# define vprintf curl_mvprintf
|
||||
# define vfprintf curl_mvfprintf
|
||||
# define vsnprintf curl_mvsnprintf
|
||||
# define aprintf curl_maprintf
|
||||
# define vaprintf curl_mvaprintf
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
@@ -52,7 +52,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER)
|
||||
typedef struct Curl_multi CURLM;
|
||||
#else
|
||||
typedef void CURLM;
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
|
||||
@@ -66,6 +70,8 @@ typedef enum {
|
||||
CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */
|
||||
CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was
|
||||
attempted to get added - again */
|
||||
CURLM_RECURSIVE_API_CALL, /* an api function was called from inside a
|
||||
callback */
|
||||
CURLM_LAST
|
||||
} CURLMcode;
|
||||
|
||||
@@ -74,6 +80,11 @@ typedef enum {
|
||||
curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */
|
||||
#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM
|
||||
|
||||
/* bitmask bits for CURLMOPT_PIPELINING */
|
||||
#define CURLPIPE_NOTHING 0L
|
||||
#define CURLPIPE_HTTP1 1L
|
||||
#define CURLPIPE_MULTIPLEX 2L
|
||||
|
||||
typedef enum {
|
||||
CURLMSG_NONE, /* first, not used */
|
||||
CURLMSG_DONE, /* This easy handle has completed. 'result' contains
|
||||
@@ -175,8 +186,8 @@ CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle,
|
||||
*
|
||||
* Returns: CURLMcode type, general multi error code. *NOTE* that this only
|
||||
* returns errors etc regarding the whole multi stack. There might
|
||||
* still have occurred problems on invidual transfers even when this
|
||||
* returns OK.
|
||||
* still have occurred problems on individual transfers even when
|
||||
* this returns OK.
|
||||
*/
|
||||
CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle,
|
||||
int *running_handles);
|
||||
@@ -209,7 +220,7 @@ CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle);
|
||||
* curl_multi_cleanup().
|
||||
*
|
||||
* The 'CURLMsg' struct is meant to be very simple and only contain
|
||||
* very basic informations. If more involved information is wanted,
|
||||
* very basic information. If more involved information is wanted,
|
||||
* we will provide the particular "transfer handle" in that struct
|
||||
* and that should/could/would be used in subsequent
|
||||
* curl_easy_getinfo() calls (or similar). The point being that we
|
||||
@@ -365,6 +376,12 @@ typedef enum {
|
||||
/* maximum number of open connections in total */
|
||||
CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13),
|
||||
|
||||
/* This is the server push callback function pointer */
|
||||
CINIT(PUSHFUNCTION, FUNCTIONPOINT, 14),
|
||||
|
||||
/* This is the argument passed to the server push callback */
|
||||
CINIT(PUSHDATA, OBJECTPOINT, 15),
|
||||
|
||||
CURLMOPT_LASTENTRY /* the last unused */
|
||||
} CURLMoption;
|
||||
|
||||
@@ -392,6 +409,31 @@ CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle,
|
||||
CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle,
|
||||
curl_socket_t sockfd, void *sockp);
|
||||
|
||||
|
||||
/*
|
||||
* Name: curl_push_callback
|
||||
*
|
||||
* Desc: This callback gets called when a new stream is being pushed by the
|
||||
* server. It approves or denies the new stream.
|
||||
*
|
||||
* Returns: CURL_PUSH_OK or CURL_PUSH_DENY.
|
||||
*/
|
||||
#define CURL_PUSH_OK 0
|
||||
#define CURL_PUSH_DENY 1
|
||||
|
||||
struct curl_pushheaders; /* forward declaration only */
|
||||
|
||||
CURL_EXTERN char *curl_pushheader_bynum(struct curl_pushheaders *h,
|
||||
size_t num);
|
||||
CURL_EXTERN char *curl_pushheader_byname(struct curl_pushheaders *h,
|
||||
const char *name);
|
||||
|
||||
typedef int (*curl_push_callback)(CURL *parent,
|
||||
CURL *easy,
|
||||
size_t num_headers,
|
||||
struct curl_pushheaders *headers,
|
||||
void *userp);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* end of extern "C" */
|
||||
#endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user