Merge branch 'master' into feature/horizons-framework

* Adjust the horizons translation to new master

* Resolve conflicts
This commit is contained in:
Malin Ejdbo
2021-07-01 10:29:28 +02:00
1304 changed files with 85185 additions and 68143 deletions
+2
View File
@@ -32,9 +32,11 @@ Thumbs.db
/logs/
/screenshots/
/recordings/
/user/
/sync/
/temp/
# Customization is not supposed to be committed
customization.lua
# The COMMIT info is generated everytime CMake is run
COMMIT.md
*_codegen.cpp
+3
View File
@@ -29,3 +29,6 @@
[submodule "ext/date"]
path = ext/date
url = https://github.com/HowardHinnant/date
[submodule "support/coding/codegen"]
path = support/coding/codegen
url = https://github.com/OpenSpace/codegen
+48 -9
View File
@@ -27,9 +27,9 @@ cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
project(OpenSpace)
set(OPENSPACE_VERSION_MAJOR 0)
set(OPENSPACE_VERSION_MINOR 16)
set(OPENSPACE_VERSION_PATCH 0)
set(OPENSPACE_VERSION_STRING "Beta-8")
set(OPENSPACE_VERSION_MINOR 17)
set(OPENSPACE_VERSION_PATCH -1)
set(OPENSPACE_VERSION_STRING "Beta-10 [RC1]")
set(OPENSPACE_BASE_DIR "${PROJECT_SOURCE_DIR}")
set(OPENSPACE_CMAKE_EXT_DIR "${OPENSPACE_BASE_DIR}/support/cmake")
@@ -134,17 +134,44 @@ endif ()
option(OPENSPACE_WITH_ABUFFER_RENDERER "Compile ABuffer Renderer" OFF)
if (UNIX AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -stdlib=libc++")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++ -lc++abi")
if (UNIX)
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -stdlib=libc++")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++ -lc++abi")
else ()
if(NOT CMAKE_BUILD_TYPE)
#Can set to "RelWithDebInfo" or "Debug" also, but problems occur if this is blank by default
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Default build type" FORCE)
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGLM_ENABLE_EXPERIMENTAL" CACHE STRING "" FORCE)
set(OpenGL_GL_PREFERENCE "GLVND" CACHE STRING "OpenGL Preference setting necessary for linux" FORCE)
set(ASSIMP_BUILD_MINIZIP ON CACHE BOOL "Set to have assimp build minizip" FORCE)
endif ()
endif ()
# Add external dependencies
add_subdirectory(${OPENSPACE_BASE_DIR}/ext)
add_subdirectory(ext)
# include(src/CMakeLists.txt)
add_subdirectory(src)
add_subdirectory(support/coding/codegen)
# It is important that the __codegen.h do not actually exist so
# that this target is never considered as finished
add_custom_target(
run_codegen
ALL DEPENDS
"${CMAKE_CURRENT_BINARY_DIR}/__codegen.h"
)
add_dependencies(run_codegen codegen)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/__codegen.h"
COMMAND codegen ARGS "${OPENSPACE_BASE_DIR}/modules" "${OPENSPACE_BASE_DIR}/src"
VERBATIM
)
set_folder_location(codegen-lib "support")
set_folder_location(codegen "support")
set_folder_location(run_codegen "support")
# Qt
# Unfortunately, we have to set this value manually; sigh
# In the future, if the Qt version is updated, just add to this variable ---abock
@@ -176,10 +203,22 @@ begin_header("Configuring Modules")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/modules")
end_header("End: Configuring Modules")
add_subdirectory(support/coding/codegen/tests)
set_folder_location(run_test_codegen "Unit Tests/support")
set_folder_location(codegentest "Unit Tests")
begin_header("Configuring Applications")
add_subdirectory("${OPENSPACE_APPS_DIR}")
end_header("End: Configuring Applications")
if (MSVC AND TARGET OpenSpace)
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT OpenSpace)
endif()
option(OPENSPACE_HAVE_TESTS "Activate the OpenSpace unit tests" ON)
if (OPENSPACE_HAVE_TESTS)
begin_header("Generating OpenSpace unit test")
Vendored
+7 -1
View File
@@ -107,13 +107,15 @@ linux_gcc_make: {
}
stage('linux-gcc-make/build') {
def cmakeCompileOptions = moduleCMakeFlags();
cmakeCompileOptions += ' -DMAKE_BUILD_TYPE=Release';
cmakeCompileOptions += ' -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS:STRING="-DGLM_ENABLE_EXPERIMENTAL"';
cmakeCompileOptions += ' -DOpenGL_GL_PREFERENCE:STRING=GLVND -DASSIMP_BUILD_MINIZIP=1';
// Not sure why the linking of OpenSpaceTest takes so long
compileHelper.build(compileHelper.Make(), compileHelper.Gcc(), cmakeCompileOptions, 'OpenSpace', 'build-make');
compileHelper.recordCompileIssues(compileHelper.Gcc());
}
stage('linux-gcc-make/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
// testHelper.runUnitTests('bin/codegentest')
}
cleanWs()
} // node('linux')
@@ -134,6 +136,7 @@ linux_gcc_ninja: {
}
stage('linux-gcc-ninja/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
// testHelper.runUnitTests('bin/codegentest')
}
cleanWs()
} // node('linux')
@@ -155,6 +158,7 @@ linux_clang_make: {
}
stage('linux-clang-make/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
// testHelper.runUnitTests('bin/codegentest')
}
cleanWs()
} // node('linux')
@@ -175,6 +179,7 @@ linux_clang_ninja: {
}
stage('linux-clang-ninja/test') {
// testHelper.runUnitTests('build/OpenSpaceTest');
// testHelper.runUnitTests('bin/codegentest')
}
cleanWs()
} // node('linux')
@@ -194,6 +199,7 @@ windows_msvc: {
stage('windows-msvc/test') {
// Currently, the unit tests are failing on Windows
// testHelper.runUnitTests('bin\\Debug\\OpenSpaceTest')
testHelper.runUnitTests('bin\\Debug\\codegentest')
}
cleanWs()
} // node('windows')
+7 -7
View File
@@ -116,13 +116,13 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/sgct)
target_link_libraries(OpenSpace PRIVATE sgct)
set_folder_location(sgct "External")
set_folder_location(glfw "External/SGCT")
set_folder_location(miniziplibstatic "External/SGCT")
set_folder_location(png16_static "External/SGCT")
set_folder_location(quat "External/SGCT")
set_folder_location(tinyxml2static "External/SGCT")
set_folder_location(vrpn "External/SGCT")
set_folder_location(zlibstatic "External/SGCT")
set_folder_location(glfw "External")
set_folder_location(miniziplibstatic "External")
set_folder_location(png16_static "External")
set_folder_location(quat "External")
set_folder_location(tinyxml2static "External")
set_folder_location(vrpn "External")
set_folder_location(zlibstatic "External")
if (UNIX AND (NOT APPLE))
target_link_libraries(OpenSpace PRIVATE Xcursor Xinerama X11)
@@ -36,6 +36,7 @@ set(HEADER_FILES
include/profile/deltatimesdialog.h
include/profile/horizonsdialog.h
include/profile/keybindingsdialog.h
include/profile/scriptlogdialog.h
include/profile/line.h
include/profile/marknodesdialog.h
include/profile/metadialog.h
@@ -57,6 +58,7 @@ set(SOURCE_FILES
src/profile/deltatimesdialog.cpp
src/profile/horizonsdialog.cpp
src/profile/keybindingsdialog.cpp
src/profile/scriptlogdialog.cpp
src/profile/line.cpp
src/profile/marknodesdialog.cpp
src/profile/metadialog.cpp
@@ -81,6 +83,7 @@ qt5_wrap_cpp(
include/profile/deltatimesdialog.h
include/profile/horizonsdialog.h
include/profile/keybindingsdialog.h
include/profile/scriptlogdialog.h
include/profile/marknodesdialog.h
include/profile/metadialog.h
include/profile/modulesdialog.h
@@ -97,3 +100,11 @@ set_openspace_compile_settings(openspace-ui-launcher)
target_include_directories(openspace-ui-launcher PUBLIC include)
target_link_libraries(openspace-ui-launcher PUBLIC Qt5::Core Qt5::Gui Qt5::Network Qt5::Widgets openspace-core)
if (MSVC)
set(MSVC_WARNINGS
"/wd4619" # #pragma warning: there is no warning number (raised by Qt headers)
"/wd4946" # reinterpret_cast used between related classes:
)
target_compile_options(openspace-ui-launcher INTERFACE ${MSVC_WARNINGS})
endif ()
@@ -54,11 +54,12 @@ public:
*
* \param dir The directory from which to start the search from
*/
std::string useQtFileSystemModelToTraverseDir(std::string dir);
std::string useQtFileSystemModelToTraverseDir(std::string dir, bool usersAssets = false);
private:
void parseChildDirElements(QFileInfo item, std::string space, int level,
std::vector<std::string>& dirNames, std::vector<std::string>& output);
std::vector<std::string>& dirNames, std::vector<std::string>& output,
bool userAssets);
void parseChildFile(std::string res, bool& hasDirHeaderBeenAdded,
std::vector<std::string>& dirNames, std::vector<std::string>& output);
bool isApprovedPath(std::string path);
@@ -81,16 +81,22 @@ private:
QWidget* createCentralWidget();
void setBackgroundImage(const std::string& syncPath);
void openProfileEditor(const std::string& profile);
void openProfileEditor(const std::string& profile, bool isUserProfile);
void populateProfilesList(std::string preset);
void populateWindowConfigsList(std::string preset);
const std::string _assetPath;
const std::string _userAssetPath;
const std::string _configPath;
const std::string _userConfigPath;
const std::string _profilePath;
const std::string _userProfilePath;
const std::vector<std::string>& _readOnlyProfiles;
bool _shouldLaunch = false;
int _userAssetCount = 0;
int _userConfigCount = 0;
const std::string _sgctConfigName;
QComboBox* _profileBox = nullptr;
QComboBox* _windowConfigBox = nullptr;
@@ -45,12 +45,21 @@ public:
private slots:
void parseScript();
void chooseScripts();
/**
* Adds scripts to the _scriptEdit from outside dialogs
*
* \param scripts #std::string scripts to be appended
*/
void appendScriptsToTextfield(std::string scripts);
private:
void createWidgets();
openspace::Profile& _profile;
QTextEdit* _textScripts = nullptr;
QPushButton* _chooseScriptsButton = nullptr;
};
#endif // __OPENSPACE_UI_LAUNCHER___ADDITIONALSCRIPTS___H__
@@ -43,10 +43,11 @@ public:
* \param profile The #openspace::Profile object containing all data of the
* new or imported profile.
* \param assetBasePath The path to the folder in which all of the assets are living
* \param userAssetBasePath The path to the folder in which the users' assets are living
* \param parent Pointer to parent Qt widget
*/
AssetsDialog(openspace::Profile& profile, const std::string& assetBasePath,
QWidget* parent);
const std::string& userAssetBasePath, QWidget* parent);
private slots:
void parseSelections();
@@ -148,8 +148,10 @@ public:
* Imports asset tree data for this model by recursively traversing the folder
* structure.
* \param assetBasePath The base path where to find all assets
* \param assetBasePath The base path where to find user assets
*/
void importModelData(const std::string& assetBasePath);
void importModelData(const std::string& assetBasePath,
const std::string& userAssetBasePath);
/**
* Returns bool for if item is checked/selected
@@ -66,8 +66,16 @@ private slots:
void listItemCancelSave();
void transitionToEditMode();
void parseSelections();
void chooseScripts();
void keySelected(int index);
/**
* Adds scripts to the _scriptEdit from outside dialogs
*
* \param scripts #std::string scripts to be appended
*/
void appendScriptsToKeybind(std::string scripts);
private:
void createWidgets();
void transitionFromEditMode();
@@ -99,6 +107,7 @@ private:
QPushButton* _addButton = nullptr;
QPushButton* _removeButton = nullptr;
QPushButton* _chooseScriptsButton = nullptr;
QPushButton* _saveButton = nullptr;
QPushButton* _cancelButton = nullptr;
QDialogButtonBox* _buttonBox = nullptr;
@@ -82,7 +82,7 @@ private:
QLineEdit* _loadedEdit = nullptr;
QLabel* _notLoadedLabel = nullptr;
QLineEdit* _notLoadedEdit = nullptr;
QPushButton* _buttonAdd = nullptr;
QPushButton* _buttonRemove = nullptr;
QPushButton* _buttonSave = nullptr;
@@ -46,13 +46,15 @@ public:
* new or imported profile.
* \param profileName The name of the profile to create
* \param assetBasePath The path to the folder where the assets live
* \param userAssetBasePath The path to the folder where the user assets live
* \param profileName The path to the folder in which all profiles live
* \param profilesReadOnly vector list of profile names that are read-only and must
* not be overwritten
* \param parent Pointer to parent Qt widget
*/
ProfileEdit(openspace::Profile& profile, const std::string& profileName,
std::string assetBasePath, std::string profileBasePath,
std::string assetBasePath, std::string userAssetBasePath,
std::string profileBasePath,
const std::vector<std::string>& profilesReadOnly, QWidget* parent);
/**
@@ -98,6 +100,7 @@ private:
openspace::Profile& _profile;
const std::string _assetBasePath;
const std::string _userAssetBasePath;
const std::string _profileBasePath;
bool _saveSelected = false;
const std::vector<std::string>& _readOnlyProfiles;
@@ -22,19 +22,33 @@
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
****************************************************************************************/
#include "PowerScaling/powerScaling_fs.hglsl"
#include "fragment.glsl"
#ifndef __OPENSPACE_UI_LAUNCHER___SCRIPTLOG___H__
#define __OPENSPACE_UI_LAUNCHER___SCRIPTLOG___H__
precision highp float;
#include "profile/keybindingsdialog.h"
#include <QDialog>
#include <QListWidget>
in vec2 texCoord;
class ScriptlogDialog : public QDialog {
Q_OBJECT
public:
/**
* Constructor for ScriptlogDialog class
*
* \param parent Pointer to parent Qt widget
*/
ScriptlogDialog(QWidget* parent);
uniform highp sampler2D shadowMapTexture;
signals:
void scriptsSelected(std::string script);
Fragment getFragment() {
Fragment frag;
frag.color = vec4(vec3(1.f) - texture(shadowMapTexture, texCoord).rrr, 1.f);
frag.depth = 0.f;
return frag;
}
private slots:
void saveChosenScripts();
private:
void createWidgets();
QListWidget* _scriptlogList = nullptr;
};
#endif // __OPENSPACE_UI_LAUNCHER___SCRIPTLOG___H__
@@ -33,13 +33,13 @@ FileSystemAccess::FileSystemAccess(std::string fileExtension,
, _useCheckboxes(useCheckboxes)
{}
std::string FileSystemAccess::useQtFileSystemModelToTraverseDir(std::string dir) {
std::string FileSystemAccess::useQtFileSystemModelToTraverseDir(std::string dir, bool userAssets) {
_filesystemModel.setRootPath(QString::fromStdString(dir));
QModelIndex index = _filesystemModel.index(_filesystemModel.rootPath());
QFileInfo fileInfo = _filesystemModel.fileInfo(index);
std::vector<std::string> dirsNested;
std::vector<std::string> out;
parseChildDirElements(fileInfo, "", 0, dirsNested, out);
parseChildDirElements(fileInfo, "", 0, dirsNested, out, userAssets);
std::string combined;
for (const std::string& o : out) {
combined += o + "\n";
@@ -49,7 +49,7 @@ std::string FileSystemAccess::useQtFileSystemModelToTraverseDir(std::string dir)
void FileSystemAccess::parseChildDirElements(QFileInfo fileInfo, std::string space,
int level, std::vector<std::string>& dirNames,
std::vector<std::string>& output)
std::vector<std::string>& output, bool userAssets)
{
QDir dir(fileInfo.filePath());
bool hasDirHeaderBeenAdded = false;
@@ -58,11 +58,13 @@ void FileSystemAccess::parseChildDirElements(QFileInfo fileInfo, std::string spa
for (int i = 0; i < fileList.size(); i++) {
QFileInfo fi = fileList[i];
std::string res = space + fi.fileName().toStdString();
if (level == 0 && userAssets) {
res = "${USER_ASSETS}/" + res;
}
if (fi.isDir()) {
if (level != 0 || (level == 0 && isApprovedPath(res))) {
if (level != 0 || (level == 0 && (isApprovedPath(res) || userAssets))) {
dirNames.push_back(res);
parseChildDirElements(fi, (space + " "), level + 1, dirNames, output);
parseChildDirElements(fi, (space + " "), level + 1, dirNames, output, userAssets);
}
}
else {
@@ -37,6 +37,7 @@
#include <filesystem>
#include <iostream>
#include <random>
#include <QStandardItemModel>
using namespace openspace;
@@ -140,10 +141,16 @@ LauncherWindow::LauncherWindow(bool profileEnabled,
bool sgctConfigEnabled, std::string sgctConfigName,
QWidget* parent)
: QMainWindow(parent)
, _assetPath(absPath(globalConfig.pathTokens.at("ASSETS")) + '/')
, _configPath(absPath(globalConfig.pathTokens.at("CONFIG")) + '/')
, _profilePath(absPath(globalConfig.pathTokens.at("PROFILES")) + '/')
, _assetPath(absPath(globalConfig.pathTokens.at("ASSETS")).string() + '/')
, _userAssetPath(absPath(globalConfig.pathTokens.at("USER_ASSETS")).string() + '/')
, _configPath(absPath(globalConfig.pathTokens.at("CONFIG")).string() + '/')
, _userConfigPath(absPath(globalConfig.pathTokens.at("USER_CONFIG")).string() + '/')
, _profilePath(absPath(globalConfig.pathTokens.at("PROFILES")).string() + '/')
, _userProfilePath(
absPath(globalConfig.pathTokens.at("USER_PROFILES")).string() + '/'
)
, _readOnlyProfiles(globalConfig.readOnlyProfiles)
, _sgctConfigName(sgctConfigName)
{
Q_INIT_RESOURCE(resources);
@@ -168,18 +175,19 @@ LauncherWindow::LauncherWindow(bool profileEnabled,
setCentralWidget(createCentralWidget());
populateProfilesList(globalConfig.profile);
_profileBox->setEnabled(profileEnabled);
populateWindowConfigsList(sgctConfigName);
populateWindowConfigsList(_sgctConfigName);
_windowConfigBox->setEnabled(sgctConfigEnabled);
std::string p = absPath(globalConfig.pathTokens.at("SYNC") + "/http/launcher_images");
std::filesystem::path p = absPath(
globalConfig.pathTokens.at("SYNC") + "/http/launcher_images"
);
if (std::filesystem::exists(p)) {
try {
setBackgroundImage(p);
setBackgroundImage(p.string());
}
catch (const std::exception& e) {
std::cerr << "Error occurrred while reading background images: " << e.what();
@@ -242,7 +250,7 @@ QWidget* LauncherWindow::createCentralWidget() {
connect(
newButton, &QPushButton::released,
[this]() {
openProfileEditor("");
openProfileEditor("", true);
}
);
newButton->setObjectName("small");
@@ -254,7 +262,9 @@ QWidget* LauncherWindow::createCentralWidget() {
editButton, &QPushButton::released,
[this]() {
const std::string selection = _profileBox->currentText().toStdString();
openProfileEditor(selection);
int selectedIndex = _profileBox->currentIndex();
bool isUserProfile = selectedIndex < _userAssetCount;
openProfileEditor(selection, isUserProfile);
}
);
editButton->setObjectName("small");
@@ -310,6 +320,7 @@ void LauncherWindow::populateProfilesList(std::string preset) {
namespace fs = std::filesystem;
_profileBox->clear();
_userAssetCount = 0;
if (!std::filesystem::exists(_profilePath)) {
LINFOC(
@@ -318,6 +329,26 @@ void LauncherWindow::populateProfilesList(std::string preset) {
);
return;
}
_profileBox->addItem(QString::fromStdString("--- User Profiles ---"));
const QStandardItemModel* model = qobject_cast<const QStandardItemModel*>(_profileBox->model());
model->item(_userAssetCount)->setEnabled(false);
++_userAssetCount;
// Add all the files with the .profile extension to the dropdown
for (const fs::directory_entry& p : fs::directory_iterator(_userProfilePath)) {
if (p.path().extension() != ".profile") {
continue;
}
_profileBox->addItem(QString::fromStdString(p.path().stem().string()));
++_userAssetCount;
}
_profileBox->addItem(QString::fromStdString("--- OpenSpace Profiles ---"));
model = qobject_cast<const QStandardItemModel*>(_profileBox->model());
model->item(_userAssetCount)->setEnabled(false);
++_userAssetCount;
// Add all the files with the .profile extension to the dropdown
for (const fs::directory_entry& p : fs::directory_iterator(_profilePath)) {
if (p.path().extension() != ".profile") {
@@ -330,7 +361,6 @@ void LauncherWindow::populateProfilesList(std::string preset) {
const int idx = _profileBox->findText(QString::fromStdString(std::move(preset)));
if (idx != -1) {
_profileBox->setCurrentIndex(idx);
}
}
@@ -338,6 +368,24 @@ void LauncherWindow::populateWindowConfigsList(std::string preset) {
namespace fs = std::filesystem;
_windowConfigBox->clear();
_userConfigCount = 0;
_windowConfigBox->addItem(QString::fromStdString("--- User Configurations ---"));
const QStandardItemModel* model = qobject_cast<const QStandardItemModel*>(_windowConfigBox->model());
model->item(_userConfigCount)->setEnabled(false);
++_userConfigCount;
// Add all the files with the .xml extension to the dropdown
for (const fs::directory_entry& p : fs::directory_iterator(_userConfigPath)) {
if (p.path().extension() != ".xml") {
continue;
}
_windowConfigBox->addItem(QString::fromStdString(p.path().stem().string()));
++_userConfigCount;
}
_windowConfigBox->addItem(QString::fromStdString("--- OpenSpace Configurations ---"));
model = qobject_cast<const QStandardItemModel*>(_windowConfigBox->model());
model->item(_userConfigCount)->setEnabled(false);
if (std::filesystem::exists(_configPath)) {
// Add all the files with the .xml extension to the dropdown
for (const fs::directory_entry& p : fs::directory_iterator(_configPath)) {
@@ -368,8 +416,9 @@ void LauncherWindow::populateWindowConfigsList(std::string preset) {
}
}
void LauncherWindow::openProfileEditor(const std::string& profile) {
void LauncherWindow::openProfileEditor(const std::string& profile, const bool isUserProfile) {
std::optional<Profile> p;
std::string saveProfilePath = isUserProfile ? _userProfilePath : _profilePath;
if (profile.empty()) {
// If the requested profile is the empty string, then we want to create a new one
@@ -378,17 +427,20 @@ void LauncherWindow::openProfileEditor(const std::string& profile) {
else {
// Otherwise, we want to load that profile
std::string fullProfilePath = _profilePath + profile + ".profile";
std::string fullProfilePath = saveProfilePath + profile + ".profile";
p = loadProfileFromFile(this, fullProfilePath);
if (!p.has_value()) {
return;
}
}
ProfileEdit editor(*p, profile, _assetPath, _profilePath, _readOnlyProfiles, this);
ProfileEdit editor(*p, profile, _assetPath, _userAssetPath, saveProfilePath, _readOnlyProfiles, this);
editor.exec();
if (editor.wasSaved()) {
const std::string path = _profilePath + editor.specifiedFilename() + ".profile";
if (editor.specifiedFilename() != profile) {
saveProfilePath = _userProfilePath;
}
const std::string path = saveProfilePath + editor.specifiedFilename() + ".profile";
saveProfile(this, path, *p);
populateProfilesList(editor.specifiedFilename());
}
@@ -407,5 +459,13 @@ std::string LauncherWindow::selectedProfile() const {
}
std::string LauncherWindow::selectedWindowConfig() const {
return _windowConfigBox->currentText().toStdString();
int idx = _windowConfigBox->currentIndex();
if (idx == 0) {
return _sgctConfigName;
} else if (idx > _userAssetCount) {
return "${CONFIG}/" + _windowConfigBox->currentText().toStdString();
}
else {
return "${USER_CONFIG}/" + _windowConfigBox->currentText().toStdString();
}
}
@@ -25,10 +25,12 @@
#include "profile/additionalscriptsdialog.h"
#include "profile/line.h"
#include "profile/scriptlogdialog.h"
#include <openspace/scene/profile.h>
#include <QDialogButtonBox>
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QTextEdit>
#include <QVBoxLayout>
@@ -61,6 +63,13 @@ void AdditionalScriptsDialog::createWidgets() {
_textScripts->setAcceptRichText(false);
layout->addWidget(_textScripts, 1);
_chooseScriptsButton = new QPushButton("Choose Scripts");
connect(
_chooseScriptsButton, &QPushButton::clicked,
this, &AdditionalScriptsDialog::chooseScripts
);
layout->addWidget(_chooseScriptsButton);
layout->addWidget(new Line);
{
@@ -89,3 +98,13 @@ void AdditionalScriptsDialog::parseScript() {
_profile.setAdditionalScripts(additionalScripts);
accept();
}
void AdditionalScriptsDialog::chooseScripts() {
ScriptlogDialog d(this);
connect(&d, &ScriptlogDialog::scriptsSelected, this, &AdditionalScriptsDialog::appendScriptsToTextfield);
d.exec();
}
void AdditionalScriptsDialog::appendScriptsToTextfield(std::string scripts) {
_textScripts->append(QString::fromStdString(std::move(scripts)));
}
@@ -62,7 +62,13 @@ namespace {
void traverseToFindFilesystemMatch(AssetTreeModel& model, QModelIndex parent,
int nRows, const std::string& path)
{
const size_t slash = path.find_first_of('/', 0);
int startIndex = 0;
std::string token = "${USER_ASSETS}/";
if (path.find(token) == 0) {
startIndex = static_cast<int>(token.length());
}
const size_t slash = path.find_first_of('/', startIndex);
const bool endOfPath = (slash == std::string::npos);
std::string firstDir = endOfPath ? "" : path.substr(0, slash);
@@ -120,12 +126,12 @@ namespace {
} // namespace
AssetsDialog::AssetsDialog(openspace::Profile& profile, const std::string& assetBasePath,
QWidget* parent)
const std::string& userAssetBasePath, QWidget* parent)
: QDialog(parent)
, _profile(profile)
{
setWindowTitle("Assets");
_assetTreeModel.importModelData(assetBasePath);
_assetTreeModel.importModelData(assetBasePath, userAssetBasePath);
createWidgets();
}
@@ -145,15 +145,18 @@ AssetTreeModel::AssetTreeModel(QObject* parent)
);
}
void AssetTreeModel::importModelData(const std::string& assetBasePath) {
void AssetTreeModel::importModelData(const std::string& assetBasePath,
const std::string& userAssetBasePath) {
FileSystemAccess assets(
".asset",
{ "scene", "global", "customization", "examples", "util" },
// @TODO (abock, 2021-03-24) We need some better solution for this; what is the
// problem of just including all subfolders instead?
{ "scene", "global", "customization", "dashboard", "examples", "util" },
true,
true
);
std::string assetList = assets.useQtFileSystemModelToTraverseDir(assetBasePath);
assetList += assets.useQtFileSystemModelToTraverseDir(userAssetBasePath, true);
std::istringstream iss(assetList);
ImportElement rootElem = { "", 0, false };
@@ -25,6 +25,8 @@
#include "profile/keybindingsdialog.h"
#include "profile/line.h"
#include "profile/scriptlogdialog.h"
#include <openspace/scene/profile.h>
#include <openspace/util/keys.h>
#include <qevent.h>
@@ -106,6 +108,10 @@ KeybindingsDialog::KeybindingsDialog(Profile& profile, QWidget *parent)
transitionFromEditMode();
}
void KeybindingsDialog::appendScriptsToKeybind(std::string scripts) {
_scriptEdit->append(QString::fromStdString(std::move(scripts)));
}
void KeybindingsDialog::createWidgets() {
QBoxLayout* layout = new QVBoxLayout(this);
{
@@ -220,6 +226,14 @@ void KeybindingsDialog::createWidgets() {
_scriptLabel = new QLabel("Script");
box->addWidget(_scriptLabel, 6, 0, 1, 2);
_chooseScriptsButton = new QPushButton("Choose Scripts");
connect(
_chooseScriptsButton, &QPushButton::clicked,
this, &KeybindingsDialog::chooseScripts
);
box->addWidget(_chooseScriptsButton, 6, 1, 1, 1);
_scriptEdit = new QTextEdit;
_scriptEdit->setAcceptRichText(false);
_scriptEdit->setToolTip("Command(s) to execute at keypress event");
@@ -446,9 +460,6 @@ void KeybindingsDialog::listItemRemove() {
}
void KeybindingsDialog::transitionToEditMode() {
_list->setDisabled(true);
_addButton->setDisabled(true);
_removeButton->setDisabled(true);
_saveButton->setDisabled(true);
_cancelButton->setDisabled(true);
_buttonBox->setDisabled(true);
@@ -497,6 +508,7 @@ void KeybindingsDialog::editBoxDisabled(bool disabled) {
_scriptEdit->setDisabled(disabled);
_cancelButton->setDisabled(disabled);
_saveButton->setDisabled(disabled);
_chooseScriptsButton->setDisabled(disabled);
}
void KeybindingsDialog::parseSelections() {
@@ -508,6 +520,13 @@ void KeybindingsDialog::parseSelections() {
accept();
}
void KeybindingsDialog::chooseScripts() {
_errorMsg->clear();
ScriptlogDialog d(this);
connect(&d, &ScriptlogDialog::scriptsSelected, this, &KeybindingsDialog::appendScriptsToKeybind);
d.exec();
}
void KeybindingsDialog::keyPressEvent(QKeyEvent* evt) {
if (evt->key() == Qt::Key_Enter || evt->key() == Qt::Key_Return) {
return;
@@ -297,9 +297,6 @@ void ModulesDialog::listItemRemove() {
}
void ModulesDialog::transitionToEditMode() {
_list->setDisabled(true);
_buttonAdd->setDisabled(true);
_buttonRemove->setDisabled(true);
_buttonSave->setDisabled(true);
_buttonCancel->setDisabled(true);
_buttonBox->setDisabled(true);
@@ -94,12 +94,15 @@ namespace {
} // namespace
ProfileEdit::ProfileEdit(Profile& profile, const std::string& profileName,
std::string assetBasePath, std::string profileBasePath,
std::string assetBasePath,
std::string userAssetBasePath,
std::string profileBasePath,
const std::vector<std::string>& readOnlyProfiles,
QWidget* parent)
: QDialog(parent)
, _profile(profile)
, _assetBasePath(std::move(assetBasePath))
, _userAssetBasePath(std::move(userAssetBasePath))
, _profileBasePath(std::move(profileBasePath))
, _readOnlyProfiles(readOnlyProfiles)
{
@@ -427,7 +430,7 @@ void ProfileEdit::openKeybindings() {
void ProfileEdit::openAssets() {
_errorMsg->clear();
AssetsDialog(_profile, _assetBasePath, this).exec();
AssetsDialog(_profile, _assetBasePath, _userAssetBasePath, this).exec();
_assetsLabel->setText(labelText(_profile.assets().size(), "Assets"));
_assetsEdit->setText(QString::fromStdString(summarizeAssets(_profile.assets())));
}
@@ -302,9 +302,6 @@ void PropertiesDialog::listItemRemove() {
}
void PropertiesDialog::transitionToEditMode() {
_list->setDisabled(true);
_addButton->setDisabled(true);
_removeButton->setDisabled(true);
_saveButton->setDisabled(true);
_cancelButton->setDisabled(true);
_buttonBox->setDisabled(true);
@@ -0,0 +1,97 @@
/*****************************************************************************************
* *
* OpenSpace *
* *
* Copyright (c) 2014-2021 *
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
* software and associated documentation files (the "Software"), to deal in the Software *
* without restriction, including without limitation the rights to use, copy, modify, *
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to *
* permit persons to whom the Software is furnished to do so, subject to the following *
* conditions: *
* *
* The above copyright notice and this permission notice shall be included in all copies *
* or substantial portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A *
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT *
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF *
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
****************************************************************************************/
#include "profile/scriptlogdialog.h"
#include "profile/line.h"
#include <openspace/engine/configuration.h>
#include <openspace/scene/profile.h>
#include <ghoul/filesystem/filesystem.h>
#include <QDialogButtonBox>
#include <QLabel>
#include <QFile>
#include <QTextStream>
#include <QVBoxLayout>
ScriptlogDialog::ScriptlogDialog(QWidget* parent)
: QDialog(parent)
{
setWindowTitle("Scriptlog");
createWidgets();
QFile file(QString::fromStdString(absPath("${LOGS}/scriptLog.txt").string()));
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine();
// removing return from a few statments
// these are usually generated by gui panels
line.remove(QRegularExpression("^return "));
if (!line.isEmpty()) {
_scriptlogList->addItem(line);
}
}
}
}
void ScriptlogDialog::createWidgets() {
QBoxLayout* layout = new QVBoxLayout(this);
{
QLabel* heading = new QLabel("Choose commands from log/scriptLog.txt");
heading->setObjectName("heading");
layout->addWidget(heading);
}
_scriptlogList = new QListWidget;
_scriptlogList->setSelectionMode(QAbstractItemView::SelectionMode::MultiSelection);
layout->addWidget(_scriptlogList);
layout->addWidget(new Line);
{
QDialogButtonBox* buttons = new QDialogButtonBox;
buttons->setStandardButtons(QDialogButtonBox::Save | QDialogButtonBox::Cancel);
connect(
buttons, &QDialogButtonBox::accepted,
this, &ScriptlogDialog::saveChosenScripts
);
connect(
buttons, &QDialogButtonBox::rejected,
this, &ScriptlogDialog::reject
);
layout->addWidget(buttons);
}
}
void ScriptlogDialog::saveChosenScripts() {
std::string chosenScripts;
QList<QListWidgetItem*> itemList = _scriptlogList->selectedItems();
for (int i = 0; i < itemList.size(); ++i) {
chosenScripts += itemList.at(i)->text().toStdString();
if (i < itemList.size()) {
chosenScripts += "\n";
}
}
emit scriptsSelected(chosenScripts);
accept();
}
+60 -61
View File
@@ -41,11 +41,11 @@
#include <ghoul/lua/ghoul_lua.h>
#include <ghoul/misc/assert.h>
#include <ghoul/misc/boolean.h>
//#include <ghoul/opengl/ghoul_gl.h>
#include <GLFW/glfw3.h>
#include <ghoul/opengl/ghoul_gl.h>
#ifdef WIN32
#define GLFW_EXPOSE_NATIVE_WIN32
#endif
#include <GLFW/glfw3.h>
#include <GLFW/glfw3native.h>
#include <sgct/clustermanager.h>
#include <sgct/commandline.h>
@@ -61,6 +61,7 @@
#include <Tracy.hpp>
#include <chrono>
#include <ctime>
#include <filesystem>
#include <memory>
#ifdef WIN32
@@ -218,6 +219,15 @@ void mainInitFunc(GLFWwindow*) {
LTRACE("main::mainInitFunc(begin)");
//
// Screenshots
//
// We save the startup value of the screenshots just in case we want to add a date
// to them later in the RenderEngine
std::filesystem::path screenshotPath = absPath("${SCREENSHOTS}");
FileSys.registerPathToken("${STARTUP_SCREENSHOT}", screenshotPath);
Settings::instance().setCapturePath(screenshotPath.string());
LDEBUG("Initializing OpenSpace Engine started");
global::openSpaceEngine->initialize();
LDEBUG("Initializing OpenSpace Engine finished");
@@ -225,11 +235,11 @@ void mainInitFunc(GLFWwindow*) {
#ifndef __APPLE__
// Apparently: "Cocoa: Regular windows do not have icons on macOS"
{
std::string path = absPath("${DATA}/openspace-icon.png");
std::filesystem::path path = absPath("${DATA}/openspace-icon.png");
int x;
int y;
int n;
unsigned char* data = stbi_load(path.c_str(), &x, &y, &n, 0);
unsigned char* data = stbi_load(path.string().c_str(), &x, &y, &n, 0);
GLFWimage icons[1];
icons[0].pixels = data;
@@ -321,27 +331,6 @@ void mainInitFunc(GLFWwindow*) {
#endif // OPENSPACE_HAS_SPOUT
}
//
// Screenshots
//
std::string screenshotPath = "${SCREENSHOTS}";
if (global::configuration->shouldUseScreenshotDate) {
std::time_t now = std::time(nullptr);
std::tm* nowTime = std::localtime(&now);
char mbstr[128];
strftime(mbstr, sizeof(mbstr), "%Y-%m-%d-%H-%M", nowTime);
FileSys.registerPathToken(
"${SCREENSHOTS}",
absPath(screenshotPath + '/' + std::string(mbstr)),
ghoul::filesystem::FileSystem::Override::Yes
);
}
Settings::instance().setCapturePath(absPath(screenshotPath));
LTRACE("main::mainInitFunc(end)");
}
@@ -576,7 +565,7 @@ void mainPostDrawFunc() {
glBindTexture(GL_TEXTURE_2D, texId);
w.leftOrMain.handle->SendTexture(
texId,
GL_TEXTURE_2D,
GLuint(GL_TEXTURE_2D),
window.framebufferResolution().x,
window.framebufferResolution().y
);
@@ -587,7 +576,7 @@ void mainPostDrawFunc() {
glBindTexture(GL_TEXTURE_2D, tId);
w.right.handle->SendTexture(
tId,
GL_TEXTURE_2D,
GLuint(GL_TEXTURE_2D),
window.framebufferResolution().x,
window.framebufferResolution().y
);
@@ -660,6 +649,17 @@ void mainCharCallback(unsigned int codepoint, int modifiers) {
void mainDropCallback(int amount, const char** paths) {
ghoul_assert(amount > 0, "Expected at least one file path");
ghoul_assert(paths, "expected non-nullptr");
for (int i = 0; i < amount; ++i) {
global::openSpaceEngine->handleDragDrop(paths[i]);
}
}
std::vector<std::byte> mainEncodeFun() {
ZoneScoped
LTRACE("main::mainEncodeFun(begin)");
@@ -976,14 +976,6 @@ std::string setWindowConfigPresetForGui(const std::string labelFromCfgFile,
}
else {
preset = config.windowConfiguration;
if (preset.find('/') != std::string::npos) {
preset.erase(0, preset.find_last_of('/') + 1);
}
if (preset.length() >= xmlExt.length()) {
if (preset.substr(preset.length() - xmlExt.length()) == xmlExt) {
preset = preset.substr(0, preset.length() - xmlExt.length());
}
}
}
return preset;
}
@@ -1005,7 +997,14 @@ std::string selectedSgctProfileFromLauncher(LauncherWindow& lw, bool hasCliSGCTC
}
}
else {
config = "${CONFIG}/" + config + xmlExt;
if ( (config.length() >= xmlExt.length())
&& (0 == config.compare(config.length() - xmlExt.length(), xmlExt.length(), xmlExt)) ) {
//user customzied sgct config
}
else {
config += xmlExt;
}
}
global::configuration->windowConfiguration = config;
}
@@ -1013,7 +1012,6 @@ std::string selectedSgctProfileFromLauncher(LauncherWindow& lw, bool hasCliSGCTC
}
int main(int argc, char* argv[]) {
#ifdef WIN32
SetUnhandledExceptionFilter(generateMiniDump);
#endif // WIN32
@@ -1026,7 +1024,6 @@ int main(int argc, char* argv[]) {
{
using namespace ghoul::logging;
LogManager::initialize(LogLevel::Debug, LogManager::ImmediateFlush::Yes);
LogMgr.addLog(std::make_unique<ConsoleLog>());
#ifdef WIN32
if (IsDebuggerPresent()) {
LogMgr.addLog(std::make_unique<ghoul::logging::VisualStudioOutputLog>());
@@ -1042,7 +1039,7 @@ int main(int argc, char* argv[]) {
// to make it possible to find other files in the same directory.
FileSys.registerPathToken(
"${BIN}",
ghoul::filesystem::File(absPath(argv[0])).directoryName(),
std::filesystem::path(argv[0]).parent_path(),
ghoul::filesystem::FileSystem::Override::Yes
);
@@ -1080,7 +1077,7 @@ int main(int argc, char* argv[]) {
bool showHelp = parser.execute();
if (showHelp) {
parser.displayHelp(std::cout);
std::cout << parser.helpText();
exit(EXIT_SUCCESS);
}
// Take an actual copy of the arguments
@@ -1095,35 +1092,34 @@ int main(int argc, char* argv[]) {
std::string windowConfiguration;
try {
// Find configuration
std::string configurationFilePath = commandlineArguments.configurationName;
if (commandlineArguments.configurationName.empty()) {
std::filesystem::path configurationFilePath;
if (!commandlineArguments.configurationName.empty()) {
configurationFilePath = absPath(commandlineArguments.configurationName);
}
else {
LDEBUG("Finding configuration");
configurationFilePath = configuration::findConfiguration();
}
configurationFilePath = absPath(configurationFilePath);
if (!FileSys.fileExists(configurationFilePath)) {
LFATALC("main", "Could not find configuration: " + configurationFilePath);
if (!std::filesystem::is_regular_file(configurationFilePath)) {
LFATALC(
"main",
fmt::format("Could not find configuration {}", configurationFilePath)
);
exit(EXIT_FAILURE);
}
LINFO(fmt::format("Configuration Path: '{}'", configurationFilePath));
LINFO(fmt::format("Configuration Path: {}", configurationFilePath));
// Register the base path as the directory where the configuration file lives
std::filesystem::path base = configurationFilePath.parent_path();
FileSys.registerPathToken("${BASE}", base);
// Loading configuration from disk
LDEBUG("Loading configuration from disk");
*global::configuration = configuration::loadConfigurationFromFile(
configurationFilePath
configurationFilePath.string(),
commandlineArguments.configurationOverride
);
// If the user requested a commandline-based configuration script that should
// overwrite some of the values, this is the time to do it
if (!commandlineArguments.configurationOverride.empty()) {
LDEBUG("Executing Lua script passed through the commandline:");
LDEBUG(commandlineArguments.configurationOverride);
ghoul::lua::runScript(
global::configuration->state,
commandlineArguments.configurationOverride
);
parseLuaState(*global::configuration);
}
// Determining SGCT configuration file
LDEBUG("SGCT Configuration file: " + global::configuration->windowConfiguration);
@@ -1153,7 +1149,6 @@ int main(int argc, char* argv[]) {
global::openSpaceEngine->registerPathTokens();
bool hasSGCTConfig = false;
bool hasProfile = false;
std::string sgctFunctionName;
@@ -1169,6 +1164,9 @@ int main(int argc, char* argv[]) {
sgctFunctionName
);
//TODO consider LFATAL if ${USER} doens't exist rather then recurisve create.
global::openSpaceEngine->createUserDirectoriesIfNecessary();
// (abock, 2020-12-07) For some reason on Apple the keyboard handler in CEF will call
// the Qt one even if the QApplication was destroyed, leading to invalid memory
// access. The only way we could fix this for the release was to keep the
@@ -1223,7 +1221,7 @@ int main(int argc, char* argv[]) {
// as well as the configuration file that sgct is supposed to use
arguments.insert(arguments.begin(), argv[0]);
arguments.insert(arguments.begin() + 1, "-config");
arguments.insert(arguments.begin() + 2, absPath(windowConfiguration));
arguments.insert(arguments.begin() + 2, absPath(windowConfiguration).string());
// Need to set this before the creation of the sgct::Engine
@@ -1239,7 +1237,7 @@ int main(int argc, char* argv[]) {
LDEBUG("Creating SGCT Engine");
std::vector<std::string> arg(argv + 1, argv + argc);
Configuration config = parseArguments(arg);
config::Cluster cluster = loadCluster(absPath(windowConfiguration));
config::Cluster cluster = loadCluster(absPath(windowConfiguration).string());
Engine::Callbacks callbacks;
callbacks.initOpenGL = mainInitFunc;
@@ -1253,6 +1251,7 @@ int main(int argc, char* argv[]) {
callbacks.mousePos = mainMousePosCallback;
callbacks.mouseScroll = mainMouseScrollCallback;
callbacks.character = mainCharCallback;
callbacks.drop = mainDropCallback;
callbacks.encode = mainEncodeFun;
callbacks.decode = mainDecodeFun;
Log::instance().setNotifyLevel(Log::Level::Debug);
+19 -7
View File
@@ -32,7 +32,6 @@
#include <ghoul/io/texture/texturereaderdevil.h>
#include <ghoul/io/texture/texturereaderfreeimage.h>
#include <ghoul/filesystem/filesystem.h>
#include <ghoul/filesystem/directory.h>
#include <ghoul/logging/logmanager.h>
#include <ghoul/logging/consolelog.h>
#include <ghoul/filesystem/file.h>
@@ -106,6 +105,10 @@ void performTasks(const std::string& path) {
int main(int argc, char** argv) {
using namespace openspace;
ghoul::logging::LogManager::initialize(
ghoul::logging::LogLevel::Debug,
ghoul::logging::LogManager::ImmediateFlush::Yes
);
ghoul::initialize();
global::create();
@@ -113,12 +116,21 @@ int main(int argc, char** argv) {
// to make it possible to find other files in the same directory.
FileSys.registerPathToken(
"${BIN}",
ghoul::filesystem::File(absPath(argv[0])).directoryName(),
std::filesystem::path(argv[0]).parent_path(),
ghoul::filesystem::FileSystem::Override::Yes
);
std::string configFile = configuration::findConfiguration();
*global::configuration = configuration::loadConfigurationFromFile(configFile);
std::filesystem::path configFile = configuration::findConfiguration();
// Register the base path as the directory where the configuration file lives
std::filesystem::path base = configFile.parent_path();
constexpr const char* BasePathToken = "${BASE}";
FileSys.registerPathToken(BasePathToken, base);
*global::configuration = configuration::loadConfigurationFromFile(
configFile.string(),
""
);
openspace::global::openSpaceEngine->registerPathTokens();
global::openSpaceEngine->initialize();
@@ -127,7 +139,7 @@ int main(int argc, char** argv) {
ghoul::cmdparser::CommandlineParser::AllowUnknownCommands::Yes
);
std::string tasksPath = "";
std::string tasksPath;
commandlineParser.addCommand(
std::make_unique<ghoul::cmdparser::SingleCommand<std::string>>(
tasksPath,
@@ -142,7 +154,7 @@ int main(int argc, char** argv) {
//FileSys.setCurrentDirectory(launchDirectory);
if (tasksPath != "") {
if (!tasksPath.empty()) {
performTasks(tasksPath);
return 0;
}
@@ -150,7 +162,7 @@ int main(int argc, char** argv) {
// If no task file was specified in as argument, run in CLI mode.
LINFO(fmt::format("Task root: {}", absPath("${TASKS}")));
FileSys.setCurrentDirectory(ghoul::filesystem::Directory(absPath("${TASKS}")));
std::filesystem::current_path(absPath("${TASKS}"));
std::cout << "TASK > ";
while (std::cin >> tasksPath) {
+4 -1
View File
@@ -98,7 +98,10 @@ int main(int argc, char** argv) {
settings.changeHostPassword = defaultChangeHostPassword.str();
}
ghoul::logging::LogManager::initialize(
ghoul::logging::LogLevel::Debug,
ghoul::logging::LogManager::ImmediateFlush::Yes
);
LINFO(fmt::format("Connection password: {}", settings.password));
LINFO(fmt::format("Host password: {}", settings.changeHostPassword));
+30
View File
@@ -0,0 +1,30 @@
<?xml version="1.0" ?>
<Cluster masterAddress="localhost" externalControlPort="20500">
<Settings>
<Display swapInterval="0" />
</Settings>
<Node address="localhost" port="20401">
<Window fullScreen="false" name="OpenSpace" draw2d="false">
<Stereo type="none" />
<Size x="1280" y="720" />
<Pos x="50" y="50" />
<Viewport tracked="true">
<Pos x="0.0" y="0.0" />
<Size x="1.0" y="1.0" />
<EquirectangularProjection quality="1k" />
</Viewport>
</Window>
<Window fullScreen="false" name="GUI" tags="GUI" draw3d="false">
<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" />
</Viewport>
</Window>
</Node>
<User eyeSeparation="0.065">
<Pos x="0.0" y="0.0" z="0.0" />
</User>
</Cluster>
+2 -2
View File
@@ -4,7 +4,7 @@
<Display swapInterval="0" />
</Settings>
<Node address="localhost" port="20401">
<Window fullScreen="true" monitor="1" name="OpenSpace" draw2d="false">
<Window fullscreen="true" monitor="1" name="OpenSpace" draw2d="false">
<Stereo type="none" />
<Size x="1920" y="1080" />
<Pos x="0" y="0" />
@@ -17,7 +17,7 @@
</PlanarProjection>
</Viewport>
</Window>
<Window fullScreen="false" border="false" name="GUI" tags="GUI" draw3D="false">
<Window fullscreen="false" border="false" name="GUI" tags="GUI" draw3D="false">
<Stereo type="none" />
<Size x="1920" y="1080" />
<Pos x="0" y="0" />
+1 -1
View File
@@ -19,7 +19,7 @@
-->
<!-- mesh path is relative to working directory-->
<!-- NOTE, if no working directory is set, mesh must be absolute path -->
<Viewport name="warped fisheye" mesh="config/mesh/standard_16x9.data">
<Viewport name="warped fisheye" mesh="mesh/standard_16x9.data">
<Pos x="0.0" y="0.0" />
<Size x="1.0" y="1.0" />
<FisheyeProjection fov="180" quality="2k" tilt="30.0">
+8 -7
View File
@@ -7,11 +7,10 @@ asset.require('./base_blank')
-- Specifying which other assets should be loaded in this scene
asset.require('scene/solarsystem/sun/sun')
asset.require('scene/solarsystem/sun/glare')
asset.require('scene/solarsystem/sun/habitablezone')
asset.require('scene/solarsystem/sun/default_layers')
asset.require('scene/solarsystem/planets/planets')
asset.require('scene/solarsystem/planets/default_layers')
asset.require('scene/solarsystem/planets/mars/moons/phobos')
asset.require('scene/solarsystem/planets/mars/moons/deimos')
asset.require('scene/solarsystem/dwarf_planets/pluto/system')
asset.require('scene/solarsystem/dwarf_planets/pluto/default_layers')
asset.require('scene/solarsystem/dwarf_planets/pluto/charon/default_layers')
@@ -21,9 +20,11 @@ asset.require('scene/milkyway/constellations/constellation_keybinds')
asset.require('scene/milkyway/objects/orionnebula/orionnebula')
asset.require('util/launcher_images')
local assetHelper = asset.require('util/asset_helper')
-- For exoplanet system visualizations
asset.require('scene/milkyway/exoplanets/exoplanets_data')
asset.require('scene/milkyway/exoplanets/exoplanets_textures')
local assetHelper = asset.require('util/asset_helper')
asset.require('scene/digitaluniverse/2dF')
asset.require('scene/digitaluniverse/2mass')
asset.require('scene/digitaluniverse/6dF')
@@ -66,7 +67,7 @@ asset.require('scene/digitaluniverse/voids')
asset.require('customization/globebrowsing')
asset.onInitialize(function ()
openspace.globebrowsing.loadWMSServersFromFile(
openspace.absPath("${DATA}/globebrowsing_servers.lua")
)
end)
openspace.globebrowsing.loadWMSServersFromFile(
openspace.absPath("${DATA}/globebrowsing_servers.lua")
)
end)
+23 -24
View File
@@ -8,43 +8,42 @@ local propertyHelper = asset.require('util/property_helper')
asset.require('spice/base')
-- Load default key bindings applicable to most scenes
asset.require('dashboard/default_dashboard')
asset.require('util/default_keybindings')
asset.require('util/default_dashboard')
asset.require('util/default_joystick')
-- Load web gui
local webGui = asset.require('util/webgui')
-- Keybindings that are specific for this scene
local Keybindings = {
{
Key = "h",
Name="Toggle Trails",
Command = "local list = openspace.getProperty('{planetTrail_solarSystem}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end\n" ..
"local moonlist = openspace.getProperty('{moonTrail_solarSystem}.Renderable.Enabled'); for _,v in pairs(moonlist) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end",
Documentation = "Toggles the visibility of planet and moon trails",
GuiPath = "/Rendering",
Local = false
},
{
Key = "l",
Name = "Toggle planet labels",
Command = "local list = openspace.getProperty('{solarsystem_labels}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end",
Documentation = "Turns on visibility for all solar system labels",
GuiPath = "/Rendering",
Local = false
}
{
Key = "h",
Name="Toggle Trails",
Command = "local list = openspace.getProperty('{planetTrail_solarSystem}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end\n" ..
"local moonlist = openspace.getProperty('{moonTrail_solarSystem}.Renderable.Enabled'); for _,v in pairs(moonlist) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end",
Documentation = "Toggles the visibility of planet and moon trails",
GuiPath = "/Rendering",
Local = false
},
{
Key = "l",
Name = "Toggle planet labels",
Command = "local list = openspace.getProperty('{solarsystem_labels}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end",
Documentation = "Turns on visibility for all solar system labels",
GuiPath = "/Rendering",
Local = false
}
}
asset.onInitialize(function ()
webGui.setCefRoute("onscreen")
webGui.setCefRoute("onscreen")
sceneHelper.bindKeys(Keybindings)
openspace.setDefaultGuiSorting()
sceneHelper.bindKeys(Keybindings)
openspace.setDefaultGuiSorting()
openspace.setPropertyValueSingle("RenderEngine.VerticalLogOffset", 0.100000)
openspace.setPropertyValueSingle("RenderEngine.VerticalLogOffset", 0.100000)
end)
asset.onDeinitialize(function ()
sceneHelper.unbindKeys(Keybindings)
sceneHelper.unbindKeys(Keybindings)
end)
+51 -50
View File
@@ -4,6 +4,7 @@ local CreateFocusNodes = false
local AddMarsLayers = true
local AddMoonLayers = true
local AddMercuryLayers = true
local DataFolder = openspace.absPath('${BASE}/../OpenSpaceData')
----------------------------------------
-- If you add layers for different planets than listed here, be sure to add an
@@ -15,74 +16,74 @@ local AddMercuryLayers = true
-- sequences
-- For example: C:/OpenSpace or C:\\OpenSpace rather than C:\OpenSpace
local vrt_folders = {
Mars = {
-- Add folders here whose contents will be automatically added to the Mars globe
-- If multiple folders are added, the results will be added sequentially, meaning that
-- if areas overlap (for example CTX and HiRISE) and CTX is specified *after* HiRISE,
-- CTX will stomp over the HiRISE.
Mars = {
-- Add folders here whose contents will be automatically added to the Mars globe
-- If multiple folders are added, the results will be added sequentially, meaning that
-- if areas overlap (for example CTX and HiRISE) and CTX is specified *after* HiRISE,
-- CTX will stomp over the HiRISE.
-- tl;dr: Specify CTX folders first, then HiRISE
-- example: 'C:/OpenSpace/GlobeBrowsingData/Mars/CTX'
-- 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
'',
-- 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 = {
-- Add folders here whose contents will be automatically added to the Moon globe
-- If multiple folders are added, the results will be added sequentially, meaning that
-- if areas overlap, images from the lower results will overwrite the images from former
-- results
-- example: 'C:/OpenSpace/GlobeBrowsingData/Moon'
openspace.absPath('${BASE}/../OpenSpaceData/Moon'),
openspace.absPath('${BASE}/../OpenSpaceData/Apollo'),
''
},
Mercury = {
-- Add folders here whose contents will be automatically added to the Mercury globe
-- If multiple folders are added, the results will be added sequentially, meaning that
-- if areas overlap, images from the lower results will overwrite the images from former
-- results
-- example: 'C:/OpenSpace/GlobeBrowsingData/Mercury'
openspace.absPath('${BASE}/../OpenSpaceData/Mercury'),
''
}
-- We recommend using this folder for CTX
DataFolder .. '/Mars/CTX',
-- if not and you have a custom path for CTX layers, enter it below
'',
-- We recommend using this folder for HiRISE
DataFolder .. '/Mars/HiRISE',
-- if not and you have a custom path for HiRISE layers, enter it below
''
},
Moon = {
-- Add folders here whose contents will be automatically added to the Moon globe
-- If multiple folders are added, the results will be added sequentially, meaning that
-- if areas overlap, images from the lower results will overwrite the images from former
-- results
-- example: 'C:/OpenSpace/GlobeBrowsingData/Moon'
DataFolder .. '/Moon',
DataFolder .. '/Apollo',
''
},
Mercury = {
-- Add folders here whose contents will be automatically added to the Mercury globe
-- If multiple folders are added, the results will be added sequentially, meaning that
-- if areas overlap, images from the lower results will overwrite the images from former
-- results
-- example: 'C:/OpenSpace/GlobeBrowsingData/Mercury'
DataFolder .. '/Mercury',
''
}
}
-- Add require statements for assets exporting the neccessary globes
-- here we add Mars, Moon and Mercury:
if AddMarsLayers then
asset.require('../scene/solarsystem/planets/mars/mars')
asset.require('../scene/solarsystem/planets/mars/mars')
else
vrt_folders['Mars'] = nil
vrt_folders['Mars'] = nil
end
if AddMoonLayers then
asset.require('../scene/solarsystem/planets/earth/moon/moon')
asset.require('../scene/solarsystem/planets/earth/moon/moon')
else
vrt_folders['Moon'] = nil
vrt_folders['Moon'] = nil
end
if AddMercuryLayers then
asset.require('../scene/solarsystem/planets/mercury/mercury')
asset.require('../scene/solarsystem/planets/mercury/mercury')
else
vrt_folders['Mercury'] = nil
vrt_folders['Mercury'] = nil
end
asset.onInitialize(function ()
-- Add local patches described at the top of this file
for obj, list in pairs(vrt_folders) do
for _, dir in pairs(list) do
if (dir ~= '') then
openspace.globebrowsing.addBlendingLayersFromDirectory(dir, obj)
-- Add local patches described at the top of this file
for obj, list in pairs(vrt_folders) do
for _, dir in pairs(list) do
if (dir ~= '') then
openspace.globebrowsing.addBlendingLayersFromDirectory(dir, obj)
if CreateFocusNodes then
openspace.globebrowsing.addFocusNodesFromDirectory(dir, obj)
end
end
if CreateFocusNodes then
openspace.globebrowsing.addFocusNodesFromDirectory(dir, obj)
end
end
end
end
end)
+13
View File
@@ -0,0 +1,13 @@
local item = {
Type = "DashboardItemDate",
Identifier = "Date",
GuiName = "Date"
}
asset.onInitialize(function()
openspace.dashboard.addDashboardItem(item)
end)
asset.onDeinitialize(function()
openspace.dashboard.removeDashboardItem(item.Identifier)
end)
@@ -0,0 +1,8 @@
local assetHelper = asset.require('util/asset_helper')
asset.require('./date')
asset.require('./simulationincrement')
asset.require('./distance')
asset.require('./framerate')
asset.require('./parallelconnection')
asset.require('./globelocation')
+13
View File
@@ -0,0 +1,13 @@
local item = {
Type = "DashboardItemDistance",
Identifier = "Distance",
GuiName = "Distance"
}
asset.onInitialize(function()
openspace.dashboard.addDashboardItem(item)
end)
asset.onDeinitialize(function()
openspace.dashboard.removeDashboardItem(item.Identifier)
end)
+13
View File
@@ -0,0 +1,13 @@
local item = {
Type = "DashboardItemFramerate",
Identifier = "Framerate",
GuiName = "Framerate"
}
asset.onInitialize(function()
openspace.dashboard.addDashboardItem(item)
end)
asset.onDeinitialize(function()
openspace.dashboard.removeDashboardItem(item.Identifier)
end)
+13
View File
@@ -0,0 +1,13 @@
local item = {
Type = "DashboardItemGlobeLocation",
Identifier = "GlobeLocation",
GuiName = "Globe Location"
}
asset.onInitialize(function()
openspace.dashboard.addDashboardItem(item)
end)
asset.onDeinitialize(function()
openspace.dashboard.removeDashboardItem(item.Identifier)
end)
@@ -0,0 +1,13 @@
local item = {
Type = "DashboardItemParallelConnection",
Identifier = "ParallelConnection",
GuiName = "Parallel Connection"
}
asset.onInitialize(function()
openspace.dashboard.addDashboardItem(item)
end)
asset.onDeinitialize(function()
openspace.dashboard.removeDashboardItem(item.Identifier)
end)
@@ -0,0 +1,13 @@
local item = {
Type = "DashboardItemSimulationIncrement",
Identifier = "SimulationIncrement",
GuiName = "Simulation Increment"
}
asset.onInitialize(function()
openspace.dashboard.addDashboardItem(item)
end)
asset.onDeinitialize(function()
openspace.dashboard.removeDashboardItem(item.Identifier)
end)
+14
View File
@@ -0,0 +1,14 @@
local item = {
Type = "DashboardItemVelocity",
Identifier = "GlobeLocation",
Simplification = true,
GuiName = "Velocity"
}
asset.onInitialize(function()
openspace.dashboard.addDashboardItem(item)
end)
asset.onDeinitialize(function()
openspace.dashboard.removeDashboardItem(item.Identifier)
end)
+227
View File
@@ -0,0 +1,227 @@
local assetHelper = asset.require('util/asset_helper')
local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local transforms = asset.require('scene/solarsystem/planets/earth/transforms')
local model = asset.syncedResource({
Name = "Animated Box",
Type = "HttpSynchronization",
Identifier = "animated_box",
Version = 1
})
local StartTime = "2021 06 01 00:00:00";
local animationLoop = {
Identifier = "animationLoop",
Parent = transforms.EarthCenter.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, -11E7, 0.0 }
}
},
Renderable = {
Type = "RenderableModel",
GeometryFile = model .. "/BoxAnimated.glb",
EnableAnimation = true,
AnimationMode = "LoopFromStart",
AnimationStartTime = StartTime,
ModelScale = 3E7,
LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
}
},
PerformShading = true,
DisableFaceCulling = true
},
GUI = {
Name = "Animated Model example (LoopFromStart)",
Path = "/Example",
Description = "Simple animated box model with the animation mode 'LoopFromStart'",
}
}
local animationLoopInf = {
Identifier = "animationLoopInf",
Parent = transforms.EarthCenter.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 11E7, 0.0 }
}
},
Renderable = {
Type = "RenderableModel",
GeometryFile = model .. "/BoxAnimated.glb",
EnableAnimation = true,
AnimationMode = "LoopInfinitely",
AnimationStartTime = StartTime,
ModelScale = 3E7,
LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
}
},
PerformShading = true,
DisableFaceCulling = true
},
GUI = {
Name = "Animated Model example (LoopInfinitely)",
Path = "/Example",
Description = "Simple animated box model with the animation mode 'LoopInfinitely'",
}
}
local animationOnce = {
Identifier = "animationOnce",
Parent = transforms.EarthCenter.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 11E7, 0.0, 0.0 }
}
},
Renderable = {
Type = "RenderableModel",
GeometryFile = model .. "/BoxAnimated.glb",
EnableAnimation = true,
AnimationMode = "Once",
AnimationStartTime = StartTime,
ModelScale = 3E7,
LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
}
},
PerformShading = true,
DisableFaceCulling = true
},
GUI = {
Name = "Animated Model example (Once)",
Path = "/Example",
Description = "Simple animated box model with the animation mode 'Once'",
}
}
local animationBounceInf = {
Identifier = "animationBounceInf",
Parent = transforms.EarthCenter.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 0.0, 11E7 }
}
},
Renderable = {
Type = "RenderableModel",
GeometryFile = model .. "/BoxAnimated.glb",
EnableAnimation = true,
AnimationMode = "BounceInfinitely",
AnimationStartTime = StartTime,
ModelScale = 3E7,
LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
}
},
PerformShading = true,
DisableFaceCulling = true
},
GUI = {
Name = "Animated Model example (BounceInfinitely)",
Path = "/Example",
Description = "Simple animated box model with the animation mode 'BounceInfinitely'",
}
}
local animationBounce = {
Identifier = "animationBounce",
Parent = transforms.EarthCenter.Identifier,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 0.0, -11E7 }
}
},
Renderable = {
Type = "RenderableModel",
GeometryFile = model .. "/BoxAnimated.glb",
EnableAnimation = true,
AnimationMode = "BounceFromStart",
AnimationStartTime = StartTime,
ModelScale = 3E7,
LightSources = {
{
Type = "SceneGraphLightSource",
Identifier = "Sun",
Node = sunTransforms.SolarSystemBarycenter.Identifier,
Intensity = 1.0
}
},
PerformShading = true,
DisableFaceCulling = true
},
GUI = {
Name = "Animated Model example (BounceFromStart)",
Path = "/Example",
Description = "Simple animated box model with the animation mode 'BounceFromStart'",
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
animationLoop,
animationLoopInf,
animationOnce,
animationBounceInf,
animationBounce
})
-- Asset
asset.meta = {
Name = "Animation Example asset",
Version = "1.0",
Description = "Simple animation example asset with an animated box model",
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = {
"animationLoop",
"animationLoopInf",
"animationOnce",
"animationBounceInf",
"animationBounce"
}
}
-- Model
asset.meta = {
Name = "Animated Box Model",
Version = "1.0",
Description = "Simple animated box model",
Author = "Cesium, https://cesium.com/",
URL = "https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/BoxAnimated",
License = [[
Creative Commons Attribution 4.0 International License,
https://creativecommons.org/licenses/by/4.0/
]],
Identifiers = {
"animationLoop",
"animationLoopInf",
"animationOnce",
"animationBounceInf",
"animationBounce"
}
}
+7 -8
View File
@@ -8,20 +8,19 @@ asset.require('spice/base')
asset.require('util/default_keybindings')
asset.require('util/default_dashboard')
asset.require('util/default_joystick')
asset.require('util/webgui')
local spheres = asset.require('examples/spheres')
debugHelper.registerCartesianAxes(asset, {
Parent = "Root",
Scale = 10
Parent = "Root",
Scale = 10
})
asset.onInitialize(function ()
openspace.navigation.setNavigationState({
Anchor = "Root",
Position = { 20, 20, 20 },
Up = {0, 1, 0},
})
openspace.navigation.setNavigationState({
Anchor = "Root",
Position = { 20, 20, 20 },
Up = {0, 1, 0},
})
end)
+46 -46
View File
@@ -1,50 +1,50 @@
local assetHelper = asset.require('util/asset_helper')
assetHelper.registerDashboardItems(asset, {
{
Type = "DashboardItemAngle",
Identifier = "Angle",
GuiName = "Angle",
ReferenceType = "Node",
ReferenceNodeName = "Earth",
DestinationType = "Node",
DestinationNodeName = "Moon"
},
{
Type = "DashboardItemDate",
Identifier = "Date",
GuiName = "Date"
},
{
Type = "DashboardItemSimulationIncrement",
Identifier = "SimulationIncrement",
GuiName = "Simulation Increment"
},
{
Type = "DashboardItemDistance",
Identifier = "Distance",
GuiName = "Distance"
},
{
Type = "DashboardItemFramerate",
Identifier = "Framerate",
GuiName = "Framerate"
},
{
Type = "DashboardItemParallelConnection",
Identifier = "ParallelConnection",
GuiName = "Parallel Connection"
},
{
Type = "DashboardItemMission",
Identifier = "Mission",
GuiName = "Mission"
},
{
Type = "DashboardItemPropertyValue",
Identifier = "asd",
GuiName = "adasd",
URI = "Scene.Earth.Renderable.Enabled",
DisplayString = "Earth is enabled: {}"
}
{
Type = "DashboardItemAngle",
Identifier = "Angle",
GuiName = "Angle",
ReferenceType = "Node",
ReferenceNodeName = "Earth",
DestinationType = "Node",
DestinationNodeName = "Moon"
},
{
Type = "DashboardItemDate",
Identifier = "Date",
GuiName = "Date"
},
{
Type = "DashboardItemSimulationIncrement",
Identifier = "SimulationIncrement",
GuiName = "Simulation Increment"
},
{
Type = "DashboardItemDistance",
Identifier = "Distance",
GuiName = "Distance"
},
{
Type = "DashboardItemFramerate",
Identifier = "Framerate",
GuiName = "Framerate"
},
{
Type = "DashboardItemParallelConnection",
Identifier = "ParallelConnection",
GuiName = "Parallel Connection"
},
{
Type = "DashboardItemMission",
Identifier = "Mission",
GuiName = "Mission"
},
{
Type = "DashboardItemPropertyValue",
Identifier = "asd",
GuiName = "adasd",
URI = "Scene.Earth.Renderable.Enabled",
DisplayString = "Earth is enabled: {}"
}
})
@@ -4,16 +4,16 @@ local debugHelper = asset.require('util/debug_helper')
local earthRadius = 6.371E6
debugHelper.registerCartesianAxes(asset, {
Parent = transforms.EarthBarycenter.Identifier,
Scale = earthRadius * 3.5
Parent = transforms.EarthBarycenter.Identifier,
Scale = earthRadius * 3.5
})
debugHelper.registerCartesianAxes(asset, {
Parent = transforms.EarthInertial.Identifier,
Scale = earthRadius * 2.5
Parent = transforms.EarthInertial.Identifier,
Scale = earthRadius * 2.5
})
debugHelper.registerCartesianAxes(asset, {
Parent = transforms.EarthIAU.Identifier,
Scale = earthRadius * 1.5
Parent = transforms.EarthIAU.Identifier,
Scale = earthRadius * 1.5
})
+46
View File
@@ -0,0 +1,46 @@
local assetHelper = asset.require('util/asset_helper')
-- @TODO (emmbr 2020-02-03) Potential threading issue later on? This will run on the main thread
local cyanTexture = openspace.createSingleColorImage("example_disc_color1", {0.0, 1.0, 1.0})
local purpleTexture = openspace.createSingleColorImage("example_disc_color2", {0.5, 0.0, 0.5})
local BasicDisc = {
Identifier = "BasicDisc",
Renderable = {
Type = "RenderableDisc",
Texture = cyanTexture,
Size = 1e10,
Width = 0.5
},
GUI = {
Name = "Basic Disc",
Path = "/Examples/Discs"
}
}
-- Elliptic discs can be created using a non-uniform scaling
-- For a full disc, use a width of 1.0
local FullEllipticDisc = {
Identifier = "FullEllipticDisc",
Transform = {
Scale = {
Type = "NonUniformStaticScale",
Scale = {2.0, 1.0, 1.0}
}
},
Renderable = {
Type = "RenderableDisc",
Texture = purpleTexture,
Size = 2e10,
Width = 1.0
},
GUI = {
Name = "Full Elliptic Disc",
Path = "/Examples/Discs"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
BasicDisc,
FullEllipticDisc
})
+53 -53
View File
@@ -4,71 +4,71 @@ local sunTransforms = asset.require('scene/solarsystem/sun/transforms')
local textures = asset.syncedResource({
Name = "New Horizons Textures",
Type = "HttpSynchronization",
Identifier = "newhorizons_textures",
Version = 3
Name = "New Horizons Textures",
Type = "HttpSynchronization",
Identifier = "newhorizons_textures",
Version = 3
})
local models = asset.syncedResource({
Name = "New Horizons Model",
Type = "HttpSynchronization",
Identifier = "newhorizons_model",
Version = 1
Name = "New Horizons Model",
Type = "HttpSynchronization",
Identifier = "newhorizons_model",
Version = 1
})
local Example_Fixed_Height = {
Identifier = "Example_Fixed_Height",
Parent = earth.Earth.Identifier,
Transform = {
Translation = {
Type = "GlobeTranslation",
Globe = earth.Earth.Identifier,
Longitude = 0.0,
Latitude = 0.0,
FixedAltitude = 10000000.0
}
},
Renderable = {
Type = "RenderableModel",
Body = "NEW HORIZONS",
Geometry = {{
Type = "MultiModelGeometry",
GeometryFile = models .. "/NewHorizonsCleanModel.obj",
ColorTexture = textures .. "/NHTexture.jpg"
}}
},
GUI = {
Path = "/Example"
Identifier = "Example_Fixed_Height",
Parent = earth.Earth.Identifier,
Transform = {
Translation = {
Type = "GlobeTranslation",
Globe = earth.Earth.Identifier,
Longitude = 0.0,
Latitude = 0.0,
FixedAltitude = 10000000.0
}
},
Renderable = {
Type = "RenderableModel",
Body = "NEW HORIZONS",
Geometry = {{
Type = "MultiModelGeometry",
GeometryFile = models .. "/NewHorizonsCleanModel.obj",
ColorTexture = textures .. "/NHTexture.jpg"
}}
},
GUI = {
Path = "/Example"
}
}
local Example_Adaptive_Height = {
Identifier = "Example_Adaptive_Height",
Parent = earth.Earth.Identifier,
Transform = {
Translation = {
Type = "GlobeTranslation",
Globe = earth.Earth.Identifier,
Longitude = -74.006,
Latitude = 40.7128
}
},
Renderable = {
Type = "RenderableModel",
Body = "NEW HORIZONS",
Geometry = {{
Type = "MultiModelGeometry",
GeometryFile = models .. "/NewHorizonsCleanModel.obj",
ColorTexture = textures .. "/NHTexture.jpg"
}}
},
GUI = {
Path = "/Example"
Identifier = "Example_Adaptive_Height",
Parent = earth.Earth.Identifier,
Transform = {
Translation = {
Type = "GlobeTranslation",
Globe = earth.Earth.Identifier,
Longitude = -74.006,
Latitude = 40.7128
}
},
Renderable = {
Type = "RenderableModel",
Body = "NEW HORIZONS",
Geometry = {{
Type = "MultiModelGeometry",
GeometryFile = models .. "/NewHorizonsCleanModel.obj",
ColorTexture = textures .. "/NHTexture.jpg"
}}
},
GUI = {
Path = "/Example"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
Example_Fixed_Height,
Example_Adaptive_Height
Example_Fixed_Height,
Example_Adaptive_Height
})
+86 -42
View File
@@ -1,54 +1,98 @@
local assetHelper = asset.require('util/asset_helper')
local scale = 3E11
local scale = 149597870700 -- 1 AU
local radialGrid = {
Identifier = "ExampleRadialGrid",
Parent = "Root",
Transform = {
Scale = {
Type = "StaticScale",
Scale = scale
}
},
Renderable = {
Type = "RenderableRadialGrid",
Opacity = 0.8,
GridColor = {0.6, 1.0, 0.7},
LineWidth = 3.0,
GridSegments = {3, 4},
InnerRadius = 0.2,
Enabled = false
},
GUI = {
Name = "Example Radial Grid",
Path = "/Examples/Grids"
Identifier = "ExampleRadialGrid",
Parent = "Root",
Transform = {
Scale = {
Type = "StaticScale",
Scale = scale
}
},
Renderable = {
Type = "RenderableRadialGrid",
Opacity = 0.8,
Color = { 0.6, 1.0, 0.7 },
LineWidth = 3.0,
GridSegments = { 3, 4 },
Radii = { 0.2, 1.0 },
Enabled = false
},
GUI = {
Name = "Example Radial Grid",
Path = "/Examples/Grids"
}
}
local planarGrid = {
Identifier = "ExampleGrid",
Transform = {
Scale = {
Type = "StaticScale",
Scale = scale
}
},
Renderable = {
Type = "RenderableGrid",
GridColor = {0.0, 1.0, 0.8},
LineWidth = 2.0,
Segments = {5, 10},
Size = {1, 2},
Enabled = false
},
GUI = {
Name = "Example Grid",
Path = "/Examples/Grids"
Identifier = "ExampleGrid",
Transform = {
Scale = {
Type = "StaticScale",
Scale = scale
}
},
Renderable = {
Type = "RenderableGrid",
Color = { 0.0, 1.0, 0.8 },
LineWidth = 2.0,
Segments = { 5, 10 },
Size = { 1, 2 },
Enabled = false
},
GUI = {
Name = "Example Grid",
Path = "/Examples/Grids"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
radialGrid,
planarGrid
local sphericalGrid = {
Identifier = "ExampleSphericalGrid",
Transform = {
Scale = {
Type = "StaticScale",
Scale = scale
}
},
Renderable = {
Type = "RenderableSphericalGrid",
Color = { 1.0, 0.5, 0.2 },
LineWidth = 2.0,
Segments = 40,
Enabled = false
},
GUI = {
Name = "Example Spherical Grid",
Path = "/Examples/Grids"
}
}
local boxGrid = {
Identifier = "ExampleBoxGrid",
Transform = {
Scale = {
Type = "StaticScale",
Scale = scale
}
},
Renderable = {
Type = "RenderableBoxGrid",
Color = { 0.5, 0.0, 1.0 },
LineWidth = 2.0,
Size = { 2, 2, 2 },
Enabled = false
},
GUI = {
Name = "Example Box Grid",
Path = "/Examples/Grids"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
radialGrid,
planarGrid,
sphericalGrid,
boxGrid
})
+52
View File
@@ -0,0 +1,52 @@
local assetHelper = asset.require('util/asset_helper')
local scale = 149597870700 -- 1 AU
local circle = {
Identifier = "ExampleCircle",
Transform = {
Scale = {
Type = "StaticScale",
Scale = scale
}
},
Renderable = {
Type = "RenderableRadialGrid",
Color = { 0.6, 0.6, 0.8 },
LineWidth = 3.0,
GridSegments = { 1, 1 },
CircleSegments = 64,
Radii = { 0.0, 1.0 }
},
GUI = {
Name = "Example Circle",
Path = "/Examples/Primitives"
}
}
local ellipse = {
Identifier = "ExampleEllipse",
Transform = {
Scale = {
Type = "NonUniformStaticScale",
Scale = { 1.5, 1.0, 1.0 }
}
},
Renderable = {
Type = "RenderableRadialGrid",
Color = { 0.6, 0.8, 0.6 },
LineWidth = 3.0,
GridSegments = { 1, 1 },
CircleSegments = 64,
Radii = { 0.0, scale }
},
GUI = {
Name = "Example Ellipse",
Path = "/Examples/Primitives"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
circle,
ellipse
})
@@ -6,18 +6,18 @@ local transforms = asset.require("scene/solarsystem/sun/transforms")
local RenderablePlaneImageOnline = {
Identifier = "RenderablePlaneImageOnline",
Parent = transforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderablePlaneImageOnline",
Size = 3.0E11,
Origin = "Center",
Billboard = true,
URL = "http://data.openspaceproject.com/examples/renderableplaneimageonline.jpg"
},
GUI = {
Path = "/Examples"
}
Identifier = "RenderablePlaneImageOnline",
Parent = transforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderablePlaneImageOnline",
Size = 3.0E11,
Origin = "Center",
Billboard = true,
URL = "http://data.openspaceproject.com/examples/renderableplaneimageonline.jpg"
},
GUI = {
Path = "/Examples"
}
}
@@ -1,10 +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/"
Type = "ScreenSpaceBrowser",
Identifier = "ScreenSpaceBrowserExample",
Name = "Screen Space Browser Example",
Url = "https://www.openspaceproject.com/"
};
assetHelper.registerScreenSpaceRenderables(asset, { spec })
+11 -11
View File
@@ -6,17 +6,17 @@ local transforms = asset.require("scene/solarsystem/sun/transforms")
local Spout = {
Identifier = "Spouty",
Parent = transforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderablePlaneSpout",
Size = 3.0E11,
Origin = "Center",
Billboard = true
},
GUI = {
Path = "/Examples"
}
Identifier = "Spouty",
Parent = transforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderablePlaneSpout",
Size = 3.0E11,
Origin = "Center",
Billboard = true
},
GUI = {
Path = "/Examples"
}
}
+27 -28
View File
@@ -2,42 +2,41 @@ local helper = asset.require('util/slide_deck_helper')
local deck = nil
asset.onInitialize(function ()
deck = helper.createDeck("example", {
UseRadiusAzimuthElevation = true,
RadiusAzimuthElevation = {1.0, 0.0, 0.0}, -- use for dome
UsePerspectiveProjection = true,
FaceCamera = true,
Scale = 0.7
})
deck = helper.createDeck("example", {
UseRadiusAzimuthElevation = true,
RadiusAzimuthElevation = {1.0, 0.0, 0.0}, -- use for dome
UsePerspectiveProjection = true,
FaceCamera = true,
Scale = 0.7
})
helper.addSlide(deck, "${DATA}/test2.jpg")
helper.addSlide(deck, "${DATA}/test3.jpg")
helper.addSlide(deck, "${DATA}/test2.jpg")
helper.addSlide(deck, "${DATA}/test3.jpg")
local interpolationDuration = 0.5
local interpolationDuration = 0.5
function nextSlide()
helper.goToNextSlide(deck, interpolationDuration)
end
function nextSlide()
helper.goToNextSlide(deck, interpolationDuration)
end
function previousSlide()
helper.goToPreviousSlide(deck, interpolationDuration)
end
function previousSlide()
helper.goToPreviousSlide(deck, interpolationDuration)
end
function toggleSlides()
helper.toggleSlides(deck, interpolationDuration)
end
helper.setCurrentSlide(deck, 1)
openspace.bindKey("KP_6", "nextSlide()", "Next slide", "Next slide", "/Slides")
openspace.bindKey("KP_4", "previousSlide()", "Previous slide", "Previous slide", "/Slides")
openspace.bindKey("KP_0", "toggleSlides()", "Toggle slides", "Toggle slides", "/Slides")
function toggleSlides()
helper.toggleSlides(deck, interpolationDuration)
end
helper.setCurrentSlide(deck, 1)
openspace.bindKey("KP_6", "nextSlide()", "Next slide", "Next slide", "/Slides")
openspace.bindKey("KP_4", "previousSlide()", "Previous slide", "Previous slide", "/Slides")
openspace.bindKey("KP_0", "toggleSlides()", "Toggle slides", "Toggle slides", "/Slides")
end)
asset.onDeinitialize(function()
openspace.clearKey("KP_6")
openspace.clearKey("KP_4")
openspace.clearKey("KP_0")
helper.removeDeck(deck)
openspace.clearKey("KP_6")
openspace.clearKey("KP_4")
openspace.clearKey("KP_0")
helper.removeDeck(deck)
end)
+27 -28
View File
@@ -2,33 +2,32 @@ local assetHelper = asset.require('util/asset_helper')
local i = 1
for z=1,3 do
for y=1,3 do
for x=1,3 do
local sphere = {
Identifier = "ExampleSphere" .. i,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = {x, y, z}
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = true,
Size = 0.20 + i * 0.01,
Segments = 80,
Opacity = 1,
Texture = "${DATA}/test2.jpg",
Orientation = "Both",
},
GUI = {
Name = "Test Sphere " .. i,
Path = "/Other/Spheres"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { sphere })
i = i + 1
end
for y=1,3 do
for x=1,3 do
local sphere = {
Identifier = "ExampleSphere" .. i,
Transform = {
Translation = {
Type = "StaticTranslation",
Position = {x, y, z}
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = true,
Size = 0.20 + i * 0.01,
Segments = 80,
Opacity = 1,
Texture = openspace.absPath("${DATA}/test2.jpg"),
Orientation = "Both",
},
GUI = {
Name = "Test Sphere " .. i,
Path = "/Other/Spheres"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { sphere })
i = i + 1
end
end
end
+28 -29
View File
@@ -1,48 +1,47 @@
local stateMachineHelper = asset.require('util/state_machine_helper')
states = {
{
Title = "Highlight EarthTrail",
Play = function ()
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 10, 1)
end,
Rewind = function ()
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 2, 1)
end
},
{
Title = "Highlight MarsTrail",
Play = function ()
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 2, 1)
openspace.setPropertyValue("Scene.MarsTrail.Renderable.LineWidth", 10, 1)
end,
Rewind = function ()
openspace.setPropertyValue("Scene.MarsTrail.Renderable.LineWidth", 2, 1)
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 10, 1)
end
}
{
Title = "Highlight EarthTrail",
Play = function ()
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 10, 1)
end,
Rewind = function ()
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 2, 1)
end
},
{
Title = "Highlight MarsTrail",
Play = function ()
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 2, 1)
openspace.setPropertyValue("Scene.MarsTrail.Renderable.LineWidth", 10, 1)
end,
Rewind = function ()
openspace.setPropertyValue("Scene.MarsTrail.Renderable.LineWidth", 2, 1)
openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 10, 1)
end
}
}
local stateMachine
function next()
stateMachine.goToNextState()
stateMachine.goToNextState()
end
function previous()
stateMachine.goToPreviousState()
stateMachine.goToPreviousState()
end
asset.onInitialize(function ()
stateMachine = stateMachineHelper.createStateMachine(states)
openspace.bindKey('RIGHT', 'next()')
openspace.bindKey('LEFT', 'previous()')
stateMachine = stateMachineHelper.createStateMachine(states)
openspace.bindKey('RIGHT', 'next()')
openspace.bindKey('LEFT', 'previous()')
end)
asset.onDeinitialize(function ()
stateMachine = nil
openspace.clearKey('RIGHT')
openspace.clearKey('LEFT')
stateMachine = nil
openspace.clearKey('RIGHT')
openspace.clearKey('LEFT')
end)
+29 -29
View File
@@ -3,48 +3,48 @@
local assetHelper = asset.require("util/asset_helper")
asset.syncedResource({
Name = "Example Single",
Type = "UrlSynchronization",
Identifier = "example_single",
Url = "http://celestrak.com/NORAD/elements/geo.txt"
Name = "Example Single",
Type = "UrlSynchronization",
Identifier = "example_single",
Url = "http://celestrak.com/NORAD/elements/geo.txt"
})
asset.syncedResource({
Name = "Example Multiple",
Type = "UrlSynchronization",
Identifier = "example_multiple",
Url = {
"http://celestrak.com/NORAD/elements/stations.txt",
"http://celestrak.com/NORAD/elements/gps-ops.txt",
}
Name = "Example Multiple",
Type = "UrlSynchronization",
Identifier = "example_multiple",
Url = {
"http://celestrak.com/NORAD/elements/stations.txt",
"http://celestrak.com/NORAD/elements/gps-ops.txt",
}
})
asset.syncedResource({
Name = "Example Large",
Type = "UrlSynchronization",
Identifier = "example_large",
Url = "http://ipv4.download.thinkbroadband.com/100MB.zip",
Override = true
Name = "Example Large",
Type = "UrlSynchronization",
Identifier = "example_large",
Url = "http://ipv4.download.thinkbroadband.com/100MB.zip",
Override = true
})
asset.syncedResource({
Name = "Example Medium",
Type = "UrlSynchronization",
Identifier = "example_medium",
Url = "http://ipv4.download.thinkbroadband.com/5MB.zip",
Override = true
Name = "Example Medium",
Type = "UrlSynchronization",
Identifier = "example_medium",
Url = "http://ipv4.download.thinkbroadband.com/5MB.zip",
Override = true
})
asset.syncedResource({
Name = "Example No ident",
Type = "UrlSynchronization",
Url = "http://ipv4.download.thinkbroadband.com/5MB.zip"
Name = "Example No ident",
Type = "UrlSynchronization",
Url = "http://ipv4.download.thinkbroadband.com/5MB.zip"
})
asset.syncedResource({
Name = "Example No Hash",
Type = "UrlSynchronization",
Identifier = "no_hash",
Url = "http://wms.itn.liu.se/Mercury/Messenger_Mosaic/Messenger_Mosaic.wms",
UseHash = false
Name = "Example No Hash",
Type = "UrlSynchronization",
Identifier = "no_hash",
Url = "http://wms.itn.liu.se/Mercury/Messenger_Mosaic/Messenger_Mosaic.wms",
UseHash = false
})
+12 -12
View File
@@ -4,18 +4,18 @@ local assetHelper = asset.require("util/asset_helper")
local transforms = asset.require("scene/solarsystem/sun/transforms")
local ToyVolume = {
Identifier = "RenderableToyVolume",
Parent = transforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableToyVolume",
Size = { 5, 5, 5 },
ScalingExponent = 11,
StepSize = 0.01,
Color = { 1, 0, 0 }
},
GUI = {
Path = "/Examples"
}
Identifier = "RenderableToyVolume",
Parent = transforms.SolarSystemBarycenter.Identifier,
Renderable = {
Type = "RenderableToyVolume",
Size = { 5, 5, 5 },
ScalingExponent = 11,
StepSize = 0.01,
Color = { 1, 0, 0 }
},
GUI = {
Path = "/Examples"
}
}
local objects = { ToyVolume }
+7 -7
View File
@@ -4,18 +4,18 @@ local bookmarkHelper = asset.require('util/generate_bookmarks')
local dataProvider = 'http://data.openspaceproject.com/files/bookmarks/v1/bookmarks.csv'
local bookmarksCSV = asset.syncedResource({
Identifier = 'openspace_bookmarks',
Name = 'OpenSpace Bookmarks',
Type = 'UrlSynchronization',
UseHash = false,
Override = true,
Url = dataProvider
Identifier = 'openspace_bookmarks',
Name = 'OpenSpace Bookmarks',
Type = 'UrlSynchronization',
UseHash = false,
Override = true,
Url = dataProvider
})
local nodes = {}
asset.onInitialize(function ()
nodes = bookmarkHelper.getBookmarks('OpenSpace Bookmarks', bookmarksCSV .. '/bookmarks.csv.txt')
nodes = bookmarkHelper.getBookmarks('OpenSpace Bookmarks', bookmarksCSV .. '/bookmarks.csv')
for _, n in ipairs(nodes) do
openspace.addSceneGraphNode(n);
end
+36 -36
View File
@@ -3,46 +3,46 @@
local assetHelper = asset.require("util/asset_helper")
asset.syncedResource({
Type = "UrlSynchronization",
Name = "Icons",
Identifier = "planet_icons",
Url = {
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/earth.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/moon.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/jupiter.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/mars.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/mercury.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/neptune.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/saturn.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/uranus.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/venus.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/callisto.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/europa.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/ganymede.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/io.png",
},
UseHash = false
Type = "UrlSynchronization",
Name = "Icons",
Identifier = "planet_icons",
Url = {
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/earth.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/moon.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/jupiter.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/mars.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/mercury.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/neptune.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/saturn.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/uranus.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/venus.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/callisto.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/europa.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/ganymede.png",
"http://data.openspaceproject.com/files/webgui/assets/icons/solarsystem/io.png",
},
UseHash = false
})
asset.syncedResource({
Type = "UrlSynchronization",
Name = "Stories",
Identifier = "story_images",
Url = {
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_solarsystem.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_jupitermoons.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_earthweather.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_mars.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_galaxies.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_example.png",
},
UseHash = false
Type = "UrlSynchronization",
Name = "Stories",
Identifier = "story_images",
Url = {
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_solarsystem.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_jupitermoons.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_earthweather.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_mars.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_galaxies.png",
"http://data.openspaceproject.com/files/webgui/assets/images/stories/story_example.png",
},
UseHash = false
})
asset.syncedResource({
Type = "UrlSynchronization",
Name = "Instructions",
Identifier = "images",
Url = "http://data.openspaceproject.com/files/webgui/assets/images/instructions.png",
UseHash = false
Type = "UrlSynchronization",
Name = "Instructions",
Identifier = "images",
Url = "http://data.openspaceproject.com/files/webgui/assets/images/instructions.png",
UseHash = false
})
+48 -49
View File
@@ -3,54 +3,53 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "2dF Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_2dF_textures",
Version = 2
Name = "2dF Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_2dF_textures",
Version = 2
})
local speck = asset.syncedResource({
Name = "2dF Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_2dF_speck",
Version = 2
Name = "2dF Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_2dF_speck",
Version = 2
})
local object = {
Identifier = "2dF",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 1.0,
File = speck .. "/2dF.speck",
Texture = textures .. "/point3A.png",
ColorMap = speck .. "/2dF.cmap",
ColorOption = { "redshift", "proximity" },
ColorRange = { { 0.0, 0.075 }, { 1.0, 25.0 } },
Unit = "Mpc",
ScaleFactor = 520.0,
BillboardMaxSize = 4.7,
EnablePixelSizeControl = true
},
GUI = {
Name = "2dF Galaxies",
Path = "/Universe/Galaxies",
Description = [[Census 229,293 galaxies. DU Version 1.7. <br>
The Two-degree Field (2dF) Survey was a project designed to map portions of the
extragalactic universe. The 2dF instrument was mounted on the 3.9-meter
(12.8-foot) Anglo-Australian Telescope (AAT), located 450 km (280 miles)
northwest of Sydney. The telescope has a two-degree field of view on the sky,
enabling large parts of the sky to be observed at one time. For each pointing of
the telescope, the instrument can acquire up to 400 spectra simultaneously via
optical fibers that feed into two spectrographs. Each spectrograph sees light
that is between 350 nm and 800 nm, spanning the visible spectrum. <br><br> The
2dF survey has three main components: the North Galactic Pole strip, the South
Galactic Pole strip, and the random fields that surround the South Galactic Pole
strip. The galaxy survey is composed of about 230,000 galaxies with brightness and
redshift measurements. (Description from URL) <br><br> Data Reference: 2dF Galaxy
Redshift Survey (2dFGRS Team, 1998-2003)]]
}
Identifier = "2dF",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 1.0,
File = speck .. "/2dF.speck",
Unit = "Mpc",
Texture = textures .. "/point3A.png",
ColorMap = speck .. "/2dF.cmap",
ColorOption = { "redshift", "proximity" },
ColorRange = { { 0.0, 0.075 }, { 1.0, 25.0 } },
ScaleFactor = 520.0,
BillboardMinMaxSize = { 0.0, 4.7 },
EnablePixelSizeControl = true
},
GUI = {
Name = "2dF Galaxies",
Path = "/Universe/Galaxies",
Description = [[Census 229,293 galaxies. DU Version 1.7. <br> The Two-degree Field
(2dF) Survey was a project designed to map portions of the extragalactic universe. The
2dF instrument was mounted on the 3.9-meter (12.8-foot) Anglo-Australian Telescope
(AAT), located 450 km (280 miles) northwest of Sydney. The telescope has a two-degree
field of view on the sky, enabling large parts of the sky to be observed at one time.
For each pointing of the telescope, the instrument can acquire up to 400 spectra
simultaneously via optical fibers that feed into two spectrographs. Each spectrograph
sees light that is between 350 nm and 800 nm, spanning the visible spectrum. <br><br>
The 2dF survey has three main components: the North Galactic Pole strip, the South
Galactic Pole strip, and the random fields that surround the South Galactic Pole
strip. The galaxy survey is composed of about 230,000 galaxies with brightness and
redshift measurements. (Description from URL) <br><br> Data Reference: 2dF Galaxy
Redshift Survey (2dFGRS Team, 1998-2003)]]
}
}
@@ -58,11 +57,11 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "2dF Galaxies",
Version = "2.0",
Description = [[Digital Universe asset for the The Two-degree Field (2dF) Survey.]],
Author = "Brian Abbott (AMNH), Eric Gawiser (Rutgers U)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"2dF"}
Name = "2dF Galaxies",
Version = "2.0",
Description = [[Digital Universe asset for the The Two-degree Field (2dF) Survey.]],
Author = "Brian Abbott (AMNH), Eric Gawiser (Rutgers U)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"2dF"}
}
+45 -45
View File
@@ -3,49 +3,49 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "2MASS Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_2mass_textures",
Version = 2
Name = "2MASS Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_2mass_textures",
Version = 2
})
local speck = asset.syncedResource({
Name = "2MASS Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_2mass_speck",
Version = 1
Name = "2MASS Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_2mass_speck",
Version = 1
})
local object = {
Identifier = "2MASS",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 0.4, 0.2 },
Opacity = 1.0,
File = speck .. "/2MASS.speck",
Texture = textures .. "/point3A.png",
ColorMap = speck .. "/lss.cmap",
ColorOption = { "redshift", "prox5Mpc" },
ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } },
Unit = "Mpc",
CorrectionSizeEndDistance = 20.6,
CorrectionSizeFactor = 15.0,
ScaleFactor = 510.78,
BillboardMaxSize = 11.15,
EnablePixelSizeControl = true
},
GUI = {
Name = "2MASS Galaxies",
Path = "/Universe/Galaxies",
Description = [[ The Two Micron All-Sky Survey (2MASS) is an infrared survey
of the sky published in 2003. Because it is looking in the infrared, and
this is a composite of the 2MASS point-source catalog, most of the light
from this survey is starlight. In visible light, clouds of gas and dust
obscure our view. However, in infrared, the longer wavelengths of light can
penetrate these clouds without being scattered, thereby revealing stars
that would normally be hidden to our eye. (Description from URL)]],
}
Identifier = "2MASS",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 0.4, 0.2 },
Opacity = 1.0,
File = speck .. "/2MASS.speck",
Unit = "Mpc",
Texture = textures .. "/point3A.png",
ColorMap = speck .. "/lss.cmap",
ColorOption = { "redshift", "prox5Mpc" },
ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } },
CorrectionSizeEndDistance = 20.6,
CorrectionSizeFactor = 15.0,
ScaleFactor = 510.78,
BillboardMinMaxSize = { 0.0, 11.15 },
EnablePixelSizeControl = true
},
GUI = {
Name = "2MASS Galaxies",
Path = "/Universe/Galaxies",
Description = [[ The Two Micron All-Sky Survey (2MASS) is an infrared survey of the
sky published in 2003. Because it is looking in the infrared, and this is a composite
of the 2MASS point-source catalog, most of the light from this survey is starlight. In
visible light, clouds of gas and dust obscure our view. However, in infrared, the
longer wavelengths of light can penetrate these clouds without being scattered,
thereby revealing stars that would normally be hidden to our eye.
(Description from URL)]]
}
}
@@ -53,12 +53,12 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "2MASS Galaxies",
Version = "1.0",
Description = [[ Digital Universe asset for the Two Micron All-Sky Survey (2MASS)
survey]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"2MASS"}
Name = "2MASS Galaxies",
Version = "1.0",
Description = [[ Digital Universe asset for the Two Micron All-Sky Survey (2MASS)
survey]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"2MASS"}
}
+46 -46
View File
@@ -3,51 +3,51 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "6dF Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_6dF_textures",
Version = 2
Name = "6dF Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_6dF_textures",
Version = 2
})
local speck = asset.syncedResource({
Name = "6dF Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_6dF_speck",
Version = 2
Name = "6dF Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_6dF_speck",
Version = 2
})
local object = {
Identifier = "6dF",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 0.0 },
Opacity = 1.0,
File = speck .. "/6dF.speck",
Texture = textures .. "/point3A.png",
ColorMap = speck .. "/6dF.cmap",
ColorOption = { "redshift", "proximity" },
ColorRange = { { 0.0, 0.075 }, { 1.0, 10.0 } },
Unit = "Mpc",
ScaleFactor = 534.0,
BillboardMaxSize = 9.0,
EnablePixelSizeControl = true,
},
GUI = {
Name = "6dF Galaxies",
Path = "/Universe/Galaxies",
Description = [[Census 109,569 galaxies. DU Version 1.4.<br> The Six-degree Field
(6dF) Galaxy Survey mapped nearly half the sky from the Anglo-Australian
Observatory. Unlike previous datasets, this one is not all-sky, meaning there
are patches of sky that are not covered. In this case, the entire northern
hemisphere has no coverage at all. This catalog overlaps with the Tully
dataset, and there is a noticeable difference in the quality of these
datasets. Tully is much tighter and the structure is more apparent, while the
6dF data are more spread out. This is because of local motions within galaxy
clusters have not been corrected in these data. (Description from URL)
<br><br> Data Reference: The 6dF Galaxy Survey Redshift Catalogue
(Jones+, 2009)]]
}
Identifier = "6dF",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 0.0 },
Opacity = 1.0,
File = speck .. "/6dF.speck",
Unit = "Mpc",
Texture = textures .. "/point3A.png",
ColorMap = speck .. "/6dF.cmap",
ColorOption = { "redshift", "proximity" },
ColorRange = { { 0.0, 0.075 }, { 1.0, 10.0 } },
ScaleFactor = 534.0,
BillboardMinMaxSize = { 0.0, 9.0 },
EnablePixelSizeControl = true
},
GUI = {
Name = "6dF Galaxies",
Path = "/Universe/Galaxies",
Description = [[Census 109,569 galaxies. DU Version 1.4.<br> The Six-degree Field
(6dF) Galaxy Survey mapped nearly half the sky from the Anglo-Australian
Observatory. Unlike previous datasets, this one is not all-sky, meaning there
are patches of sky that are not covered. In this case, the entire northern
hemisphere has no coverage at all. This catalog overlaps with the Tully
dataset, and there is a noticeable difference in the quality of these
datasets. Tully is much tighter and the structure is more apparent, while the
6dF data are more spread out. This is because of local motions within galaxy
clusters have not been corrected in these data. (Description from URL)
<br><br> Data Reference: The 6dF Galaxy Survey Redshift Catalogue
(Jones+, 2009)]]
}
}
@@ -55,11 +55,11 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "6dF Galaxies",
Version = "2.0",
Description = [[Digital Universe asset for The Six-degree Field (6dF) Galaxy Survey]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"6dF"}
Name = "6dF Galaxies",
Version = "2.0",
Description = [[Digital Universe asset for The Six-degree Field (6dF) Galaxy Survey]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"6dF"}
}
+54 -54
View File
@@ -3,60 +3,60 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Abell Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_abell_textures",
Version = 2
Name = "Abell Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_abell_textures",
Version = 2
})
local speck = asset.syncedResource({
Name = "Abell Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_abell_speck",
Version = 2
Name = "Abell Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_abell_speck",
Version = 2
})
local object = {
Identifier = "Abell",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 0.4, 0.2 },
Opacity = 1.0,
--ColorMap = speck .. "/abell.cmap",
File = speck .. "/abell.speck",
Texture = textures .. "/point3A.png",
LabelFile = speck .. "/abell.label",
TextColor = { 0.0, 0.8, 0.0 },
TextSize = 22,
TextMinSize = 10.0,
Unit = "Mpc",
TransformationMatrix = {
-0.7357425748, 0.67726129641, 0.0, 0.0,
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
0.0, 0.0, 0.0, 1.0
},
ScaleFactor = 520.0,
BillboardMaxSize = 7.0,
EnablePixelSizeControl = true
Identifier = "Abell",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 0.4, 0.2 },
Opacity = 1.0,
--ColorMap = speck .. "/abell.cmap",
File = speck .. "/abell.speck",
Texture = textures .. "/point3A.png",
LabelFile = speck .. "/abell.label",
Unit = "Mpc",
TextColor = { 0.0, 0.8, 0.0 },
TextSize = 22,
TextMinMaxSize = { 10, 12 },
TransformationMatrix = {
-0.7357425748, 0.67726129641, 0.0, 0.0,
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
0.0, 0.0, 0.0, 1.0
},
GUI = {
Name = "Abell Galaxy Clusters",
Path = "/Universe/Galaxies",
Description = [[Census 2,246 galaxies. DU Version 1.4. <br> The Abell catalog
includes all the nearby, and not so nearby, galaxy clusters. The northern
hemisphere survey, published in 1958, was compiled by George Abell (19271983)
from the Palomar Sky Survey plates. A subsequent southern hemisphere catalog
was published posthumously in 1989. Further analysis by Brent Tully determined
their distance and three-dimensional distribution. Each point in this data set
represents a cluster of tens to hundreds (possibly even thousands) of
galaxies, similar to the Virgo or Fornax Clusters. You will notice some points
are assigned colors while most are gray. The data set also has an arbitrary
cut-off for completeness, resulting in the rectangular shape of the data set.
(Description from URL) <br><br> Data Reference: Abell Clusters of Rich
Galaxies, Brent Tully (U Hawaii), Stuart Levy (NCSA/UIUC)]],
}
ScaleFactor = 520.0,
BillboardMinMaxSize = { 0.0, 7.0 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Abell Galaxy Clusters",
Path = "/Universe/Galaxies",
Description = [[Census 2,246 galaxies. DU Version 1.4. <br> The Abell catalog
includes all the nearby, and not so nearby, galaxy clusters. The northern
hemisphere survey, published in 1958, was compiled by George Abell (19271983)
from the Palomar Sky Survey plates. A subsequent southern hemisphere catalog
was published posthumously in 1989. Further analysis by Brent Tully determined
their distance and three-dimensional distribution. Each point in this data set
represents a cluster of tens to hundreds (possibly even thousands) of
galaxies, similar to the Virgo or Fornax Clusters. You will notice some points
are assigned colors while most are gray. The data set also has an arbitrary
cut-off for completeness, resulting in the rectangular shape of the data set.
(Description from URL) <br><br> Data Reference: Abell Clusters of Rich
Galaxies, Brent Tully (U Hawaii), Stuart Levy (NCSA/UIUC)]],
}
}
@@ -64,11 +64,11 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Abell Galaxy Clusters",
Version = "2.0",
Description = [[Digital Universe asset for The Abell catalog]],
Author = "Stuart Levy (NCSA/UIUC), Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Abell"}
Name = "Abell Galaxy Clusters",
Version = "2.0",
Description = [[Digital Universe asset for The Abell catalog]],
Author = "Stuart Levy (NCSA/UIUC), Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Abell"}
}
@@ -3,48 +3,48 @@ local assetHelper = asset.require('util/asset_helper')
local speck = asset.syncedResource({
Name = "Alternate Star Labels Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_alternatestarlabels_speck",
Version = 1
Name = "Alternate Star Labels Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_alternatestarlabels_speck",
Version = 1
})
local object = {
Identifier = "StarLabelsAlternate",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
LabelFile = speck .. "/stars-altlbl.label",
TextColor = { 0.4, 0.4, 0.4 },
DrawLabels = true,
TextSize = 14.7,
TextMinSize = 6.0,
Unit = "pc"
},
GUI = {
Name = "Stars Labels - Alternate",
Path = "/Milky Way/Stars",
Description = [[Census 3,550 star names. DU Version 1.7. <br>The main star data
identify the accepted IAU star names for the brightest stars. However, astronomers
have long cataloged thousands of stars beyond the brightest ones we see. Several
attempts over thousands of years to name all the visible stars have led to two
main catalogs: Johann Bayer's Catalog from 1603 and John Flamsteed's Catalog
published in 1725. (Description from URL) <br><br> Data Reference: Various
sources]],
}
Identifier = "StarLabelsAlternate",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
LabelFile = speck .. "/stars-altlbl.label",
Unit = "pc",
TextColor = { 0.4, 0.4, 0.4 },
DrawLabels = true,
TextSize = 14.7,
TextMinMaxSize = { 6, 20 }
},
GUI = {
Name = "Stars Labels - Alternate",
Path = "/Milky Way/Stars",
Description = [[Census 3,550 star names. DU Version 1.7. <br>The main star data
identify the accepted IAU star names for the brightest stars. However, astronomers
have long cataloged thousands of stars beyond the brightest ones we see. Several
attempts over thousands of years to name all the visible stars have led to two
main catalogs: Johann Bayer's Catalog from 1603 and John Flamsteed's Catalog
published in 1725. (Description from URL) <br><br> Data Reference: Various
sources]],
}
}
asset.meta = {
Name = "Stars Labels - Alternate",
Version = "1.0",
Description = [[Digital Universe asset for alternate start labels]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"StarLabelsAlternate"}
Name = "Stars Labels - Alternate",
Version = "1.0",
Description = [[Digital Universe asset for alternate start labels]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"StarLabelsAlternate"}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
@@ -2,134 +2,134 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.require('./backgroundradiation_textures').textures
local speck = asset.syncedResource({
Name = "Background Radiation Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_backgroundradiation_speck",
Version = 1
Name = "Background Radiation Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_backgroundradiation_speck",
Version = 1
})
local wmap = {
Identifier = "WMAP",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.5,
Texture = textures .. "/wmap_ilc_7yr_v4_200uK_RGB_sos.png",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Wilkinson Microwave Anisotropy Probe (WMAP)",
Path = "/Universe/Cosmic Microwave Background"
Identifier = "WMAP",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.5,
Texture = textures .. "/wmap_ilc_7yr_v4_200uK_RGB_sos.png",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Wilkinson Microwave Anisotropy Probe (WMAP)",
Path = "/Universe/Cosmic Microwave Background"
}
}
local cbe = {
Identifier = "CBE",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.5,
Texture = textures .. "/COBErect.png",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Cosmic Background Explorer",
Path = "/Universe/Cosmic Microwave Background"
Identifier = "CBE",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.5,
Texture = textures .. "/COBErect.png",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Cosmic Background Explorer",
Path = "/Universe/Cosmic Microwave Background"
}
}
local planck = {
Identifier = "Planck",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = true,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck",
Path = "/Universe/Cosmic Microwave Background"
Identifier = "Planck",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = true,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck",
Path = "/Universe/Cosmic Microwave Background"
}
}
local Halpha = {
Identifier = "HAlpha",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = {0, 0, 3.14159265359}
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 9.2E21,
Segments = 40,
Opacity = 0.4,
Texture = textures .. "/mwHalpha-f.png",
Orientation = "Inside",
UseAdditiveBlending = true,
MirrorTexture = true,
FadeOutThreshold = 0.025,
Background = true
},
GUI = {
Name = "H Alpha",
Path = "/Milky Way/All Sky Images"
Identifier = "HAlpha",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = {0, 0, 3.14159265359}
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 9.2E21,
Segments = 40,
Opacity = 0.4,
Texture = textures .. "/mwHalpha-f.png",
Orientation = "Inside",
UseAdditiveBlending = true,
MirrorTexture = true,
FadeOutThreshold = 0.025,
Background = true
},
GUI = {
Name = "H Alpha",
Path = "/Milky Way/All Sky Images"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
wmap, cbe, planck, Halpha
wmap, cbe, planck, Halpha
})
asset.meta = {
Name = "Background Radiation",
Version = "2.0",
Description = [[Various AllSky images for the Milky Way and observable Universe.
Included: Wilkinson Microwave Anisotropy Probe (WMAP), Cosmic Background Explorer,
Planck, and H Alpha <br><br> Data Reference: Planck/ESA and the Planck
Collaboration, Wilkinson Microwave Anisotropy Probe/NASA, Doug
Finkbeiner (Princeton)]],
Author = "Brian Abbott (AMNH), OpenSpace Team",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"WMAP", "CBE", "Planck", "HAlpha"}
Name = "Background Radiation",
Version = "2.0",
Description = [[Various AllSky images for the Milky Way and observable Universe.
Included: Wilkinson Microwave Anisotropy Probe (WMAP), Cosmic Background Explorer,
Planck, and H Alpha <br><br> Data Reference: Planck/ESA and the Planck
Collaboration, Wilkinson Microwave Anisotropy Probe/NASA, Doug
Finkbeiner (Princeton)]],
Author = "Brian Abbott (AMNH), OpenSpace Team",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"WMAP", "CBE", "Planck", "HAlpha"}
}
@@ -2,140 +2,140 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.require('./backgroundradiation_textures').textures
local multiverse_planck_1 = {
Identifier = "PlanckMultiverse1",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 0.0, 2000E23}
},
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
Identifier = "PlanckMultiverse1",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 0.0, 2000E23}
},
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"
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 }
}
Identifier = "PlanckMultiverse2",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 2500E23, 0.0, 2000E23}
},
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"
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 }
}
Identifier = "PlanckMultiverse3",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 2500E23, 5000E23, 2000E23}
},
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"
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 }
}
Identifier = "PlanckMultiverse4",
Transform = {
Translation = {
Type = "StaticTranslation",
Position = { 0.0, 10000E23, 0.0 }
},
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"
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
Renderable = {
Type = "RenderableSphere",
Enabled = false,
Size = 3975.41417036064E23,
Segments = 80,
Opacity = 0.3,
Texture = textures .. "/cmb4k.jpg",
Orientation = "Both",
MirrorTexture = true,
UseAdditiveBlending = true,
FadeInThreshold = 0.4
},
GUI = {
Name = "Planck Multiverse 4",
Path = "/Universe/Cosmic Microwave Background"
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
multiverse_planck_1, multiverse_planck_2, multiverse_planck_3, multiverse_planck_4
multiverse_planck_1, multiverse_planck_2, multiverse_planck_3, multiverse_planck_4
})
asset.meta = {
Name = "Multiverse Background Radiation",
Version = "2.0",
Description = [[ Non-physical representation of the location of hypothetical
cosmic microwave background radiation images how they would be observed from other
locations in the universe. <br> This is not a measured dataset!]],
Author = "Brian Abbott (AMNH), OpenSpace Team",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = { "PlanckMultiverse1", "PlanckMultiverse2",
"PlanckMultiverse3", "PlanckMultiverse4" }
Name = "Multiverse Background Radiation",
Version = "2.0",
Description = [[ Non-physical representation of the location of hypothetical
cosmic microwave background radiation images how they would be observed from other
locations in the universe. <br> This is not a measured dataset!]],
Author = "Brian Abbott (AMNH), OpenSpace Team",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = { "PlanckMultiverse1", "PlanckMultiverse2",
"PlanckMultiverse3", "PlanckMultiverse4" }
}
@@ -1,8 +1,8 @@
local textures = asset.syncedResource({
Name = "Background Radiation Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_backgroundradiation_textures",
Version = 2
Name = "Background Radiation Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_backgroundradiation_textures",
Version = 2
})
asset.export('textures', textures)
@@ -3,52 +3,52 @@ local assetHelper = asset.require('util/asset_helper')
local speck = asset.syncedResource({
Name = "Clusters Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_clusters_speck",
Version = 2
Name = "Clusters Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_clusters_speck",
Version = 2
})
local object = {
Identifier = "GalaxyClusterLabels",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
LabelFile = speck .. "/galclust.label",
TextColor = { 1.0, 0.44, 0.0 },
DrawLabels = true,
TextSize = 22,
TextMinSize = 8.0,
Unit = "Mpc",
TransformationMatrix = {
-0.7357425748, 0.67726129641, 0.0, 0.0,
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
0.0, 0.0, 0.0, 1.0
},
Identifier = "GalaxyClusterLabels",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
LabelFile = speck .. "/galclust.label",
Unit = "Mpc",
TextColor = { 1.0, 0.44, 0.0 },
DrawLabels = true,
TextSize = 22,
TextMinMaxSize = { 8, 20 },
TransformationMatrix = {
-0.7357425748, 0.67726129641, 0.0, 0.0,
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
0.0, 0.0, 0.0, 1.0
},
GUI = {
Name = "Galaxy Cluster Labels",
Path = "/Universe/Galaxies",
Description = [[Census 15 galaxy cluster labels. DU Version 1.2. <br>The Galaxy
clusters dataset is a series of labels that mark where the large clusters of
galaxies are in the nearby universe. These labels must be used in conjunction
with the Tully galaxy group.(Description from URL) <br><br> Data Reference:
Brian Abbott (AMNH)]],
}
},
GUI = {
Name = "Galaxy Cluster Labels",
Path = "/Universe/Galaxies",
Description = [[Census 15 galaxy cluster labels. DU Version 1.2. <br>The Galaxy
clusters dataset is a series of labels that mark where the large clusters of
galaxies are in the nearby universe. These labels must be used in conjunction
with the Tully galaxy group.(Description from URL) <br><br> Data Reference:
Brian Abbott (AMNH)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Galaxy Clusters Labels",
Version = "1.0",
Description = [[Digital Universe asset for Galaxy Clusters]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"GalaxyClusterLabels"}
Name = "Galaxy Clusters Labels",
Version = "1.0",
Description = [[Digital Universe asset for Galaxy Clusters]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"GalaxyClusterLabels"}
}
@@ -3,55 +3,55 @@ local assetHelper = asset.require('util/asset_helper')
local data = asset.syncedResource({
Name = "Constellation Bounds Data",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_constellationbounds_data",
Version = 1
Name = "Constellation Bounds Data",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_constellationbounds_data",
Version = 1
})
local zodiacs = {
"Cancer", "Taurus", "Pisces", "Aries", "Libra", "Aquarius", "Capricornus", "Scorpius",
"Virgo", "Sagittarius", "Gemini", "Leo"
"Cancer", "Taurus", "Pisces", "Aries", "Libra", "Aquarius", "Capricornus", "Scorpius",
"Virgo", "Sagittarius", "Gemini", "Leo"
}
local object = {
Identifier = "ConstellationBounds",
Renderable = {
Type = "RenderableConstellationBounds",
Enabled = false,
File = data .. "/bound_20.dat",
ConstellationFile = data .. "/constellations.dat"
-- ConstellationSelection = zodiacs
Identifier = "ConstellationBounds",
Renderable = {
Type = "RenderableConstellationBounds",
Enabled = false,
File = data .. "/bound_20.dat",
ConstellationFile = data .. "/constellations.dat"
-- ConstellationSelection = zodiacs
},
Transform = {
Rotation = {
Type = "SpiceRotation",
SourceFrame = "J2000",
DestinationFrame = "GALACTIC"
},
Transform = {
Rotation = {
Type = "SpiceRotation",
SourceFrame = "J2000",
DestinationFrame = "GALACTIC"
},
Scale = {
Type = "StaticScale",
Scale = 10e17
}
},
GUI = {
Name = "Constellation Bounds",
Path = "/Milky Way/Constellations",
Description = [[A Spherical mesh dividing the sky into regions that fit the
constellations.]],
Scale = {
Type = "StaticScale",
Scale = 10e17
}
},
GUI = {
Name = "Constellation Bounds",
Path = "/Milky Way/Constellations",
Description = [[A Spherical mesh dividing the sky into regions that fit the
constellations.]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Constellation Bounds",
Version = "1.0",
Description = [[DU asset providing a Spherical mesh dividing the sky into regions that
fit the constellations.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"ConstellationBounds"}
Name = "Constellation Bounds",
Version = "1.0",
Description = [[DU asset providing a Spherical mesh dividing the sky into regions that
fit the constellations.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"ConstellationBounds"}
}
@@ -3,74 +3,72 @@ local assetHelper = asset.require('util/asset_helper')
local speck = asset.syncedResource({
Name = "Constellation Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_constellations_speck",
Version = 2
Name = "Constellation Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_constellations_speck",
Version = 2
})
local constellationsExtragalactic = {
Identifier = "ConstellationsExtragalactic",
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 0.4,
File = speck .. "/constellationsEXGAL.speck",
LabelFile = speck .. "/constellationsEXGAL.label",
TextColor = { 0.8, 0.8, 0.8 },
TextOpacity = 0.4,
TextSize = 20.0,
TextMinSize = 20.0,
TextMaxSize = 30.0,
MeshColor = { { 0.6, 0.4, 0.4 }, { 0.8, 0.0, 0.0 }, { 0.0, 0.3, 0.8 } },
Unit = "Mpc"
},
GUI = {
Name = "Constellations (Extragalactic)",
Path = "/Milky Way/Constellations"
}
Identifier = "ConstellationsExtragalactic",
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 0.4,
File = speck .. "/constellationsEXGAL.speck",
LabelFile = speck .. "/constellationsEXGAL.label",
TextColor = { 0.8, 0.8, 0.8 },
TextOpacity = 0.4,
TextSize = 20.0,
TextMinMaxSize = { 20, 30 },
MeshColor = { { 0.6, 0.4, 0.4 }, { 0.8, 0.0, 0.0 }, { 0.0, 0.3, 0.8 } },
Unit = "Mpc"
},
GUI = {
Name = "Constellations (Extragalactic)",
Path = "/Milky Way/Constellations"
}
}
local constellations = {
Identifier = "Constellations",
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 0.3,
File = speck .. "/constellations.speck",
LabelFile = speck .. "/constellations.label",
TextColor = { 0.8, 0.8, 0.8 },
TextOpacity = 0.3,
TextSize = 14.5,
TextMaxSize = 170.0,
TextMinSize = 8.0,
MeshColor = { { 0.6, 0.4, 0.4 }, { 0.8, 0.0, 0.0 }, { 0.0, 0.3, 0.8 } },
Unit = "pc"
},
GUI = {
Name = "Constellations",
Path = "/Milky Way/Constellations",
Description = [[Census 88 constellations and labels. DU Version 2.3. <br> These
modern constellations are largely based on those of the Babylonians and
Greeks; however, most cultures have their own figures and stories of the sky.
More than half the official constellations adopted by scientists in 1930 were
known to the ancients over 2,000 years ago. Each star falls into one of these
88 regions. Of course, today we know the stars in any given constellation do
not necessarily have any physical relationship with one another. One star may
be nearby, while an adjacent star in the sky may be far away.(Description
from URL) <br><br> Data Reference: various]],
}
Identifier = "Constellations",
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 0.3,
File = speck .. "/constellations.speck",
LabelFile = speck .. "/constellations.label",
TextColor = { 0.8, 0.8, 0.8 },
TextOpacity = 0.3,
TextSize = 14.5,
TextMinMaxSize = { 8, 170 },
MeshColor = { { 0.6, 0.4, 0.4 }, { 0.8, 0.0, 0.0 }, { 0.0, 0.3, 0.8 } },
Unit = "pc"
},
GUI = {
Name = "Constellations",
Path = "/Milky Way/Constellations",
Description = [[Census 88 constellations and labels. DU Version 2.3. <br> These
modern constellations are largely based on those of the Babylonians and
Greeks; however, most cultures have their own figures and stories of the sky.
More than half the official constellations adopted by scientists in 1930 were
known to the ancients over 2,000 years ago. Each star falls into one of these
88 regions. Of course, today we know the stars in any given constellation do
not necessarily have any physical relationship with one another. One star may
be nearby, while an adjacent star in the sky may be far away.(Description
from URL) <br><br> Data Reference: various]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { constellationsExtragalactic, constellations })
asset.meta = {
Name = "Constellations",
Version = "1.0",
Description = [[Digital Universe asset for constellation lines]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Constellations", "ConstellationsExtragalactic"}
Name = "Constellations",
Version = "1.0",
Description = [[Digital Universe asset for constellation lines]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Constellations", "ConstellationsExtragalactic"}
}
+85 -89
View File
@@ -1,110 +1,106 @@
local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Deep Sky Objects Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_deepsky_textures",
Version = 1
Name = "Deep Sky Objects Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_deepsky_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "Deep Sky Objects Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_deepsky_speck",
Version = 1
Name = "Deep Sky Objects Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_deepsky_speck",
Version = 1
})
local deepSkyPoints = {
Identifier = "DeepSkyObjects",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 0.0 },
Opacity = 0.99,
ScaleFactor = 500.0,
File = speck .. "/dso.speck",
Texture = textures .. "/point3.png",
--ColorMap = speck .. "/tully.cmap",
--ColorMap = speck .. "/lss.cmap",
--ColorOption = { "proximity" },
--ColorOption = { "prox5Mpc" },
--ColorRange = { { 1.0, 30.0 } },
LabelFile = speck .. "/dso.label",
TextColor = { 0.1, 0.4, 0.6 },
TextSize = 20.50,
TextMinSize = 16.0,
Unit = "pc",
-- Fade in value in the same unit as "Unit"
--FadeInDistances = { 0.05, 1.0 },
-- Max size in pixels
BillboardMaxSize = 8.22,
BillboardMinSize = 0.0,
--CorrectionSizeEndDistance = 22.0,
--CorrectionSizeFactor = 10.45
EnablePixelSizeControl = true
},
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
GUI = {
Name = "Deep Sky Objects Points",
Path = "/Universe/Galaxies",
Description = [[Point cloud and labels for Deep Sky Objects]]
Identifier = "DeepSkyObjects",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 0.0 },
Opacity = 0.99,
ScaleFactor = 500.0,
File = speck .. "/dso.speck",
Texture = textures .. "/point3.png",
--ColorMap = speck .. "/tully.cmap",
--ColorMap = speck .. "/lss.cmap",
--ColorOption = { "proximity" },
--ColorOption = { "prox5Mpc" },
--ColorRange = { { 1.0, 30.0 } },
LabelFile = speck .. "/dso.label",
Unit = "pc",
TextColor = { 0.1, 0.4, 0.6 },
TextSize = 20.50,
TextMinMaxSize = { 16, 20 },
--FadeInDistances = { 0.05, 1.0 }, -- Fade in value in the same unit as "Unit"
BillboardMinMaxSize = { 0.0, 8.22 }, -- in pixels
--CorrectionSizeEndDistance = 22.0,
--CorrectionSizeFactor = 10.45
EnablePixelSizeControl = true
},
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = { 0, 0, 3.14159265359 }
}
},
GUI = {
Name = "Deep Sky Objects Points",
Path = "/Universe/Galaxies",
Description = [[Point cloud and labels for Deep Sky Objects]]
}
}
local deepSkyImages = {
Identifier = "DeepSkyObjectsImages",
Renderable = {
Type = "RenderablePlanesCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.99,
ScaleFactor = 1.0,
File = speck .. "/dso.speck",
TexturePath = textures,
Luminosity = "radius",
ScaleLuminosity = 0.001,
Unit = "pc",
-- Fade in value in the same unit as "Unit"
--FadeInDistances = {0.001, 0.05010},
PlaneMinSize = 5.0
},
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = {3.14159265359, 3.14159265359, 0 }
}
},
GUI = {
Name = "Deep Sky Objects Images",
Path = "/Universe/Galaxies",
Description = [[Census: 63 images and labels. DU Version 1.3. <br> These data are
2-D images of Messier objects placed in 3-D space. Not only do we place these
images at the proper location and give them the correct orientation, we also
size them accurately so that you can fly to the globular cluster M13, for
example, and see just how small the cluster of hundreds of thousands of stars
is relative to the rest of the Galaxy. Included Messier Objects by number are:
6, 7, 11, 16, 18, 21, 23-26, 29, 34-39, 41, 46-48, 50, 52, 67, 93, 103, 2-5,
9, 10, 12-15, 19, 22, 28, 30, 53-56, 68-72, 75, 79, 80, 92, 107, 27, 57, 76,
97, 8, 17, 20, 78, 1 (Description from URL) <br><br> Data Reference: Largely
NOAO and various other sources (each image has a ref)]],
Identifier = "DeepSkyObjectsImages",
Renderable = {
Type = "RenderablePlanesCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.99,
ScaleFactor = 1.0,
File = speck .. "/dso.speck",
TexturePath = textures,
Luminosity = "radius",
ScaleLuminosity = 0.001,
Unit = "pc",
-- Fade in value in the same unit as "Unit"
--FadeInDistances = {0.001, 0.05010},
PlaneMinSize = 5.0
},
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = {3.14159265359, 3.14159265359, 0 }
}
},
GUI = {
Name = "Deep Sky Objects Images",
Path = "/Universe/Galaxies",
Description = [[Census: 63 images and labels. DU Version 1.3. <br> These data are
2-D images of Messier objects placed in 3-D space. Not only do we place these
images at the proper location and give them the correct orientation, we also
size them accurately so that you can fly to the globular cluster M13, for
example, and see just how small the cluster of hundreds of thousands of stars
is relative to the rest of the Galaxy. Included Messier Objects by number are:
6, 7, 11, 16, 18, 21, 23-26, 29, 34-39, 41, 46-48, 50, 52, 67, 93, 103, 2-5,
9, 10, 12-15, 19, 22, 28, 30, 53-56, 68-72, 75, 79, 80, 92, 107, 27, 57, 76,
97, 8, 17, 20, 78, 1 (Description from URL) <br><br> Data Reference: Largely
NOAO and various other sources (each image has a ref)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { deepSkyPoints, deepSkyImages })
asset.meta = {
Name = "Deep Sky Objects Images",
Version = "1.0",
Description = [[Digital Universe asset for Deep Sky Objects and their Images]],
Author = "Nate Greenstein, Matt Everhart, Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"DeepSkyObjects", "DeepSkyObjectsImages"}
Name = "Deep Sky Objects Images",
Version = "1.0",
Description = [[Digital Universe asset for Deep Sky Objects and their Images]],
Author = "Nate Greenstein, Matt Everhart, Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"DeepSkyObjects", "DeepSkyObjectsImages"}
}
+58 -58
View File
@@ -3,74 +3,74 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Brown Dwarf Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_dwarfs_textures",
Version = 1
Name = "Brown Dwarf Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_dwarfs_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "Brown Dwarf Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_dwarfs_speck",
Version = 2
Name = "Brown Dwarf Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_dwarfs_speck",
Version = 2
})
local object = {
Identifier = "Dwarfs",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.4, 0.0, 0.1 },
Opacity = 1.0,
File = speck .. "/dwarfs.speck",
Texture = textures .. "/point3.png",
LabelFile = speck .. "/dwarfs.label",
ColorMap = speck .. "/dwarfs.cmap",
ColorOption = { "typeindex" },
--ColorRange = { { 1.0, 4.0} },
TextColor = { 0.5, 0.1, 0.2 },
TextSize = 14.6,
TextMinSize = 10.0,
ScaleFactor = 372.1,
--CorrectionSizeEndDistance = 16.1,
--CorrectionSizeFactor = 7.75,
BillboardMaxSize = 20.0,
EnablePixelSizeControl = true,
Unit = "pc"
},
GUI = {
Name = "Brown Dwarfs",
Path = "/Milky Way",
Description = [[Census: 785 L dwarfs, 101 T dwarfs, 17 Y dwarfs. DU Version 6.4.
<br> In astronomy, there are dwarf stars-red, white, and brown-dwarf novae,
and even dwarf galaxies. As you might imagine, astronomers use the term dwarf
when they refer to the smaller objects in any given class. For decades it was
believed that M stars were the coolest stars in the Galaxy. Some M stars,
called red dwarfs, make up 70% of the stars in the Galaxy, including our
nearest known neighbor, Proxima Centauri. However, a new class of objects,
even cooler than M stars, was recently discovered and given a spectral type
of L. L-type objects straddle the boundary between red dwarfs and brown
dwarfs, the latter of which are not massive enough to ignite the nuclear
processes necessary for it to shine as a star. L-type objects are typically
very dim stars or brown dwarfs. Even cooler than L-type objects are T-type
objects. These are mostly brown dwarfs and resemble large, massive,
Jupiter-like objects, too large to be planets and typically too small to be
stars. Beyond the T dwarfs are the Y-type objects, which are even more
dim.(Description from URL) <br><br> Data Reference: The Brown Dwarf Kinematics
Project (Faherty+ 2019)]]
}
Identifier = "Dwarfs",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.4, 0.0, 0.1 },
Opacity = 1.0,
File = speck .. "/dwarfs.speck",
Texture = textures .. "/point3.png",
LabelFile = speck .. "/dwarfs.label",
Unit = "pc",
ColorMap = speck .. "/dwarfs.cmap",
ColorOption = { "typeindex" },
--ColorRange = { { 1.0, 4.0} },
TextColor = { 0.5, 0.1, 0.2 },
TextSize = 14.6,
TextMinMaxSize = { 10, 20 },
ScaleFactor = 372.1,
--CorrectionSizeEndDistance = 16.1,
--CorrectionSizeFactor = 7.75,
BillboardMinMaxSize = { 0.0, 20.0 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Brown Dwarfs",
Path = "/Milky Way",
Description = [[Census: 785 L dwarfs, 101 T dwarfs, 17 Y dwarfs. DU Version 6.4.
<br> In astronomy, there are dwarf stars-red, white, and brown-dwarf novae,
and even dwarf galaxies. As you might imagine, astronomers use the term dwarf
when they refer to the smaller objects in any given class. For decades it was
believed that M stars were the coolest stars in the Galaxy. Some M stars,
called red dwarfs, make up 70% of the stars in the Galaxy, including our
nearest known neighbor, Proxima Centauri. However, a new class of objects,
even cooler than M stars, was recently discovered and given a spectral type
of L. L-type objects straddle the boundary between red dwarfs and brown
dwarfs, the latter of which are not massive enough to ignite the nuclear
processes necessary for it to shine as a star. L-type objects are typically
very dim stars or brown dwarfs. Even cooler than L-type objects are T-type
objects. These are mostly brown dwarfs and resemble large, massive,
Jupiter-like objects, too large to be planets and typically too small to be
stars. Beyond the T dwarfs are the Y-type objects, which are even more
dim.(Description from URL) <br><br> Data Reference: The Brown Dwarf Kinematics
Project (Faherty+ 2019)]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Brown Dwarfs",
Version = "2.0",
Description = [[Digital Universe asset for Brown Dwarfs]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Dwarfs"}
Name = "Brown Dwarfs",
Version = "2.0",
Description = [[Digital Universe asset for Brown Dwarfs]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Dwarfs"}
}
@@ -3,63 +3,62 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Exoplanets Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_exoplanets_textures",
Version = 1
Name = "Exoplanets Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_exoplanets_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "Exoplanets Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_exoplanets_speck",
Version = 2
Name = "Exoplanets Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_exoplanets_speck",
Version = 2
})
local object = {
Identifier = "Exoplanets",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 1.0,
ScaleFactor = 10.0,
Texture = textures .. "/target-blue.png",
File = speck .. "/expl.speck",
LabelFile = speck .. "/expl.label",
ScaleFactor = 388.67923,
TextColor = { 0.3, 0.3, 0.8 },
TextSize = 14.8,
TextMaxSize = 200.0,
TextMinSize = 10.0,
CorrectionSizeEndDistance = 15.23,
CorrectionSizeFactor = 13.3,
Unit = "pc",
BillboardMaxSize = 75.0,
EnablePixelSizeControl = true,
},
GUI = {
Name = "Exoplanets",
Path = "/Milky Way/Exoplanets",
Description = [[Census: 4,055 planets in 3,023 systems. DU Version 20.11. <br>
Extrasolar planets, or exoplanets, are a relatively new phenomenon in
astronomy. While many astronomers believed in their existence, no
observational evidence was available until 1995. Since that time, scientists
have discovered thousands of systems consisting of one or more planets around
a host star.(Description from URL) <br><br> Data Reference: NASA Exoplanet
Archive (CalTech/NASA)]],
}
Identifier = "Exoplanets",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 1.0,
ScaleFactor = 10.0,
Texture = textures .. "/target-blue.png",
File = speck .. "/expl.speck",
LabelFile = speck .. "/expl.label",
Unit = "pc",
ScaleFactor = 388.67923,
TextColor = { 0.3, 0.3, 0.8 },
TextSize = 14.8,
TextMinMaxSize = { 10, 100 },
CorrectionSizeEndDistance = 15.23,
CorrectionSizeFactor = 13.3,
BillboardMinMaxSize = { 0.0, 75.0 },
EnablePixelSizeControl = true,
},
GUI = {
Name = "Exoplanets",
Path = "/Milky Way/Exoplanets",
Description = [[Census: 4,055 planets in 3,023 systems. DU Version 20.11. <br>
Extrasolar planets, or exoplanets, are a relatively new phenomenon in
astronomy. While many astronomers believed in their existence, no
observational evidence was available until 1995. Since that time, scientists
have discovered thousands of systems consisting of one or more planets around
a host star.(Description from URL) <br><br> Data Reference: NASA Exoplanet
Archive (CalTech/NASA)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Exoplanets",
Version = "1.0",
Description = [[Digital Universe asset for Exoplanets]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Exoplanets"}
Name = "Exoplanets",
Version = "1.0",
Description = [[Digital Universe asset for Exoplanets]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Exoplanets"}
}
@@ -3,77 +3,76 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Globular Clusters Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_globularclusters_textures",
Version = 1
Name = "Globular Clusters Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_globularclusters_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "Globular Clusters Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_globularclusters_speck",
Version = 2
Name = "Globular Clusters Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_globularclusters_speck",
Version = 2
})
local object = {
Identifier = "GlobularClusters",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.8, 0.8, 0.0 },
Opacity = 0.4,
File = speck .. "/gc.speck",
Texture = textures .. "/point4.png",
PolygonSides = 5,
LabelFile = speck .. "/gc.label",
TextColor = { 0.5, 0.5, 0.0 },
ScaleFactor = 431.0,
TextSize = 16.7,
TextMinSize = 4.0,
TextMaxSize = 20,
Unit = "pc",
BillboardMaxSize = 500,
EnablePixelSizeControl = true,
},
GUI = {
Name = "Globular Clusters",
Path = "/Milky Way",
Description = [[Census: 157 globular clusters. DU Version 2.6. <br>Globular star
clusters are gravitationally bound groups of 100,000 to 1 million stars. They
are compact, spherical “balls” of stars with very high stellar densities in
their centers (stars near their center are within a light year of one
another). These clusters are typically 30 to 100 light years in diameter. If
Earth were located inside one of these clusters, our sky would be lit by an
abundance of stars brighter than the Sun. The globular clusters form one of
the most complete data sets in the Atlas. Data for the clusters represent
almost all the clusters in our Galaxy—several on the opposite side of Galactic
center may be invisible to us. The clusters orbit the Milky Way in random
orientations, as comets orbit the Sun.(Description from URL) <br><br> Data
Reference: Properties of Galactic Globular Clusters, C. Francis+
(U Cambridge)]],
}
Identifier = "GlobularClusters",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.8, 0.8, 0.0 },
Opacity = 0.4,
File = speck .. "/gc.speck",
Texture = textures .. "/point4.png",
PolygonSides = 5,
LabelFile = speck .. "/gc.label",
Unit = "pc",
TextColor = { 0.5, 0.5, 0.0 },
ScaleFactor = 431.0,
TextSize = 16.7,
TextMinMaxSize = { 4, 20 },
BillboardMinMaxSize = { 0.0, 500.0 },
EnablePixelSizeControl = true,
},
GUI = {
Name = "Globular Clusters",
Path = "/Milky Way",
Description = [[Census: 157 globular clusters. DU Version 2.6. <br>Globular star
clusters are gravitationally bound groups of 100,000 to 1 million stars. They
are compact, spherical “balls” of stars with very high stellar densities in
their centers (stars near their center are within a light year of one
another). These clusters are typically 30 to 100 light years in diameter. If
Earth were located inside one of these clusters, our sky would be lit by an
abundance of stars brighter than the Sun. The globular clusters form one of
the most complete data sets in the Atlas. Data for the clusters represent
almost all the clusters in our Galaxy—several on the opposite side of Galactic
center may be invisible to us. The clusters orbit the Milky Way in random
orientations, as comets orbit the Sun.(Description from URL) <br><br> Data
Reference: Properties of Galactic Globular Clusters, C. Francis+
(U Cambridge)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Globular Clusters",
Version = "2.0",
Description = [[Census: 157 globular clusters. DU Version 2.6. Globular star clusters
are gravitationally bound groups of 100,000 to 1 million stars. They are compact,
spherical “balls” of stars with very high stellar densities in their centers (stars
near their center are within a light year of one another). These clusters are
typically 30 to 100 light years in diameter. If Earth were located inside one of these
clusters, our sky would be lit by an abundance of stars brighter than the Sun. The
globular clusters form one of the most complete data sets in the Atlas. Data for the
clusters represent almost all the clusters in our Galaxy—several on the opposite side
of Galactic center may be invisible to us. The clusters orbit the Milky Way in random
orientations, as comets orbit the Sun.(Description from URL) <br><br> Data Reference:
Properties of Galactic Globular Clusters, C. Francis+ (U Cambridge)]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"GlobularClusters"}
Name = "Globular Clusters",
Version = "2.0",
Description = [[Census: 157 globular clusters. DU Version 2.6. Globular star clusters
are gravitationally bound groups of 100,000 to 1 million stars. They are compact,
spherical “balls” of stars with very high stellar densities in their centers (stars
near their center are within a light year of one another). These clusters are
typically 30 to 100 light years in diameter. If Earth were located inside one of these
clusters, our sky would be lit by an abundance of stars brighter than the Sun. The
globular clusters form one of the most complete data sets in the Atlas. Data for the
clusters represent almost all the clusters in our Galaxy—several on the opposite side
of Galactic center may be invisible to us. The clusters orbit the Milky Way in random
orientations, as comets orbit the Sun.(Description from URL) <br><br> Data Reference:
Properties of Galactic Globular Clusters, C. Francis+ (U Cambridge)]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"GlobularClusters"}
}
File diff suppressed because it is too large Load Diff
+38 -38
View File
@@ -3,52 +3,52 @@ local assetHelper = asset.require('util/asset_helper')
local speck = asset.syncedResource({
Name = "Galaxy Groups Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_groups_speck",
Version = 1
Name = "Galaxy Groups Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_groups_speck",
Version = 1
})
local object = {
Identifier = "NearbyGalaxyGroups",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
--ScaleFactor = 10.0,
LabelFile = speck .. "/groups.label",
TextColor = { 0.1, 0.6, 0.2 },
TextSize = 21.5,
TextMinSize = 8.0,
Unit = "Mpc",
DrawLabels = true,
TransformationMatrix = {
-0.7357425748, 0.67726129641, 0.0, 0.0,
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
0.0, 0.0, 0.0, 1.0
},
},
GUI = {
Name = "Galaxy Group Labels",
Path = "/Universe/Galaxies",
Description = [[Census: 62 galaxy group labels. DU Version 1.2. <br> The Galaxy
Groups data are a set of labels that mark the nearby galaxy groups. The Milky Way
is in the Local Group, and we are surrounded by many other groups.(Description
from URL) <br><br> Data Reference: Brian Abbott (AMNH)]]
Identifier = "NearbyGalaxyGroups",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
--ScaleFactor = 10.0,
LabelFile = speck .. "/groups.label",
Unit = "Mpc",
TextColor = { 0.1, 0.6, 0.2 },
TextSize = 21.5,
TextMinMaxSize = { 8, 20 },
DrawLabels = true,
TransformationMatrix = {
-0.7357425748, 0.67726129641, 0.0, 0.0,
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
0.0, 0.0, 0.0, 1.0
}
},
GUI = {
Name = "Galaxy Group Labels",
Path = "/Universe/Galaxies",
Description = [[Census: 62 galaxy group labels. DU Version 1.2. <br> The Galaxy
Groups data are a set of labels that mark the nearby galaxy groups. The Milky Way
is in the Local Group, and we are surrounded by many other groups.(Description
from URL) <br><br> Data Reference: Brian Abbott (AMNH)]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Galaxy Group Labels",
Version = "1.0",
Author = "Brian Abbott (AMNH)",
Description = [[Digital Universe asset for Galaxy Groups]],
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"NearbyGalaxyGroups"}
Name = "Galaxy Group Labels",
Version = "1.0",
Author = "Brian Abbott (AMNH)",
Description = [[Digital Universe asset for Galaxy Groups]],
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"NearbyGalaxyGroups"}
}
@@ -3,65 +3,64 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "HII Regions Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_h2regions_textures",
Version = 1
Name = "HII Regions Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_h2regions_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "HII Regions Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_h2regions_speck",
Version = 3
Name = "HII Regions Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_h2regions_speck",
Version = 3
})
local object = {
Identifier = "HIIRegions",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.0, 0.5, 1.0 },
Opacity = 0.70,
File = speck .. "/h2.speck",
Texture = textures .."/point4.png",
PolygonSides = 6,
LabelFile = speck .. "/h2.label",
TextColor = { 0.5, 0.5, 0.5 },
ScaleFactor = 420,
TextSize = 16.24,
TextMinSize = 4.0,
TextMaxSize = 20.0,
Unit = "pc",
BillboardMaxSize = 300.0,
EnablePixelSizeControl = false
},
GUI = {
Name = "HII Regions",
Path = "/Milky Way",
Description = [[Census: 1,271 nebulae. DU Version 4.6. <br> H ii (pronounced
H-two) regions are stellar nurseries for newborn stars. Stars are born from
condensing clouds of hydrogen gas. As these clouds condense, the densities
become high enough to form stars. From Earth's perspective, you'll notice that
the H ii regions all lie close to the Galactic plane. This is not an accident
of nature. These star-forming regions lie in the plane of the Galaxy because
that is where star formation occurs in spiral galaxies such as our Milky Way.
Because of this, they are great tracers of the spiral arms of the Galaxy, and
were instrumental in our understanding of the Galaxy's overall structure
(Description from URL) <br><br> Data Reference: The WISE catalog of Galactic
HII Regions (Anderson+, 2014)]],
}
Identifier = "HIIRegions",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.0, 0.5, 1.0 },
Opacity = 0.70,
File = speck .. "/h2.speck",
Texture = textures .."/point4.png",
PolygonSides = 6,
LabelFile = speck .. "/h2.label",
Unit = "pc",
TextColor = { 0.5, 0.5, 0.5 },
ScaleFactor = 420,
TextSize = 16.24,
TextMinMaxSize = { 4, 20 },
BillboardMinMaxSize = { 0.0, 300.0 },
EnablePixelSizeControl = false
},
GUI = {
Name = "HII Regions",
Path = "/Milky Way",
Description = [[Census: 1,271 nebulae. DU Version 4.6. <br> H ii (pronounced
H-two) regions are stellar nurseries for newborn stars. Stars are born from
condensing clouds of hydrogen gas. As these clouds condense, the densities
become high enough to form stars. From Earth's perspective, you'll notice that
the H ii regions all lie close to the Galactic plane. This is not an accident
of nature. These star-forming regions lie in the plane of the Galaxy because
that is where star formation occurs in spiral galaxies such as our Milky Way.
Because of this, they are great tracers of the spiral arms of the Galaxy, and
were instrumental in our understanding of the Galaxy's overall structure
(Description from URL) <br><br> Data Reference: The WISE catalog of Galactic
HII Regions (Anderson+, 2014)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "HII Regions",
Version = "1.0",
Description = [[Digital Universe asset for HII Regions]],
Author = "Carter Emmart, Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"HIIRegions"}
Name = "HII Regions",
Version = "1.0",
Description = [[Digital Universe asset for HII Regions]],
Author = "Carter Emmart, Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"HIIRegions"}
}
@@ -0,0 +1,84 @@
local assetHelper = asset.require('util/asset_helper')
local circle = asset.require('util/circle').circle
local HUDFSpeck = asset.syncedResource({
Name = "HUDF Speck",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_hudf_speck",
Version = 1
})
local ColorMap = asset.syncedResource({
Name = "HUDF color map",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_hudf_textures",
Version = 1
})
local object = {
Identifier = "HubbleDeepField",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 1.0,
File = HUDFSpeck .. "/hudf.speck",
Texture = circle .. "/circle.png",
ColorMap = ColorMap .. "/hudf.cmap",
ColorOption = { "redshift", "proximity" },
ColorRange = { { 0.0, 0.075 }, { 1.0, 25.0 } },
Unit = "Mpc",
ScaleFactor = 505.0,
BillboardMaxSize = 4.7,
EnablePixelSizeControl = true
},
GUI = {
Name = "Hubble Deep Field",
Path = "/Universe/Galaxies",
Description = [[
Hubble Ultra Deep Field galaxy survey <br><br>
Data Reference: Hubble Ultra Deep Field 2012 program (Ellis+, Koekemoer+, 2013)
]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Hubble Ultra Deep Field",
Version = "1.1",
Description = "Hubble Ultra Deep Field galaxy survey",
Author = "Frank Summers (STScI), Brian Abbott (AMNH)",
Identifiers = {"HubbleDeepField"},
URL = "http://www.haydenplanetarium.org/universe",
License = [[
Copyright (c) American Museum of Natural History. All rights reserved.<br><br>
Downloading the Atlas:<br>
AMNH offers the Atlas free of charge via our website, http://www.haydenplanetarium.org/.
The User is free to download and/or duplicate verbatim copies of the Atlas provided this
license and copyright information accompany the Atlas.<br><br>
Modifying the Atlas:<br>
The user is free to modify the Atlas by either adding data or altering existing data,
provided it is for personal use only. Once the user modifies the Atlas, it is no longer
part of AMNH's Atlas and cannot be used publicly alongside or within the Atlas without
written permission from AMNH.<br><br>
Distributing the Atlas:<br>
The user is forbidden to distribute and use the Atlas for profit, as part of a software
and/or production system that will subsequently be redistributed, or for public consumption
(via print, electronic media, or broadcast/produced pieces) without written permission
from AMNH.<br><br>
Neither the names of American Museum of Natural History and Hayden Planetarium nor the names
of their contributors may be used to endorse or promote products derived from this Atlas
without specific, prior written permission.<br><br>
The Atlas is free but is offered WITHOUT ANY WARRANTY of any kind. We provide the Atlas as
is and take no responsibility for any damage resulting from the use of this Atlas. The entire
risk as to the quality and performance of this product is with the user.<br><br>
For more information, please visit http://www.haydenplanetarium.org/universe
]]
}
+40 -40
View File
@@ -10,53 +10,53 @@ local textures = asset.syncedResource({
})
local speck = asset.syncedResource({
Name = "Kepler Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_kepler_speck",
Version = 2
Name = "Kepler Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_kepler_speck",
Version = 3
})
local object = {
Identifier = "KeplerPlanetaryCandidates",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 0.0 },
Opacity = 0.99,
ScaleFactor = 410.0,
File = speck .. "/kepler.speck",
Texture = textures .. "/halo.png",
CorrectionSizeEndDistance = 15.86,
CorrectionSizeFactor = 8.59,
Unit = "pc",
BillboardMaxSize = 30.0,
EnablePixelSizeControl = true
},
GUI = {
Name = "Kepler Planetary Candidates",
Path = "/Milky Way/Exoplanets",
Description = [[Census: 3,254 stars. DU Version 9.3. <br> The exoplanet candidate
stars are likely hosts for exoplanets. These are stars plucked from NASA's Kepler
and TESS space telescopes. The Kepler mission was designed to stare at one spot,
roughly twelve degrees across, in the constellation Cygnus. By staring at one
spot, the spacecraft could monitor over 500,000 stars in that field for subtle
variations in brightness.The data included here are the stars that are considered
good candidates to host planets. Rather than represent them photo-realistically,
with accurate colors, we choose to visualize them as generic, pure yellow stars.
(Description from URL) <br><br> Data Reference: NASA Exoplanet Archive
(CalTech/NASA)]],
}
Identifier = "KeplerPlanetaryCandidates",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 0.0 },
Opacity = 0.99,
ScaleFactor = 410.0,
File = speck .. "/kepler.speck",
Unit = "pc",
Texture = textures .. "/halo.png",
CorrectionSizeEndDistance = 15.86,
CorrectionSizeFactor = 8.59,
BillboardMinMaxSize = { 0.0, 30.0 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Kepler Planetary Candidates",
Path = "/Milky Way/Exoplanets",
Description = [[Census: 3,254 stars. DU Version 9.3. <br> The exoplanet candidate
stars are likely hosts for exoplanets. These are stars plucked from NASA's Kepler
and TESS space telescopes. The Kepler mission was designed to stare at one spot,
roughly twelve degrees across, in the constellation Cygnus. By staring at one
spot, the spacecraft could monitor over 500,000 stars in that field for subtle
variations in brightness.The data included here are the stars that are considered
good candidates to host planets. Rather than represent them photo-realistically,
with accurate colors, we choose to visualize them as generic, pure yellow stars.
(Description from URL) <br><br> Data Reference: NASA Exoplanet Archive
(CalTech/NASA)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Kepler Planetary Candidates",
Version = "2.0",
Description = [[Digital Universe asset for Kepler Planetary Candidates]],
Author = "Brian Abbott, Emily Rice, and Jason No (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"KeplerPlanetaryCandidates"}
Name = "Kepler Planetary Candidates",
Version = "2.0",
Description = [[Digital Universe asset for Kepler Planetary Candidates]],
Author = "Brian Abbott, Emily Rice, and Jason No (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"KeplerPlanetaryCandidates"}
}
@@ -3,66 +3,66 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Local Dwarfs Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_localdwarfs_textures",
Version = 1
Name = "Local Dwarfs Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_localdwarfs_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "Local Dwarfs Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_localdwarfs_speck",
Version = 2
Name = "Local Dwarfs Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_localdwarfs_speck",
Version = 2
})
local object = {
Identifier = "LocalDwarfGalaxies",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.5, 1.0, 0.2 },
ColorMap = speck .. "/localgroup.cmap",
ColorOption = { "association" },
Opacity = 0.3,
File = speck .. "/localgroup.speck",
Texture = textures .. "/point4.png",
PolygonSides = 12,
LabelFile = speck .. "/localgroup.label",
TextColor = { 0.3, 0.3, 1.0 },
ScaleFactor = 465,
TextSize = 18.3,
TextMinSize = 7.3,
Unit = "Mpc",
BillboardMaxSize = 20.0,
EnablePixelSizeControl = true
},
GUI = {
Name = "Local Group",
Path = "/Universe/Galaxies",
Description = [[Census: 102 galaxies. DU Version 6.4. <br> A group of galaxies is
a small number of large galaxies that are typically surrounded by a large
number of small galaxies. The Milky Way belongs to the Local Group, and is one
of roughly 100 galaxies in that group. The Milky Way, the Andromeda Galaxy
(also known as Messier 31, or M31), and the Triangulum Galaxy (M33) are three
of the largest galaxies in the Local Group. Each is a spiral galaxy containing
hundreds of billions of stars. Surrounding the Milky Way and Andromeda are a
bevy of dwarf galaxies-smaller, often irregular galaxies, that contain
hundreds of millions to a few billion stars. (Description from URL) <br><br>
Data Reference: Properties of dwarf galaxies in the Local Group
(McConnachie+, 2012)]],
}
Identifier = "LocalDwarfGalaxies",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.5, 1.0, 0.2 },
ColorMap = speck .. "/localgroup.cmap",
ColorOption = { "association" },
Opacity = 0.3,
File = speck .. "/localgroup.speck",
Texture = textures .. "/point4.png",
PolygonSides = 12,
LabelFile = speck .. "/localgroup.label",
Unit = "Mpc",
TextColor = { 0.3, 0.3, 1.0 },
ScaleFactor = 465,
TextSize = 18.3,
TextMinMaxSize = { 7, 20 },
BillboardMinMaxSize = { 0.0, 20.0 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Local Group",
Path = "/Universe/Galaxies",
Description = [[Census: 102 galaxies. DU Version 6.4. <br> A group of galaxies is
a small number of large galaxies that are typically surrounded by a large
number of small galaxies. The Milky Way belongs to the Local Group, and is one
of roughly 100 galaxies in that group. The Milky Way, the Andromeda Galaxy
(also known as Messier 31, or M31), and the Triangulum Galaxy (M33) are three
of the largest galaxies in the Local Group. Each is a spiral galaxy containing
hundreds of billions of stars. Surrounding the Milky Way and Andromeda are a
bevy of dwarf galaxies-smaller, often irregular galaxies, that contain
hundreds of millions to a few billion stars. (Description from URL) <br><br>
Data Reference: Properties of dwarf galaxies in the Local Group
(McConnachie+, 2012)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Local Group",
Version = "2.0",
Description = [[Digital Universe asset for the Local Goup]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"LocalDwarfGalaxies"}
Name = "Local Group",
Version = "2.0",
Description = [[Digital Universe asset for the Local Goup]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"LocalDwarfGalaxies"}
}
@@ -6,30 +6,30 @@ local plane = {
Identifier = "MilkyWayGalaxyImage",
Parent = "Root",
Renderable = {
Type = "RenderablePlanesCloud",
Enabled = true,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.99,
ScaleFactor = 2.8,
File = dataPaths.SpeckPath .. "/galaxy.speck",
TexturePath = dataPaths.TexturesPath,
Luminosity = "size",
ScaleLuminosity = 1.0,
FadeInDistances = { 3000.0, 50000.0 },
PlaneMinSize = 5.0,
Unit = "pc"
Type = "RenderablePlanesCloud",
Enabled = true,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.99,
ScaleFactor = 2.8,
File = dataPaths.SpeckPath .. "/galaxy.speck",
TexturePath = dataPaths.TexturesPath,
Luminosity = "size",
ScaleLuminosity = 1.0,
FadeInDistances = { 3000.0, 50000.0 },
PlaneMinSize = 5.0,
Unit = "pc"
},
GUI = {
Name = "Milky Way Galaxy Image",
Path = "/Universe/Galaxies",
Description = [[Census: 1 image. DU Version 2.2. <br> The exterior view of the
Milky Way is simply a two-dimensional image. The image is that of NGC 1232, a
galaxy thought to resemble our Milky Way. The image has been properly sized
and approximately oriented to function as a placeholder, allowing one to see
the context of the Galaxy relative to other data in the atlas. The features
you see in the image, of course, do not represent our Galaxy, per se, but
resemble similar features found in our Galaxy.(Description from URL)
<br><br> Data Reference: European Southern Observatory]]
Name = "Milky Way Galaxy Image",
Path = "/Universe/Galaxies",
Description = [[Census: 1 image. DU Version 2.2. <br> The exterior view of the
Milky Way is simply a two-dimensional image. The image is that of NGC 1232, a
galaxy thought to resemble our Milky Way. The image has been properly sized
and approximately oriented to function as a placeholder, allowing one to see
the context of the Galaxy relative to other data in the atlas. The features
you see in the image, of course, do not represent our Galaxy, per se, but
resemble similar features found in our Galaxy.(Description from URL)
<br><br> Data Reference: European Southern Observatory]]
}
}
@@ -37,12 +37,12 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { plane })
asset.meta = {
Name = "MilkyWay Galaxy",
Version = "2.0",
Description = [[Digital Universe asset containt 2D image of the MilkyWay. For
extragalactic viewing]],
Author = "Brian Abbott, Carter Emmart (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"MilkyWayGalaxyImage"}
Name = "MilkyWay Galaxy",
Version = "2.0",
Description = [[Digital Universe asset containt 2D image of the MilkyWay. For
extragalactic viewing]],
Author = "Brian Abbott, Carter Emmart (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"MilkyWayGalaxyImage"}
}
@@ -3,61 +3,61 @@ local assetHelper = asset.require('util/asset_helper')
local dataPaths = asset.require("scene/digitaluniverse/milkyway_data")
local plane = {
Identifier = "MilkyWayGalaxyArmLabelsImage",
Parent = "Root",
Renderable = {
Type = "RenderablePlanesCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.99,
ScaleFactor = 2.8,
File = dataPaths.SpeckPath .. "/galaxyArmLabels.speck",
TexturePath = dataPaths.TexturesPath,
Luminosity = "size",
ScaleLuminosity = 1.0,
FadeInDistances = { 3000.0, 50000.0 },
PlaneMinSize = 5.0,
Unit = "pc"
},
GUI = {
Name = "Milky Way Arms Labels",
Path = "/Universe/Galaxies",
Description = [[ Census: 1 image. DU Version: 1.2. This image contains labels for
the Milky Way's spiral arms. We label them in this manner ("hard coding" the
labels into an image rather than having native labels) so that they can retain
their size, shape, and location as they overlay the galaxy. (Description from
Digital Universe Data Profiles)]],
}
Identifier = "MilkyWayGalaxyArmLabelsImage",
Parent = "Root",
Renderable = {
Type = "RenderablePlanesCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.99,
ScaleFactor = 2.8,
File = dataPaths.SpeckPath .. "/galaxyArmLabels.speck",
TexturePath = dataPaths.TexturesPath,
Luminosity = "size",
ScaleLuminosity = 1.0,
FadeInDistances = { 3000.0, 50000.0 },
PlaneMinSize = 5.0,
Unit = "pc"
},
GUI = {
Name = "Milky Way Arms Labels",
Path = "/Universe/Galaxies",
Description = [[ Census: 1 image. DU Version: 1.2. This image contains labels for
the Milky Way's spiral arms. We label them in this manner ("hard coding" the
labels into an image rather than having native labels) so that they can retain
their size, shape, and location as they overlay the galaxy. (Description from
Digital Universe Data Profiles)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { plane })
asset.meta = {
Name = "Milky Way Arms Labels",
Version = "1.0",
Description = [[ Image with arm labels for the Milky Way galaxy]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = [[ Copyright &#169; American Museum of Natural History. All rights reserved.
<br><br> Downloading the Atlas: AMNH offers the Atlas free of charge via our
website, http://www.haydenplanetarium.org/. The User is free to download and/or
duplicate verbatim copies of the Atlas provided this license and copyright
information accompany the Atlas. <br><br> Modifying the Atlas: The user is free to
modify the Atlas by either adding data or altering existing data, provided it is
for personal use only. Once the user modifies the Atlas, it is no longer part of
AMNH's Atlas and cannot be used publicly alongside or within the Atlas without
written permission from AMNH. <br><br> Distributing the Atlas: The user is
forbidden to distribute and use the Atlas for profit, as part of a software and/or
production system that will subsequently be redistributed, or for public
consumption (via print, electronic media, or broadcast/produced pieces) without
written permission from AMNH. <br><br> Neither the names of American Museum of
Natural History and Hayden Planetarium nor the names of their contributors may be
used to endorse or promote products derived from this Atlas without specific,
prior written permission. <br><br> The Atlas is free but is offered WITHOUT ANY
WARRANTY of any kind. We provide the Atlas as is and take no responsibility for
any damage resulting from the use of this Atlas. The entire risk as to the quality
and performance of this product is with the user. <br><br> For more information,
please visit http://www.haydenplanetarium.org/universe]],
Identifiers = {"MilkyWayGalaxyArmLabelsImage"}
Name = "Milky Way Arms Labels",
Version = "1.0",
Description = [[ Image with arm labels for the Milky Way galaxy]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = [[ Copyright &#169; American Museum of Natural History. All rights reserved.
<br><br> Downloading the Atlas: AMNH offers the Atlas free of charge via our
website, http://www.haydenplanetarium.org/. The User is free to download and/or
duplicate verbatim copies of the Atlas provided this license and copyright
information accompany the Atlas. <br><br> Modifying the Atlas: The user is free to
modify the Atlas by either adding data or altering existing data, provided it is
for personal use only. Once the user modifies the Atlas, it is no longer part of
AMNH's Atlas and cannot be used publicly alongside or within the Atlas without
written permission from AMNH. <br><br> Distributing the Atlas: The user is
forbidden to distribute and use the Atlas for profit, as part of a software and/or
production system that will subsequently be redistributed, or for public
consumption (via print, electronic media, or broadcast/produced pieces) without
written permission from AMNH. <br><br> Neither the names of American Museum of
Natural History and Hayden Planetarium nor the names of their contributors may be
used to endorse or promote products derived from this Atlas without specific,
prior written permission. <br><br> The Atlas is free but is offered WITHOUT ANY
WARRANTY of any kind. We provide the Atlas as is and take no responsibility for
any damage resulting from the use of this Atlas. The entire risk as to the quality
and performance of this product is with the user. <br><br> For more information,
please visit http://www.haydenplanetarium.org/universe]],
Identifiers = {"MilkyWayGalaxyArmLabelsImage"}
}
@@ -1,15 +1,15 @@
local planeTextures = asset.syncedResource({
Name = "Milky Way Plane Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_milkyway_textures",
Version = 2
Name = "Milky Way Plane Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_milkyway_textures",
Version = 2
})
local planeSpeck = asset.syncedResource({
Name = "Milky Way Plane Speck",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_milkyway_speck",
Version = 1
Name = "Milky Way Plane Speck",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_milkyway_speck",
Version = 1
})
asset.export("TexturesPath", planeTextures)
@@ -4,54 +4,52 @@ local assetHelper = asset.require('util/asset_helper')
local homespeck = asset.syncedResource({
Name = "Home Speck File",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_home_speck",
Version = 1
Name = "Home Speck File",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_home_speck",
Version = 1
})
local homeLabel = {
Identifier = "HomeLabel",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 0.4, 0.2 },
Opacity = 0.99,
ScaleFactor = 500.0,
DrawLabels = true,
LabelFile = homespeck .. "/home.label",
TextColor = { 0.8, 0.8, 0.8 },
TextSize = 20.50,
TextMinSize = 16.0,
TransformationMatrix = {
-0.7357425748, 0.67726129641, 0.0, 0.0,
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
0.0, 0.0, 0.0, 1.0
},
Unit = "Mpc",
FadeInDistances = { 0.05, 1.0 },
BillboardMaxSize = 8.22,
BillboardMinSize = 0.0,
EnablePixelSizeControl = true
Identifier = "HomeLabel",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 0.4, 0.2 },
Opacity = 0.99,
ScaleFactor = 500.0,
DrawLabels = true,
LabelFile = homespeck .. "/home.label",
Unit = "Mpc",
TextColor = { 0.8, 0.8, 0.8 },
TextSize = 20.50,
TextMinMaxSize = { 16, 20 },
TransformationMatrix = {
-0.7357425748, 0.67726129641, 0.0, 0.0,
-0.074553778365, -0.080991471307, 0.9939225904, 0.0,
0.67314530211, 0.73127116582, 0.11008126223, 0.0,
0.0, 0.0, 0.0, 1.0
},
GUI = {
Name = "Home Label",
Path = "/Universe/Galaxies",
Description = [[Label for the Milky Way titled "Home", sided for the galactic
level]],
}
FadeInDistances = { 0.05, 1.0 },
BillboardMinMaxSize = { 0.0, 8.22 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Home Label",
Path = "/Universe/Galaxies",
Description = [[Label for the Milky Way titled "Home", sided for the galactic level]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { homeLabel })
asset.meta = {
Name = "Home Label",
Version = "1.0",
Description = [[Label for the Milky Way titled "Home", sided for the galactic level]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = {"HomeLabel"}
Name = "Home Label",
Version = "1.0",
Description = [[Label for the Milky Way titled "Home", sided for the galactic level]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = {"HomeLabel"}
}
@@ -3,50 +3,50 @@ local assetHelper = asset.require('util/asset_helper')
local sphereTextures = asset.syncedResource({
Name = "Milky Way Sphere Textures",
Type = "HttpSynchronization",
Identifier = "milkyway_textures",
Version = 2
Name = "Milky Way Sphere Textures",
Type = "HttpSynchronization",
Identifier = "milkyway_textures",
Version = 2
})
local sphere = {
Identifier = "MilkyWay",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = {0, 0, 3.14159265359}
}
},
Renderable = {
Type = "RenderableSphere",
Size = 9.2E21,
Segments = 40,
Opacity = 0.35,
Texture = sphereTextures .. "/DarkUniverse_mellinger_4k.jpg",
Orientation = "Inside",
UseAdditiveBlending = true,
MirrorTexture = true,
FadeOutThreshold = 0.0015,
Background = true
},
GUI = {
Name = "Milky Way Sphere",
Path = "/Milky Way",
Description = [[All sky image of the Milky Way that is visible when inside. Fades
out when zooming away from the Milky Way]],
Identifier = "MilkyWay",
Transform = {
Rotation = {
Type = "StaticRotation",
Rotation = {0, 0, 3.14159265359}
}
},
Renderable = {
Type = "RenderableSphere",
Size = 9.2E21,
Segments = 40,
Opacity = 0.35,
Texture = sphereTextures .. "/DarkUniverse_mellinger_4k.jpg",
Orientation = "Inside",
UseAdditiveBlending = true,
MirrorTexture = true,
FadeOutThreshold = 0.0015,
Background = true
},
GUI = {
Name = "Milky Way Sphere",
Path = "/Milky Way",
Description = [[All sky image of the Milky Way that is visible when inside. Fades
out when zooming away from the Milky Way]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { sphere })
asset.meta = {
Name = "Milky Way Galaxy Sphere",
Version = "2.0",
Description = [[All sky image of the Milky Way]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = {"MilkyWay"}
Name = "Milky Way Galaxy Sphere",
Version = "2.0",
Description = [[All sky image of the Milky Way]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT license",
Identifiers = {"MilkyWay"}
}
@@ -3,69 +3,68 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "OB Associations Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_obassociations_textures",
Version = 1
Name = "OB Associations Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_obassociations_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "OB Associations Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_obassociations_speck",
Version = 3
Name = "OB Associations Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_obassociations_speck",
Version = 3
})
local object = {
Identifier = "OBAssociations",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
ColorMap = speck .. "/ob.cmap",
ColorOption = { "arm" },
SizeOption = {"diameter"},
ExactColorMap = true,
Opacity = 0.7,
File = speck .. "/ob.speck",
Texture = textures .. "/point4.png",
PolygonSides = 7,
LabelFile = speck .. "/ob.label",
TextColor = { 0.4, 0.5, 1.0 },
ScaleFactor = 390.0,
TextSize = 16.24,
TextMinSize = 4.50,
TextMaxSize = 25,
Unit = "pc",
BillboardMaxSize = 450.0,
EnablePixelSizeControl = true
},
GUI = {
Name = "OB Associations",
Path = "/Milky Way",
Description = [[Census: 61 OB associations. DU Version 2.4. <br> OB associations
are young groups of stars that were formed within a giant molecular cloud, but
have dispersed after the original gas and dust from the cloud was blown away
by the star's radiation pressure. Although an association's stars are no
longer gravitationally bound to one another, they share a common motion in
space because they were formed from the same cloud. This allows astronomers to
easily determine OB association membership stars. These objects are color
coded by their spiral arm membership. Blue associations trace the Sagittarius
Arm. Purple associations are in the local Orion Spur. Orange associations are
in the Perseus Arm (Description from URL) <br><br> Data Reference: New List of
OB Associations (Melnik+)]],
}
Identifier = "OBAssociations",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
ColorMap = speck .. "/ob.cmap",
ColorOption = { "arm" },
SizeOption = { "diameter" },
ExactColorMap = true,
Opacity = 0.7,
File = speck .. "/ob.speck",
Unit = "pc",
Texture = textures .. "/point4.png",
PolygonSides = 7,
LabelFile = speck .. "/ob.label",
TextColor = { 0.4, 0.5, 1.0 },
ScaleFactor = 390.0,
TextSize = 16.24,
TextMinMaxSize = { 4, 25 },
BillboardMinMaxSize = { 0.0, 450.0 },
EnablePixelSizeControl = true
},
GUI = {
Name = "OB Associations",
Path = "/Milky Way",
Description = [[Census: 61 OB associations. DU Version 2.4. <br> OB associations
are young groups of stars that were formed within a giant molecular cloud, but
have dispersed after the original gas and dust from the cloud was blown away
by the star's radiation pressure. Although an association's stars are no
longer gravitationally bound to one another, they share a common motion in
space because they were formed from the same cloud. This allows astronomers to
easily determine OB association membership stars. These objects are color
coded by their spiral arm membership. Blue associations trace the Sagittarius
Arm. Purple associations are in the local Orion Spur. Orange associations are
in the Perseus Arm (Description from URL) <br><br> Data Reference: New List of
OB Associations (Melnik+)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "OB Associations",
Version = "2.0",
Description = [[Digital Universe asset for OB Associations]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"OBAssociations"}
Name = "OB Associations",
Version = "2.0",
Description = [[Digital Universe asset for OB Associations]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"OBAssociations"}
}
@@ -3,65 +3,64 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Open Clusters Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_openclusters_textures",
Version = 1
Name = "Open Clusters Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_openclusters_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "Open Clusters Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_openclusters_speck",
Version = 2
Name = "Open Clusters Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_openclusters_speck",
Version = 2
})
local object = {
Identifier = "OpenStarClusters",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.1, 0.8, 0.4 },
Opacity = 0.5,
File = speck .. "/oc.speck",
Texture = textures .. "/point4.png",
PolygonSides = 12,
TextColor = { 0.05, 0.4, 0.2 },
LabelFile = speck .. "/oc.label",
ScaleFactor = 405.75,
TextSize = 15.5,
TextMinSize = 4.5,
TextMaxSize = 30.0,
Unit = "pc",
BillboardMaxSize = 604,
EnablePixelSizeControl = true
},
GUI = {
Name = "Open Star Clusters",
Path = "/Milky Way",
Description = [[Census: 2,040 clusters. DU Version 5.7. <br> OB associations are
young groups of stars that were formed within a giant molecular cloud, but
have dispersed after the original gas and dust from the cloud was blown away
by the star's radiation pressure. Although an association's stars are no
longer gravitationally bound to one another, they share a common motion in
space because they were formed from the same cloud. This allows astronomers to
easily determine OB association membership stars. These objects are color
coded by their spiral arm membership. Blue associations trace the Sagittarius
Arm. Purple associations are in the local Orion Spur. Orange associations are
in the Perseus Arm (Description from URL) <br><br> Data Reference: Optically
visible open clusters and Candidates (Dias+ 2002-2015)]],
}
Identifier = "OpenStarClusters",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.1, 0.8, 0.4 },
Opacity = 0.5,
File = speck .. "/oc.speck",
Unit = "pc",
Texture = textures .. "/point4.png",
PolygonSides = 12,
TextColor = { 0.05, 0.4, 0.2 },
LabelFile = speck .. "/oc.label",
ScaleFactor = 405.75,
TextSize = 15.5,
TextMinMaxSize = { 4, 30 },
BillboardMinMaxSize = { 0.0, 604.0 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Open Star Clusters",
Path = "/Milky Way",
Description = [[Census: 2,040 clusters. DU Version 5.7. <br> OB associations are
young groups of stars that were formed within a giant molecular cloud, but
have dispersed after the original gas and dust from the cloud was blown away
by the star's radiation pressure. Although an association's stars are no
longer gravitationally bound to one another, they share a common motion in
space because they were formed from the same cloud. This allows astronomers to
easily determine OB association membership stars. These objects are color
coded by their spiral arm membership. Blue associations trace the Sagittarius
Arm. Purple associations are in the local Orion Spur. Orange associations are
in the Perseus Arm (Description from URL) <br><br> Data Reference: Optically
visible open clusters and Candidates (Dias+ 2002-2015)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Open Star Clusters",
Version = "2.0",
Description = [[Digital Universe asset for Open Star Clusters]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"OpenStarClusters"}
Name = "Open Star Clusters",
Version = "2.0",
Description = [[Digital Universe asset for Open Star Clusters]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"OpenStarClusters"}
}
@@ -3,62 +3,61 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Planetary Nebulae Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_planetarynebulae_textures",
Version = 1
Name = "Planetary Nebulae Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_planetarynebulae_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "Planetary Nebulae Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_planetarynebulae_speck",
Version = 2
Name = "Planetary Nebulae Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_planetarynebulae_speck",
Version = 2
})
local object = {
Identifier = "PlanetaryNebulae",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.4, 0.4, 0.9 },
Opacity = 0.65,
File = speck .. "/pn.speck",
Texture = textures .. "/point4.png",
PolygonSides = 3,
LabelFile = speck .. "/pn.label",
TextColor = { 0.25, 0.25, 0.65 },
ScaleFactor = 425.0,
TextSize = 16.24,
TextMinSize = 4.5,
TextMaxSize = 25.0,
Unit = "pc",
BillboardMaxSize = 500,
EnablePixelSizeControl = true
},
GUI = {
Name = "Planetary Nebulae",
Path = "/Milky Way",
Description = [[Census: 283 nebulae. DU Version 2.8. <br> A planetary nebula is an
expanding shell of gas ejected from a star late in its life cycle. Appearing
like greenish disks to a telescopic observer, planetary nebulae received their
name from their resemblance to the gaseous planets of our solar system. In no
way are they related to planets, rather, they are products of dying stars.
(Description from URL) <br><br> Data Reference: Planetary Nebulae distances
in Gaia DR2 (Kimeswenger+, 2018), Strasbourg-ESO Catalog of Planetary Nebulae
(Acker+ 1992)]],
}
Identifier = "PlanetaryNebulae",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.4, 0.4, 0.9 },
Opacity = 0.65,
File = speck .. "/pn.speck",
Texture = textures .. "/point4.png",
PolygonSides = 3,
LabelFile = speck .. "/pn.label",
Unit = "pc",
TextColor = { 0.25, 0.25, 0.65 },
ScaleFactor = 425.0,
TextSize = 16.24,
TextMinMaxSize = { 4, 25 },
BillboardMinMaxSize = { 0.0, 500.0 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Planetary Nebulae",
Path = "/Milky Way",
Description = [[Census: 283 nebulae. DU Version 2.8. <br> A planetary nebula is an
expanding shell of gas ejected from a star late in its life cycle. Appearing
like greenish disks to a telescopic observer, planetary nebulae received their
name from their resemblance to the gaseous planets of our solar system. In no
way are they related to planets, rather, they are products of dying stars.
(Description from URL) <br><br> Data Reference: Planetary Nebulae distances
in Gaia DR2 (Kimeswenger+, 2018), Strasbourg-ESO Catalog of Planetary Nebulae
(Acker+ 1992)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Planetary Nebulae",
Version = "2.0",
Description = [[Digital Universe asset for Planetary Nebulae]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"PlanetaryNebulae"}
Name = "Planetary Nebulae",
Version = "2.0",
Description = [[Digital Universe asset for Planetary Nebulae]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"PlanetaryNebulae"}
}
+49 -50
View File
@@ -3,66 +3,65 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Pulsars Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_pulsars_textures",
Version = 1
Name = "Pulsars Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_pulsars_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "Pulsars Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_pulsars_speck",
Version = 2
Name = "Pulsars Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_pulsars_speck",
Version = 2
})
local object = {
Identifier = "Pulsars",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.7, 0.0, 0.0 },
Opacity = 1.0,
File = speck .. "/pulsar.speck",
Texture = textures .. "/point4.png",
PolygonSides = 4,
LabelFile = speck .. "/pulsar.label",
TextColor = { 0.7, 0.2, 0.2 },
ScaleFactor = 424,
TextSize = 15.77,
TextMinSize = 4,
TextMaxSize = 20.0,
Unit = "pc",
BillboardMaxSize = 500,
EnablePixelSizeControl = false
},
GUI = {
Name = "Pulsars",
Path = "/Milky Way",
Description = [[Census: 2,498 pulsars. DU Version 5.6. <br> Upon death, stars
leave behind one of three possible remnants: a white dwarf, a neutron star, or
a black hole. Stars that are more massive than the sun will often become
neutron stars in a violent explosion called a supernova. During a supernova,
the core of the star collapses under such high pressure that the electrons,
which normally remain outside the atomic nucleus, are forced to combine with
the protons in the nucleus. Atomic nuclei break apart, producing what is
called a degenerate state of matter. The collapse is halted when the material
cannot be packed any tighter. At this point, the star has a radius of about
10-15 kilometers. The density of this material is so high that a teaspoonful
would weigh about 100 million tons on Earth. (Description from URL) <br><br>
Data Reference: ATNF Pulsar Catalogue, (Manchester+, 2005)]],
}
Identifier = "Pulsars",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 0.7, 0.0, 0.0 },
Opacity = 1.0,
File = speck .. "/pulsar.speck",
Texture = textures .. "/point4.png",
PolygonSides = 4,
LabelFile = speck .. "/pulsar.label",
Unit = "pc",
TextColor = { 0.7, 0.2, 0.2 },
ScaleFactor = 424,
TextSize = 15.77,
TextMinMaxSize = { 4, 20 },
BillboardMinMaxSize = { 0.0, 500.0 },
EnablePixelSizeControl = false
},
GUI = {
Name = "Pulsars",
Path = "/Milky Way",
Description = [[Census: 2,498 pulsars. DU Version 5.6. <br> Upon death, stars
leave behind one of three possible remnants: a white dwarf, a neutron star, or
a black hole. Stars that are more massive than the sun will often become
neutron stars in a violent explosion called a supernova. During a supernova,
the core of the star collapses under such high pressure that the electrons,
which normally remain outside the atomic nucleus, are forced to combine with
the protons in the nucleus. Atomic nuclei break apart, producing what is
called a degenerate state of matter. The collapse is halted when the material
cannot be packed any tighter. At this point, the star has a radius of about
10-15 kilometers. The density of this material is so high that a teaspoonful
would weigh about 100 million tons on Earth. (Description from URL) <br><br>
Data Reference: ATNF Pulsar Catalogue, (Manchester+, 2005)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Pulsars",
Version = "2.0",
Description = [[Digital Universe asset for Pulsars.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Pulsars"}
Name = "Pulsars",
Version = "2.0",
Description = [[Digital Universe asset for Pulsars.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Pulsars"}
}
+41 -44
View File
@@ -3,60 +3,57 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Quasars Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_quasars_textures",
Version = 2
Name = "Quasars Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_quasars_textures",
Version = 2
})
local speck = asset.syncedResource({
Name = "Quasars Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_quasars_speck",
Version = 2
Name = "Quasars Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_quasars_speck",
Version = 2
})
local object = {
Identifier = "Quasars",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = true,
Color = { 1.0, 0.4, 0.2 },
Opacity = 0.95,
File = speck .. "/quasars.speck",
Texture = textures .. "/point3A.png",
Unit = "Mpc",
ScaleFactor = 540.9,
-- Fade in value in the same unit as "Unit"
FadeInDistances = { 1000.0, 10000.0 },
BillboardMaxSize = 30.0,
BillboardMinSize = 0.0,
BillboardMaxSize = 11.1,
EnablePixelSizeControl = true
},
GUI = {
Name = "Quasars",
Path = "/Universe",
Description = [[Census: 569,442 quasars. DU Version 2.2. <br>
Quasars are the most distant objects we can see. They are extremely active
galaxies that contain supermassive black holes which are gobbling up material
at a furious rate. The Million Quasars Catalogue is an aggregate catalog of
several surveys, including 2dF and Sloan. So, it should not be surprising that
the shape of these data mimic the shape of the Sloan and 2dF galaxy surveys,
with large parts of the sky unobserved.(Description from URL) <br><br> Data
Reference: The Million Quasars catalog (Flesch, 2017)]]
}
Identifier = "Quasars",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = true,
Color = { 1.0, 0.4, 0.2 },
Opacity = 0.95,
File = speck .. "/quasars.speck",
Texture = textures .. "/point3A.png",
Unit = "Mpc",
ScaleFactor = 540.9,
FadeInDistances = { 1000.0, 10000.0 }, -- Fade in value in the same unit as "Unit"
BillboardMinMaxSize = { 0.0, 11.1 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Quasars",
Path = "/Universe",
Description = [[Census: 569,442 quasars. DU Version 2.2. <br>
Quasars are the most distant objects we can see. They are extremely active
galaxies that contain supermassive black holes which are gobbling up material
at a furious rate. The Million Quasars Catalogue is an aggregate catalog of
several surveys, including 2dF and Sloan. So, it should not be surprising that
the shape of these data mimic the shape of the Sloan and 2dF galaxy surveys,
with large parts of the sky unobserved.(Description from URL) <br><br> Data
Reference: The Million Quasars catalog (Flesch, 2017)]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Quasars",
Version = "2.0",
Description = [[Digital Universe asset for Quasars.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Quasars"}
Name = "Quasars",
Version = "2.0",
Description = [[Digital Universe asset for Quasars.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Quasars"}
}
+55 -59
View File
@@ -3,75 +3,71 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Sloan Digital Sky Survey Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_sloandss_textures",
Version = 2
Name = "Sloan Digital Sky Survey Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_sloandss_textures",
Version = 2
})
local speck = asset.syncedResource({
Name = "Sloan Digital Sky Survey Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_sloandss_speck",
Version = 2
Name = "Sloan Digital Sky Survey Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_sloandss_speck",
Version = 2
})
local object = {
Identifier = "SloanDigitalSkySurvey",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = true,
Color = { 0.8, 0.8, 1.0 },
Opacity = 0.8,
ScaleFactor = 520.0,
File = speck .. "/SDSSgals.speck",
ColorMap = speck .. "/SDSSgals.cmap",
ColorOption = { "redshift", "proximity" },
ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } },
Texture = textures .. "/point3A.png",
Unit = "Mpc",
-- Fade in value in the same unit as "Unit"
FadeInDistances = { 220.0, 650.0 },
BillboardMaxSize = 50.0,
BillboardMinSize = 0.0,
CorrectionSizeEndDistance = 20.65,
CorrectionSizeFactor = 10.41,
TextSize = 14.8,
TextMinSize = 10.0,
TextMaxSize = 50.0,
BillboardMaxSize = 5.5,
EnablePixelSizeControl = true
},
GUI = {
Name = "Sloan Digital Sky Survey",
Path = "/Universe/Galaxies",
Description = [[Census: 2,600,258 galaxies. DU Version 10.6.<br> The Sloan Digital
Sky Survey (SDSS) is an ambitious project to image about 35% of the sky, deep
into the universe. The survey measured the position and brightness of almost 1
billion objects, and obtained spectra to more than 4 million objects. This is
not an all-sky survey, so there are large parts of the sky that remain
unobserved, which produces the bow tie distribution and the black areas where
there surely are galaxies, but we have yet to observe them. These galaxies
appear to extend beyond the 2dF survey to distances that exceed 5 billion
light years. However, the weblike structure of clusters, filaments, and voids
seems to fade by about 2 billion light years. Beyond this distance, the
completeness of the survey drops so that only the intrinsically bright
galaxies are visible. The weblike cosmic structure is echoed in these data,
with orange clusters standing out among the less dense aqua-colored galaxies
and the less dense regions of green-colored galaxies. (Description from URL)
<br><br> Data Reference: Sloan Digital Sky Survey (http://www.sdss.org/)]]
}
Identifier = "SloanDigitalSkySurvey",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = true,
Color = { 0.8, 0.8, 1.0 },
Opacity = 0.8,
ScaleFactor = 520.0,
File = speck .. "/SDSSgals.speck",
ColorMap = speck .. "/SDSSgals.cmap",
ColorOption = { "redshift", "proximity" },
ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } },
Texture = textures .. "/point3A.png",
Unit = "Mpc",
FadeInDistances = { 220.0, 650.0 }, -- Fade in value in the same unit as "Unit"
BillboardMinMaxSize = { 0.0, 5.5 },
CorrectionSizeEndDistance = 20.65,
CorrectionSizeFactor = 10.41,
TextSize = 14.8,
TextMinMaxSize = { 10, 50 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Sloan Digital Sky Survey",
Path = "/Universe/Galaxies",
Description = [[Census: 2,600,258 galaxies. DU Version 10.6.<br> The Sloan Digital
Sky Survey (SDSS) is an ambitious project to image about 35% of the sky, deep
into the universe. The survey measured the position and brightness of almost 1
billion objects, and obtained spectra to more than 4 million objects. This is
not an all-sky survey, so there are large parts of the sky that remain
unobserved, which produces the bow tie distribution and the black areas where
there surely are galaxies, but we have yet to observe them. These galaxies
appear to extend beyond the 2dF survey to distances that exceed 5 billion
light years. However, the weblike structure of clusters, filaments, and voids
seems to fade by about 2 billion light years. Beyond this distance, the
completeness of the survey drops so that only the intrinsically bright
galaxies are visible. The weblike cosmic structure is echoed in these data,
with orange clusters standing out among the less dense aqua-colored galaxies
and the less dense regions of green-colored galaxies. (Description from URL)
<br><br> Data Reference: Sloan Digital Sky Survey (http://www.sdss.org/)]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Sloan Digital Sky Survey",
Version = "2.0",
Description = [[Digital Universe asset for The Sloan Digital Sky Survey (SDSS).]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"SloanDigitalSkySurvey"}
Name = "Sloan Digital Sky Survey",
Version = "2.0",
Description = [[Digital Universe asset for The Sloan Digital Sky Survey (SDSS).]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"SloanDigitalSkySurvey"}
}
@@ -3,44 +3,42 @@ local assetHelper = asset.require('util/asset_helper')
local speck = asset.syncedResource({
Name = "Star Labels Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_starlabels_speck",
Version = 2
Name = "Star Labels Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_starlabels_speck",
Version = 2
})
local object = {
Identifier = "StarsLabels",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
LabelFile = speck .. "/stars.label",
TextColor = { 0.4, 0.4, 0.4 },
DrawLabels = true,
TextSize = 14.7,
TextMinSize = 6.0,
TextMaxSize = 50.0,
Unit = "pc"
},
GUI = {
Name = "Stars Labels",
Path = "/Milky Way/Stars",
Description = [[Labels for stars in the Milky Way. See 'Stars' for more
info.]],
}
Identifier = "StarsLabels",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
LabelFile = speck .. "/stars.label",
Unit = "pc",
TextColor = { 0.4, 0.4, 0.4 },
DrawLabels = true,
TextSize = 14.7,
TextMinMaxSize = { 6, 50 }
},
GUI = {
Name = "Stars Labels",
Path = "/Milky Way/Stars",
Description = [[Labels for stars in the Milky Way. See 'Stars' for more info.]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Star Labels",
Version = "2.0",
Description = [[Digital Universe asset for labels of the stars.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"StarsLabels"}
Name = "Star Labels",
Version = "2.0",
Description = [[Digital Universe asset for labels of the stars.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"StarsLabels"}
}
+149 -157
View File
@@ -4,189 +4,181 @@ local earth_transforms = asset.require('scene/solarsystem/planets/earth/transfor
local speck = asset.syncedResource({
Name = "Grids Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_starorbits_speck",
Version = 1
Name = "Grids Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_starorbits_speck",
Version = 1
})
local sunOrbit = {
Identifier = "SunOrbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-Sun.speck",
MeshColor = {{ 1.0, 0.65, 0.0 }},
--LabelFile = speck .. "/1ld.label",
TextColor = { 0.0, 0.2, 0.5 },
TextSize = 10.3,
TextMinSize = 0.5,
TextMaxSize = 30.0,
Unit = "pc"
},
GUI = {
Name = "Sun Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of the Sun around the Milky Way"]]
}
Identifier = "SunOrbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-Sun.speck",
MeshColor = {{ 1.0, 0.65, 0.0 }},
--LabelFile = speck .. "/1ld.label",
-- TextColor = { 0.0, 0.2, 0.5 },
-- TextMinMaxSize = { 0, 30 },
Unit = "pc"
},
GUI = {
Name = "Sun Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of the Sun around the Milky Way"]]
}
}
local barnardsOrbit = {
Identifier = "BarnardsOrbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-BarnardsStar.speck",
MeshColor = {{0.39, 0.58, 0.93}},
--LabelFile = speck .. "/1ld.label",
TextColor = { 0.0, 0.2, 0.5 },
TextSize = 10.3,
TextMinSize = 0.5,
TextMaxSize = 30.0,
Unit = "pc"
},
GUI = {
Name = "Barnards Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of Barnard's Star around the Milky Way"]]
}
Identifier = "BarnardsOrbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-BarnardsStar.speck",
MeshColor = {{0.39, 0.58, 0.93}},
--LabelFile = speck .. "/1ld.label",
-- TextColor = { 0.0, 0.2, 0.5 },
-- TextSize = 10.3,
-- TextMinMaxSize = { 0, 30 },
Unit = "pc"
},
GUI = {
Name = "Barnards Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of Barnard's Star around the Milky Way"]]
}
}
local kapteynsOrbit = {
Identifier = "KapteynsOrbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-KapteynsStar.speck",
MeshColor = {{0.6, 0.6, 0.6}},
--LabelFile = speck .. "/1ld.label",
TextColor = { 0.0, 0.2, 0.5 },
TextSize = 10.3,
TextMinSize = 0.5,
TextMaxSize = 30.0,
Unit = "pc"
},
GUI = {
Name = "Kapteyns Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of Kapteyn's Star around the Milky Way"]]
}
Identifier = "KapteynsOrbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-KapteynsStar.speck",
MeshColor = {{0.6, 0.6, 0.6}},
--LabelFile = speck .. "/1ld.label",
-- TextColor = { 0.0, 0.2, 0.5 },
-- TextSize = 10.3,
-- TextMinMaxSize = { 0, 30 },
Unit = "pc"
},
GUI = {
Name = "Kapteyns Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of Kapteyn's Star around the Milky Way"]]
}
}
local lacaille9352Orbit = {
Identifier = "Lacaille9352Orbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-Lacaille9352.speck",
MeshColor = {{0.58, 0.0, 0.83}},
--LabelFile = speck .. "/1ld.label",
TextColor = { 0.0, 0.2, 0.5 },
TextSize = 10.3,
TextMinSize = 0.5,
TextMaxSize = 30.0,
Unit = "pc"
},
GUI = {
Name = "Lacaille 9352 Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of Lacaille9352 around the Milky Way"]]
}
Identifier = "Lacaille9352Orbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-Lacaille9352.speck",
MeshColor = {{0.58, 0.0, 0.83}},
--LabelFile = speck .. "/1ld.label",
-- TextColor = { 0.0, 0.2, 0.5 },
-- TextSize = 10.3,
-- TextMinMaxSize = { 0, 30 },
Unit = "pc"
},
GUI = {
Name = "Lacaille 9352 Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of Lacaille9352 around the Milky Way"]]
}
}
local lSR1826Orbit = {
Identifier = "LSR1826Orbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-LSR1826+3014.speck",
MeshColor = {{0.0, 0.39, 0.0}},
--LabelFile = speck .. "/1ld.label",
TextColor = { 0.0, 0.2, 0.5 },
TextSize = 10.3,
TextMinSize = 0.5,
TextMaxSize = 30.0,
Unit = "pc"
},
GUI = {
Name = "LSR1826+3014 Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of LSR1826+3014 around the Milky Way"]]
}
Identifier = "LSR1826Orbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-LSR1826+3014.speck",
MeshColor = {{0.0, 0.39, 0.0}},
--LabelFile = speck .. "/1ld.label",
-- TextColor = { 0.0, 0.2, 0.5 },
-- TextSize = 10.3,
-- TextMinMaxSize = { 0, 30 },
Unit = "pc"
},
GUI = {
Name = "LSR1826+3014 Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of LSR1826+3014 around the Milky Way"]]
}
}
local lSRJ0822Orbit = {
Identifier = "LSRJ0822Orbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-LSRJ0822+1700.speck",
MeshColor = {{0.5, 1.0, 0.0}},
--LabelFile = speck .. "/1ld.label",
TextColor = { 0.0, 0.2, 0.5 },
TextSize = 10.3,
TextMinSize = 0.5,
TextMaxSize = 30.0,
Unit = "pc"
},
GUI = {
Name = "LSRJ0822+1700 Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of LSRJ0822+1700 around the Milky Way"]]
}
Identifier = "LSRJ0822Orbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-LSRJ0822+1700.speck",
MeshColor = {{0.5, 1.0, 0.0}},
--LabelFile = speck .. "/1ld.label",
-- TextColor = { 0.0, 0.2, 0.5 },
-- TextSize = 10.3,
-- TextMinMaxSize = { 0, 30 },
Unit = "pc"
},
GUI = {
Name = "LSRJ0822+1700 Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of LSRJ0822+1700 around the Milky Way"]]
}
}
local pM_J13420Orbit = {
Identifier = "PM_J13420Orbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-PM_J13420-3415.speck",
MeshColor = {{0.70, 0.13, 0.13}},
--LabelFile = speck .. "/1ld.label",
TextColor = { 0.0, 0.2, 0.5 },
TextSize = 10.3,
TextMinSize = 0.5,
TextMaxSize = 30.0,
Unit = "pc"
},
GUI = {
Name = "PM_J13420-3415 Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of PM_J13420-3415 around the Milky Way"]]
}
Identifier = "PM_J13420Orbit",
--Parent = transforms.SolarSystemBarycenter.Name,
Renderable = {
Type = "RenderableDUMeshes",
Enabled = false,
Opacity = 1.0,
File = speck .. "/starorbits-PM_J13420-3415.speck",
MeshColor = {{0.70, 0.13, 0.13}},
--LabelFile = speck .. "/1ld.label",
-- TextColor = { 0.0, 0.2, 0.5 },
-- TextSize = 10.3,
-- TextMinMaxSize = { 0, 30 },
Unit = "pc"
},
GUI = {
Name = "PM_J13420-3415 Orbit",
Path = "/Milky Way/Stars/Stars Orbits",
Description = [["Orbits of PM_J13420-3415 around the Milky Way"]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, {
sunOrbit, barnardsOrbit, pM_J13420Orbit, lSRJ0822Orbit, lSR1826Orbit,
lacaille9352Orbit, kapteynsOrbit
sunOrbit, barnardsOrbit, pM_J13420Orbit, lSRJ0822Orbit, lSR1826Orbit,
lacaille9352Orbit, kapteynsOrbit
})
asset.meta = {
Name = "Star Orbits",
Version = "1.0",
Description = [[Select Star Orbital paths that delineate their trajectory around the
Milky Way over 1 billion years into the future. Included: Sun, Barnards, Kapteyns,
Lacaille 9352, LSR1826+3014, LSRJ0822+1700, PM_J13420-3415. <br><br> Data
Reference: Sebastien Lepine (AMNH)]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"SunOrbit", "BarnardsOrbit", "KapteynsOrbit", "pM_J13420Orbit",
"LSR1826Orbit", "LSRJ0822Orbit", "lacaille9352Orbit"}
Name = "Star Orbits",
Version = "1.0",
Description = [[Select Star Orbital paths that delineate their trajectory around the
Milky Way over 1 billion years into the future. Included: Sun, Barnards, Kapteyns,
Lacaille 9352, LSR1826+3014, LSRJ0822+1700, PM_J13420-3415. <br><br> Data
Reference: Sebastien Lepine (AMNH)]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"SunOrbit", "BarnardsOrbit", "KapteynsOrbit", "pM_J13420Orbit",
"LSR1826Orbit", "LSRJ0822Orbit", "lacaille9352Orbit"}
}
+77 -69
View File
@@ -1,91 +1,99 @@
local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Stars Textures",
Type = "HttpSynchronization",
Identifier = "stars_textures",
Version = 1
})
local colormaps = asset.require('./stars_colormap').ColorMaps
local textures = asset.require('./stars_textures').textures
local speck = asset.syncedResource({
Name = "Stars Speck Files",
Type = "HttpSynchronization",
Identifier = "stars_du",
Version = 4
Name = "Stars Speck Files",
Type = "HttpSynchronization",
Identifier = "stars_du",
Version = 4
})
local sunspeck = asset.syncedResource({
Name = "Stars Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_sunstar_speck",
Version = 1
})
local colorLUT = asset.syncedResource({
Name = "Stars Color Table",
Type = "HttpSynchronization",
Identifier = "stars_colormap",
Version = 2
Name = "Stars Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_sunstar_speck",
Version = 1
})
local stars = {
Identifier = "Stars",
Renderable = {
Type = "RenderableStars",
File = speck .. "/stars.speck",
Texture = textures .. "/halo.png",
--ShapeTexture = textures .. "/disc.png",
ColorMap = colorLUT .. "/colorbv.cmap",
MagnitudeExponent = 6.2,
SizeComposition = "Distance Modulus",
RenderMethod = "Texture Based" -- or PSF
},
GUI = {
Name = "Stars",
Path = "/Milky Way/Stars",
Description = [[Census: 117,003 stars with 321 labels.<br> DU Version 7.8. This
star catalog is a combination of all available star catalogs, wherein we
choose the best distance available to place the stars around the Sun as
accurately as is possible. (Description from URL) <br><br> Data Reference:
XHIP: An Extended Hipparcos Compilation (Anderson E., Francis C. 2012);
Hipparcos Catalog (European Space Agency 1997); Gliese Catalog (Gliese and
Jahriess 1991)]],
Identifier = "Stars",
Renderable = {
Type = "RenderableStars",
File = speck .. "/stars.speck",
Texture = textures .. "/halo.png",
--ShapeTexture = textures .. "/disc.png",
ColorMap = colormaps .. "/colorbv.cmap",
OtherDataColorMap = colormaps .. "/viridis.cmap",
MagnitudeExponent = 6.2,
SizeComposition = "Distance Modulus",
RenderMethod = "Texture Based", -- or PSF
DataMapping = {
Bv = "colorb_v",
Luminance = "lum",
AbsoluteMagnitude = "absmag",
ApparentMagnitude = "appmag",
Vx = "vx",
Vy = "vy",
Vz = "vz",
Speed = "speed"
}
},
GUI = {
Name = "Stars",
Path = "/Milky Way/Stars",
Description = [[Census: 117,003 stars with 321 labels.<br> DU Version 7.8. This
star catalog is a combination of all available star catalogs, wherein we
choose the best distance available to place the stars around the Sun as
accurately as is possible. (Description from URL) <br><br> Data Reference:
XHIP: An Extended Hipparcos Compilation (Anderson E., Francis C. 2012);
Hipparcos Catalog (European Space Agency 1997); Gliese Catalog (Gliese and
Jahriess 1991)]],
}
}
local sunstar = {
Identifier = "SunStar",
Renderable = {
Type = "RenderableStars",
File = sunspeck .. "/sunstar.speck",
Texture = textures .. "/halo.png",
--ShapeTexture = textures .. "/disc.png",
ColorMap = colorLUT .. "/colorbv.cmap",
MagnitudeExponent = 6.2,
SizeComposition = "Distance Modulus",
RenderMethod = "Texture Based", -- or PSF
FadeInDistances = { 0.0001, 0.1 },
RenderableType = "PostDeferredTransparent"
},
GUI = {
Name = "Sun",
Path = "/Milky Way/Stars",
Description = [[Individual star to represent the sun when outside of the solar
system]]
Identifier = "SunStar",
Renderable = {
Type = "RenderableStars",
File = sunspeck .. "/sunstar.speck",
Texture = textures .. "/halo.png",
--ShapeTexture = textures .. "/disc.png",
ColorMap = colormaps .. "/colorbv.cmap",
MagnitudeExponent = 6.2,
SizeComposition = "Distance Modulus",
RenderMethod = "Texture Based", -- or PSF
FadeInDistances = { 0.0001, 0.1 },
RenderableType = "PostDeferredTransparent",
DataMapping = {
Bv = "colorb_v",
Luminance = "lum",
AbsoluteMagnitude = "absmag",
ApparentMagnitude = "appmag",
Vx = "vx",
Vy = "vy",
Vz = "vz",
Speed = "speed",
}
},
GUI = {
Name = "Sun",
Path = "/Milky Way/Stars",
Description = [[Individual star to represent the sun when outside of the solar
system]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { stars, sunstar })
asset.meta = {
Name = "Stars",
Version = "2.0",
Description = [[Digital Universe asset for the stars.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Stars"}
Name = "Stars",
Version = "2.0",
Description = [[Digital Universe asset for the stars.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"Stars"}
}
@@ -0,0 +1,22 @@
local assetHelper = asset.require('util/asset_helper')
local colormaps = asset.syncedResource({
Name = "Stars Color Table",
Type = "HttpSynchronization",
Identifier = "stars_colormap",
Version = 2
})
asset.export("ColorMaps", colormaps)
asset.meta = {
Name = "Star Colormaps",
Version = "2.0",
Description = [[Lookup tables used for star datasets, one of the tables map a B-V color
index to an RGB color. The B-V values are in the range (-0.4, 2.0) and each line maps
a value in that range to a color. The other table is the commonly used viridis map]],
Author = "OpenSpace Team",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe"
}
@@ -0,0 +1,20 @@
local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Stars Textures",
Type = "HttpSynchronization",
Identifier = "stars_textures",
Version = 1
})
asset.export("textures", textures)
asset.meta = {
Name = "Star Textures",
Version = "1.0",
Description = [[Square textures used to represent stars when applied to camera-facing bil;board]],
Author = "OpenSpace Team",
URL = "http://openspaceproject.com",
License = "MIT License"
}
@@ -3,60 +3,60 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Galaxy Superclusters Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_superclusters_textures",
Version = 2
Name = "Galaxy Superclusters Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_superclusters_textures",
Version = 2
})
local speck = asset.syncedResource({
Name = "Galaxy Superclusters Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_superclusters_speck",
Version = 2
Name = "Galaxy Superclusters Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_superclusters_speck",
Version = 2
})
local object = {
Identifier = "GalaxySuperclusters",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
DrawElements = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
File = speck .. "/superclust.speck",
Texture = textures .. "/point3A.png",
LabelFile = speck .. "/superclust.label",
TextColor = { 0.9, 0.9, 0.9 },
ScaleFactor = 531.0,
TextSize = 22.44,
TextMinSize = 8.0,
Unit = "Mpc",
DrawLabels = true,
--BillboardMaxSize = 7.2,
EnablePixelSizeControl = true
},
GUI = {
Name = "Galaxy Superclusters",
Path = "/Universe/Galaxies",
Description = [[Census: 33 labels. DU Version 1.3.<br> The superclusters dataset
is a set of labels that mark the major galaxy superclusters in the local universe.
They correspond to, and should be viewed with, the Abell clusters. Astronomers
estimate there are 10 million superclusters in the observable universe.
(Description from URL) <br><br> Data Reference: Superclusters of Abell and X-ray
clusters (Einasto+, 2001)]]
}
Identifier = "GalaxySuperclusters",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
DrawElements = false,
Color = { 1.0, 1.0, 1.0 },
Opacity = 0.65,
File = speck .. "/superclust.speck",
Texture = textures .. "/point3A.png",
LabelFile = speck .. "/superclust.label",
Unit = "Mpc",
TextColor = { 0.9, 0.9, 0.9 },
ScaleFactor = 531.0,
TextSize = 22.44,
TextMinMaxSize = { 8, 20 },
DrawLabels = true,
--BillboardMinMaxSize = { 0.0, 7.2 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Galaxy Superclusters",
Path = "/Universe/Galaxies",
Description = [[Census: 33 labels. DU Version 1.3.<br> The superclusters dataset
is a set of labels that mark the major galaxy superclusters in the local universe.
They correspond to, and should be viewed with, the Abell clusters. Astronomers
estimate there are 10 million superclusters in the observable universe.
(Description from URL) <br><br> Data Reference: Superclusters of Abell and X-ray
clusters (Einasto+, 2001)]]
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Galaxy Superclusters",
Version = "2.0",
Description = [[Digital Universe asset for Galaxy Superclusters.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"GalaxySuperclusters"}
Name = "Galaxy Superclusters",
Version = "2.0",
Description = [[Digital Universe asset for Galaxy Superclusters.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"GalaxySuperclusters"}
}
@@ -3,61 +3,60 @@ local assetHelper = asset.require('util/asset_helper')
local textures = asset.syncedResource({
Name = "Supernova Remnants Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_supernovaremnants_textures",
Version = 1
Name = "Supernova Remnants Textures",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_supernovaremnants_textures",
Version = 1
})
local speck = asset.syncedResource({
Name = "Supernova Remnants Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_supernovaremnants_speck",
Version = 2
Name = "Supernova Remnants Speck Files",
Type = "HttpSynchronization",
Identifier = "digitaluniverse_supernovaremnants_speck",
Version = 2
})
local object = {
Identifier = "SupernovaRemnants",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 0.5, 0.0 },
Opacity = 0.32,
File = speck .. "/snr.speck",
Texture = textures .. "/point4.png",
PolygonSides = 7,
LabelFile = speck .. "/snr.label",
TextColor = { 0.6, 0.46, 0.0 },
ScaleFactor = 424,
TextSize = 16.44,
TextMinSize = 4.0,
TextMaxSize = 200.0,
--CorrectionSizeEndDistance = 17.5,
--CorrectionSizeFactor = 13.96,
Unit = "pc",
BillboardMaxSize = 500,
EnablePixelSizeControl = true
},
GUI = {
Name = "Supernova Remnants",
Path = "/Milky Way",
Description = [[Census: 112 supernova remnants.<br> DU Version 3.7. A supernova
remnant is the ejected gas that results from a supernova. It glows for a
cosmically short period of time before mixing with the interstellar medium.
(Description from URL) <br><br> Data Reference: The First Fermi LAT SNR
Catalog (Acero+, 2016)]],
}
Identifier = "SupernovaRemnants",
Renderable = {
Type = "RenderableBillboardsCloud",
Enabled = false,
Color = { 1.0, 0.5, 0.0 },
Opacity = 0.32,
File = speck .. "/snr.speck",
Texture = textures .. "/point4.png",
PolygonSides = 7,
LabelFile = speck .. "/snr.label",
Unit = "pc",
TextColor = { 0.6, 0.46, 0.0 },
ScaleFactor = 424,
TextSize = 16.44,
TextMinMaxSize = { 4, 100 },
--CorrectionSizeEndDistance = 17.5,
--CorrectionSizeFactor = 13.96,
BillboardMinMaxSize = { 0.0, 500.0 },
EnablePixelSizeControl = true
},
GUI = {
Name = "Supernova Remnants",
Path = "/Milky Way",
Description = [[Census: 112 supernova remnants.<br> DU Version 3.7. A supernova
remnant is the ejected gas that results from a supernova. It glows for a
cosmically short period of time before mixing with the interstellar medium.
(Description from URL) <br><br> Data Reference: The First Fermi LAT SNR
Catalog (Acero+, 2016)]],
}
}
assetHelper.registerSceneGraphNodesAndExport(asset, { object })
asset.meta = {
Name = "Supernova Remnants",
Version = "2.0",
Description = [[Digital Universe asset for Supernova Remnants.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"SupernovaRemnants"}
Name = "Supernova Remnants",
Version = "2.0",
Description = [[Digital Universe asset for Supernova Remnants.]],
Author = "Brian Abbott (AMNH)",
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
License = "AMNH Digital Universe",
Identifiers = {"SupernovaRemnants"}
}

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