mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-03 17:30:04 -05:00
Merge remote-tracking branch 'origin/thesis/2019/spaceweather-stream' into thesis/2019/spaceweather-stream
This commit is contained in:
@@ -31,6 +31,7 @@ Thumbs.db
|
||||
/screenshots/
|
||||
/recordings/
|
||||
/sync/
|
||||
/temp/
|
||||
# Customization is not supposed to be committed
|
||||
customization.lua
|
||||
# The COMMIT info is generated everytime CMake is run
|
||||
|
||||
+3
-3
@@ -10,9 +10,6 @@
|
||||
[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
|
||||
@@ -26,3 +23,6 @@
|
||||
[submodule "modules/fitsfilereader/ext/cfitsio"]
|
||||
path = modules/fitsfilereader/ext/cfitsio
|
||||
url = https://github.com/OpenSpace/cfitsio.git
|
||||
[submodule "apps/OpenSpace-MinVR/ext/glfw"]
|
||||
path = apps/OpenSpace-MinVR/ext/glfw
|
||||
url = https://github.com/opensgct/glfw
|
||||
|
||||
+9
-4
@@ -2,7 +2,7 @@
|
||||
# #
|
||||
# OpenSpace #
|
||||
# #
|
||||
# Copyright (c) 2014-2018 #
|
||||
# Copyright (c) 2014-2019 #
|
||||
# #
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy of this #
|
||||
# software and associated documentation files (the "Software"), to deal in the Software #
|
||||
@@ -27,9 +27,9 @@ cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
|
||||
project(OpenSpace)
|
||||
|
||||
set(OPENSPACE_VERSION_MAJOR 0)
|
||||
set(OPENSPACE_VERSION_MINOR 14)
|
||||
set(OPENSPACE_VERSION_PATCH 0)
|
||||
set(OPENSPACE_VERSION_STRING "Beta-4")
|
||||
set(OPENSPACE_VERSION_MINOR 15)
|
||||
set(OPENSPACE_VERSION_PATCH -1)
|
||||
set(OPENSPACE_VERSION_STRING "Beta-5 RC1")
|
||||
|
||||
|
||||
set(OPENSPACE_BASE_DIR "${PROJECT_SOURCE_DIR}")
|
||||
@@ -285,6 +285,11 @@ if (OPENSPACE_WITH_ABUFFER_RENDERER)
|
||||
target_compile_definitions(openspace-core PUBLIC "OPENSPACE_WITH_ABUFFER_RENDERER")
|
||||
endif ()
|
||||
|
||||
option(OPENSPACE_WITH_INSTRUMENTATION "Add instrumentation options" OFF)
|
||||
if (OPENSPACE_WITH_INSTRUMENTATION)
|
||||
target_compile_definitions(openspace-core PUBLIC "OPENSPACE_WITH_INSTRUMENTATION")
|
||||
endif ()
|
||||
|
||||
|
||||
# Just in case, create the bin directory
|
||||
add_custom_command(
|
||||
|
||||
@@ -50,7 +50,7 @@ target_include_directories(OpenSpace-MinVR PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ex
|
||||
target_include_directories(OpenSpace-MinVR PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ext/minvr/external/GLFW/src/include)
|
||||
|
||||
|
||||
target_link_libraries(OpenSpace-MinVR libOpenSpace MinVR)
|
||||
target_link_libraries(OpenSpace-MinVR openspace-core MinVR)
|
||||
|
||||
# Web Browser and Web gui
|
||||
# Why not put these in the module's path? Because they do not have access to the
|
||||
|
||||
Submodule
+1
Submodule apps/OpenSpace-MinVR/ext/glfw added at 7ef34eb06d
@@ -200,7 +200,14 @@ void Handler::onVREvent(const VRDataIndex& eventData) {
|
||||
if (button == MouseButton::Right && action == MouseAction::Press) {
|
||||
windowingGlobals.mouseButtons |= 1 << 2;
|
||||
}
|
||||
global::openSpaceEngine.mouseButtonCallback(button, action);
|
||||
|
||||
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;
|
||||
|
||||
global::openSpaceEngine.mouseButtonCallback(button, action, mod);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -341,6 +348,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
|
||||
);
|
||||
|
||||
// Create the OpenSpace engine and get arguments for the SGCT engine
|
||||
std::string windowConfiguration;
|
||||
try {
|
||||
|
||||
+58
-57
@@ -76,6 +76,8 @@ constexpr const bool EnableDetailedVtune = false;
|
||||
#include "nvToolsExt.h"
|
||||
#endif // OPENSPACE_HAS_NVTOOLS
|
||||
|
||||
using namespace openspace;
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr const char* _loggerCat = "main";
|
||||
@@ -157,9 +159,9 @@ LONG WINAPI generateMiniDump(EXCEPTION_POINTERS* exceptionPointers) {
|
||||
|
||||
std::string dumpFile = fmt::format(
|
||||
"OpenSpace_{}_{}_{}-{}-{}-{}-{}-{}-{}--{}--{}.dmp",
|
||||
openspace::OPENSPACE_VERSION_MAJOR,
|
||||
openspace::OPENSPACE_VERSION_MINOR,
|
||||
openspace::OPENSPACE_VERSION_PATCH,
|
||||
OPENSPACE_VERSION_MAJOR,
|
||||
OPENSPACE_VERSION_MINOR,
|
||||
OPENSPACE_VERSION_PATCH,
|
||||
stLocalTime.wYear,
|
||||
stLocalTime.wMonth,
|
||||
stLocalTime.wDay,
|
||||
@@ -260,7 +262,7 @@ void mainInitFunc() {
|
||||
LTRACE("main::mainInitFunc(begin)");
|
||||
|
||||
LDEBUG("Initializing OpenSpace Engine started");
|
||||
openspace::global::openSpaceEngine.initialize();
|
||||
global::openSpaceEngine.initialize();
|
||||
LDEBUG("Initializing OpenSpace Engine finished");
|
||||
|
||||
{
|
||||
@@ -287,21 +289,9 @@ void mainInitFunc() {
|
||||
|
||||
|
||||
LDEBUG("Initializing OpenGL in OpenSpace Engine started");
|
||||
openspace::global::openSpaceEngine.initializeGL();
|
||||
global::openSpaceEngine.initializeGL();
|
||||
LDEBUG("Initializing OpenGL in OpenSpace Engine finished");
|
||||
|
||||
{
|
||||
|
||||
//using namespace ghoul::opengl;
|
||||
//std::unique_ptr<ghoul::opengl::Texture> t = ghoul::io::TextureReader::ref().loadTexture(absPath("${DATA}/openspace-icon.png"));
|
||||
|
||||
|
||||
//GLFWimage icons[1];
|
||||
//icons[0].pixels =
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Find if we have at least one OpenVR window
|
||||
// Save reference to first OpenVR window, which is the one we will copy to the HMD.
|
||||
@@ -378,7 +368,7 @@ void mainInitFunc() {
|
||||
//
|
||||
|
||||
std::string screenshotPath = "${SCREENSHOTS}";
|
||||
if (openspace::global::configuration.shouldUseScreenshotDate) {
|
||||
if (global::configuration.shouldUseScreenshotDate) {
|
||||
std::time_t now = std::time(nullptr);
|
||||
std::tm* nowTime = std::localtime(&now);
|
||||
char mbstr[128];
|
||||
@@ -424,13 +414,13 @@ void mainPreSyncFunc() {
|
||||
#endif // OPENSPACE_HAS_VTUNE
|
||||
LTRACE("main::mainPreSyncFunc(begin)");
|
||||
|
||||
openspace::global::openSpaceEngine.preSynchronization();
|
||||
global::openSpaceEngine.preSynchronization();
|
||||
|
||||
// Query joystick status
|
||||
using namespace openspace::interaction;
|
||||
using namespace interaction;
|
||||
|
||||
for (int i = GLFW_JOYSTICK_1; i <= GLFW_JOYSTICK_LAST; ++i) {
|
||||
JoystickInputState& state = openspace::global::joystickInputStates[i];
|
||||
JoystickInputState& state = global::joystickInputStates[i];
|
||||
|
||||
int present = glfwJoystickPresent(i);
|
||||
if (present == GLFW_FALSE) {
|
||||
@@ -523,7 +513,7 @@ void mainPostSyncPreDrawFunc() {
|
||||
#endif // OPENSPACE_HAS_NVTOOLS
|
||||
LTRACE("main::postSynchronizationPreDraw(begin)");
|
||||
|
||||
openspace::global::openSpaceEngine.postSynchronizationPreDraw();
|
||||
global::openSpaceEngine.postSynchronizationPreDraw();
|
||||
|
||||
#ifdef OPENVR_SUPPORT
|
||||
if (FirstOpenVRWindow) {
|
||||
@@ -571,7 +561,7 @@ void mainRenderFunc() {
|
||||
#endif
|
||||
|
||||
try {
|
||||
openspace::global::openSpaceEngine.render(
|
||||
global::openSpaceEngine.render(
|
||||
SgctEngine->getModelMatrix(),
|
||||
viewMatrix,
|
||||
projectionMatrix
|
||||
@@ -603,7 +593,7 @@ void mainDraw2DFunc() {
|
||||
LTRACE("main::mainDraw2DFunc(begin)");
|
||||
|
||||
try {
|
||||
openspace::global::openSpaceEngine.drawOverlays();
|
||||
global::openSpaceEngine.drawOverlays();
|
||||
}
|
||||
catch (const ghoul::RuntimeError& e) {
|
||||
LERRORC(e.component, e.message);
|
||||
@@ -639,7 +629,7 @@ void mainPostDrawFunc() {
|
||||
}
|
||||
#endif // OPENVR_SUPPORT
|
||||
|
||||
openspace::global::openSpaceEngine.postDraw();
|
||||
global::openSpaceEngine.postDraw();
|
||||
|
||||
#ifdef OPENSPACE_HAS_SPOUT
|
||||
for (const SpoutWindow& w : SpoutWindows) {
|
||||
@@ -679,7 +669,7 @@ void mainPostDrawFunc() {
|
||||
|
||||
|
||||
|
||||
void mainKeyboardCallback(int key, int, int action, int mods) {
|
||||
void mainKeyboardCallback(int key, int, int action, int modifiers) {
|
||||
#ifdef OPENSPACE_HAS_VTUNE
|
||||
if (EnableDetailedVtune) {
|
||||
__itt_frame_begin_v3(_vTune.keyboard, nullptr);
|
||||
@@ -687,11 +677,10 @@ void mainKeyboardCallback(int key, int, int action, int mods) {
|
||||
#endif // OPENSPACE_HAS_VTUNE
|
||||
LTRACE("main::mainKeyboardCallback(begin)");
|
||||
|
||||
openspace::global::openSpaceEngine.keyboardCallback(
|
||||
openspace::Key(key),
|
||||
openspace::KeyModifier(mods),
|
||||
openspace::KeyAction(action)
|
||||
);
|
||||
const Key k = Key(key);
|
||||
const KeyModifier m = KeyModifier(modifiers);
|
||||
const KeyAction a = KeyAction(action);
|
||||
global::openSpaceEngine.keyboardCallback(k, m, a);
|
||||
|
||||
LTRACE("main::mainKeyboardCallback(begin)");
|
||||
#ifdef OPENSPACE_HAS_VTUNE
|
||||
@@ -711,11 +700,10 @@ void mainMouseButtonCallback(int key, int action, int modifiers) {
|
||||
#endif // OPENSPACE_HAS_VTUNE
|
||||
LTRACE("main::mainMouseButtonCallback(begin)");
|
||||
|
||||
openspace::global::openSpaceEngine.mouseButtonCallback(
|
||||
openspace::MouseButton(key),
|
||||
openspace::MouseAction(action),
|
||||
openspace::KeyModifier(modifiers)
|
||||
);
|
||||
const MouseButton k = MouseButton(key);
|
||||
const MouseAction a = MouseAction(action);
|
||||
const KeyModifier m = KeyModifier(modifiers);
|
||||
global::openSpaceEngine.mouseButtonCallback(k, a, m);
|
||||
|
||||
LTRACE("main::mainMouseButtonCallback(end)");
|
||||
#ifdef OPENSPACE_HAS_VTUNE
|
||||
@@ -734,7 +722,7 @@ void mainMousePosCallback(double x, double y) {
|
||||
}
|
||||
#endif // OPENSPACE_HAS_VTUNE
|
||||
|
||||
openspace::global::openSpaceEngine.mousePositionCallback(x, y);
|
||||
global::openSpaceEngine.mousePositionCallback(x, y);
|
||||
|
||||
#ifdef OPENSPACE_HAS_VTUNE
|
||||
if (EnableDetailedVtune) {
|
||||
@@ -753,7 +741,7 @@ void mainMouseScrollCallback(double posX, double posY) {
|
||||
#endif // OPENSPACE_HAS_VTUNE
|
||||
LTRACE("main::mainMouseScrollCallback(begin");
|
||||
|
||||
openspace::global::openSpaceEngine.mouseScrollWheelCallback(posX, posY);
|
||||
global::openSpaceEngine.mouseScrollWheelCallback(posX, posY);
|
||||
|
||||
LTRACE("main::mainMouseScrollCallback(end)");
|
||||
#ifdef OPENSPACE_HAS_VTUNE
|
||||
@@ -765,17 +753,15 @@ void mainMouseScrollCallback(double posX, double posY) {
|
||||
|
||||
|
||||
|
||||
void mainCharCallback(unsigned int codepoint, int mods) {
|
||||
void mainCharCallback(unsigned int codepoint, int modifiers) {
|
||||
#ifdef OPENSPACE_HAS_VTUNE
|
||||
if (EnableDetailedVtune) {
|
||||
__itt_frame_begin_v3(_vTune.character, nullptr);
|
||||
}
|
||||
#endif // OPENSPACE_HAS_VTUNE
|
||||
|
||||
openspace::global::openSpaceEngine.charCallback(
|
||||
codepoint,
|
||||
openspace::KeyModifier(mods)
|
||||
);
|
||||
const KeyModifier m = KeyModifier(modifiers);
|
||||
global::openSpaceEngine.charCallback(codepoint, m);
|
||||
|
||||
#ifdef OPENSPACE_HAS_VTUNE
|
||||
if (EnableDetailedVtune) {
|
||||
@@ -794,7 +780,7 @@ void mainEncodeFun() {
|
||||
#endif // OPENSPACE_HAS_VTUNE
|
||||
LTRACE("main::mainEncodeFun(begin)");
|
||||
|
||||
std::vector<char> data = openspace::global::openSpaceEngine.encode();
|
||||
std::vector<char> data = global::openSpaceEngine.encode();
|
||||
_synchronizationBuffer.setVal(std::move(data));
|
||||
sgct::SharedData::instance()->writeVector(&_synchronizationBuffer);
|
||||
|
||||
@@ -818,7 +804,7 @@ void mainDecodeFun() {
|
||||
|
||||
sgct::SharedData::instance()->readVector(&_synchronizationBuffer);
|
||||
std::vector<char> data = _synchronizationBuffer.getVal();
|
||||
openspace::global::openSpaceEngine.decode(std::move(data));
|
||||
global::openSpaceEngine.decode(std::move(data));
|
||||
|
||||
LTRACE("main::mainDecodeFun(end)");
|
||||
#ifdef OPENSPACE_HAS_VTUNE
|
||||
@@ -845,7 +831,7 @@ void mainLogCallback(const char* msg) {
|
||||
|
||||
|
||||
void setSgctDelegateFunctions() {
|
||||
openspace::WindowDelegate& sgctDelegate = openspace::global::windowDelegate;
|
||||
WindowDelegate& sgctDelegate = global::windowDelegate;
|
||||
sgctDelegate.terminate = []() { sgct::Engine::instance()->terminate(); };
|
||||
sgctDelegate.setBarrier = [](bool enabled) {
|
||||
sgct::SGCTWindow::setBarrier(enabled);
|
||||
@@ -1052,6 +1038,19 @@ void setSgctDelegateFunctions() {
|
||||
sgct::SGCTWindow* w = sgct::Engine::instance()->getWindowPtr(0);
|
||||
w->setHorizFieldOfView(hFovDeg);
|
||||
};
|
||||
sgctDelegate.frustumMode = []() {
|
||||
using FM = sgct_core::Frustum::FrustumMode;
|
||||
switch (sgct::Engine::instance()->getCurrentFrustumMode()) {
|
||||
case FM::MonoEye: return WindowDelegate::Frustum::Mono;
|
||||
case FM::StereoLeftEye: return WindowDelegate::Frustum::LeftEye;
|
||||
case FM::StereoRightEye: return WindowDelegate::Frustum::RightEye;
|
||||
}
|
||||
};
|
||||
sgctDelegate.swapGroupFrameNumber = []() {
|
||||
unsigned int fn = 0;
|
||||
sgct::Engine::instance()->getCurrentWindowPtr()->getSwapGroupFrameNumber(fn);
|
||||
return static_cast<uint64_t>(fn);
|
||||
};
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
@@ -1113,7 +1112,7 @@ int main(int argc, char** argv) {
|
||||
ghoul::cmdparser::CommandlineParser::AllowUnknownCommands::Yes
|
||||
);
|
||||
|
||||
openspace::CommandlineArguments commandlineArguments;
|
||||
CommandlineArguments commandlineArguments;
|
||||
parser.addCommand(std::make_unique<ghoul::cmdparser::SingleCommand<std::string>>(
|
||||
commandlineArguments.configurationName, "--file", "-f",
|
||||
"Provides the path to the OpenSpace configuration file. Only the '${TEMPORARY}' "
|
||||
@@ -1132,7 +1131,7 @@ int main(int argc, char** argv) {
|
||||
"evaluated before it is passed to OpenSpace."
|
||||
));
|
||||
|
||||
// setCommandLine returns a referece to the vector that will be filled later
|
||||
// setCommandLine returns a reference to the vector that will be filled later
|
||||
const std::vector<std::string>& sgctArguments = parser.setCommandLine(
|
||||
{ argv, argv + argc }
|
||||
);
|
||||
@@ -1153,8 +1152,6 @@ int main(int argc, char** argv) {
|
||||
// Create the OpenSpace engine and get arguments for the SGCT engine
|
||||
std::string windowConfiguration;
|
||||
try {
|
||||
using namespace openspace;
|
||||
|
||||
// Find configuration
|
||||
std::string configurationFilePath = commandlineArguments.configurationName;
|
||||
if (commandlineArguments.configurationName.empty()) {
|
||||
@@ -1190,16 +1187,17 @@ int main(int argc, char** argv) {
|
||||
// Determining SGCT configuration file
|
||||
LDEBUG("SGCT Configuration file: " + global::configuration.windowConfiguration);
|
||||
|
||||
windowConfiguration = openspace::global::configuration.windowConfiguration;
|
||||
windowConfiguration = global::configuration.windowConfiguration;
|
||||
}
|
||||
catch (const openspace::documentation::SpecificationError& e) {
|
||||
catch (const documentation::SpecificationError& e) {
|
||||
LFATALC("main", "Loading of configuration file failed");
|
||||
for (const openspace::documentation::TestResult::Offense& o : e.result.offenses) {
|
||||
for (const documentation::TestResult::Offense& o : e.result.offenses) {
|
||||
LERRORC(o.offender, ghoul::to_string(o.reason));
|
||||
}
|
||||
for (const openspace::documentation::TestResult::Warning& w : e.result.warnings) {
|
||||
for (const documentation::TestResult::Warning& w : e.result.warnings) {
|
||||
LWARNINGC(w.offender, ghoul::to_string(w.reason));
|
||||
}
|
||||
ghoul::deinitialize();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
catch (const ghoul::RuntimeError& e) {
|
||||
@@ -1208,10 +1206,11 @@ int main(int argc, char** argv) {
|
||||
if (ghoul::logging::LogManager::isInitialized()) {
|
||||
LogMgr.flushLogs();
|
||||
}
|
||||
ghoul::deinitialize();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
openspace::global::openSpaceEngine.registerPathTokens();
|
||||
global::openSpaceEngine.registerPathTokens();
|
||||
|
||||
// Prepend the outgoing sgctArguments with the program name
|
||||
// as well as the configuration file that sgct is supposed to use
|
||||
@@ -1305,8 +1304,8 @@ int main(int argc, char** argv) {
|
||||
|
||||
auto cleanup = [&](bool isInitialized) {
|
||||
if (isInitialized) {
|
||||
openspace::global::openSpaceEngine.deinitializeGL();
|
||||
openspace::global::openSpaceEngine.deinitialize();
|
||||
global::openSpaceEngine.deinitializeGL();
|
||||
global::openSpaceEngine.deinitialize();
|
||||
}
|
||||
|
||||
// Clear function bindings to avoid crash after destroying the OpenSpace Engine
|
||||
@@ -1333,6 +1332,8 @@ int main(int argc, char** argv) {
|
||||
}
|
||||
}
|
||||
#endif // OPENSPACE_HAS_SPOUT
|
||||
|
||||
ghoul::deinitialize();
|
||||
};
|
||||
|
||||
if (!initSuccess) {
|
||||
|
||||
+21
-36
@@ -22,43 +22,26 @@
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
|
||||
#include <ghoul/opengl/ghoul_gl.h>
|
||||
|
||||
#include <ghoul/filesystem/filesystem.h>
|
||||
#include <ghoul/filesystem/directory.h>
|
||||
#include <ghoul/logging/logmanager.h>
|
||||
#include <ghoul/logging/consolelog.h>
|
||||
#include <ghoul/ghoul.h>
|
||||
#include <openspace/network/parallelserver.h>
|
||||
#include <ghoul/fmt.h>
|
||||
#include <ghoul/cmdparser/commandlineparser.h>
|
||||
#include <ghoul/cmdparser/singlecommand.h>
|
||||
|
||||
#include <openspace/engine/windowdelegate.h>
|
||||
#include <openspace/scripting/scriptengine.h>
|
||||
#include <openspace/rendering/renderable.h>
|
||||
|
||||
#include <openspace/network/parallelserver.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <ghoul/glm.h>
|
||||
#include <functional>
|
||||
#include <sstream>
|
||||
#include <ghoul/logging/logmanager.h>
|
||||
#include <iomanip>
|
||||
#include <ios>
|
||||
|
||||
namespace {
|
||||
const std::string _loggerCat = "Wormhole";
|
||||
}
|
||||
constexpr const char*_loggerCat = "Wormhole";
|
||||
} // namespace
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
using namespace openspace;
|
||||
using namespace ghoul::cmdparser;
|
||||
|
||||
std::vector<std::string> arguments(argv, argv + argc);
|
||||
|
||||
ghoul::cmdparser::CommandlineParser commandlineParser(
|
||||
CommandlineParser commandlineParser(
|
||||
"Wormhole",
|
||||
ghoul::cmdparser::CommandlineParser::AllowUnknownCommands::Yes
|
||||
CommandlineParser::AllowUnknownCommands::Yes
|
||||
);
|
||||
|
||||
std::stringstream defaultPassword;
|
||||
@@ -73,43 +56,43 @@ int main(int argc, char** argv) {
|
||||
std::chrono::system_clock::now().time_since_epoch().count() + 1
|
||||
) % 0xffffff);
|
||||
|
||||
std::string portString = "";
|
||||
std::string portString;
|
||||
commandlineParser.addCommand(
|
||||
std::make_unique<ghoul::cmdparser::SingleCommand<std::string>>(
|
||||
portString,
|
||||
"--port",
|
||||
"-p",
|
||||
"Sets the port to listen on"
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
std::string password = "";
|
||||
std::string password;
|
||||
commandlineParser.addCommand(
|
||||
std::make_unique<ghoul::cmdparser::SingleCommand<std::string>>(
|
||||
password,
|
||||
"--password",
|
||||
"-l",
|
||||
"Sets the password to use"
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
std::string changeHostPassword = "";
|
||||
std::string changeHostPassword;
|
||||
commandlineParser.addCommand(
|
||||
std::make_unique<ghoul::cmdparser::SingleCommand<std::string>>(
|
||||
changeHostPassword,
|
||||
"--hostpassword",
|
||||
"-h",
|
||||
"Sets the host password to use"
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
commandlineParser.setCommandLine(arguments);
|
||||
commandlineParser.execute();
|
||||
|
||||
if (password == "") {
|
||||
if (password.empty()) {
|
||||
password = defaultPassword.str();
|
||||
}
|
||||
if (changeHostPassword == "") {
|
||||
if (changeHostPassword.empty()) {
|
||||
changeHostPassword = defaultChangeHostPassword.str();
|
||||
}
|
||||
|
||||
@@ -118,11 +101,11 @@ int main(int argc, char** argv) {
|
||||
|
||||
int port = 25001;
|
||||
|
||||
if (portString != "") {
|
||||
if (!portString.empty()) {
|
||||
try {
|
||||
port = std::stoi(portString);
|
||||
}
|
||||
catch (...) {
|
||||
catch (const std::invalid_argument&) {
|
||||
LERROR(fmt::format("Invalid port: {}", portString));
|
||||
}
|
||||
}
|
||||
@@ -132,7 +115,9 @@ int main(int argc, char** argv) {
|
||||
server.setDefaultHostAddress("127.0.0.1");
|
||||
LINFO(fmt::format("Server listening to port {}", port));
|
||||
|
||||
while (std::cin.get() != 'q') {}
|
||||
while (std::cin.get() != 'q') {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||||
}
|
||||
|
||||
server.stop();
|
||||
LINFO("Server stopped");
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<Node address="localhost" port="20401">
|
||||
<Window tags="OpenVR" fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Window tags="OpenVR" fullScreen="false" numberOfSamples="4" name="OpenSpace">
|
||||
<Stereo type="side_by_side" />
|
||||
<!-- Res is equal to the Recommend target size -->
|
||||
<Size x="1332" y="840" />
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<Node address="localhost" port="20401">
|
||||
<Window tags="OpenVR" fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Window tags="OpenVR" fullScreen="false" numberOfSamples="4" name="OpenSpace">
|
||||
<Stereo type="side_by_side" />
|
||||
<!-- Res is equal to the Recommend target size -->
|
||||
<Size x="1332" y="793" />
|
||||
|
||||
+3
-3
@@ -4,15 +4,15 @@
|
||||
<Display swapInterval="0" />
|
||||
</Settings>
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="4" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
<Size x="1280" y="720" />
|
||||
<Pos x="50" y="50" />
|
||||
<Viewport>
|
||||
<Viewport tracked="true">
|
||||
<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" />
|
||||
<FOV down="25.267007923362" left="40.0" right="40.0" up="25.267007923362" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<Scale value="1.0" />
|
||||
</Scene> -->
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Window fullScreen="false" numberOfSamples="4" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1024" y="1024" />
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<!-- <Scene>
|
||||
<Orientation yaw="0.0" pitch="-27.0" roll="0.0" />
|
||||
<Offset x="0.0" y="0.0" z="0.0" />
|
||||
<Scale value="1.0" />
|
||||
</Scene> -->
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" numberOfSamples="4" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1024" y="1024" />
|
||||
<!-- Frame buffer resolution
|
||||
<Res x="4096" y="4096" /> -->
|
||||
<!--
|
||||
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="fisheye">
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<FisheyeProjection fov="180" quality="1k" tilt="27.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" />
|
||||
<Res x="2048" y="2048" />
|
||||
<Pos x="50" y="50" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<PlanarProjection>
|
||||
<FOV down="25.267007923362" left="40.0" right="40.0" up="25.267007923362" />
|
||||
<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>
|
||||
@@ -4,30 +4,26 @@
|
||||
<Display swapInterval="0" />
|
||||
</Settings>
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Window fullScreen="false" numberOfSamples="4" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
<Size x="1280" y="720" />
|
||||
<Pos x="50" y="50" />
|
||||
<Viewport>
|
||||
<Viewport tracked="true">
|
||||
<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" />
|
||||
<FOV down="25.267007923362" left="40.0" right="40.0" up="25.267007923362" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
<Window fullScreen="false" numberOfSamples="8" name="GUI" tags="GUI">
|
||||
<Window fullScreen="false" numberOfSamples="4" 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>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="127.0.0.1">
|
||||
<Node address="127.0.0.1" port="20401">
|
||||
<Window fullScreen="false" numberOfSamples="8" border="true">
|
||||
<Window fullScreen="false" numberOfSamples="4" border="true">
|
||||
<Pos x="10" y="100" />
|
||||
<Size x="1280" y="720" />
|
||||
<Viewport>
|
||||
<Viewport tracked="true">
|
||||
<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" />
|
||||
<FOV down="25.267007923362" left="40.0" right="40.0" up="25.267007923362" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
@@ -20,7 +20,7 @@
|
||||
<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" />
|
||||
<FOV down="25.267007923362" left="40.0" right="40.0" up="25.267007923362" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<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" />
|
||||
<FOV down="25.267007923362" left="40.0" right="40.0" up="25.267007923362" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
<Pos x="0" y="300" />
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1280" y="720" />
|
||||
<Viewport>
|
||||
<Viewport tracked="true">
|
||||
<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" />
|
||||
<FOV down="25.267007923362" left="40.0" right="40.0" up="25.267007923362" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
@@ -20,11 +20,11 @@
|
||||
<Pos x="640" y="300" />
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1280" y="720" />
|
||||
<Viewport>
|
||||
<Viewport tracked="true">
|
||||
<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" />
|
||||
<FOV down="25.267007923362" left="40.0" right="40.0" up="25.267007923362" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
--apollo.scene
|
||||
asset.require('./base')
|
||||
local propertyHelper = asset.require('util/property_helper')
|
||||
local sceneHelper = asset.require('util/scene_helper')
|
||||
|
||||
|
||||
asset.require('scene/solarsystem/planets/earth/moon/moon')
|
||||
asset.require('scene/solarsystem/missions/apollo/apollo8.asset')
|
||||
|
||||
-- Custom Keybindings
|
||||
local Keybindings = {
|
||||
{
|
||||
Key = "E",
|
||||
Command = "openspace.time.setPause(true);" ..
|
||||
"openspace.time.setDeltaTime(1);" ..
|
||||
"openspace.time.setTime('1968 DEC 24 16:37:31');" ..
|
||||
"openspace.navigation.setNavigationState({" ..
|
||||
" Anchor = 'Apollo8'," ..
|
||||
" Position = { 1.494592E1, 3.236777E1, -4.171296E1 }," ..
|
||||
" ReferenceFrame = 'Root'," ..
|
||||
" Up = { 0.960608E0, -0.212013E0, 0.179675E0 }" ..
|
||||
"});" ..
|
||||
"openspace.setPropertyValue('*Trail.Renderable.Enabled', false)",
|
||||
Documentation = "Jump to right before the earthrise photo",
|
||||
Name = "Set Earthrise time",
|
||||
GuiPath = "/Missions/Apollo/8",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "U",
|
||||
Command = "openspace.time.setTime('1968-12-21T12:51:37.00')" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Apollo8LaunchTrail.Renderable.Enabled', true);",
|
||||
Documentation = "Jump to time right before Apollo 8 liftoff, with its trail enabled",
|
||||
Name = "Set Apollo 8 launch time",
|
||||
GuiPath = "/Missions/Apollo/8",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "K",
|
||||
Command = propertyHelper.invert('Scene.Moon.Renderable.Layers.ColorLayers.Kaguya_Utah.Enabled'),
|
||||
Documentation = "Toggles Moon Kaguya color layer",
|
||||
Name = "Toggle Kaguya layer on the Moon",
|
||||
GuiPath = "/Missions/Apollo",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "T",
|
||||
Command = propertyHelper.invert('Scene.Apollo8MoonTrail.Renderable.Enabled'),
|
||||
Documentation = "Toggles the trails of the Apollo 8 orbits, focused around the Moon",
|
||||
Name = "Toggle Apollo 8 orbits",
|
||||
GuiPath = "/Missions/Apollo/8",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "SHIFT+T",
|
||||
Command = propertyHelper.invert('Scene.Apollo8LaunchTrail.Renderable.Enabled'),
|
||||
Documentation = "Toggles the trails of the Apollo 8 Launch, focused around the Earth",
|
||||
Name = "Toggle Apollo 8 launch trail",
|
||||
GuiPath = "/Missions/Apollo/8",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "CTRL+T",
|
||||
Command = propertyHelper.invert('Scene.Apollo8EarthBarycenterTrail.Renderable.Enabled'),
|
||||
Documentation = "Toggles the trails of the full Apollo 8, with Earth's frame of reference",
|
||||
Name = "Toggles Apollo 8 full trail",
|
||||
GuiPath = "/Missions/Apollo/8",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "S",
|
||||
Command = propertyHelper.invert('Scene.Moon.Renderable.PerformShading'),
|
||||
Documentation = "Toggles shading for the Moon",
|
||||
Name = "Toggle Moon shading",
|
||||
GuiPath = "/Missions/Apollo",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "PAGE_UP",
|
||||
Command = "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '')" ..
|
||||
"openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Apollo8')" ..
|
||||
"openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)",
|
||||
Documentation = "Set camera focus to Apollo 8",
|
||||
Name = "Focus on Apollo 8",
|
||||
GuiPath = "/Missions/Apollo/8",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "PAGE_DOWN",
|
||||
Command = "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '')" ..
|
||||
"openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Moon')" ..
|
||||
"openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)",
|
||||
Documentation = "Set camera focus to the Moon",
|
||||
Name = "Focus on Moon",
|
||||
GuiPath = "/Missions/Apollo",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "HOME",
|
||||
Command = "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '')" ..
|
||||
"openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth')" ..
|
||||
"openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)",
|
||||
Documentation = "Set camera focus to the Earth",
|
||||
Name = "Focus on Earth",
|
||||
GuiPath = "/Missions/Apollo",
|
||||
Local = false
|
||||
}
|
||||
}
|
||||
|
||||
local earthAsset = asset.require('scene/solarsystem/planets/earth/earth')
|
||||
asset.onInitialize(function ()
|
||||
sceneHelper.bindKeys(Keybindings)
|
||||
|
||||
openspace.time.setTime("1968-12-21T12:51:51.0")
|
||||
-- Earthrise:
|
||||
-- openspace.time.setTime("1968-12-24T16:37:19.0")
|
||||
|
||||
openspace.markInterestingNodes({ "Earth", "Moon", "Apollo8", "Apollo8Launch" })
|
||||
|
||||
openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.MinimumAllowedDistance', 0.000000);
|
||||
openspace.setPropertyValueSingle('Scene.Moon.Renderable.LodScaleFactor', 24.0);
|
||||
|
||||
openspace.globebrowsing.goToGeo(earthAsset.Earth.Identifier, 20, -60, 15000000)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
openspace.removeInterestingNodes({ "Earth", "Moon", "Apollo8" })
|
||||
end)
|
||||
@@ -0,0 +1,117 @@
|
||||
asset.require('./base')
|
||||
|
||||
--moonrocks.scene
|
||||
local sceneHelper = asset.require('util/scene_helper')
|
||||
-- local station2 = asset.require('scene/solarsystem/missions/apollo/bouldersstation2')
|
||||
-- local station6 = asset.require('scene/solarsystem/missions/apollo/bouldersstation6')
|
||||
-- local station7 = asset.require('scene/solarsystem/missions/apollo/bouldersstation7')
|
||||
asset.require('scene/solarsystem/missions/apollo/apollo8')
|
||||
asset.require('scene/solarsystem/missions/apollo/apollo11')
|
||||
asset.require('scene/solarsystem/missions/apollo/a17_lem')
|
||||
asset.require('scene/solarsystem/missions/apollo/apollo_globebrowsing')
|
||||
asset.require('scene/solarsystem/missions/apollo/apollo_11_lem_flipbook')
|
||||
asset.require('scene/solarsystem/missions/apollo/insignias_map')
|
||||
|
||||
local Keybindings = {
|
||||
{
|
||||
Key = "m",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Moon'); " ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);",
|
||||
Documentation = "Focus on Moon",
|
||||
Name = "Focus on Moon",
|
||||
GuiPath = "/Missions/Apollo",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F9",
|
||||
Command = "openspace.setPropertyValue('Scene.Moon.Renderable.Layers.ColorLayers.A17_*.Enabled', false);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_11.Enabled', false);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A11_M177481212_p_longlat.Enabled', false);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Apollo11MoonTrail.Renderable.Enabled', false);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Apollo11LemTrail.Renderable.Enabled', false);"..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_17.Enabled', false);",
|
||||
Documentation = "Disable apollo site on moon when switching",
|
||||
Name = "Disable Apollo site",
|
||||
GuiPath = "/Missions/Apollo",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F11",
|
||||
Command = "openspace.time.setTime('1969 JUL 20 20:17:40');" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_11.Enabled', true);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A11_M177481212_p_longlat.Enabled', true);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.LodScaleFactor', 20.11);" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Apollo11LemPosition');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Apollo11MoonTrail.Renderable.Enabled', true);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Apollo11LemTrail.Renderable.Enabled', true);",
|
||||
Documentation = "Setup for A11 site",
|
||||
Name = "Setup A11 site",
|
||||
GuiPath = "/Missions/Apollo/11",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F7",
|
||||
Command = "openspace.time.setTime('1972 DEC 12 19:47:11');" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.BlendMode', 0.000000);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.Enabled', true);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_17.Enabled', true);" ..
|
||||
-- "openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station6a.Enabled', true);" ..
|
||||
-- "openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station6a.BlendMode', 0.000000);" ..
|
||||
-- "openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station2.Enabled', true);" ..
|
||||
-- "openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station2.BlendMode', 0.000000);" ..
|
||||
-- "openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station7.Enabled', true);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.Enabled', true);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.BlendMode', 0.000000);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.Enabled', true);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.BlendMode', 0.000000);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.LodScaleFactor', 20.17);" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Apollo17LemModel');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station7.BlendMode', 0.000000);",
|
||||
Documentation = "Setup for A17 site",
|
||||
Name = "Setup A17 site",
|
||||
GuiPath = "/Missions/Apollo/17",
|
||||
Local = false
|
||||
}
|
||||
}
|
||||
|
||||
local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon')
|
||||
asset.onInitialize(function ()
|
||||
openspace.time.setTime("1972 DEC 12 19:47:11")
|
||||
|
||||
sceneHelper.bindKeys(Keybindings)
|
||||
|
||||
openspace.markInterestingNodes({
|
||||
"Moon", "Apollo11LemModel", "Apollo17LemModel",
|
||||
"Apollo11", "Apollo11LunarLander",
|
||||
-- "Station_2_Boulder2", "Station_6_Fragment1"
|
||||
})
|
||||
|
||||
openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.BlendMode', 0);
|
||||
-- To enable both sites by default, uncomment these lines
|
||||
-- openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.Enabled', true);
|
||||
-- openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_17.Enabled', true);
|
||||
-- openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.Enabled', true);
|
||||
-- openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.BlendMode', 0.000000);
|
||||
-- openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.Enabled', true);
|
||||
-- openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.BlendMode', 0.000000);
|
||||
-- openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station7.BlendMode', 0.000000);
|
||||
-- openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_11.Enabled', true);
|
||||
-- openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A11_M177481212_p_longlat.Enabled', true);
|
||||
|
||||
openspace.setPropertyValueSingle('Scene.Apollo11LemDescentModel.Renderable.RotationVector', { 273.205475,6.904110,308.712311 });
|
||||
openspace.setPropertyValueSingle('Scene.Apollo11LemLandedModel.Renderable.RotationVector', { 273.205475,6.904110,308.712311 });
|
||||
|
||||
openspace.globebrowsing.goToGeo(moonAsset.Moon.Identifier, 20, -60, 15000000)
|
||||
|
||||
openspace.setPropertyValueSingle("Scene.Moon.Renderable.PerformShading", false)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
openspace.removeInterestingNodes({
|
||||
"Moon", "Apollo11Lem", "Apollo17Lem",
|
||||
"Apollo11", "Apollo11LemPosition",
|
||||
-- "Station_6_Fragment1", "Station_6_Fragments_2_3"
|
||||
})
|
||||
end)
|
||||
@@ -15,6 +15,7 @@ asset.require('scene/solarsystem/planets')
|
||||
asset.require('scene/solarsystem/planets/mars/moons/phobos')
|
||||
asset.require('scene/solarsystem/planets/mars/moons/deimos')
|
||||
asset.require('scene/solarsystem/dwarf_planets/pluto/system')
|
||||
asset.request('scene/milkyway/milkyway/volume')
|
||||
|
||||
assetHelper.requestAll(asset, 'scene/digitaluniverse')
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
-- Add require statements for assets exporting the neccessary globes
|
||||
-- example:
|
||||
-- here we add Mars, Moon and Mercury:
|
||||
asset.require('../scene/solarsystem/planets/mars/mars')
|
||||
asset.require('../scene/solarsystem/planets/earth/moon/moon')
|
||||
asset.require('../scene/solarsystem/planets/mercury/mercury')
|
||||
|
||||
|
||||
local CreateFocusNodes = false
|
||||
|
||||
-- Add folders to this list that contain .info files describing patches
|
||||
@@ -21,8 +20,17 @@ local vrt_folders = {
|
||||
|
||||
-- tl;dr: Specify CTX folders first, then HiRISE
|
||||
-- example: 'C:/OpenSpace/GlobeBrowsingData/Mars/CTX'
|
||||
|
||||
-- We recommend using this folder for CTX
|
||||
openspace.absPath('${BASE}/../OpenSpaceData/Mars/CTX'),
|
||||
-- if not and you have a custom path for CTX layers, enter it below
|
||||
'',
|
||||
|
||||
-- Our provided HiRISE layer
|
||||
openspace.absPath('${ASSETS}/scene/solarsystem/planets/mars/map_service_configs/ESRI/'),
|
||||
-- We recommend using this folder for HiRISE
|
||||
openspace.absPath('${BASE}/../OpenSpaceData/Mars/HiRISE'),
|
||||
-- if not and you have a custom path for HiRISE layers, enter it below
|
||||
'',
|
||||
},
|
||||
Moon = {
|
||||
@@ -32,6 +40,7 @@ local vrt_folders = {
|
||||
-- results
|
||||
-- example: 'C:/OpenSpace/GlobeBrowsingData/Moon'
|
||||
openspace.absPath('${BASE}/../OpenSpaceData/Moon'),
|
||||
openspace.absPath('${BASE}/../OpenSpaceData/Apollo'),
|
||||
''
|
||||
},
|
||||
Mercury = {
|
||||
|
||||
@@ -10,10 +10,9 @@ asset.onInitialize(function ()
|
||||
|
||||
openspace.markInterestingNodes({ "Dawn", "Ceres", "Vesta" })
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
openspace.navigation.setNavigationState({
|
||||
Anchor = DawnAsset.Dawn.Identifier,
|
||||
Position = { 526781518487.171326, 257168309890.072144, -1381125204152.817383 },
|
||||
Rotation = { -0.106166, 0.981574, -0.084545, 0.134513 },
|
||||
})
|
||||
end)
|
||||
|
||||
|
||||
@@ -1,20 +1,15 @@
|
||||
asset.require('./base')
|
||||
|
||||
local earthAsset = asset.require('scene/solarsystem/planets/earth/earth')
|
||||
|
||||
asset.onInitialize(function ()
|
||||
local now = openspace.time.currentWallTime()
|
||||
-- Jump back one day to show a complete planet
|
||||
-- Jump back one day to be able to show complete weather data on Earth.
|
||||
openspace.time.setTime(openspace.time.advancedTime(now, "-1d"))
|
||||
|
||||
openspace.globebrowsing.goToGeo("Earth", 58.5877, 16.1924, 20000000)
|
||||
|
||||
openspace.markInterestingNodes({ "Earth", "Mars", "Moon", "Sun" })
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
Anchor = earthAsset.Earth.Identifier,
|
||||
Position = { 0, 0, 0 },
|
||||
Rotation = { 0.758797, 0.221490, -0.605693, -0.091135 },
|
||||
})
|
||||
|
||||
openspace.globebrowsing.goToGeo(58.5877, 16.1924, 20000000)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sceneHelper = asset.require('util/scene_helper')
|
||||
local propertyHelper = asset.require('util/property_helper')
|
||||
local debugHelper = asset.require('util/debug_helper')
|
||||
|
||||
-- At this point, a sceene needs basic spice data to load.
|
||||
-- At this point, a scene needs basic spice data to load.
|
||||
asset.require('spice/base')
|
||||
|
||||
asset.require('util/default_keybindings')
|
||||
@@ -12,10 +13,15 @@ asset.require('util/default_joystick')
|
||||
asset.require('util/webgui')
|
||||
local spheres = asset.require('examples/spheres')
|
||||
|
||||
debugHelper.registerCartesianAxes(asset, {
|
||||
Parent = "Root",
|
||||
Scale = 10
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.navigation.setCameraState({
|
||||
Anchor = spheres.ExampleSphere1.Identifier,
|
||||
Position = { 20, 0, 0 },
|
||||
Rotation = { 0.758797, 0.221490, -0.605693, -0.091135 }
|
||||
openspace.navigation.setNavigationState({
|
||||
Anchor = "Root",
|
||||
Position = { 20, 20, 20 },
|
||||
Up = {0, 1, 0},
|
||||
})
|
||||
end)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
local spec = {
|
||||
Type = "ScreenSpaceBrowser",
|
||||
Identifier = "ScreenSpaceBrowserExample",
|
||||
Name = "Screen Space Browser Example",
|
||||
Url = "https://www.openspaceproject.com/"
|
||||
};
|
||||
|
||||
assetHelper.registerScreenSpaceRenderables(asset, { spec })
|
||||
@@ -35,4 +35,4 @@ local volume = {
|
||||
}
|
||||
|
||||
local objects = { volume }
|
||||
assetHelper.registerSceneGraphNodes(asset, objects)
|
||||
assetHelper.registerSceneGraphNodes(asset, objects)
|
||||
|
||||
@@ -35,10 +35,9 @@ asset.onInitialize(function ()
|
||||
|
||||
openspace.markInterestingNodes({ "Gaia" })
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
openspace.navigation.setNavigationState({
|
||||
Anchor = earthAsset.Earth.Identifier,
|
||||
Position = { 1000000000000.0, 1000000000000.0, 1000000000000.0 },
|
||||
Rotation = { 0.683224, -0.765934, -0.601234, -0.418073 },
|
||||
})
|
||||
end)
|
||||
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
asset.require('./base')
|
||||
|
||||
local sceneHelper = asset.require('util/scene_helper')
|
||||
|
||||
-- Keybindings that are specific for this scene
|
||||
local Keybindings = {
|
||||
{
|
||||
Key = "i",
|
||||
Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -469.300000);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset', -470.800006);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Enabled', true);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled', true);" ..
|
||||
-- "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Settings.Gamma', 3.098590);" ..
|
||||
-- "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Settings.Multiplier', 3.568080);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.MOC_WA_Color_Utah.Settings.Multiplier', 2.816900);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Settings.Gamma', 0.938970);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.MOC_WA_Color_Utah.Settings.Gamma', 2.394370);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled', true);",
|
||||
Documentation = "Setup Insight landing layers",
|
||||
Name = "Setup Insight layers",
|
||||
GuiPath = "/Missions/Insight",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "SHIFT+i",
|
||||
Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', 0);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset', 0);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Enabled', false);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled', false);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled', false);",
|
||||
-- "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Settings.Gamma', 1.0);" ..
|
||||
-- "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Settings.Multiplier', 1.0);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.MOC_WA_Color_Utah.Settings.Multiplier', 1.0);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Settings.Gamma', 1.0);" ..
|
||||
"openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.MOC_WA_Color_Utah.Settings.Gamma', 1.0);";
|
||||
Documentation = "Undo Insight landing layers setup",
|
||||
Name = "Unset Insight layers",
|
||||
GuiPath = "/Missions/Insight",
|
||||
Local = false
|
||||
}
|
||||
}
|
||||
|
||||
local insightAsset = asset.require('scene/solarsystem/missions/insight/edl')
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.time.setTime("2018 NOV 26 19:39:03.68")
|
||||
|
||||
sceneHelper.bindKeys(Keybindings)
|
||||
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -469.300000);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset', -470.800006);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled', true);
|
||||
-- openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Enabled', true);
|
||||
-- openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Settings.Gamma', 3.098590);
|
||||
-- openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Settings.Multiplier', 3.568080);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.MOC_WA_Color_Utah.Settings.Multiplier', 2.81690);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Settings.Gamma', 0.938970);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.MOC_WA_Color_Utah.Settings.Gamma', 2.394370);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled', true);
|
||||
|
||||
openspace.markInterestingNodes({ "Insight" })
|
||||
|
||||
openspace.navigation.setNavigationState({
|
||||
Anchor = insightAsset.Insight.Identifier,
|
||||
Position = { 8.430115E0, -1.791710E1, 2.813660E0 },
|
||||
ReferenceFrame = "Root",
|
||||
Up = { 0.494659E0,0.357162E0,0.792306E0 },
|
||||
})
|
||||
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
sceneHelper.unbindKeys(Keybindings)
|
||||
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', 0);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset', 0);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled', false);
|
||||
-- openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Enabled', false);
|
||||
-- openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Settings.Gamma', 1.0);
|
||||
-- openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.insight_ctx.Settings.Multiplier', 1.0);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.MOC_WA_Color_Utah.Settings.Multiplier', 1.0);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Settings.Gamma', 1.0);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.MOC_WA_Color_Utah.Settings.Gamma', 1.0);
|
||||
openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled', false);
|
||||
|
||||
openspace.removeInterestingNodes({ "Insight" })
|
||||
end)
|
||||
@@ -18,10 +18,11 @@ asset.onInitialize(function ()
|
||||
28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600
|
||||
})
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
openspace.navigation.setNavigationState({
|
||||
Anchor = junoAsset.Juno.Identifier,
|
||||
Position = { 1837386367.601345, -389860693812.834839, 714830404470.398926 },
|
||||
Rotation = { -0.336540, 0.711402, -0.099212, 0.608937 },
|
||||
Position = { 1.243398E8, 7.176068E7, -1.519733E7 },
|
||||
ReferenceFrame = "Root",
|
||||
Up = { -0.377400E0, 0.764573E0, 0.522492E0 },
|
||||
})
|
||||
end)
|
||||
|
||||
|
||||
@@ -33,10 +33,11 @@ asset.onInitialize(function ()
|
||||
28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600
|
||||
})
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
openspace.navigation.setNavigationState({
|
||||
Anchor = "Mercury",
|
||||
Position = { 526781518487.171326, 257168309890.072144, -1381125204152.817383 },
|
||||
Rotation = {0.180662, 0.021334, 0.979084, 0.091111},
|
||||
Position = { 2.423690E11, 1.979038E11, -2.241483E10 },
|
||||
ReferenceFrame = "Root",
|
||||
Up = { -0.492046E0, 0.666088E0, 0.560551E0 }
|
||||
})
|
||||
end)
|
||||
|
||||
|
||||
@@ -11,6 +11,16 @@ local renderableHelper = asset.require('util/renderable_helper')
|
||||
local Keybindings = {
|
||||
{
|
||||
Key = "a",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'NewHorizons');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)",
|
||||
Documentation = "Sets the focus of the camera on 'NewHorizons'.",
|
||||
Name = "Focus on New Horizons",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "SHIFT+a",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'NewHorizons');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', 'Pluto');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)",
|
||||
@@ -42,9 +52,9 @@ local Keybindings = {
|
||||
{
|
||||
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)
|
||||
[[local enabled = openspace.getPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.PerformProjection')
|
||||
openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.PerformProjection', not enabled)
|
||||
openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.PerformProjection', not enabled)
|
||||
openspace.setPropertyValueSingle("Dashboard.NewHorizonsInstruments.Enabled", not enabled)]],
|
||||
Documentation = "Toggles New Horizons image projection.",
|
||||
Name = "Toggle NH Image Projection",
|
||||
@@ -63,8 +73,8 @@ openspace.setPropertyValueSingle("Dashboard.NewHorizonsInstruments.Enabled", not
|
||||
{
|
||||
Key = "F9",
|
||||
Command = "openspace.time.setTime('2015-07-14T09:00:00.00');" ..
|
||||
"openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ClearAllProjections', true);" ..
|
||||
"openspace.setPropertyValue('Scene.CharonProjection.Renderable.ClearAllProjections', true);",
|
||||
"openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.ClearAllProjections', true);" ..
|
||||
"openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.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",
|
||||
@@ -78,6 +88,14 @@ openspace.setPropertyValueSingle("Dashboard.NewHorizonsInstruments.Enabled", not
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "CTRL+I",
|
||||
Command = propertyHelper.increment('Scene.PlutoProjection.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.PlutoProjection.Renderable.HeightExaggeration', 5000),
|
||||
@@ -86,6 +104,14 @@ openspace.setPropertyValueSingle("Dashboard.NewHorizonsInstruments.Enabled", not
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "CTRL+K",
|
||||
Command = propertyHelper.decrement('Scene.PlutoProjection.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.CharonProjection.Renderable.HeightExaggeration', 5000),
|
||||
@@ -94,6 +120,14 @@ openspace.setPropertyValueSingle("Dashboard.NewHorizonsInstruments.Enabled", not
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "CTRL+O",
|
||||
Command = propertyHelper.increment('Scene.CharonProjection.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.CharonProjection.Renderable.HeightExaggeration', 5000),
|
||||
@@ -102,6 +136,14 @@ openspace.setPropertyValueSingle("Dashboard.NewHorizonsInstruments.Enabled", not
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "CTRL+L",
|
||||
Command = propertyHelper.decrement('Scene.CharonProjection.Renderable.HeightExaggeration', 5000),
|
||||
Documentation = "Decreases the height map exaggeration on Charon.",
|
||||
Name = "Charon HeightExaggeration -",
|
||||
GuiPath = "/New Horizons",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "o",
|
||||
Command = propertyHelper.invert('Scene.PlutoBarycentricTrail.Renderable.Enabled'),
|
||||
@@ -213,10 +255,11 @@ asset.onInitialize(function ()
|
||||
openspace.setPropertyValueSingle('Scene.Charon.Renderable.Enabled', false)
|
||||
openspace.setPropertyValueSingle("Scene.PlutoBarycenterTrail.Renderable.Enabled", false)
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
Anchor = NewHorizonsAsset.NewHorizons.Identifier,
|
||||
Position = { 4662120063743.592773, 1263245003503.724854, -955413856565.788086 },
|
||||
Rotation = { 0.683224, -0.165934, 0.701234, 0.118073 },
|
||||
openspace.navigation.setNavigationState({
|
||||
Anchor = "NewHorizons",
|
||||
ReferenceFrame = "Root",
|
||||
Position = { -6.572656E1, -7.239404E1, -2.111890E1 },
|
||||
Up = { 0.102164, -0.362945, 0.926193 }
|
||||
})
|
||||
end)
|
||||
|
||||
|
||||
+51
-25
@@ -10,64 +10,90 @@ asset.require('scene/solarsystem/missions/osirisrex/osirisrex')
|
||||
local Keybindings = {
|
||||
{
|
||||
Key = "a",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.Origin', 'OsirisRex')",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'OsirisRex')" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)",
|
||||
Documentation = "Sets the focus of the camera on 'OsirisRex'.",
|
||||
Name = "Focus on OsirisRex",
|
||||
GuiPath = "/Missions/Osiris Rex",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "s",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.Origin', 'BennuBarycenter')",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'BennuBarycenter')" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)",
|
||||
Documentation = "Sets the focus of the camera on 'Bennu'",
|
||||
Name = "Focus on Bennu",
|
||||
GuiPath = "/Missions/Osiris Rex",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F6",
|
||||
Command = "openspace.printInfo('Set time: Launch');openspace.time.setTime('2016 SEP 08 23:05:00');",
|
||||
Documentation = "Sets the time to the launch.",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F7",
|
||||
Command = "openspace.printInfo('Set time: Gravity Assist');openspace.time.setTime('2017 SEP 22 15:00:00');",
|
||||
Documentation = "Sets the time to the Earth gravity assist.",
|
||||
Local = false
|
||||
},
|
||||
-- TODO
|
||||
-- Maybe these can be fixed later
|
||||
-- {
|
||||
-- Key = "F6",
|
||||
-- Command = "openspace.printInfo('Set time: Launch');openspace.time.setTime('2016 SEP 08 23:05:00');",
|
||||
-- Documentation = "Sets the time to the launch of Osiris Rex.",
|
||||
-- Name = "Set launch time",
|
||||
-- GuiPath = "/Missions/Osiris Rex",
|
||||
-- Local = false
|
||||
-- },
|
||||
-- {
|
||||
-- Key = "F7",
|
||||
-- Command = "openspace.printInfo('Set time: Gravity Assist');openspace.time.setTime('2017 SEP 22 15:00:00');",
|
||||
-- Documentation = "Sets the time to the Earth gravity assist.",
|
||||
-- Name = "Set Earth gravity assist time",
|
||||
-- GuiPath = "/Missions/Osiris Rex",
|
||||
-- Local = false
|
||||
-- },
|
||||
{
|
||||
Key = "F8",
|
||||
Command = "openspace.printInfo('Set time: Approach');openspace.time.setTime('2018-SEP-11 21:31:01.183');",
|
||||
Documentation = "Sets the time to the approach at Bennu.",
|
||||
Name = "Set Bennu approach time",
|
||||
GuiPath = "/Missions/Osiris Rex",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F9",
|
||||
Command = "openspace.printInfo('Set time: Preliminary Survey');openspace.time.setTime('2018-NOV-20 01:13:12.183');",
|
||||
Documentation = "Sets the time to the preliminary survey of Bennu.",
|
||||
Name = "Set Bennu survey time",
|
||||
GuiPath = "/Missions/Osiris Rex",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F10",
|
||||
Command = "openspace.printInfo('Set time: Orbital B');openspace.time.setTime('2019-APR-08 10:35:27.186');",
|
||||
Documentation = "Sets the time to the orbital B event.",
|
||||
Name = "Set orbital B event time",
|
||||
GuiPath = "/Missions/Osiris Rex",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F11",
|
||||
Command = "openspace.printInfo('Set time: Recon');openspace.time.setTime('2019-MAY-25 03:50:31.195');",
|
||||
Documentation = "Sets the time to the recon event.",
|
||||
Name = "Set recon event time",
|
||||
GuiPath = "/Missions/Osiris Rex",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "q",
|
||||
Command = propertyHelper.invert('Scene.SunMarker.Renderable.Enabled'),
|
||||
Documentation = "Toggles the visibility of the text marking the location of the Sun.",
|
||||
Name = "Toggle Sun marker",
|
||||
GuiPath = "/Missions/Osiris Rex",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "e",
|
||||
Command = propertyHelper.invert('Scene.EarthMarker.Renderable.Enabled'),
|
||||
Documentation = "Toggles the visibility of the text marking the location of the Earth.",
|
||||
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 = "Toggle Earth marker",
|
||||
-- GuiPath = "/Missions/Osiris Rex",
|
||||
-- Local = false
|
||||
-- }
|
||||
}
|
||||
|
||||
local OsirisRexAsset = asset.require('scene/solarsystem/missions/osirisrex/model')
|
||||
@@ -96,8 +122,9 @@ assetHelper.registerDashboardItems(asset, {
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
-- openspace.time.setTime("2019 APR 16 12:03:00.00")
|
||||
openspace.time.setTime("2016 SEP 8 23:00:00.500")
|
||||
|
||||
openspace.time.setTime("2018 10 30 23:00:00.500")
|
||||
|
||||
sceneHelper.bindKeys(Keybindings)
|
||||
|
||||
sceneHelper.setDeltaTimeKeys({
|
||||
@@ -107,10 +134,9 @@ asset.onInitialize(function ()
|
||||
|
||||
openspace.markInterestingNodes({ "OsirisRex", "BennuBarycenter", "Earth" })
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
openspace.navigation.setNavigationState({
|
||||
Anchor = OsirisRexAsset.OsirisRex.Identifier,
|
||||
Position = { 26974590199.661884, 76314608558.908020, -127086452897.101791 },
|
||||
Rotation = { 0.729548, -0.126024, 0.416827, 0.527382 },
|
||||
Position = { 26974590199.661884, 76314608558.908020, -127086452897.101791 }
|
||||
})
|
||||
end)
|
||||
|
||||
|
||||
+41
-14
@@ -13,63 +13,87 @@ asset.require('scene/solarsystem/missions/rosetta/rosetta')
|
||||
local Keybindings = {
|
||||
{
|
||||
Key = "a",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.Origin', '67P')",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', '67P');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)",
|
||||
Documentation = "Sets the focus of the camera on '67P'.",
|
||||
Name = "Focus on 67P",
|
||||
GuiPath = "/Missions/Rosetta",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "s",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.Origin', 'Rosetta')",
|
||||
Command = "openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Rosetta');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', '');" ..
|
||||
"openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil)",
|
||||
Documentation = "Sets the focus of the camera on 'Rosetta'",
|
||||
Name = "Focus on Rosetta",
|
||||
GuiPath = "/Missions/Rosetta",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F5",
|
||||
Command = "openspace.time.setTime('2014-08-01T03:05:18.101')",
|
||||
Documentation = "Jumps to the time of initial approach of Rosetta to 67P.",
|
||||
Name = "Set initial approach time",
|
||||
GuiPath = "/Missions/Rosetta",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "F6",
|
||||
Command = "openspace.time.setTime('2014-11-12T08:20:00.00')",
|
||||
Documentation = "Jumps to the time when the Philae lander is released.",
|
||||
Name = "Set lander release time",
|
||||
GuiPath = "/Missions/Rosetta",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
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.",
|
||||
Name = "Clear 67P projections",
|
||||
GuiPath = "/Missions/Rosetta",
|
||||
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 = "q",
|
||||
-- Command = propertyHelper.invert('Scene.SunMarker.Renderable.Enabled'),
|
||||
-- Documentation = "Toggles the visibility of the text marking the location of the Sun.",
|
||||
-- Name = "Toggle Sun marker",
|
||||
-- GuiPath = "/Missions/Rosetta",
|
||||
-- Local = false
|
||||
-- },
|
||||
{
|
||||
Key = "e",
|
||||
Command = renderableHelper.toggle('Scene.JupiterTrail') .. renderableHelper.toggle('Scene.SaturnTrail') ..
|
||||
renderableHelper.toggle('Scene.UranusTrail') .. renderableHelper.toggle('Scene.NeptuneTrail'),
|
||||
Documentation = "Toggles the visibility of all trails further from the Sun than 67P.",
|
||||
Name = "Toggle outer planetary trails",
|
||||
GuiPath = "/Missions/Rosetta",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "i",
|
||||
Command = renderableHelper.toggle('Scene.ImagePlaneRosetta'),
|
||||
Documentation = "Toggles the visibility of the free floating image plane.",
|
||||
Name = "Toggle image plane",
|
||||
GuiPath = "/Missions/Rosetta",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
Key = "f",
|
||||
Key = "g",
|
||||
Command = renderableHelper.toggle('Scene.PhilaeTrail'),
|
||||
Documentation = "Toggles the visibility of Philae's trail.",
|
||||
Name = "Toggle Philae trail",
|
||||
GuiPath = "/Missions/Rosetta",
|
||||
Local = false
|
||||
},
|
||||
{
|
||||
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.",
|
||||
Name = "Toggle 67P projection",
|
||||
GuiPath = "/Missions/Rosetta",
|
||||
Local = false
|
||||
}
|
||||
}
|
||||
@@ -110,13 +134,16 @@ asset.onInitialize(function ()
|
||||
28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600
|
||||
})
|
||||
|
||||
openspace.navigation.setCameraState({
|
||||
openspace.navigation.setNavigationState({
|
||||
Anchor = Comet67PAsset.Comet67P.Identifier,
|
||||
Position = { 526781518487.171326, 257168309890.072144, -1381125204152.817383 },
|
||||
Rotation = { -0.106166, 0.981574, -0.084545, 0.134513 },
|
||||
ReferenceFrame = "Root",
|
||||
Position = { -7.294781E5 , -6.657894E5, 2.509047E6 },
|
||||
Up = { 0.146529E0, 0.944727E0, 0.293290E0 }
|
||||
})
|
||||
|
||||
openspace.setPropertyValue('Scene.67P.Renderable.PerformShading', false);
|
||||
openspace.setPropertyValue('Scene.ImagePlaneRosetta.Renderable.Enabled', false);
|
||||
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
asset.require('./base')
|
||||
|
||||
asset.request('scene/solarsystem/planets/earth/satellites/navigation/gps')
|
||||
asset.request('scene/solarsystem/planets/earth/satellites/misc/spacestations')
|
||||
|
||||
asset.onInitialize(function ()
|
||||
local now = openspace.time.currentWallTime()
|
||||
-- Jump back one day to be able to show complete weather data on Earth.
|
||||
openspace.time.setTime(openspace.time.advancedTime(now, "-1d"))
|
||||
|
||||
openspace.addVirtualProperty(
|
||||
"BoolProperty",
|
||||
"Show Trails",
|
||||
"Scene.*Trail.Renderable.Enabled",
|
||||
"Disable or enable all trails of the scene at the same time",
|
||||
true,
|
||||
nil,
|
||||
nil
|
||||
)
|
||||
|
||||
openspace.globebrowsing.goToGeo("Earth", 58.5877, 16.1924, 20000000)
|
||||
|
||||
openspace.markInterestingNodes({ "Earth", "Sun" })
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
openspace.removeInterestingNodes({ "Earth", "Sun" })
|
||||
openspace.removeVirtualProperty("*Trail.Renderable.Enabled")
|
||||
end)
|
||||
@@ -21,7 +21,7 @@ local wmap = {
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = {0, 0, 3.14159265359}
|
||||
Rotation = { 0, 0, 3.14159265359 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
@@ -47,7 +47,7 @@ local cbe = {
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = {0, 0, 3.14159265359}
|
||||
Rotation = { 0, 0, 3.14159265359 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
@@ -73,7 +73,7 @@ local planck = {
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = {0, 0, 3.14159265359}
|
||||
Rotation = { 0, 0, 3.14159265359 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
@@ -93,6 +93,128 @@ local planck = {
|
||||
}
|
||||
}
|
||||
|
||||
local multiverse_planck_1 = {
|
||||
Identifier = "PlanckMultiverse1",
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "StaticTranslation",
|
||||
Position = { 0.0, 0.0, 2000E23}
|
||||
},
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, 0, 3.14159265359 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphere",
|
||||
Enabled = false,
|
||||
Size = 3975.41417036064E23,
|
||||
Segments = 80,
|
||||
Opacity = 0.3,
|
||||
Texture = textures .. "/cmb4k.jpg",
|
||||
Orientation = "Both",
|
||||
MirrorTexture = true,
|
||||
UseAdditiveBlending = true,
|
||||
FadeInThreshold = 0.4
|
||||
},
|
||||
GUI = {
|
||||
Name = "Planck Multiverse 1",
|
||||
Path = "/Universe/Cosmic Microwave Background"
|
||||
}
|
||||
}
|
||||
|
||||
local multiverse_planck_2 = {
|
||||
Identifier = "PlanckMultiverse2",
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "StaticTranslation",
|
||||
Position = { 2500E23, 0.0, 2000E23}
|
||||
},
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, 0, 3.14159265359 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphere",
|
||||
Enabled = false,
|
||||
Size = 3975.41417036064E23,
|
||||
Segments = 80,
|
||||
Opacity = 0.3,
|
||||
Texture = textures .. "/cmb4k.jpg",
|
||||
Orientation = "Both",
|
||||
MirrorTexture = true,
|
||||
UseAdditiveBlending = true,
|
||||
FadeInThreshold = 0.4
|
||||
},
|
||||
GUI = {
|
||||
Name = "Planck Multiverse 2",
|
||||
Path = "/Universe/Cosmic Microwave Background"
|
||||
}
|
||||
}
|
||||
|
||||
local multiverse_planck_3 = {
|
||||
Identifier = "PlanckMultiverse3",
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "StaticTranslation",
|
||||
Position = { 2500E23, 5000E23, 2000E23}
|
||||
},
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, 0, 3.14159265359 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphere",
|
||||
Enabled = false,
|
||||
Size = 3975.41417036064E23,
|
||||
Segments = 80,
|
||||
Opacity = 0.3,
|
||||
Texture = textures .. "/cmb4k.jpg",
|
||||
Orientation = "Both",
|
||||
MirrorTexture = true,
|
||||
UseAdditiveBlending = true,
|
||||
FadeInThreshold = 0.4
|
||||
},
|
||||
GUI = {
|
||||
Name = "Planck Multiverse 3",
|
||||
Path = "/Universe/Cosmic Microwave Background"
|
||||
}
|
||||
}
|
||||
|
||||
local multiverse_planck_4 = {
|
||||
Identifier = "PlanckMultiverse4",
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "StaticTranslation",
|
||||
Position = { 0.0, 10000E23, 0.0 }
|
||||
},
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, 0, 3.14159265359 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableSphere",
|
||||
Enabled = false,
|
||||
Size = 3975.41417036064E23,
|
||||
Segments = 80,
|
||||
Opacity = 0.3,
|
||||
Texture = textures .. "/cmb4k.jpg",
|
||||
Orientation = "Both",
|
||||
MirrorTexture = true,
|
||||
UseAdditiveBlending = true,
|
||||
FadeInThreshold = 0.4
|
||||
},
|
||||
GUI = {
|
||||
Name = "Planck Multiverse 4",
|
||||
Path = "/Universe/Cosmic Microwave Background"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { wmap, cbe, planck })
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
wmap, cbe, planck, multiverse_planck_1, multiverse_planck_2, multiverse_planck_3,
|
||||
multiverse_planck_4
|
||||
})
|
||||
|
||||
@@ -6,7 +6,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Constellation Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_constellations_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local constellationsExtragalactic = {
|
||||
|
||||
@@ -40,7 +40,8 @@ local sphere = {
|
||||
Orientation = "Inside",
|
||||
UseAdditiveBlending = true,
|
||||
MirrorTexture = true,
|
||||
FadeOutThreshold = 0.025
|
||||
FadeOutThreshold = 0.025,
|
||||
Background = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Milky Way Sphere",
|
||||
@@ -53,7 +54,7 @@ local plane = {
|
||||
Parent = "Root",
|
||||
Renderable = {
|
||||
Type = "RenderablePlanesCloud",
|
||||
Enabled = true,
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Transparency = 0.90,
|
||||
ScaleFactor = 2.8,
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "OB Associations Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_obassociations_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local object = {
|
||||
|
||||
@@ -13,7 +13,7 @@ local speck = asset.syncedResource({
|
||||
Name = "Stars Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "stars_du",
|
||||
Version = 1
|
||||
Version = 3
|
||||
})
|
||||
|
||||
local colorLUT = asset.syncedResource({
|
||||
|
||||
@@ -1,19 +1,30 @@
|
||||
-- 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({
|
||||
local gaia618Destination = asset.syncedResource({
|
||||
Name = "Gaia DR2 618M Octree",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_stars_618M_octree",
|
||||
Version = 1
|
||||
})
|
||||
local gaia618DestinationExtracted = gaia618Destination + '/data';
|
||||
|
||||
-- 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({
|
||||
local gaiaFull = asset.syncedResource({
|
||||
Name = "Gaia DR2 Full Raw",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "gaia_stars_dr2_raw",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
asset.onInitialize(function()
|
||||
if not openspace.directoryExists(gaia618DestinationExtracted) then
|
||||
openspace.printInfo("Extracted Gaia dataset")
|
||||
openspace.unzipFile(gaia618Destination .. '/DR2_full_Octree[50kSPN,500dist]_50,50.zip', gaia618DestinationExtracted, true)
|
||||
end
|
||||
end)
|
||||
|
||||
asset.export('GaiaDR2_618M', gaia618DestinationExtracted)
|
||||
asset.export('GaiaFullDataset', gaiaFull)
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
-- asset.require('../examples/volume/generated/cartesian.asset')
|
||||
|
||||
local assetHelper = asset.require("util/asset_helper")
|
||||
local transforms = asset.require("scene/solarsystem/sun/transforms")
|
||||
|
||||
local data = asset.syncedResource({
|
||||
Name = "Milkyway Volume Data",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "milkyway_volume_data",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local MilkyWayVolumeGalaxy = {
|
||||
Identifier = "Milky Way Volume",
|
||||
Parent = transforms.SolarSystemBarycenter.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableGalaxy",
|
||||
StepSize = 0.01,
|
||||
AbsorptionMultiply = 75,
|
||||
EmissionMultiply = 200,
|
||||
Translation = {0.2, 0, 0},
|
||||
Rotation = {3.1415926, 3.1248, 4.45741},
|
||||
Volume = {
|
||||
Type = "Volume",
|
||||
Filename = data .. "/MilkyWayRGBAVolume1024x1024x128.raw",
|
||||
Dimensions = {1024, 1024, 128},
|
||||
Size = {1.2E21, 1.2E21, 0.15E21}
|
||||
},
|
||||
Points = {
|
||||
Type = "Points",
|
||||
Filename = data .. "/MilkyWayPoints.off",
|
||||
EnabledPointsRatio = 0.3,
|
||||
Texture = data .. "/halo.png"
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Milky Way"
|
||||
}
|
||||
}
|
||||
|
||||
local objects = { MilkyWayVolumeGalaxy }
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, objects)
|
||||
@@ -2,6 +2,7 @@ local assetHelper = asset.require('util/asset_helper')
|
||||
local transforms = asset.require('./transforms')
|
||||
asset.require("spice/base")
|
||||
asset.request('./trail')
|
||||
local labelsPath = asset.require('./pluto_labels').LabelsPath
|
||||
|
||||
|
||||
|
||||
@@ -38,6 +39,22 @@ local Charon = {
|
||||
Enabled = true
|
||||
}
|
||||
}
|
||||
},
|
||||
Labels = {
|
||||
Enable = false,
|
||||
FileName = labelsPath .. "/charon.labels",
|
||||
LabelAlignmentOption = "Horizontally", -- or Circularly
|
||||
LabelsFontSize = 14.0,
|
||||
LabelsSize = 8.0,
|
||||
LabelsMinSize = 1.0,
|
||||
LabelsMaxSize = 1500.0,
|
||||
ProximityEnabled = false,
|
||||
LabelsFadeInEnabled = true,
|
||||
FadeInStartingDistance = 500000.0,
|
||||
FadeOutStartingDistance = 1000000.0,
|
||||
LabelsForceDomeRendering = true,
|
||||
LabelsDistanceEPS = 1350000.0,
|
||||
LabelsColor = {1.0, 1.0, 0.0, 1.0}
|
||||
}
|
||||
},
|
||||
Tag = { "planet_solarSystem", "planet_terrestrial" },
|
||||
|
||||
@@ -7,7 +7,8 @@ local Kernels = asset.syncedResource({
|
||||
|
||||
local PlutoKernels = {
|
||||
Kernels .. "/NavPE_de433_od122.bsp",
|
||||
Kernels .. "/NavSE_plu047_od122.bsp"
|
||||
Kernels .. "/NavSE_plu047_od122.bsp",
|
||||
Kernels .. "/ssd_jpl_nasa_gov_plu043.bsp"
|
||||
}
|
||||
|
||||
asset.export("PlutoKernels", PlutoKernels)
|
||||
|
||||
@@ -2,6 +2,7 @@ local assetHelper = asset.require('util/asset_helper')
|
||||
local transforms = asset.require('./transforms')
|
||||
asset.require("spice/base")
|
||||
asset.request('./trail')
|
||||
local labelsPath = asset.require('./pluto_labels').LabelsPath
|
||||
|
||||
|
||||
|
||||
@@ -38,6 +39,22 @@ local Pluto = {
|
||||
Enabled = true
|
||||
}
|
||||
}
|
||||
},
|
||||
Labels = {
|
||||
Enable = false,
|
||||
FileName = labelsPath .. "/pluto.labels",
|
||||
LabelAlignmentOption = "Horizontally", -- or Circularly
|
||||
LabelsFontSize = 14.0,
|
||||
LabelsSize = 8.0,
|
||||
LabelsMinSize = 1.0,
|
||||
LabelsMaxSize = 1500.0,
|
||||
ProximityEnabled = false,
|
||||
LabelsFadeInEnabled = true,
|
||||
FadeInStartingDistance = 500000.0,
|
||||
FadeOutStartingDistance = 1000000.0,
|
||||
LabelsForceDomeRendering = true,
|
||||
LabelsDistanceEPS = 1350000.0,
|
||||
LabelsColor = {1.0, 1.0, 0.0, 1.0}
|
||||
}
|
||||
},
|
||||
Tag = { "planet_solarSystem", "planet_terrestrial" },
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
local LabelsPath = asset.syncedResource({
|
||||
Name = "Pluto Labels",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "pluto_labels",
|
||||
Version = 1
|
||||
})
|
||||
asset.export("LabelsPath", LabelsPath)
|
||||
@@ -0,0 +1,47 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
|
||||
local trajectory = asset.syncedResource({
|
||||
Name = "'Oumuamua Trajectory",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "oumuamua_horizons",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local OumuamuaTrail = {
|
||||
Identifier = "OumuamuaTrail",
|
||||
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "HorizonsTranslation",
|
||||
HorizonsTextFile = trajectory .. "/horizons_oumuamua.dat"
|
||||
},
|
||||
Color = { 0.9, 0.9, 0.0 },
|
||||
StartTime = "2014 JAN 01 00:00:00",
|
||||
EndTime = "2023 JAN 01 00:00:00",
|
||||
SampleInterval = 7000,
|
||||
TimeStampSubsampleFactor = 1
|
||||
},
|
||||
GUI = {
|
||||
Name = "'Oumuamua Trail",
|
||||
Path = "/Solar System/Interstellar"
|
||||
}
|
||||
}
|
||||
|
||||
local OumuamuaPosition = {
|
||||
Identifier = "OumuamuaPosition",
|
||||
Parent = sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "HorizonsTranslation",
|
||||
HorizonsTextFile = trajectory .. "/horizons_oumuamua.dat"
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Name = "'Oumuamua",
|
||||
Path = "/Solar System/Interstellar"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { OumuamuaPosition, OumuamuaTrail })
|
||||
@@ -0,0 +1,60 @@
|
||||
-- a11_lem.asset
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon')
|
||||
|
||||
local model = asset.require('scene/solarsystem/missions/apollo/lem_model')
|
||||
|
||||
|
||||
local Apollo11Lem = {
|
||||
Identifier = "Apollo11Lem",
|
||||
Parent = moonAsset.Moon.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -360+23.47306,
|
||||
Latitude = 0.67402,
|
||||
Altitude = -1927.65,
|
||||
UseHeightMap = false
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 11 Lem Position",
|
||||
Path = "/Solar System/Missions/Apollo/11"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo11LemModel = {
|
||||
Identifier = "Apollo11LemModel",
|
||||
Parent = Apollo11Lem.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.24
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = model.modelFolder .. "/LM-2_ver2clean.obj"
|
||||
},
|
||||
ColorTexture = model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg",
|
||||
LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier)
|
||||
},
|
||||
GUI = {
|
||||
Hidden = false,
|
||||
Name = "Apollo 11 Lem",
|
||||
Path = "/Solar System/Missions/Apollo/11"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
Apollo11Lem,
|
||||
Apollo11LemModel
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.setPropertyValueSingle('Scene.Apollo11LemModel.Renderable.RotationVector', { 91.044090,171.229706,111.666664} );
|
||||
end)
|
||||
@@ -0,0 +1,203 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
asset.require('spice/base')
|
||||
|
||||
--asset.require('scene/solarsystem/missions/apollo/a15kernels')
|
||||
|
||||
|
||||
local models = asset.syncedResource({
|
||||
Name = "Apollo 15 Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_models",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local kernels = asset.syncedResource({
|
||||
Name = "Apollo Kernels",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_spice",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local Kernels = {
|
||||
kernels .. "/apollo15.0001.tsc",
|
||||
|
||||
-- kernels .. '/AS15-P_v01.bc',
|
||||
kernels .. '/apollo15.0001.tf',
|
||||
kernels .. '/apollo15MetricAddendum002.ti',
|
||||
-- kernels .. '/apollo15PanoramicAddendum001.ti',
|
||||
kernels .. '/apollo15_metric.0002.ti',
|
||||
-- kernels .. '/apollo15_panoramic.0001.ti',
|
||||
kernels .. '/apollo15-1.bsp',
|
||||
kernels .. '/AS15-M_v01.bc',
|
||||
-- kernels .. '/AS15-M_v01.bsp',
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- local Apollo15Kernels = {
|
||||
-- --sclk
|
||||
-- ApolloKernels .. "/apollo15.0001.tsc",
|
||||
|
||||
-- --pck
|
||||
-- ApolloKernels .. "/moon_080317.tf",
|
||||
-- ApolloKernels .. "/moon_assoc_me.tf",
|
||||
|
||||
-- --ik
|
||||
-- ApolloKernels .. "/apollo15_metric_v2.0001.ti",
|
||||
-- ApolloKernels .. "/apollo15_panoramic.0001.ti",
|
||||
|
||||
-- --tspk
|
||||
-- ApolloKernels .. "/de421.bsp",
|
||||
-- ApolloKernels .. "/moon_pa_de421_1900-2050.bpc",
|
||||
|
||||
-- --iak
|
||||
-- ApolloKernels .. "/apollo15MetricAddendum002.ti",
|
||||
-- ApolloKernels .. "/apolloPanAddendum001.ti",
|
||||
|
||||
-- --fk
|
||||
-- ApolloKernels .. "/apollo15_v2.0001.tf",
|
||||
-- ApolloKernels .. "/apollo15_v2.0002.tf",
|
||||
|
||||
-- --spk
|
||||
-- ApolloKernels .. "/AS15_M_REV23_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV4.bsp ",
|
||||
-- ApolloKernels .. "/AS15_M_REV70_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV04_v2.bsp ",
|
||||
-- ApolloKernels .. "/AS15_M_REV27_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV44_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV71_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV15_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV33_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV50_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV71_SMITHED_V02.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV15_v2.bsp ",
|
||||
-- ApolloKernels .. "/AS15_M_REV34_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV60_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV72_v2.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV16_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV35_SMITHED_V02.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV62_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV22_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV38_SMITHED_V01.bsp",
|
||||
-- ApolloKernels .. "/AS15_M_REV63_SMITHED_V01.bsp",
|
||||
|
||||
-- --ck
|
||||
-- ApolloKernels .. "/AS15_M_REV04_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV15_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV16_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV22_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV23_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV27_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV33_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV34_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV35_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV35_SMITHED_V02.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV38_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV44_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV50_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV60_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV62_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV63_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV70_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV71_SMITHED_V01.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV71_SMITHED_V02.bc",
|
||||
-- ApolloKernels .. "/AS15_M_REV72_v2.bc",
|
||||
-- }
|
||||
|
||||
|
||||
|
||||
|
||||
local LightSources = {
|
||||
{
|
||||
Type = "SceneGraphLightSource",
|
||||
Identifier = "Sun",
|
||||
Node = sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
Intensity = 1.0
|
||||
},
|
||||
-- {
|
||||
-- Identifier = "Camera",
|
||||
-- Type = "CameraLightSource",
|
||||
-- Intensity = 0.5,
|
||||
-- Enabled = false
|
||||
-- }
|
||||
}
|
||||
|
||||
|
||||
local Apollo15 = {
|
||||
Identifier = "Apollo15",
|
||||
Parent = "Moon",
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = "APOLLO 15",
|
||||
Observer = "MOON",
|
||||
Frame = "IAU_MOON",
|
||||
Kernels = Kernels
|
||||
},
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
SourceFrame = "A15_METRIC",
|
||||
DestinationFrame = "GALACTIC"
|
||||
}
|
||||
},
|
||||
TimeFrame = { -- Using Spice kernels for 1850-2150
|
||||
Type = "TimeFrameInterval",
|
||||
Start = "1971-07-30T02:22:00.00",
|
||||
End = "1971-08-01T18:05:00.00"
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 15",
|
||||
Path = "/Solar System/Missions/Apollo 15"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo15Main = {
|
||||
Identifier = "Apollo15Main",
|
||||
Parent = Apollo15.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
-- GeometryFile = models .. "/Apollo_Spacecraft.obj"
|
||||
GeometryFile = models .. "/Apollo_CSM_shrunk_rotated_xy_doubble_size.obj"
|
||||
},
|
||||
ColorTexture = models .. "/gray.png",
|
||||
LightSources = LightSources,
|
||||
DisableFaceCulling = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 15 Main",
|
||||
Path = "/Solar System/Missions/Apollo 15"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo15Trail = {
|
||||
Identifier = "Apollo15Trail",
|
||||
Parent = "Moon",
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = "APOLLO 15",
|
||||
Observer = "MOON",
|
||||
Frame = "IAU_MOON",
|
||||
Kernels = Kernels
|
||||
},
|
||||
Color = { 0.70, 0.50, 0.20 },
|
||||
StartTime = "1971 JUL 26",
|
||||
EndTime = "1971 AUG 01 14:30:41.680",
|
||||
SampleInterval = 2
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 15 Trail",
|
||||
Path = "/Solar System/Missions/Apollo 15"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
Apollo15,
|
||||
Apollo15Main,
|
||||
Apollo15Trail
|
||||
})
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
local ApolloKernels = asset.syncedResource({
|
||||
Name = "Apollo Kernels",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_spice",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local Apollo15Kernels = {
|
||||
|
||||
|
||||
|
||||
--sclk
|
||||
ApolloKernels .. "apollo15.0001.tsc",
|
||||
|
||||
--pck
|
||||
ApolloKernels .. "moon_080317.tf",
|
||||
ApolloKernels .. "moon_assoc_me.tf",
|
||||
|
||||
--ik
|
||||
ApolloKernels .. "apollo15_metric_v2.0001.ti",
|
||||
ApolloKernels .. "apollo15_panoramic.0001.ti",
|
||||
|
||||
--tspk
|
||||
ApolloKernels .. "de421.bsp",
|
||||
ApolloKernels .. "moon_pa_de421_1900-2050.bpc",
|
||||
|
||||
--iak
|
||||
ApolloKernels .. "apollo15MetricAddendum002.ti",
|
||||
ApolloKernels .. "apolloPanAddendum001.ti",
|
||||
|
||||
--fk
|
||||
ApolloKernels .. "apollo15_v2.0001.tf",
|
||||
ApolloKernels .. "apollo15_v2.0002.tf",
|
||||
|
||||
--spk
|
||||
ApolloKernels .. "AS15_M_REV23_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV4.bsp ",
|
||||
ApolloKernels .. "AS15_M_REV70_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV04_v2.bsp ",
|
||||
ApolloKernels .. "AS15_M_REV27_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV44_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV71_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV15_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV33_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV50_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV71_SMITHED_V02.bsp",
|
||||
ApolloKernels .. "AS15_M_REV15_v2.bsp ",
|
||||
ApolloKernels .. "AS15_M_REV34_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV60_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV72_v2.bsp",
|
||||
ApolloKernels .. "AS15_M_REV16_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV35_SMITHED_V02.bsp",
|
||||
ApolloKernels .. "AS15_M_REV62_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV22_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV38_SMITHED_V01.bsp",
|
||||
ApolloKernels .. "AS15_M_REV63_SMITHED_V01.bsp",
|
||||
|
||||
--ck
|
||||
ApolloKernels .. "AS15_M_REV04_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV15_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV16_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV22_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV23_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV27_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV33_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV34_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV35_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV35_SMITHED_V02.bc",
|
||||
ApolloKernels .. "AS15_M_REV38_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV44_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV50_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV60_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV62_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV63_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV70_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV71_SMITHED_V01.bc",
|
||||
ApolloKernels .. "AS15_M_REV71_SMITHED_V02.bc",
|
||||
ApolloKernels .. "AS15_M_REV72_v2.bc",
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
--asset.export("ApolloKernels", Kernels)
|
||||
asset.export("Apollo15Kernels", Apollo15Kernels)
|
||||
@@ -0,0 +1,59 @@
|
||||
--a17_lem.asset
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon')
|
||||
|
||||
local model = asset.require('scene/solarsystem/missions/apollo/lem_model')
|
||||
|
||||
local Apollo17Lem = {
|
||||
Identifier = "Apollo17Lem",
|
||||
Parent = moonAsset.Moon.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -329.22833,
|
||||
Latitude = 20.19092,
|
||||
UseHeightmap = true
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Apollo 17 Lem Position",
|
||||
Path = "/Solar System/Missions/Apollo/17"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo17LemModel = {
|
||||
Identifier = "Apollo17LemModel",
|
||||
Parent = Apollo17Lem.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.24
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = model.modelFolder .. "/LM-2_ver2clean.obj"
|
||||
},
|
||||
ColorTexture = model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg",
|
||||
LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier)
|
||||
},
|
||||
GUI = {
|
||||
Hidden = false,
|
||||
Name = "Apollo 17 Lem",
|
||||
Path = "/Solar System/Missions/Apollo/17"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
Apollo17Lem,
|
||||
Apollo17LemModel,
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.setPropertyValueSingle('Scene.Apollo17LemModel.Renderable.RotationVector', { 110.255219,171.229706,126.666664 });
|
||||
end)
|
||||
@@ -0,0 +1,249 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local descentKeyframes = asset.require('./apollo11_lem_descent.asset')
|
||||
local descentRotationKeyframes = asset.require('./apollo11_lem_descent_rotation.asset')
|
||||
local model = asset.require('scene/solarsystem/missions/apollo/lem_model')
|
||||
|
||||
asset.require('spice/base')
|
||||
|
||||
local kernelsFolder = asset.syncedResource({
|
||||
Name = "Apollo Kernels",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_11_spice",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local modelFolder = asset.syncedResource({
|
||||
Name = "Apollo Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_11_models",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local kernels = {
|
||||
kernelsFolder .. "/moon_080317.tf",
|
||||
kernelsFolder .. "/apollo_naif_ids.tf",
|
||||
kernelsFolder .. "/moon_pa_de421_1900-2050.bpc",
|
||||
kernelsFolder .. '/apollo11_orbits_full9km.bsp',
|
||||
kernelsFolder .. '/apollo11_orbits_lm9km.bsp',
|
||||
}
|
||||
--landing - 1969-07-20T20:17:40
|
||||
local apolloSpiceId = "-911"
|
||||
local apolloLemSpiceId = "-911500"
|
||||
|
||||
local Apollo11Position = {
|
||||
Identifier = "Apollo11Position",
|
||||
Parent = "Moon",
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = "1969 JUL 19 19:38:29.183",
|
||||
End = "1969 JUL 22 04:55:35.183"
|
||||
},
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloSpiceId,
|
||||
Observer = "MOON",
|
||||
Frame = "MOON_ME",
|
||||
Kernels = kernels
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Apollo 11",
|
||||
Path = "/Solar System/Missions/Apollo/11"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo11Model = {
|
||||
Identifier = "Apollo11",
|
||||
Parent = Apollo11Position.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 20.0
|
||||
}
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = "1969 JUL 19 19:38:29.183",
|
||||
End = "1969 JUL 22 04:55:35.183"
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = modelFolder .. "/Apollo_CSM_shrunk_rotated_xy_double_size.obj"
|
||||
},
|
||||
ColorTexture = modelFolder .. "/gray.png",
|
||||
LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier)
|
||||
},
|
||||
GUI = {
|
||||
Hidden = false,
|
||||
Name = "Apollo 11 CSM",
|
||||
Path = "/Solar System/Missions/Apollo/11"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo11MoonTrail = {
|
||||
Identifier = "Apollo11MoonTrail",
|
||||
Parent = "Moon",
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloSpiceId,
|
||||
Observer = "MOON",
|
||||
Frame = "IAU_MOON",
|
||||
Kernels = kernels
|
||||
},
|
||||
Color = { 0.180000,0.510000,0.750000 },
|
||||
StartTime = "1969 JUL 19 19:38:29.183",
|
||||
EndTime = "1969 JUL 22 04:55:35.183",
|
||||
SampleInterval = 60,
|
||||
EnableFade = false,
|
||||
Enabled = false,
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 11 Moon Orbits",
|
||||
Path = "/Solar System/Missions/Apollo/11"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
local lemTranslation = {
|
||||
Type = "TimelineTranslation",
|
||||
Keyframes = {
|
||||
-- 20:14:30 is an arbitrary cutoff, but last 4 minutes data in descentKeyframes
|
||||
-- begins at 20.14.40. Due to linear interpolation, we will get
|
||||
-- a 10s linear transition to the location where the descentKeyframes start.
|
||||
['1969 JUL 20 20:14:30'] = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloLemSpiceId,
|
||||
Observer = "MOON",
|
||||
Frame = "IAU_MOON",
|
||||
Kernels = kernels
|
||||
},
|
||||
['1969 JUL 20 20:14:40'] = {
|
||||
Type = "TimelineTranslation",
|
||||
Keyframes = descentKeyframes.keyframes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local lemRotation = {
|
||||
Type = "TimelineRotation",
|
||||
Keyframes = descentRotationKeyframes.keyframes
|
||||
}
|
||||
|
||||
|
||||
|
||||
local Apollo11LemTrail = {
|
||||
Identifier = "Apollo11LemTrail",
|
||||
Parent = "Moon",
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = lemTranslation,
|
||||
Color = { 0.780000,0.940000,0.340000 },
|
||||
StartTime = "1969 JUL 20 19:10:25.183",
|
||||
EndTime = "1969 JUL 20 20:17:46.183",
|
||||
SampleInterval = 2,
|
||||
EnableFade = false,
|
||||
Enabled = false,
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 11 Lunar Lander Trail",
|
||||
Path = "/Solar System/Missions/Apollo/11"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo11LemPosition = {
|
||||
Identifier = "Apollo11LemPosition",
|
||||
Parent = "Moon",
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = "1969 JUL 20 19:10:25.183"
|
||||
},
|
||||
Transform = {
|
||||
Translation = lemTranslation,
|
||||
Rotation = lemRotation
|
||||
},
|
||||
GUI = {
|
||||
Hidden = false,
|
||||
Name = "Apollo 11 Lunar Lander Position",
|
||||
Path = "/Solar System/Missions/Apollo/11"
|
||||
}
|
||||
}
|
||||
--landing - 1969-07-20T20:17:40
|
||||
|
||||
local Apollo11LemDescentModel = {
|
||||
Identifier = "Apollo11LemDescentModel",
|
||||
Parent = Apollo11LemPosition.Identifier,
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = "1969 JUL 19 19:38:29.183",
|
||||
End = "1969 JUL 20 20:17:40.0"
|
||||
},
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.24
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = model.modelFolder .. "/lmremoved.obj"
|
||||
},
|
||||
ColorTexture = model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg",
|
||||
LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier)
|
||||
},
|
||||
GUI = {
|
||||
Hidden = false,
|
||||
Name = "Apollo 11 Descent Lem",
|
||||
Path = "/Solar System/Missions/Apollo/11"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo11LemLandedModel = {
|
||||
Identifier = "Apollo11LemLandedModel",
|
||||
Parent = Apollo11LemPosition.Identifier,
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = "1969 JUL 20 20:17:40.0"
|
||||
},
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.24
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = model.modelFolder .. "/LM-2_ver2clean.obj"
|
||||
},
|
||||
ColorTexture = model.modelFolder .. "/LM-2_ver2clean_u1_v1.jpeg",
|
||||
LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier)
|
||||
},
|
||||
GUI = {
|
||||
Hidden = false,
|
||||
Name = "Apollo 11 Landed Lem",
|
||||
Path = "/Solar System/Missions/Apollo/11"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
local exportList = {
|
||||
Apollo11Position,
|
||||
Apollo11LemPosition,
|
||||
Apollo11Model,
|
||||
Apollo11LemDescentModel,
|
||||
Apollo11LemLandedModel,
|
||||
Apollo11MoonTrail,
|
||||
Apollo11LemTrail,
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, exportList)
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,234 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local csm = asset.require('./apollo_csm')
|
||||
|
||||
asset.require('spice/base')
|
||||
|
||||
local kernelsFolder = asset.syncedResource({
|
||||
Name = "Apollo Kernels",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_spice",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local kernels = {
|
||||
kernelsFolder .. "/moon_080317.tf",
|
||||
kernelsFolder .. "/apollo8.tf",
|
||||
kernelsFolder .. "/moon_pa_de421_1900-2050.bpc",
|
||||
kernelsFolder .. '/apollo8.tsc',
|
||||
kernelsFolder .. '/apollo8.bsp',
|
||||
kernelsFolder .. '/apollo8_earthrise.bc',
|
||||
}
|
||||
|
||||
local apolloSpiceId = "-908"
|
||||
|
||||
local Apollo8Launch = {
|
||||
Identifier = "Apollo8Launch",
|
||||
Parent = "Earth",
|
||||
TimeFrame = { -- Using Spice kernels for 1850-2150
|
||||
Type = "TimeFrameInterval",
|
||||
Start = "1968 DEC 21",
|
||||
End = "1968 DEC 28"
|
||||
},
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloSpiceId,
|
||||
Observer = "EARTH",
|
||||
Frame = "IAU_EARTH",
|
||||
Kernels = kernels
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 8 Launch Capsule",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
local Apollo8 = {
|
||||
Identifier = "Apollo8",
|
||||
Parent = "EarthBarycenter",
|
||||
TimeFrame = { -- Using Spice kernels for 1850-2150
|
||||
Type = "TimeFrameInterval",
|
||||
Start = "1968 DEC 21",
|
||||
End = "1968 DEC 28"
|
||||
},
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloSpiceId,
|
||||
Observer = "EARTH BARYCENTER",
|
||||
Frame = "GALACTIC",
|
||||
Kernels = kernels
|
||||
},
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
SourceFrame = "A8_EARTHRISE",
|
||||
DestinationFrame = "GALACTIC",
|
||||
TimeFrame = {
|
||||
-- The orientation of Apollo 8 is only
|
||||
-- available during the few minutes when
|
||||
-- the famous Earthrise picture was taken.
|
||||
Type = "TimeFrameInterval",
|
||||
Start = "1968 DEC 24 16:37:19",
|
||||
End = "1968 DEC 24 16:40:15"
|
||||
}
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 8",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo8LaunchModel = {
|
||||
Identifier = "Apollo8LaunchModel",
|
||||
Parent = Apollo8Launch.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
-- The scale of the model is in cm; OpenSpace is in m
|
||||
Scale = 0.01
|
||||
},
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = {0.0, 0.0, -3.1415/2}
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Apollo 8 Launch Model",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo8Model = {
|
||||
Identifier = "Apollo8Model",
|
||||
Parent = Apollo8.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
-- The scale of the model is in cm; OpenSpace is in m
|
||||
Scale = 0.01
|
||||
},
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = {0.0, 0.0, -3.1415/2}
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Apollo 8 Model",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
local PivotOffset = { 0, 2.5, 0}
|
||||
|
||||
-- The pivot node is used for navigation inside the spacecraft
|
||||
|
||||
local Apollo8Pivot = {
|
||||
Identifier = "Apollo8Pivot",
|
||||
Parent = Apollo8.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "StaticTranslation",
|
||||
Position = PivotOffset
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 8 Pivot",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
local Apollo8LaunchTrail = {
|
||||
Identifier = "Apollo8LaunchTrail",
|
||||
Parent = "Earth",
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloSpiceId,
|
||||
Observer = "EARTH",
|
||||
Frame = "IAU_EARTH",
|
||||
Kernels = kernels
|
||||
},
|
||||
Color = { 0.70, 0.50, 0.20 },
|
||||
StartTime = "1968 DEC 21 12:51:00",
|
||||
EndTime = "1968 DEC 21 23:23:22",
|
||||
SampleInterval = 30
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 8 Launch Trail",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo8MoonTrail = {
|
||||
Identifier = "Apollo8MoonTrail",
|
||||
Parent = "Moon",
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloSpiceId,
|
||||
Observer = "MOON",
|
||||
Frame = "IAU_MOON",
|
||||
Kernels = kernels
|
||||
},
|
||||
Color = { 0.70, 0.50, 0.20 },
|
||||
StartTime = "1968 DEC 23",
|
||||
EndTime = "1968 DEC 26",
|
||||
SampleInterval = 30,
|
||||
Enabled = false,
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 8 Moon Trail",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo8EarthBarycenterTrail = {
|
||||
Identifier = "Apollo8EarthBarycenterTrail",
|
||||
Parent = "EarthBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloSpiceId,
|
||||
Observer = "EARTH BARYCENTER",
|
||||
Frame = "GALACTIC",
|
||||
Kernels = kernels
|
||||
},
|
||||
Color = { 1, 0.0, 0.0 },
|
||||
StartTime = "1968 DEC 21",
|
||||
EndTime = "1968 DEC 28",
|
||||
SampleInterval = 30,
|
||||
Enabled = false,
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 8 Earth Barycenter Trail",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
local exportList = {
|
||||
Apollo8,
|
||||
Apollo8Model,
|
||||
Apollo8Launch,
|
||||
Apollo8LaunchModel,
|
||||
Apollo8Pivot,
|
||||
|
||||
Apollo8LaunchTrail,
|
||||
Apollo8MoonTrail,
|
||||
Apollo8EarthBarycenterTrail
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, exportList)
|
||||
-- Registering Command and Service module needs to happen fter the export list
|
||||
-- has been registered, since it depends on the Apollo8Model scene graph node.
|
||||
csm.registerCsm(asset, Apollo8Model.Identifier)
|
||||
csm.registerCsm(asset, Apollo8LaunchModel.Identifier)
|
||||
@@ -0,0 +1,74 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local kernelsFolder = asset.syncedResource({
|
||||
Name = "Apollo Kernels",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_spice",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local kernels = {
|
||||
kernelsFolder .. "/moon_080317.tf",
|
||||
kernelsFolder .. "/apollo8.tf",
|
||||
kernelsFolder .. "/moon_pa_de421_1900-2050.bpc",
|
||||
kernelsFolder .. '/apollo8.tsc',
|
||||
kernelsFolder .. '/apollo8.bsp',
|
||||
kernelsFolder .. '/apollo8_earthrise.bc',
|
||||
}
|
||||
|
||||
local apolloSpiceId = "-908"
|
||||
|
||||
|
||||
local Apollo8LaunchTrail = {
|
||||
Identifier = "Apollo8LaunchTrail",
|
||||
Parent = "Earth",
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloSpiceId,
|
||||
Observer = "EARTH",
|
||||
Frame = "IAU_EARTH",
|
||||
Kernels = kernels
|
||||
},
|
||||
Color = { 0.70, 0.50, 0.20 },
|
||||
StartTime = "1968 DEC 21 12:51:00",
|
||||
EndTime = "1968 DEC 21 23:23:22",
|
||||
SampleInterval = 30
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 8 Launch Trail",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
local Apollo8EarthBarycenterTrail = {
|
||||
Identifier = "Apollo8EarthBarycenterTrail",
|
||||
Parent = "EarthBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = apolloSpiceId,
|
||||
Observer = "EARTH BARYCENTER",
|
||||
Frame = "GALACTIC",
|
||||
Kernels = kernels
|
||||
},
|
||||
Color = { 1, 0.0, 0.0 },
|
||||
StartTime = "1968 DEC 21",
|
||||
EndTime = "1968 DEC 28",
|
||||
SampleInterval = 30,
|
||||
Enabled = false,
|
||||
},
|
||||
GUI = {
|
||||
Name = "Apollo 8 Earth Barycenter Trail",
|
||||
Path = "/Solar System/Missions/Apollo"
|
||||
}
|
||||
}
|
||||
|
||||
local exportList = {
|
||||
Apollo8LaunchTrail,
|
||||
Apollo8EarthBarycenterTrail,
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, exportList)
|
||||
@@ -0,0 +1,39 @@
|
||||
--apollo_11_lem_flipbook.asset
|
||||
local helper = asset.require('util/vrt_flipbook_helper')
|
||||
|
||||
local assetPrefix = "A11flip";
|
||||
local assetGlobe = "Moon";
|
||||
local flipbookCount = 19;
|
||||
|
||||
local flipbook = nil;
|
||||
|
||||
local vrts = asset.syncedResource({
|
||||
Name = "Apollo 11 Flipbook",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_11_flipbook",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.globebrowsing.addBlendingLayersFromDirectory(vrts, assetGlobe);
|
||||
flipbook = helper.createFlipbook(assetPrefix, assetGlobe, 19);
|
||||
|
||||
function nextFlip()
|
||||
helper.nextFlipbookPage(flipbook);
|
||||
end
|
||||
|
||||
function previousFlip()
|
||||
helper.previousFlipbookPage(flipbook);
|
||||
end
|
||||
|
||||
openspace.bindKey("RIGHT", "nextFlip()", "Show the next Apollo 11 flipbook image.", "Next A11 flip", "/Missions/Apollo/11")
|
||||
openspace.bindKey("LEFT", "previousFlip()","Show the previous Apollo 11 flipbook image.", "Prev A11 flip", "/Missions/Apollo/11")
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
flipbook = nil;
|
||||
|
||||
openspace.clearKey("RIGHT")
|
||||
openspace.clearKey("LEFT")
|
||||
end)
|
||||
@@ -0,0 +1,280 @@
|
||||
-- This asset exports a function to create an Apollo Command and Service Module (CSM).
|
||||
-- Instead of hard-coding the scene graph node parent,
|
||||
-- client assets can decide which object that the CSM should be attached to.
|
||||
-- Usage example: registerCsm(asset, Apollo8.Idenfitier)
|
||||
-- ...where Apollo8 is the scene graph node identifier to attach the CSM to.
|
||||
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
|
||||
local models = asset.syncedResource({
|
||||
Name = "Apollo Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_models",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local partsInfo = {
|
||||
-- Data is structured as: Geometry file name (except .obj suffix), texture file name, shading
|
||||
|
||||
-- Exterior
|
||||
{"AP08_cone_command_module", "Command_module_diff.png", true},
|
||||
{"AP08_cone_hatchdoor_handle_scratched_metal", "scratched_metal_gloss.png", true},
|
||||
{"AP08_cone_vent_ports_black", "black.png", true},
|
||||
{"AP08_cone_vent_ports_red", "red.png", true},
|
||||
{"AP08_cone_hatchdoor_interior", "apollo_hatchdoor_interior.jpg", false},
|
||||
|
||||
{"AP08_service_black", "black.png", true},
|
||||
{"AP08_service_brown", "brown.png", true},
|
||||
{"AP08_service_grey", "gray.png", true},
|
||||
{"AP08_service_high_gain_antenna", "Antenna_diff.png", true},
|
||||
{"AP08_service_module", "Service_module_diff.png", true},
|
||||
{"AP08_service_nozzle", "Nozzle_diff.png", true},
|
||||
{"AP08_service_pink", "pink.png", true},
|
||||
{"AP08_service_red", "red.png", true},
|
||||
{"AP08_service_scratched_metal", "scratched_metal_gloss.png", true},
|
||||
{"AP08_service_white", "white.png", true},
|
||||
|
||||
-- Interior
|
||||
-- {"AP11_int_back_wall_left", "AP11_int_back_wall_left.png", false},
|
||||
-- {"AP11_int_back_wall_right", "AP11_int_back_wall_right.png", false},
|
||||
-- {"AP11_interior_back_wall_top_0Shape3", "back_wall_top_0Shape3_tpAmbient_paint_03.png", false},
|
||||
-- {"AP11_interior_belt_buckles_02_L2", "belt_buckles_02_L2Shape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_belt_straps_02", "belt_straps_02Shape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_black_push_buttons", "push_buttonsShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_bottom_boxes_03", "bottom_boxes_03_paint_01.png", false},
|
||||
-- {"AP11_interior_bottom_floor_tp", "bottom_floor_tpAmbient_paint_v002.png", false},
|
||||
-- {"AP11_interior_box_back_01", "box_back_01_paint_v001.png", false},
|
||||
-- {"AP11_interior_box_back_02", "box_back_02_paint_v001.png", false},
|
||||
-- {"AP11_interior_box_back_04", "box_back_04_paint_v001.png", false},
|
||||
-- {"AP11_interior_box_lft_lower_01", "box_lft_lower_01Shape_Diffuse_paint_v002.png", false},
|
||||
-- {"AP11_interior_box_lft_top", "box_lft_topShape_Diffuse_paint_v009.png", false},
|
||||
-- {"AP11_interior_box_mid_tp", "box_mid_tpDiffuse_paint_v001.png", false},
|
||||
-- {"AP11_interior_box_rt_top_02", "box_rt_top_02_paint_04.png", false},
|
||||
-- {"AP11_interior_brushed_blue_ano", "brushed_blue_ano_paint_01.png", false},
|
||||
-- {"AP11_interior_brushed_brass", "brushed_brass_paint_01.png", false},
|
||||
-- {"AP11_interior_brushed_grey_ano", "brushed_grey_ano_paint_02.png", false},
|
||||
-- {"AP11_interior_canvas_cover", "canvas_coverShape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_Channel_attachment", "Channel_attachment_Diffuse.png", false},
|
||||
-- {"AP11_interior_Channel_baseMetal", "Channel_baseMetal_Diffuse.png", false},
|
||||
-- {"AP11_interior_Channel_Material", "Channel_Material_Diffuse.png", false},
|
||||
-- {"AP11_interior_Channel_rsMaterial2", "Channel_rsMaterial2_Diffuse.png", false},
|
||||
-- {"AP11_interior_cloth_01", "cloth_01Shape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_coiled_hose", "coiled_hoseShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_control_panel_left_win_plates", "control_panel_left_win_platesShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_control_panel_rt_win_plates", "control_panel_rt_win_platesShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_copper_parts_main_cp", "copper_parts_main_cpShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_dials_main2", "dials_main2Shape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_dials_t2", "dials_t2Shape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_dial_fixes_01", "dial_fixes_01Shape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_fire_ex_02", "fire_ex_02_paint_v001.png", false},
|
||||
-- {"AP11_interior_floor_panels_3", "floor_panels_3Shape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_floor_tile_tex_01", "floor_tile_tex_01.png", false},
|
||||
-- {"AP11_interior_grey", "gray.png", false},
|
||||
-- {"AP11_interior_handholds_cp", "handholds_cpShape_tpAmbient_paint_05.png", false},
|
||||
-- {"AP11_interior_hatch_release_0Shape5", "hatch_release_0Shape5_tpAmbient_paint_02.png", false},
|
||||
-- {"AP11_interior_headrests_02", "headrests_02Shape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_hoses_black_01", "hoses_black_01Shape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_hoses_white_0Shape1", "hoses_white_0Shape1_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_josticks1", "joysticks1Shape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_joysticks_fabric1", "joysticks_fabric1_Shape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_joystick_poles_lft_05", "joystick_poles_lft_05_paint_v002.png", false},
|
||||
-- {"AP11_interior_joystick_poles_lft_long_05", "joystick_poles_lft_long_05_paint_v002.png", false},
|
||||
-- {"AP11_interior_joystick_poles_rt_05", "joystick_poles_rt_05_paint_v002.png", false},
|
||||
-- {"AP11_interior_latch_mechanisms_01", "latch_mechanisms_01Shape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_lower_push_buttons", "lower_push_buttonsShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_lower_walls_back", "lower_walls_back_paint_04.png", false},
|
||||
-- {"AP11_interior_lower_walls_boxes_head", "lower_walls_boxes_headShape_tpAmbient_paint_v001.png", false},
|
||||
-- {"AP11_interior_main_cp_left_smth_03", "main_cp_left_0Shape3_tpAmbient_paint_02.png", false},
|
||||
-- {"AP11_interior_main_cp_mid_smth_02", "main_cp_mid_smth_02Shape_tpAmbient_paint_02.png", false},
|
||||
-- {"AP11_interior_main_cp_rt_smth", "main_cp_rt_smthShape_tpAmbient_paint_02.png", false},
|
||||
-- {"AP11_interior_main_cp_wheels", "main_cp_wheelsShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_metal_brackets_under_hatch", "metal_brackets_under_hatchShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_metal_tunnel_parts", "metal_tunnel_partsShape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_metal_window_parts", "metal_window_partsShape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_middle_walls_05", "middle_walls_05_tpAmbient_paint_02.png", false},
|
||||
-- {"AP11_interior_middle_walls_0Shape8", "middle_walls_0Shape8_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_mid_tunnel_parts", "mid_tunnel_parts_03Shape_tpAmbient_paint_02.png", false},
|
||||
-- {"AP11_interior_new_switch_rails1", "new_switch_rails1Shape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_nozzles_02", "nozzles_02Shape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_outlet_fabric3", "outlet_fabric3Shape_tpAmbient_paint_02.png", false},
|
||||
-- {"AP11_interior_pole_end_02", "pole_end_02.png", false},
|
||||
-- {"AP11_interior_pole_end_03", "pole_end_03.png", false},
|
||||
-- {"AP11_interior_pole_tex_03", "pole_tex_03.png", false},
|
||||
-- {"AP11_interior_pole_tex_04", "pole_tex_04.png", false},
|
||||
-- {"AP11_interior_pole_tex_05", "pole_tex_05.png", false},
|
||||
-- {"AP11_interior_pole_tex_lower_01", "pole_tex_lower_01.png", false},
|
||||
-- {"AP11_interior_pole_under_seat_paint_01", "pole_under_seat_paint_01.png", false},
|
||||
-- {"AP11_interior_pole_under_seat_square_bar", "pole_under_seat_square_bar_paint_01.png", false},
|
||||
-- {"AP11_interior_push_switches_lft1", "push_switches_lft1Shape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_random_small_parts_01", "random_small_parts_01Shape_tpAmbient_paint_02.png", false},
|
||||
-- {"AP11_interior_red", "red.png", false},
|
||||
-- {"AP11_interior_reticle_wheel_tp", "reticle_wheel_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_rivet_paint_v001", "rivet_paint_v001.png", false},
|
||||
-- {"AP11_interior_seats_fabric", "seats_fabric_paint_01.png", false},
|
||||
-- {"AP11_interior_seat_left_tp", "seat_left_tpAmbient_paint_v001.png", false},
|
||||
-- {"AP11_interior_seat_lights_left", "seat_lights_left_Shape_tpAmbient_paint_v001.png", false},
|
||||
-- {"AP11_interior_seat_lights_rt", "seat_lights_rt_Shape_tpAmbient_paint_v001.png", false},
|
||||
-- {"AP11_interior_seat_middle_tp", "seat_middle_tpAmbient_paint_v001.png", false},
|
||||
-- {"AP11_interior_seat_poles_0Shape1", "seat_poles_0Shape1_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_seat_pole_mirror_0Shape1", "seat_pole_mirror_0Shape1_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_seat_rt_tp", "seat_rt_tpAmbient_paint_v001.png", false},
|
||||
-- {"AP11_interior_sextant_0Shape2", "sextant_0Shape2_tpAmbient.png", false},
|
||||
-- {"AP11_interior_switch_covers_main_middle1", "switch_covers_main_middle1Shape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_switch_rails_lft", "switch_rails_lftShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_tunnel_main_cylinder1", "switch_rails_lftShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_tunnel_switches_01", "tunnel_switches_01Shape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_tunnel_wheelsShape", "tunnel_wheelsShape_tpAmbient.png", false},
|
||||
-- {"AP11_interior_walls_mid_left", "walls_mid_leftShape_tpAmbient_paint_01.png", false},
|
||||
-- {"AP11_interior_windows_front_0Shape4", "windows_front_0Shape4_tpAmbient_paint_01.png", false}
|
||||
}
|
||||
|
||||
|
||||
local partsInfoFull = {
|
||||
-- Data is structured as: Geometry file name (except .obj suffix), texture file name, shading
|
||||
|
||||
-- Exterior
|
||||
{"AP08_cone_command_module", "Command_module_diff.png", true},
|
||||
{"AP08_cone_hatchdoor_handle_scratched_metal", "scratched_metal_gloss.png", true},
|
||||
{"AP08_cone_vent_ports_black", "black.png", true},
|
||||
{"AP08_cone_vent_ports_red", "red.png", true},
|
||||
{"AP08_cone_hatchdoor_interior", "apollo_hatchdoor_interior.jpg", false},
|
||||
|
||||
{"AP08_service_black", "black.png", true},
|
||||
{"AP08_service_brown", "brown.png", true},
|
||||
{"AP08_service_grey", "gray.png", true},
|
||||
{"AP08_service_high_gain_antenna", "Antenna_diff.png", true},
|
||||
{"AP08_service_module", "Service_module_diff.png", true},
|
||||
{"AP08_service_nozzle", "Nozzle_diff.png", true},
|
||||
{"AP08_service_pink", "pink.png", true},
|
||||
{"AP08_service_red", "red.png", true},
|
||||
{"AP08_service_scratched_metal", "scratched_metal_gloss.png", true},
|
||||
{"AP08_service_white", "white.png", true},
|
||||
|
||||
-- Interior
|
||||
{"AP11_int_back_wall_left", "AP11_int_back_wall_left.png", false},
|
||||
{"AP11_int_back_wall_right", "AP11_int_back_wall_right.png", false},
|
||||
{"AP11_interior_back_wall_top_0Shape3", "back_wall_top_0Shape3_tpAmbient_paint_03.png", false},
|
||||
{"AP11_interior_belt_buckles_02_L2", "belt_buckles_02_L2Shape_tpAmbient.png", false},
|
||||
{"AP11_interior_belt_straps_02", "belt_straps_02Shape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_black_push_buttons", "push_buttonsShape_tpAmbient.png", false},
|
||||
{"AP11_interior_bottom_boxes_03", "bottom_boxes_03_paint_01.png", false},
|
||||
{"AP11_interior_bottom_floor_tp", "bottom_floor_tpAmbient_paint_v002.png", false},
|
||||
{"AP11_interior_box_back_01", "box_back_01_paint_v001.png", false},
|
||||
{"AP11_interior_box_back_02", "box_back_02_paint_v001.png", false},
|
||||
{"AP11_interior_box_back_04", "box_back_04_paint_v001.png", false},
|
||||
{"AP11_interior_box_lft_lower_01", "box_lft_lower_01Shape_Diffuse_paint_v002.png", false},
|
||||
{"AP11_interior_box_lft_top", "box_lft_topShape_Diffuse_paint_v009.png", false},
|
||||
{"AP11_interior_box_mid_tp", "box_mid_tpDiffuse_paint_v001.png", false},
|
||||
{"AP11_interior_box_rt_top_02", "box_rt_top_02_paint_04.png", false},
|
||||
{"AP11_interior_brushed_blue_ano", "brushed_blue_ano_paint_01.png", false},
|
||||
{"AP11_interior_brushed_brass", "brushed_brass_paint_01.png", false},
|
||||
{"AP11_interior_brushed_grey_ano", "brushed_grey_ano_paint_02.png", false},
|
||||
{"AP11_interior_canvas_cover", "canvas_coverShape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_Channel_attachment", "Channel_attachment_Diffuse.png", false},
|
||||
{"AP11_interior_Channel_baseMetal", "Channel_baseMetal_Diffuse.png", false},
|
||||
{"AP11_interior_Channel_Material", "Channel_Material_Diffuse.png", false},
|
||||
{"AP11_interior_Channel_rsMaterial2", "Channel_rsMaterial2_Diffuse.png", false},
|
||||
{"AP11_interior_cloth_01", "cloth_01Shape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_coiled_hose", "coiled_hoseShape_tpAmbient.png", false},
|
||||
{"AP11_interior_control_panel_left_win_plates", "control_panel_left_win_platesShape_tpAmbient.png", false},
|
||||
{"AP11_interior_control_panel_rt_win_plates", "control_panel_rt_win_platesShape_tpAmbient.png", false},
|
||||
{"AP11_interior_copper_parts_main_cp", "copper_parts_main_cpShape_tpAmbient.png", false},
|
||||
{"AP11_interior_dials_main2", "dials_main2Shape_tpAmbient.png", false},
|
||||
{"AP11_interior_dials_t2", "dials_t2Shape_tpAmbient.png", false},
|
||||
{"AP11_interior_dial_fixes_01", "dial_fixes_01Shape_tpAmbient.png", false},
|
||||
{"AP11_interior_fire_ex_02", "fire_ex_02_paint_v001.png", false},
|
||||
{"AP11_interior_floor_panels_3", "floor_panels_3Shape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_floor_tile_tex_01", "floor_tile_tex_01.png", false},
|
||||
{"AP11_interior_grey", "gray.png", false},
|
||||
{"AP11_interior_handholds_cp", "handholds_cpShape_tpAmbient_paint_05.png", false},
|
||||
{"AP11_interior_hatch_release_0Shape5", "hatch_release_0Shape5_tpAmbient_paint_02.png", false},
|
||||
{"AP11_interior_headrests_02", "headrests_02Shape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_hoses_black_01", "hoses_black_01Shape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_hoses_white_0Shape1", "hoses_white_0Shape1_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_josticks1", "joysticks1Shape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_joysticks_fabric1", "joysticks_fabric1_Shape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_joystick_poles_lft_05", "joystick_poles_lft_05_paint_v002.png", false},
|
||||
{"AP11_interior_joystick_poles_lft_long_05", "joystick_poles_lft_long_05_paint_v002.png", false},
|
||||
{"AP11_interior_joystick_poles_rt_05", "joystick_poles_rt_05_paint_v002.png", false},
|
||||
{"AP11_interior_latch_mechanisms_01", "latch_mechanisms_01Shape_tpAmbient.png", false},
|
||||
{"AP11_interior_lower_push_buttons", "lower_push_buttonsShape_tpAmbient.png", false},
|
||||
{"AP11_interior_lower_walls_back", "lower_walls_back_paint_04.png", false},
|
||||
{"AP11_interior_lower_walls_boxes_head", "lower_walls_boxes_headShape_tpAmbient_paint_v001.png", false},
|
||||
{"AP11_interior_main_cp_left_smth_03", "main_cp_left_0Shape3_tpAmbient_paint_02.png", false},
|
||||
{"AP11_interior_main_cp_mid_smth_02", "main_cp_mid_smth_02Shape_tpAmbient_paint_02.png", false},
|
||||
{"AP11_interior_main_cp_rt_smth", "main_cp_rt_smthShape_tpAmbient_paint_02.png", false},
|
||||
{"AP11_interior_main_cp_wheels", "main_cp_wheelsShape_tpAmbient.png", false},
|
||||
{"AP11_interior_metal_brackets_under_hatch", "metal_brackets_under_hatchShape_tpAmbient.png", false},
|
||||
{"AP11_interior_metal_tunnel_parts", "metal_tunnel_partsShape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_metal_window_parts", "metal_window_partsShape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_middle_walls_05", "middle_walls_05_tpAmbient_paint_02.png", false},
|
||||
{"AP11_interior_middle_walls_0Shape8", "middle_walls_0Shape8_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_mid_tunnel_parts", "mid_tunnel_parts_03Shape_tpAmbient_paint_02.png", false},
|
||||
{"AP11_interior_new_switch_rails1", "new_switch_rails1Shape_tpAmbient.png", false},
|
||||
{"AP11_interior_nozzles_02", "nozzles_02Shape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_outlet_fabric3", "outlet_fabric3Shape_tpAmbient_paint_02.png", false},
|
||||
{"AP11_interior_pole_end_02", "pole_end_02.png", false},
|
||||
{"AP11_interior_pole_end_03", "pole_end_03.png", false},
|
||||
{"AP11_interior_pole_tex_03", "pole_tex_03.png", false},
|
||||
{"AP11_interior_pole_tex_04", "pole_tex_04.png", false},
|
||||
{"AP11_interior_pole_tex_05", "pole_tex_05.png", false},
|
||||
{"AP11_interior_pole_tex_lower_01", "pole_tex_lower_01.png", false},
|
||||
{"AP11_interior_pole_under_seat_paint_01", "pole_under_seat_paint_01.png", false},
|
||||
{"AP11_interior_pole_under_seat_square_bar", "pole_under_seat_square_bar_paint_01.png", false},
|
||||
{"AP11_interior_push_switches_lft1", "push_switches_lft1Shape_tpAmbient.png", false},
|
||||
{"AP11_interior_random_small_parts_01", "random_small_parts_01Shape_tpAmbient_paint_02.png", false},
|
||||
{"AP11_interior_red", "red.png", false},
|
||||
{"AP11_interior_reticle_wheel_tp", "reticle_wheel_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_rivet_paint_v001", "rivet_paint_v001.png", false},
|
||||
{"AP11_interior_seats_fabric", "seats_fabric_paint_01.png", false},
|
||||
{"AP11_interior_seat_left_tp", "seat_left_tpAmbient_paint_v001.png", false},
|
||||
{"AP11_interior_seat_lights_left", "seat_lights_left_Shape_tpAmbient_paint_v001.png", false},
|
||||
{"AP11_interior_seat_lights_rt", "seat_lights_rt_Shape_tpAmbient_paint_v001.png", false},
|
||||
{"AP11_interior_seat_middle_tp", "seat_middle_tpAmbient_paint_v001.png", false},
|
||||
{"AP11_interior_seat_poles_0Shape1", "seat_poles_0Shape1_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_seat_pole_mirror_0Shape1", "seat_pole_mirror_0Shape1_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_seat_rt_tp", "seat_rt_tpAmbient_paint_v001.png", false},
|
||||
{"AP11_interior_sextant_0Shape2", "sextant_0Shape2_tpAmbient.png", false},
|
||||
{"AP11_interior_switch_covers_main_middle1", "switch_covers_main_middle1Shape_tpAmbient.png", false},
|
||||
{"AP11_interior_switch_rails_lft", "switch_rails_lftShape_tpAmbient.png", false},
|
||||
{"AP11_interior_tunnel_main_cylinder1", "switch_rails_lftShape_tpAmbient.png", false},
|
||||
{"AP11_interior_tunnel_switches_01", "tunnel_switches_01Shape_tpAmbient.png", false},
|
||||
{"AP11_interior_tunnel_wheelsShape", "tunnel_wheelsShape_tpAmbient.png", false},
|
||||
{"AP11_interior_walls_mid_left", "walls_mid_leftShape_tpAmbient_paint_01.png", false},
|
||||
{"AP11_interior_windows_front_0Shape4", "windows_front_0Shape4_tpAmbient_paint_01.png", false}
|
||||
}
|
||||
|
||||
|
||||
|
||||
asset.export("registerCsm", function (asset, parentNodeIdentifier)
|
||||
local parts = {}
|
||||
for i, info in ipairs(partsInfo) do
|
||||
parts[#parts + 1] = assetHelper.createModelPart(
|
||||
parentNodeIdentifier,
|
||||
sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
models,
|
||||
info[1],
|
||||
info[2],
|
||||
info[3]
|
||||
)
|
||||
end
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, parts)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.export("registerCsmFull", function (asset, parentNodeIdentifier)
|
||||
local parts = {}
|
||||
for i, info in ipairs(partsInfoFull) do
|
||||
parts[#parts + 1] = assetHelper.createModelPart(
|
||||
parentNodeIdentifier,
|
||||
sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
models,
|
||||
info[1],
|
||||
info[2],
|
||||
info[3]
|
||||
)
|
||||
end
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, parts)
|
||||
end)
|
||||
@@ -0,0 +1,37 @@
|
||||
--apollo_globebrowsing.asset
|
||||
|
||||
|
||||
local heightmaps = asset.syncedResource({
|
||||
Name = "Apollo Globebrowsing Heightmaps",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_globebrowsing_heightmaps",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local basemaps = asset.syncedResource({
|
||||
Name = "Apollo Globebrowsing Basemaps",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_globebrowsing_basemaps",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local naclighting = asset.syncedResource({
|
||||
Name = "Apollo Globebrowsing NAC Lighting",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_globebrowsing_naclighting",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local stations = asset.syncedResource({
|
||||
Name = "Apollo 17 Globebrowsing Stations",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_17_stations",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.globebrowsing.addBlendingLayersFromDirectory(heightmaps, "Moon")
|
||||
openspace.globebrowsing.addBlendingLayersFromDirectory(basemaps, "Moon")
|
||||
openspace.globebrowsing.addBlendingLayersFromDirectory(naclighting, "Moon")
|
||||
openspace.globebrowsing.addBlendingLayersFromDirectory(stations, "Moon")
|
||||
end)
|
||||
@@ -0,0 +1,51 @@
|
||||
--apollo_lem.asset (hopeful title)
|
||||
|
||||
-- This asset exports a function to create an Apollo Lunar Excursion Module (LEM).
|
||||
-- Instead of hard-coding the scene graph node parent,
|
||||
-- client assets can decide which object that the LEM should be attached to.
|
||||
-- Usage example: registerLem(asset, Apollo11Lem.Idenfitier)
|
||||
-- ...where Apollo11Lem is the scene graph node identifier to attach the LEM to.
|
||||
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
|
||||
local models = asset.syncedResource({
|
||||
Name = "Apollo Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_lem_model",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local partsInfo = {
|
||||
-- Data is structured as: Geometry file name (except .obj suffix), texture file name, shading
|
||||
-- Exterior
|
||||
{ "black", "black.png", true },
|
||||
{ "blue_glass", "blue_glass.png", true },
|
||||
{ "booster", "booster3.png", true },
|
||||
{ "bright_white", "white.png", true },
|
||||
{ "dark_grey_dish", "dark_gray.png", true },
|
||||
{ "dull_white", "dull_white.png", true },
|
||||
{ "gold", "gold.png", true },
|
||||
{ "light_grey", "light_gray.png", true },
|
||||
{ "mid_grey", "gray.png", true },
|
||||
{ "orange", "orange.png", true },
|
||||
{ "texture_lem_flag", "texture_lem_flag.png", true },
|
||||
{ "texture_lem_unitedstates", "texture_lem_unitedstates.png", true },
|
||||
{ "yellow_buttons", "yellow.png", true }
|
||||
}
|
||||
|
||||
|
||||
asset.export("registerLem", function (asset, parentNodeIdentifier)
|
||||
local parts = {}
|
||||
for i, info in ipairs(partsInfo) do
|
||||
parts[#parts + 1] = assetHelper.createModelPart(
|
||||
parentNodeIdentifier,
|
||||
sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
models,
|
||||
info[1],
|
||||
info[2],
|
||||
info[3]
|
||||
)
|
||||
end
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, parts)
|
||||
end)
|
||||
@@ -0,0 +1,183 @@
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local earthAsset = asset.require('scene/solarsystem/planets/earth/earth')
|
||||
local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon')
|
||||
|
||||
local models = asset.syncedResource({
|
||||
Name = "Apollo Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_boulders",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local LightSources = {
|
||||
{
|
||||
Type = "SceneGraphLightSource",
|
||||
Identifier = "Sun",
|
||||
Node = sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
Intensity = 1.0
|
||||
},
|
||||
{
|
||||
Identifier = "Camera",
|
||||
Type = "CameraLightSource",
|
||||
Intensity = 0.5
|
||||
}
|
||||
}
|
||||
|
||||
local Station2Boulder1Holder = {
|
||||
Identifier = "Station_2_Boulder1",
|
||||
Parent = moonAsset.Moon.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -360+30.5294692,
|
||||
Latitude = 20.098824,
|
||||
Altitude = -2442.8,
|
||||
UseHeightMap = false
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 2 Boulder 1",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 2"
|
||||
}
|
||||
}
|
||||
|
||||
local Station2Boulder1Model = {
|
||||
Identifier = "Station2Boulder1Model",
|
||||
Parent = Station2Boulder1Holder.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.06
|
||||
},
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models .. "/b1-v2.obj"
|
||||
},
|
||||
ColorTexture = models .. "/b1-v2_u1_v1.jpeg",
|
||||
LightSources = LightSources,
|
||||
PerformShading = false,
|
||||
DisableFaceCulling = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 2 Boulder 1 Model",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 2"
|
||||
}
|
||||
}
|
||||
|
||||
local Station2Boulder2Holder = {
|
||||
Identifier = "Station_2_Boulder2",
|
||||
Parent = moonAsset.Moon.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -360+30.5287892,
|
||||
Latitude = 20.098240,
|
||||
Altitude = -2434.6,
|
||||
UseHeightMap = false
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 2 Boulder 2",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 2"
|
||||
}
|
||||
}
|
||||
|
||||
local Station2Boulder2Model = {
|
||||
Identifier = "Station2Boulder2Model",
|
||||
Parent = Station2Boulder2Holder.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.06
|
||||
},
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models .. "/b2model.obj"
|
||||
},
|
||||
ColorTexture = models .. "/b2model_u1_v1.jpeg",
|
||||
LightSources = LightSources,
|
||||
PerformShading = false,
|
||||
DisableFaceCulling = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 2 Boulder 2 Model",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 2"
|
||||
}
|
||||
}
|
||||
|
||||
local Station2Boulder3Holder = {
|
||||
Identifier = "Station_2_Boulder3",
|
||||
Parent = moonAsset.Moon.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -360+30.5294692,
|
||||
Latitude = 20.098610,
|
||||
Altitude = -2441.55,
|
||||
UseHeightMap = false
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 2 Boulder 3",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 2"
|
||||
}
|
||||
}
|
||||
|
||||
local Station2Boulder3Model = {
|
||||
Identifier = "Station2Boulder3Model",
|
||||
Parent = Station2Boulder3Holder.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.06
|
||||
},
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models .. "/b3model.obj"
|
||||
},
|
||||
ColorTexture = models .. "/b3model_u1_v1.jpeg",
|
||||
LightSources = LightSources,
|
||||
PerformShading = false,
|
||||
DisableFaceCulling = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 2 Boulder 3 Model",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 2"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
Station2Boulder1Holder, Station2Boulder1Model,
|
||||
Station2Boulder2Holder, Station2Boulder2Model,
|
||||
Station2Boulder3Holder, Station2Boulder3Model
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.setPropertyValueSingle(
|
||||
'Scene.Station2Boulder1Model.Renderable.RotationVector',
|
||||
{ 243.243256 ,206.270264, 309.677429 }
|
||||
);
|
||||
|
||||
openspace.setPropertyValueSingle(
|
||||
'Scene.Station2Boulder3Model.Renderable.RotationVector',
|
||||
{ 161.513519 ,243.243256, 65.806450 }
|
||||
);
|
||||
|
||||
openspace.setPropertyValueSingle(
|
||||
'Scene.Station2Boulder2Model.Renderable.RotationVector',
|
||||
{ 66.162155, 7.783780, 114.193550 }
|
||||
);
|
||||
end)
|
||||
@@ -0,0 +1,186 @@
|
||||
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
local models = asset.syncedResource({
|
||||
Name = "Apollo Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_boulders",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
|
||||
local LightSources = {
|
||||
{
|
||||
Type = "SceneGraphLightSource",
|
||||
Identifier = "Sun",
|
||||
Node = sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
Intensity = 1.0
|
||||
},
|
||||
{
|
||||
Identifier = "Camera",
|
||||
Type = "CameraLightSource",
|
||||
Intensity = 0.5
|
||||
}
|
||||
}
|
||||
|
||||
local earthAsset = asset.require('scene/solarsystem/planets/earth/earth')
|
||||
local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon')
|
||||
|
||||
|
||||
local Station6Frag1Holder = {
|
||||
Identifier = "Station_6_Fragment1",
|
||||
Parent = moonAsset.Moon.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -360+30.80068,
|
||||
Latitude = 20.2903,
|
||||
Altitude = -2562.6,
|
||||
UseHeightmap = false
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 6 Fragment 1",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 6"
|
||||
}
|
||||
}
|
||||
|
||||
local Station6Frag1Model = {
|
||||
Identifier = "Station6Frag1Model",
|
||||
Parent = Station6Frag1Holder.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -360+30.8007,
|
||||
Latitude = 20.2903,
|
||||
Altitude = -2562.6,
|
||||
UseHeightmap = false
|
||||
}
|
||||
},
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.1
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models .. "/A17-S6-frag1.obj"
|
||||
},
|
||||
ColorTexture = models .. "/A17-S6-frag1.png",
|
||||
LightSources = LightSources,
|
||||
PerformShading = false,
|
||||
DisableFaceCulling = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 6 Fragment 1 Model",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 6"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
local Station6Frag23Holder = {
|
||||
Identifier = "Station_6_Fragments_2_3",
|
||||
Parent = moonAsset.Moon.Identifier,
|
||||
GUI = {
|
||||
Name = "Station 6 Fragments 2 & 3 Holder",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 6"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
local Station6Frag2Model = {
|
||||
Identifier = "A17S6F5",
|
||||
Parent = Station6Frag23Holder.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.14
|
||||
},
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -360+30.80055,
|
||||
Latitude = 20.289808,
|
||||
Altitude = -2566.5,
|
||||
UseHeightmap = false
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models .. "/station6_boulder_frag2.obj"
|
||||
},
|
||||
ColorTexture = models .. "/frag2crop_u1_v1.jpeg",
|
||||
LightSources = LightSources,
|
||||
PerformShading = false,
|
||||
DisableFaceCulling = true,
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 6 Fragment 2 Model",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 6"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
local Station6Frag3Model = {
|
||||
Identifier = "A17S6F3",
|
||||
Parent = Station6Frag23Holder.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.14
|
||||
},
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -360+30.80053,
|
||||
Latitude = 20.29030,
|
||||
Altitude = -2563.0,
|
||||
UseHeightMap = false
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models .. "/station6_boulder_frag3.obj"
|
||||
},
|
||||
ColorTexture = models .. "/frag3crop_u1_v1.jpeg",
|
||||
LightSources = LightSources,
|
||||
PerformShading = false,
|
||||
DisableFaceCulling = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 6 Fragment 3 Model",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 6"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
Station6Frag1Holder, Station6Frag1Model, Station6Frag23Holder, Station6Frag2Model, Station6Frag3Model,
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
asset.onInitialize(function ()
|
||||
|
||||
openspace.setPropertyValueSingle('Scene.Station6Frag1Model.Renderable.RotationVector', {235.909088,165.000000,286.299194});
|
||||
openspace.setPropertyValueSingle('Scene.A17S6F5.Renderable.RotationVector', {336.959991,210.239990,325.984253});
|
||||
openspace.setPropertyValueSingle('Scene.A17S6F3.Renderable.RotationVector', {293.181824,255.000000,4.090910});
|
||||
openspace.setPropertyValueSingle('Scene.Station6Frag1Model.Renderable.PerformShading', false);
|
||||
openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.MinimumAllowedDistance", 0.050000)
|
||||
|
||||
end)
|
||||
@@ -0,0 +1,80 @@
|
||||
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
local models = asset.syncedResource({
|
||||
Name = "Apollo Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_boulders",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local LightSources = {
|
||||
{
|
||||
Type = "SceneGraphLightSource",
|
||||
Identifier = "Sun",
|
||||
Node = sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
Intensity = 1.0
|
||||
},
|
||||
{
|
||||
Identifier = "Camera",
|
||||
Type = "CameraLightSource",
|
||||
Intensity = 0.5
|
||||
}
|
||||
}
|
||||
|
||||
local moonAsset = asset.require('scene/solarsystem/planets/earth/moon/moon')
|
||||
|
||||
local Station7BoulderHolder = {
|
||||
Identifier = "Station_7_Boulder",
|
||||
Parent = moonAsset.Moon.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moonAsset.Moon.Identifier,
|
||||
Longitude = -360+30.8165882,
|
||||
Latitude = 20.2908556,
|
||||
Altitude = -2593.5,
|
||||
UseHeightMap = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 7 Boulder",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 7"
|
||||
}
|
||||
}
|
||||
|
||||
local Station7BoulderModel = {
|
||||
Identifier = "Station7BoulderModel",
|
||||
Parent = Station7BoulderHolder.Identifier,
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = 0.1
|
||||
},
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models .. "/b7model.obj"
|
||||
},
|
||||
ColorTexture = models .. "/b7model_u1_v1.jpeg",
|
||||
LightSources = LightSources,
|
||||
PerformShading = false,
|
||||
DisableFaceCulling = true
|
||||
},
|
||||
GUI = {
|
||||
Name = "Station 7 Boulder Model",
|
||||
Path = "/Solar System/Missions/Apollo/17/Station 7"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
Station7BoulderHolder, Station7BoulderModel
|
||||
})
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.setPropertyValueSingle('Scene.Station7BoulderModel.Renderable.RotationVector', {1.945950,274.378387,212.903214});
|
||||
end)
|
||||
@@ -0,0 +1,120 @@
|
||||
-- Apollo mission insignias on their locations on the Lunar surface.
|
||||
-- The insignias are invisible by default, but can be enabled using shown or hidden using
|
||||
-- the exported functions `showInsignias(interpolationDuration)` and `hideInsignias(interpolationDuration)`.
|
||||
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
local insigniasPath = asset.syncedResource({
|
||||
Name = "Apollo Insignias",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_insignias",
|
||||
Version = 1
|
||||
})
|
||||
local moon = asset.require('scene/solarsystem/planets/earth/moon/moon')
|
||||
|
||||
local landingData = {
|
||||
{
|
||||
Identifier = "Apollo11",
|
||||
Name = "Apollo 11",
|
||||
Name = "Apollo 11",
|
||||
Texture = "apollo11.png",
|
||||
LunarModule = {0.67409, 23.47298, 0.0},
|
||||
},
|
||||
{
|
||||
Identifier = "Apollo12",
|
||||
Name = "Apollo 12",
|
||||
Texture = "apollo12.png",
|
||||
LunarModule = {-3.01381, -23.41930, 0.0}
|
||||
},
|
||||
{
|
||||
Identifier = "Apollo14",
|
||||
Name = "Apollo 14",
|
||||
Texture = "apollo14.png",
|
||||
LunarModule = {-3.64544, -17.47139, 0.0}
|
||||
},
|
||||
{
|
||||
Identifier = "Apollo15",
|
||||
Name = "Apollo 15",
|
||||
Texture = "apollo15.png",
|
||||
LunarModule = {26.13224, 3.63400, 0.0}
|
||||
},
|
||||
{
|
||||
Identifier = "Apollo16",
|
||||
Name = "Apollo 16",
|
||||
Texture = "apollo16.png",
|
||||
LunarModule = {-8.97341, 15.49859, 0.0}
|
||||
},
|
||||
{
|
||||
Identifier = "Apollo17",
|
||||
Name = "Apollo 17",
|
||||
Texture = "apollo17.png",
|
||||
LunarModule = {20.18809, 30.77475, 0.0}
|
||||
}
|
||||
}
|
||||
|
||||
local nodes = {}
|
||||
local size = 100000;
|
||||
|
||||
for i = 1, #landingData do
|
||||
local entry = landingData[i]
|
||||
nodes[i] = {
|
||||
Identifier = entry.Identifier .. "Insignia",
|
||||
Parent = moon.Moon.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "GlobeTranslation",
|
||||
Globe = moon.Moon.Identifier,
|
||||
Latitude = entry.LunarModule[1],
|
||||
Longitude = entry.LunarModule[2],
|
||||
Altitude = entry.LunarModule[3] + size * 1.1,
|
||||
UseHeightmap = false
|
||||
},
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderablePlaneImageLocal",
|
||||
Size = size,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = insigniasPath .. "/" .. entry.Texture,
|
||||
Opacity = 0.0
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Other/Labels",
|
||||
Name = entry.Name .. " Insignia"
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
asset.onInitialize(function ()
|
||||
openspace.bindShortcut(
|
||||
'Show Apollo Landing Labels',
|
||||
'openspace.setPropertyValue("Scene.Apollo*Insignia.Renderable.Opacity", 1, 0.5)',
|
||||
'Show patches of the Apollo missions on their respective landing sites',
|
||||
'/Missions/Apollo'
|
||||
)
|
||||
|
||||
openspace.bindShortcut(
|
||||
'Hide Apollo Landing Labels',
|
||||
'openspace.setPropertyValue("Scene.Apollo*Insignia.Renderable.Opacity", 0, 0.5)',
|
||||
'Hide patches of the Apollo missions on their respective landing sites',
|
||||
'/Missions/Apollo'
|
||||
)
|
||||
end)
|
||||
|
||||
asset.export('showInsignia', function (missinNumber, interpolationDuration)
|
||||
openspace.setPropertyValue("Scene.Apollo" .. missionNumber .. "Insignia.Renderable.Opacity", 1, interpolationDuration)
|
||||
end)
|
||||
|
||||
asset.export('hideInsignia', function (missinNumber, interpolationDuration)
|
||||
openspace.setPropertyValue("Scene.Apollo" .. missionNumber .. "Insignia.Renderable.Opacity", 0, interpolationDuration)
|
||||
end)
|
||||
|
||||
asset.export('showInsignias', function (interpolationDuration)
|
||||
openspace.setPropertyValue("Scene.Apollo*Insignia.Renderable.Opacity", 1, interpolationDuration)
|
||||
end)
|
||||
|
||||
asset.export('hideInsignias', function (interpolationDuration)
|
||||
openspace.setPropertyValue("Scene.Apollo*Insignia.Renderable.Opacity", 0, interpolationDuration)
|
||||
end)
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, nodes)
|
||||
@@ -0,0 +1,8 @@
|
||||
local modelFolder = asset.syncedResource({
|
||||
Name = "Apollo Lem Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "apollo_lem_model",
|
||||
Version = 3
|
||||
})
|
||||
|
||||
asset.export('modelFolder', modelFolder)
|
||||
@@ -20,7 +20,7 @@ local images = asset.syncedResource({
|
||||
local models = asset.syncedResource({
|
||||
Name = "Vesta Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "vesta_comet",
|
||||
Identifier = "vesta_model",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
|
||||
@@ -0,0 +1,981 @@
|
||||
asset.require('spice/base')
|
||||
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
local models_chutes = asset.syncedResource({
|
||||
Name = "Insight Models Chutes",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "insight_models_chutes",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local models_cruise_arrays = asset.syncedResource({
|
||||
Name = "Insight Models Cruise Arrays",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "insight_models_cruise_arrays",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local models_cruise_cone = asset.syncedResource({
|
||||
Name = "Insight Models Cruise Cone",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "insight_models_cruise_cone",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local models_lander_lander_deck = asset.syncedResource({
|
||||
Name = "Insight Models Lander Deck",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "insight_models_lander_lander_deck",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local models_lander_legs_deploy = asset.syncedResource({
|
||||
Name = "Insight Models Lander Legs Deploy",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "insight_models_lander_legs_deploy",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local models_lander_legs_stow = asset.syncedResource({
|
||||
Name = "Insight Models Lander Legs Stow",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "insight_models_lander_legs_stow",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local models_lander_panels_deploy = asset.syncedResource({
|
||||
Name = "Insight Models Lander Panels Deploy",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "insight_models_lander_panels_deploy",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local models_lander_panels_stow = asset.syncedResource({
|
||||
Name = "Insight Models Lander Panels Stow",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "insight_models_lander_panels_stow",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
local ikernels = asset.syncedResource({
|
||||
Name = "Insight Kernels",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "insight_kernels",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
local iKernels = {
|
||||
ikernels .. '/nsyt_spk_cruise_od063_v1_approach2surface_SC_Lander.tsc',
|
||||
ikernels .. '/insight_v02.tfr',
|
||||
ikernels .. '/mar085s.bsp',
|
||||
ikernels .. '/nsyt_spk_cruise_POST_approach2surface_SC_Lander.bsp',
|
||||
ikernels .. '/nsyt_spk_cruise_POST_approach2surface_SC_Lander.bck',
|
||||
}
|
||||
|
||||
local RotationMatrix = {
|
||||
-1, 0, 0,
|
||||
0, 0, -1,
|
||||
0, -1, 0
|
||||
}
|
||||
|
||||
local LightSources = {
|
||||
{
|
||||
Type = "SceneGraphLightSource",
|
||||
Identifier = "Sun",
|
||||
Node = sunTransforms.SolarSystemBarycenter.Identifier,
|
||||
Intensity = 1.0
|
||||
},
|
||||
{
|
||||
Type = "SceneGraphLightSource",
|
||||
Identifier = "Mars",
|
||||
Node = "Mars",
|
||||
Intensity = 1.0
|
||||
},
|
||||
{
|
||||
Identifier = "Camera",
|
||||
Type = "CameraLightSource",
|
||||
Intensity = 0.5
|
||||
}
|
||||
}
|
||||
|
||||
--expected timeline
|
||||
local entryTimeStart = "2018 NOV 26 19:39:03.68"; --(-00:08:07.32 less then pdf)
|
||||
local parachuteDeployTime1 = "2018 NOV 26 19:42:41.68" -- entry + 218s
|
||||
local parachuteDeployTime20 = "2018 NOV 26 19:42:42.18" -- entry + 218.5s
|
||||
local parachuteDeployTime40 = "2018 NOV 26 19:42:42.68" -- entry + 219s
|
||||
local heatShieldSeperationTime = "2018 NOV 26 19:42:56.68" -- entry + 233s
|
||||
local legDeployTime = "2018 NOV 26 19:43:06.68" -- entry + 243s
|
||||
local landerSeperationTime = "2018 NOV 26 19:44:51.68" -- entry + 348s
|
||||
local touchdownTime = "2018 NOV 26 19:45:32.68" -- entry + 389s
|
||||
local panelDeployTime = "2018 NOV 26 19:45:33.68" -- entry + 390s
|
||||
local foreverTime = "2018 NOV 26 20:17:50.68" -- entry + 2327s
|
||||
|
||||
local kernelTouchdownTime = "2018 NOV 26 19:45:32.3"
|
||||
local spiceRotationEndTime = "2018 NOV 26 19:51:39"
|
||||
|
||||
local InsightParent = {
|
||||
Identifier = "InsightParent",
|
||||
Parent = "MarsBarycenter",
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = "INSIGHT",
|
||||
Observer = "MARS",
|
||||
Frame = "GALACTIC",
|
||||
Kernels = iKernels
|
||||
},
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
SourceFrame = "INSIGHT_LANDER_CRUISE",
|
||||
DestinationFrame = "GALACTIC"
|
||||
},
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = spiceRotationEndTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "InsightParent",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
-- -1397 offset for MOLA
|
||||
local Insight = {
|
||||
Identifier = "Insight",
|
||||
Parent = "InsightParent",
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = {0.0, 0.0, -3.1415}
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Insight",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Entry_CapsuleA = {
|
||||
Identifier = "Insight_Entry_CapsuleA",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_cruise_cone .. "/cruise_insight_doubleside2_newcapsule_diffuse.obj"
|
||||
},
|
||||
ColorTexture = models_cruise_cone .. "/insight_newcapsule_diffuse.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = landerSeperationTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Entry CapsuleA",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Entry_Capsule_Ring = {
|
||||
Identifier = "Insight_Entry_Capsule_Ring",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_cruise_cone .. "/insight_cruise_cone_ring_foil_gold.obj"
|
||||
},
|
||||
ColorTexture = models_cruise_cone .. "/foil_gold_ramp.png",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = landerSeperationTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Entry Capsule Ring",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Entry_Capsule_Plugs = {
|
||||
Identifier = "Insight_Entry_Capsule_Plugs",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_cruise_cone .. "/insight_cruise_cone_capsule_diffuse.obj"
|
||||
},
|
||||
ColorTexture = models_cruise_cone .. "/insight_capsule_diffuse.png",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = landerSeperationTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Entry Capsule Plugs",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Entry_Heatshield = {
|
||||
Identifier = "Insight_Entry_Heatshield",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_cruise_cone .. "/insight_cruise_heatshield_foil_gold.obj"
|
||||
},
|
||||
ColorTexture = models_cruise_cone .. "/foil_gold_ramp.png",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = heatShieldSeperationTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Entry Heatshield",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Parachute_0 = {
|
||||
Identifier = "Insight_Parachute_0",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_chutes .. "/insight_chute_frame01_diff1.obj"
|
||||
},
|
||||
ColorTexture = models_chutes .. "/chute_diff.png",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = parachuteDeployTime1,
|
||||
End = parachuteDeployTime20
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Parachute0",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Parachute_Cords_0 = {
|
||||
Identifier = "Insight_Parachute_Cords_0",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_chutes .. "/insight_chute_frame01_cords1.obj"
|
||||
},
|
||||
ColorTexture = models_chutes .. "/foil_gold_ramp.png",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = parachuteDeployTime1,
|
||||
End = parachuteDeployTime20
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight ParachuteC0",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Parachute_20 = {
|
||||
Identifier = "Insight_Parachute_20",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_chutes .. "/insight_chute_frame20_diff1.obj"
|
||||
},
|
||||
ColorTexture = models_chutes .. "/chute_diff.png",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = parachuteDeployTime20,
|
||||
End = parachuteDeployTime40
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Parachute20",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Parachute_Cords_20 = {
|
||||
Identifier = "Insight_Parachute_Cords_20",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_chutes .. "/insight_chute_frame20_cords1.obj"
|
||||
},
|
||||
ColorTexture = models_chutes .. "/foil_gold_ramp.png",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = parachuteDeployTime20,
|
||||
End = parachuteDeployTime40
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight ParachuteC20",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Parachute_40 = {
|
||||
Identifier = "Insight_Parachute_40",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_chutes .. "/chute_doubleside_frame40_diff.obj"
|
||||
},
|
||||
ColorTexture = models_chutes .. "/chute_diff.png",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = parachuteDeployTime40,
|
||||
End = landerSeperationTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Parachute40",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Parachute_Cords_40 = {
|
||||
Identifier = "Insight_Parachute_Cords_40",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_chutes .. "/insight_chute_frame40_cords1.obj"
|
||||
},
|
||||
ColorTexture = models_chutes .. "/foil_gold_ramp.png",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = parachuteDeployTime40,
|
||||
End = landerSeperationTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight ParachuteC40",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_A001 = {
|
||||
Identifier = "Insight_Lander_A001",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO01.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_01.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander A001",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_A002 = {
|
||||
Identifier = "Insight_Lander_A002",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO02.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_02.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander A002",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_A003 = {
|
||||
Identifier = "Insight_Lander_A003",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO03.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_03.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander A003",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_A004 = {
|
||||
Identifier = "Insight_Lander_A004",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO04.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_04.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander A004",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_A005 = {
|
||||
Identifier = "Insight_Lander_A005",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO05.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_05.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander A005",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_A006 = {
|
||||
Identifier = "Insight_Lander_A006",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO06.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_06.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander A006",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_A007 = {
|
||||
Identifier = "Insight_Lander_A007",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO07.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_07.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander A007",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_A008 = {
|
||||
Identifier = "Insight_Lander_A008",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_AO08.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_AO_08.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander A008",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_foil1 = {
|
||||
Identifier = "Insight_Lander_foil1",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_foil1.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/foil_silver_ramp.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander foil",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_Tex01 = {
|
||||
Identifier = "Insight_Lander_Tex01",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_tex01.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_tex_01.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander Tex01",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Lander_Tex02 = {
|
||||
Identifier = "Insight_Lander_Tex02",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_lander_deck .. "/insight_lander_deck_tex02.obj"
|
||||
},
|
||||
ColorTexture = models_lander_lander_deck .. "/InSIGHT_tex_02.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight Lander Tex02",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Legs_Stowed_tex = {
|
||||
Identifier = "Insight_Legs_Stowed_tex",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_legs_stow .. "/insight_lander_legs_stow_tex01.obj"
|
||||
},
|
||||
ColorTexture = models_lander_legs_stow .. "/InSIGHT_tex_01.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = heatShieldSeperationTime,
|
||||
End = legDeployTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight legs_stow_tex",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Legs_Stowed_AO06 = {
|
||||
Identifier = "Insight_Legs_Stowed_AO",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_legs_stow .. "/insight_lander_legs_stow_AO06.obj"
|
||||
},
|
||||
ColorTexture = models_lander_legs_stow .. "/InSIGHT_AO_06.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = heatShieldSeperationTime,
|
||||
End = legDeployTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight legs_stow_AO",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Legs_Deployed_tex = {
|
||||
Identifier = "Insight_Legs_Deployed_tex",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_legs_deploy .. "/insight_lander_legs_deploy_tex01.obj"
|
||||
},
|
||||
ColorTexture = models_lander_legs_deploy .. "/InSIGHT_tex_01.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = legDeployTime,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight legs_deploy_tex",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Legs_Deployed_AO06 = {
|
||||
Identifier = "Insight_Legs_Deployed_AO",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_legs_deploy .. "/insight_lander_legs_deploy_AO06.obj"
|
||||
},
|
||||
ColorTexture = models_lander_legs_deploy .. "/InSIGHT_AO_06.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = legDeployTime,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight legs_deploy_AO",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Panels_Stowed_tex = {
|
||||
Identifier = "Insight_Panels_Stowed_tex",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_panels_stow .. "/insight_lander_panels_stow_tex01.obj"
|
||||
},
|
||||
ColorTexture = models_lander_panels_stow .. "/InSIGHT_tex_01.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight panels_stow_tex",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Panels_Stowed_tex2 = {
|
||||
Identifier = "Insight_Panels_Stowed_tex2",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_panels_stow .. "/insight_lander_panels_stow_tex02.obj"
|
||||
},
|
||||
ColorTexture = models_lander_panels_stow .. "/InSIGHT_tex_02.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight panels_stow_tex2",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Panels_Stowed_AO01 = {
|
||||
Identifier = "Insight_Panels_Stowed_AO",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_panels_stow .. "/insight_lander_panels_stow_AO01.obj"
|
||||
},
|
||||
ColorTexture = models_lander_panels_stow .. "/InSIGHT_AO_01.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight panels_stow_AO",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Panels_Deployed_tex = {
|
||||
Identifier = "Insight_panels_Deployed_tex",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_panels_deploy .. "/insight_lander_panels_deploy_tex01.obj"
|
||||
},
|
||||
ColorTexture = models_lander_panels_deploy .. "/InSIGHT_tex_01.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = panelDeployTime,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight panels_deploy_tex",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Panels_Deployed_tex2 = {
|
||||
Identifier = "Insight_panels_Deployed_tex2",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_panels_deploy .. "/insight_lander_panels_deploy_tex02.obj"
|
||||
},
|
||||
ColorTexture = models_lander_panels_deploy .. "/InSIGHT_tex_02.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = panelDeployTime,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight panels_deploy_tex2",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Panels_Deployed_AO06 = {
|
||||
Identifier = "Insight_panels_Deployed_AO",
|
||||
Parent = Insight.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = models_lander_panels_deploy .. "/insight_lander_panels_deploy_AO01.obj"
|
||||
},
|
||||
ColorTexture = models_lander_panels_deploy .. "/InSIGHT_AO_01.jpg",
|
||||
ModelTransform = RotationMatrix,
|
||||
LightSources = LightSources,
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = panelDeployTime,
|
||||
End = foreverTime
|
||||
},
|
||||
GUI = {
|
||||
Hidden = true,
|
||||
Name = "Insight panels_deploy_AO",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
local Insight_Trail = {
|
||||
Identifier = "InsightTrail",
|
||||
Parent = "Mars",
|
||||
Renderable = {
|
||||
Enabled = false,
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = "-189",
|
||||
Observer = "MARS",
|
||||
Frame = "IAU_MARS",
|
||||
Kernels = iKernels
|
||||
},
|
||||
Color = { 0.70, 0.50, 0.20 },
|
||||
StartTime = "2018 NOV 26 19:30:13.390",
|
||||
EndTime = "2018 NOV 26 19:51:40.890",
|
||||
SampleInterval = 2
|
||||
},
|
||||
TimeFrame = {
|
||||
Type = "TimeFrameInterval",
|
||||
Start = entryTimeStart,
|
||||
End = landerSeperationTime
|
||||
},
|
||||
GUI = {
|
||||
Name = "Insight Trail",
|
||||
Path = "/Solar System/Missions/Insight"
|
||||
}
|
||||
}
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
InsightParent, Insight, Insight_Entry_CapsuleA, Insight_Entry_Capsule_Ring,
|
||||
Insight_Entry_Capsule_Plugs, Insight_Entry_Heatshield, Insight_Parachute_0,
|
||||
Insight_Parachute_Cords_0, Insight_Parachute_20, Insight_Parachute_Cords_20,
|
||||
Insight_Parachute_40, Insight_Parachute_Cords_40, Insight_Lander_A001,
|
||||
Insight_Lander_A002, Insight_Lander_A003, Insight_Lander_A004, Insight_Lander_A005,
|
||||
Insight_Lander_A006, Insight_Lander_A007, Insight_Lander_A008, Insight_Lander_foil1,
|
||||
Insight_Lander_Tex01, Insight_Lander_Tex02, Insight_Legs_Stowed_tex,
|
||||
Insight_Legs_Stowed_AO06, Insight_Legs_Deployed_tex, Insight_Legs_Deployed_AO06,
|
||||
Insight_Panels_Stowed_tex, Insight_Panels_Stowed_tex2, Insight_Panels_Stowed_AO01,
|
||||
Insight_Panels_Deployed_tex, Insight_Panels_Deployed_tex2,
|
||||
Insight_Panels_Deployed_AO06, Insight_Trail
|
||||
})
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
+64
@@ -0,0 +1,64 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local transforms = asset.require('scene/solarsystem/sun/transforms')
|
||||
|
||||
|
||||
local ParkerSolarProbeTrail = {
|
||||
Identifier = "ParkerSolarProbeTrail",
|
||||
Parent = transforms.SolarSystemBarycenter.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "HorizonsTranslation",
|
||||
HorizonsTextFile = "C:/Users/skollber/Downloads/parker_20180812-20191231.dat"
|
||||
},
|
||||
Color = { 0.9, 0.9, 0.0 },
|
||||
StartTime = "2018 AUG 12 12:00:00",
|
||||
EndTime = "2025 Aug 31 09:11:00",
|
||||
Period = 365.242,
|
||||
SampleInterval = 1000,
|
||||
TimeStampSubsampleFactor = 1
|
||||
},
|
||||
GUI = {
|
||||
Name = "'Parker Solar Probe Trail",
|
||||
Path = "/Solar System/Missions"
|
||||
}
|
||||
}
|
||||
|
||||
local PspPosition = {
|
||||
Identifier = "PspPosition",
|
||||
Parent = transforms.SolarSystemBarycenter.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "HorizonsTranslation",
|
||||
HorizonsTextFile = "C:/Users/skollber/Downloads/parker_20180812-20191231.dat"
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Name = "Parker Solar Probe",
|
||||
Path = "/Solar System/Missions/Parker Solar Probe Position",
|
||||
hidden = true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
local PspMarker = {
|
||||
Identifier = "PspMarker",
|
||||
Parent = PspPosition.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderablePlaneImageLocal",
|
||||
Enabled = false,
|
||||
Size = 3.0E8,
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "C:/OpenSpace_dev/OpenSpace/data/assets/scene/solarsystem/missions/parkersolarprobe/marker.png",
|
||||
BlendMode = "Additive"
|
||||
},
|
||||
GUI = {
|
||||
Name = "Parker Solar Probe Marker",
|
||||
Path = "/Solar System/Missions/Parker Solar Probe Marker"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, { ParkerSolarProbeTrail, PspPosition, PspMarker })
|
||||
@@ -5,7 +5,7 @@ local modelFolder = asset.syncedResource({
|
||||
Name = "Pioneer 10/11 Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "pioneer_10_11_model",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local kernelsFolder = asset.syncedResource({
|
||||
|
||||
@@ -5,7 +5,7 @@ local modelFolder = asset.syncedResource({
|
||||
Name = "Pioneer 10/11 Models",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "pioneer_10_11_model",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local kernelsFolder = asset.syncedResource({
|
||||
|
||||
@@ -21,9 +21,11 @@ local images = asset.syncedResource({
|
||||
Name = "Rosetta Images",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "rosettaimages",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
local imagesDestination = images .. "/images"
|
||||
|
||||
local Barycenter = {
|
||||
Identifier = "67PBarycenter",
|
||||
Parent = transforms.SolarSystemBarycenter.Identifier,
|
||||
@@ -58,7 +60,7 @@ local Comet67P = {
|
||||
},
|
||||
ColorTexture = textures .. "/gray.jpg",
|
||||
Projection = {
|
||||
Sequence = { images },
|
||||
Sequence = { imagesDestination },
|
||||
SequenceType = "image-sequence",
|
||||
Observer = "ROSETTA",
|
||||
Target = "CHURYUMOV-GERASIMENKO",
|
||||
@@ -133,6 +135,13 @@ local Trail67P = {
|
||||
}
|
||||
}
|
||||
|
||||
asset.onInitialize(function()
|
||||
if not openspace.directoryExists(imagesDestination) then
|
||||
openspace.printInfo("Extracting Rosetta images")
|
||||
openspace.unzipFile(images .. "/images_v1_v2.zip", imagesDestination, true)
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
|
||||
assetHelper.registerSceneGraphNodesAndExport(asset, {
|
||||
|
||||
@@ -16,6 +16,7 @@ local Atmosphere = {
|
||||
PlanetRadius = 6377.0,
|
||||
PlanetAverageGroundReflectance = 0.1,
|
||||
GroundRadianceEmittion = 0.6,
|
||||
SunIntensity = 6.9,
|
||||
Rayleigh = {
|
||||
Coefficients = {
|
||||
-- Wavelengths are given in 10^-9m
|
||||
|
||||
@@ -4,6 +4,7 @@ local sunAsset = asset.require('scene/solarsystem/sun/sun')
|
||||
local earthAsset = asset.require('../earth')
|
||||
asset.require('spice/base')
|
||||
asset.request('./trail')
|
||||
local labelsPath = asset.require('./moon_labels').LabelsPath
|
||||
|
||||
|
||||
|
||||
@@ -34,42 +35,62 @@ local Moon = {
|
||||
Identifier = "WAC_Utah",
|
||||
Name = "WAC [Utah]",
|
||||
FilePath = mapServiceConfigs .. "/Utah/Wac.wms",
|
||||
Enabled = true
|
||||
Enabled = true,
|
||||
Settings = { Multiplier = 2.0 }
|
||||
},
|
||||
{
|
||||
Identifier = "WAC_Sweden",
|
||||
Name = "WAC [Sweden]",
|
||||
FilePath = mapServiceConfigs .. "/LiU/WAC.wms"
|
||||
FilePath = mapServiceConfigs .. "/LiU/WAC.wms",
|
||||
Settings = { Multiplier = 2.0 }
|
||||
},
|
||||
{
|
||||
Identifier = "ClemUvvis_Utah",
|
||||
Name = "Clem Uvvis [Utah]",
|
||||
FilePath = mapServiceConfigs .. "/Utah/ClemUvvis.wms"
|
||||
FilePath = mapServiceConfigs .. "/Utah/ClemUvvis.wms",
|
||||
Settings = { Multiplier = 2.0 }
|
||||
},
|
||||
{
|
||||
Identifier = "ClemUvvis_Sweden",
|
||||
Name = "Clem Uvvis [Sweden]",
|
||||
FilePath = mapServiceConfigs .. "/LiU/Clem_Uvvis.wms"
|
||||
FilePath = mapServiceConfigs .. "/LiU/Clem_Uvvis.wms",
|
||||
Settings = { Multiplier = 2.0 }
|
||||
},
|
||||
{
|
||||
Identifier = "UvvisHybrid_Utah",
|
||||
Name = "Uvvis Hybrid [Utah]",
|
||||
FilePath = mapServiceConfigs .. "/Utah/UvvisHybrid.wms"
|
||||
FilePath = mapServiceConfigs .. "/Utah/UvvisHybrid.wms",
|
||||
Settings = {
|
||||
Gamma = 0.75,
|
||||
Multiplier = 1.5
|
||||
}
|
||||
},
|
||||
{
|
||||
Identifier = "UvvisHybrid_Sweden",
|
||||
Name = "Uvvis Hybrid [Sweden]",
|
||||
FilePath = mapServiceConfigs .. "/LiU/Uvvis_Hybrid.wms"
|
||||
FilePath = mapServiceConfigs .. "/LiU/Uvvis_Hybrid.wms",
|
||||
Settings = {
|
||||
Gamma = 0.75,
|
||||
Multiplier = 1.5
|
||||
}
|
||||
},
|
||||
{
|
||||
Identifier = "Kaguya_Utah",
|
||||
Name = "Kaguya [Utah]",
|
||||
FilePath = mapServiceConfigs .. "/Utah/Kaguya.wms"
|
||||
FilePath = mapServiceConfigs .. "/Utah/Kaguya.wms",
|
||||
Settings = {
|
||||
Gamma = 1.12,
|
||||
Multiplier = 2.7
|
||||
}
|
||||
},
|
||||
{
|
||||
Identifier = "Kaguya_Sweden",
|
||||
Name = "Kaguya [Sweden]",
|
||||
FilePath = mapServiceConfigs .. "/LiU/Kaguya.wms"
|
||||
FilePath = mapServiceConfigs .. "/LiU/Kaguya.wms",
|
||||
Settings = {
|
||||
Gamma = 1.12,
|
||||
Multiplier = 2.7
|
||||
}
|
||||
},
|
||||
{
|
||||
Identifier = "Lola_Clr_Shade_Utah",
|
||||
@@ -120,6 +141,22 @@ local Moon = {
|
||||
Name = earthAsset.Earth.Name,
|
||||
Radius = 6.371E6
|
||||
}
|
||||
},
|
||||
Labels = {
|
||||
Enable = false,
|
||||
FileName = labelsPath .. "/moon.labels",
|
||||
LabelAlignmentOption = "Horizontally", -- or Circularly
|
||||
LabelsFontSize = 14.0,
|
||||
LabelsSize = 8.0,
|
||||
LabelsMinSize = 1.0,
|
||||
LabelsMaxSize = 1500.0,
|
||||
ProximityEnabled = false,
|
||||
LabelsFadeInEnabled = true,
|
||||
FadeInStartingDistance = 500000.0,
|
||||
FadeOutStartingDistance = 1000000.0,
|
||||
LabelsForceDomeRendering = true,
|
||||
LabelsDistanceEPS = 1350000.0,
|
||||
LabelsColor = {1.0, 1.0, 0.0, 1.0}
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
local LabelsPath = asset.syncedResource({
|
||||
Name = "Moon Labels",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "moon_labels",
|
||||
Version = 1
|
||||
})
|
||||
asset.export("LabelsPath", LabelsPath)
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+1
-14
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
@@ -8,17 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
@@ -8,16 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local shared = asset.require('../debris_shared')
|
||||
|
||||
local group = {
|
||||
Title = "Indian ASAT test Debris",
|
||||
Url = "http://www.celestrak.com/NORAD/elements/2019-006.txt",
|
||||
TrailColor = { 0.25, 0.35, 0.45 }
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
@@ -1,5 +1,5 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local shared = asset.require('../satellites_shared')
|
||||
local shared = asset.require('../debris_shared')
|
||||
|
||||
local group = {
|
||||
Title = "Breeze-M Breakup",
|
||||
@@ -12,12 +12,4 @@ local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, true)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local shared = asset.require('../satellites_shared')
|
||||
local shared = asset.require('../debris_shared')
|
||||
|
||||
local group = {
|
||||
Title = "Fengyun Debris",
|
||||
Url = "http://www.celestrak.com/NORAD/elements/1999-025.txt",
|
||||
TrailColor = { 0.25, 0.35, 0.45 }
|
||||
TrailColor = { 0.784, 1.0, 0.737 }
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
@@ -12,12 +12,4 @@ local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, true)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+3
-11
@@ -1,10 +1,10 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local shared = asset.require('../satellites_shared')
|
||||
local shared = asset.require('../debris_shared')
|
||||
|
||||
local group = {
|
||||
Title = "Iridium 33 Debris",
|
||||
Url = "http://www.celestrak.com/NORAD/elements/iridium-33-debris.txt",
|
||||
TrailColor = { 0.25, 0.35, 0.45 }
|
||||
TrailColor = { 0.8, 0.0, 0.3 }
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
@@ -12,12 +12,4 @@ local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, true)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+3
-11
@@ -1,10 +1,10 @@
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local shared = asset.require('../satellites_shared')
|
||||
local shared = asset.require('../debris_shared')
|
||||
|
||||
local group = {
|
||||
Title = "Kosmos 2251 Debris",
|
||||
Url = "http://www.celestrak.com/NORAD/elements/cosmos-2251-debris.txt",
|
||||
TrailColor = { 0.25, 0.35, 0.45 }
|
||||
TrailColor = { 0.66, 0.8, 0.5 }
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
@@ -12,12 +12,4 @@ local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, true)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
-- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_VOLUME enabled
|
||||
|
||||
-- Before using this asset,
|
||||
-- the volume data itself needs to be generated,
|
||||
-- using the task 'data/tasks/volume/debristasks/generate_debris_volume.task'
|
||||
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local transforms = asset.require("scene/solarsystem/planets/earth/transforms")
|
||||
|
||||
local maxApogee = 2 * 10946320;
|
||||
|
||||
local volume = {
|
||||
Identifier = "DebrisVolume - Cartesian",
|
||||
Parent = transforms.EarthInertial.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableTimeVaryingVolume",
|
||||
SourceDirectory = asset.localResource("generatedCartesian"),
|
||||
TransferFunction = asset.localResource("transferfunction.txt"),
|
||||
StepSize = 0.01,
|
||||
MinValue = 0,
|
||||
MaxValue = 1,
|
||||
GridType = "Cartesian",
|
||||
SecondsBefore = 50*365*24*60*60,
|
||||
SecondsAfter = 50*365*24*60*60
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Volumes"
|
||||
},
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = maxApogee -- do not multiply this. That will not show real representation.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local objects = { volume }
|
||||
assetHelper.registerSceneGraphNodes(asset, objects)
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
-- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_VOLUME enabled
|
||||
|
||||
-- Before using this asset,
|
||||
-- the volume data itself needs to be generated,
|
||||
-- using the task 'data/tasks/volume/debristasks/generate_debris_volume.task'
|
||||
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
local transforms = asset.require("scene/solarsystem/planets/earth/transforms")
|
||||
|
||||
local maxApogee = 10946320;
|
||||
|
||||
local volume = {
|
||||
Identifier = "DebrisVolume - Spherical",
|
||||
Parent = transforms.EarthInertial.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableTimeVaryingVolume",
|
||||
SourceDirectory = asset.localResource("generated"),
|
||||
TransferFunction = asset.localResource("transferfunction.txt"),
|
||||
StepSize = 0.01,
|
||||
MinValue = 0,
|
||||
MaxValue = 1,
|
||||
GridType = "Spherical",
|
||||
SecondsBefore = 50*365*24*60*60,
|
||||
SecondsAfter = 50*365*24*60*60
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Volumes"
|
||||
},
|
||||
Transform = {
|
||||
Scale = {
|
||||
Type = "StaticScale",
|
||||
Scale = maxApogee --do not multiply this. That will not show real representation.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local objects = { volume }
|
||||
assetHelper.registerSceneGraphNodes(asset, objects)
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
width 1024
|
||||
lower 0.0
|
||||
upper 1.0
|
||||
mappingkey 0.02 40 160 40 0
|
||||
mappingkey 0.14 40 40 240 50
|
||||
mappingkey 0.3 200 80 0 250
|
||||
@@ -0,0 +1,74 @@
|
||||
local transforms = asset.require('scene/solarsystem/planets/earth/transforms')
|
||||
local assetHelper = asset.require('util/asset_helper')
|
||||
|
||||
local satImageFolder = asset.syncedResource({
|
||||
Name = "Satellite Image Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "tle_satellites_images",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
function downloadTLEFile(sceneAsset, url, name)
|
||||
local identifier = name
|
||||
identifier = identifier:gsub(" ", "")
|
||||
identifier = identifier:gsub("&", "")
|
||||
identifier = identifier:gsub("-", "")
|
||||
return sceneAsset.syncedResource({
|
||||
Name = "Satellite TLE Data (" .. name .. ")",
|
||||
Type = "UrlSynchronization",
|
||||
Identifier = "satellite_tle_data_" .. identifier,
|
||||
Url = url
|
||||
})
|
||||
end
|
||||
|
||||
local registerSatelliteGroupObjects = function(containingAsset, group, tleFolder, shouldAddDuplicates)
|
||||
local filename = group.Url:match("([^/]+)$")
|
||||
local filenameSansExt = filename:gsub(filename:match("(%.%w+)$"), "")
|
||||
|
||||
local path = tleFolder .. "/" .. filename
|
||||
|
||||
function numLinesInFile(filename)
|
||||
local ctr = 0
|
||||
for _ in io.lines(filename) do ctr = ctr + 1 end
|
||||
return ctr
|
||||
end
|
||||
|
||||
-- Check format of a set of 3 TLE file lines and return nonzero if there is a format error
|
||||
function isValidTLEFileFormat(lineArr)
|
||||
function isEmpty(s) return s == nil or s == '' end
|
||||
|
||||
if isEmpty(lineArr[1]) or isEmpty(lineArr[2]) or isEmpty(lineArr[3]) then
|
||||
return false
|
||||
end
|
||||
if string.sub(lineArr[2], 1, 2) ~= "1 " then
|
||||
return false
|
||||
end
|
||||
if string.sub(lineArr[3], 1, 2) ~= "2 " then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function debris(title, file, color)
|
||||
return {
|
||||
Identifier = title,
|
||||
Parent = transforms.EarthInertial.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableSatellites",
|
||||
Path = file,
|
||||
Segments = 160,
|
||||
Color = color,
|
||||
Fade = 0.5
|
||||
},
|
||||
GUI = {
|
||||
Path = "/Solar System/Planets/Earth/Satellites"
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
local Debris = debris(filenameSansExt, path, group.TrailColor)
|
||||
assetHelper.registerSceneGraphNodesAndExport(containingAsset, { Debris })
|
||||
end
|
||||
|
||||
asset.export("downloadTLEFile", downloadTLEFile)
|
||||
asset.export("registerSatelliteGroupObjects", registerSatelliteGroupObjects)
|
||||
@@ -8,16 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, true)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
@@ -8,16 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
@@ -8,16 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
@@ -8,16 +8,4 @@ local group = {
|
||||
}
|
||||
|
||||
local tle = shared.downloadTLEFile(asset, group.Url, group.Title)
|
||||
|
||||
|
||||
local objectNames = {}
|
||||
|
||||
asset.onInitialize(function ()
|
||||
objectNames = shared.addSatelliteGroupObjects(group, tle, false)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function ()
|
||||
for _, n in ipairs(objectNames) do
|
||||
openspace.removeSceneGraphNode(n)
|
||||
end
|
||||
end)
|
||||
shared.registerSatelliteGroupObjects(asset, group, tle, true)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user