Merged in branch develop to feature/globebrowsing
48
.gitignore
vendored
@@ -40,16 +40,15 @@ gui/externaltimecontrol/CMakeLists.txt
|
||||
gui/externaltimecontrol/main.cpp
|
||||
gui/externaltimecontrol/mainwindow.cpp
|
||||
gui/externaltimecontrol/mainwindow.h
|
||||
include/openspace/version.h
|
||||
data/scene/67P/obj/67P_rotated_5_130.obj
|
||||
data/spice/NewHorizonsKernels/
|
||||
data/spice/RosettaKernels/
|
||||
data/scene/plutoprojectionhybrid/textures/
|
||||
data/scene/plutoprojectionhybrid/textures/Shenk_180.jpg
|
||||
data/scene/plutoprojectionhybrid/textures/barycenter.png
|
||||
data/scene/plutoprojectionhybrid/textures/defaultProj.png
|
||||
data/scene/plutoprojectionhybrid/textures/pluto_highres_180.jpg
|
||||
data/scene/plutoprojectionhybrid/utcEvents.txt
|
||||
data/scene/newhorizons/pluto/plutoprojection/textures/
|
||||
data/scene/newhorizons/pluto/plutoprojection/textures/Shenk_180.jpg
|
||||
data/scene/newhorizons/pluto/plutoprojection/textures/barycenter.png
|
||||
data/scene/newhorizons/pluto/plutoprojection/textures/defaultProj.png
|
||||
data/scene/newhorizons/pluto/plutoprojection/textures/pluto_highres_180.jpg
|
||||
data/scene/newhorizons/pluto/plutoprojection/utcEvents.txt
|
||||
data/scene/rosetta/obj/mainbodyros.obj
|
||||
data/scene/rosetta/obj/solarpanelleft.obj
|
||||
data/scene/rosetta/obj/solarpanelright.obj
|
||||
@@ -69,7 +68,7 @@ data/scene/uranus/textures/uranus.jpg
|
||||
data/scene/venus/textures/venus.jpg
|
||||
data/scene/vestaprojection/VestaComet/VestaComet_5000.obj
|
||||
data/spice/DawnKernels/
|
||||
data/scene/jupiterprojection/ProjectionsOfInterest/
|
||||
data/scene/newhorizons/jupiter/jupiterprojection/ProjectionsOfInterest/
|
||||
data/scene/67P/textures/black.jpg
|
||||
data/scene/67P/textures/defaultProj.jpg
|
||||
data/scene/67P/textures/gray.jpg
|
||||
@@ -77,12 +76,12 @@ data/scene/67P/textures/gray.png
|
||||
data/scene/67P/textures/texmapflipped.jpg
|
||||
data/scene/67P/textures/white.jpg
|
||||
data/scene/67P/textures/white.png
|
||||
data/scene/callistoprojection/textures/callisto.jpg
|
||||
data/scene/newhorizons/jupiter/callistoprojection/textures/callisto.jpg
|
||||
data/scene/ceres/textures/gray.png
|
||||
data/scene/charonprojection/textures/Charon-Text.png
|
||||
data/scene/charonprojection/textures/charon_highres.jpg
|
||||
data/scene/charonprojection/textures/charon_highres_annotated.jpg
|
||||
data/scene/charonprojection/textures/defaultProj.png
|
||||
data/scene/newhorizons/pluto/charonprojection/textures/Charon-Text.png
|
||||
data/scene/newhorizons/pluto/charonprojection/textures/charon_highres.jpg
|
||||
data/scene/newhorizons/pluto/charonprojection/textures/charon_highres_annotated.jpg
|
||||
data/scene/newhorizons/pluto/charonprojection/textures/defaultProj.png
|
||||
data/scene/dawn/obj/mainbodydawn.obj
|
||||
data/scene/dawn/obj/solarpanelleft.obj
|
||||
data/scene/dawn/obj/solarpanelright.obj
|
||||
@@ -93,25 +92,25 @@ data/scene/earth/textures/earth_bluemarble.jpg
|
||||
data/scene/earth/textures/earth_bluemarble_height.jpg
|
||||
data/scene/earth/textures/earth_night.jpg
|
||||
data/scene/earth/textures/marker.png
|
||||
data/scene/europaprojection/textures/europa.jpg
|
||||
data/scene/ganymedeprojection/textures/ganymede.jpg
|
||||
data/scene/ioprojection/textures/io.jpg
|
||||
data/scene/newhorizons/jupiter/europaprojection/textures/europa.jpg
|
||||
data/scene/newhorizons/jupiter/ganymedeprojection/textures/ganymede.jpg
|
||||
data/scene/newhorizons/jupiter/ioprojection/textures/io.jpg
|
||||
data/scene/jupiter/textures/jupiter.jpg
|
||||
data/scene/mars/textures/mars.jpg
|
||||
data/scene/mercury/textures/mercury.jpg
|
||||
data/scene/milkyway/textures/DarkUniverse_mellinger_8k.jpg
|
||||
data/scene/neptune/textures/neptune.jpg
|
||||
data/scene/newhorizons/models/Labels.obj
|
||||
data/scene/newhorizons/models/NewHorizonsCleanModel.obj
|
||||
data/scene/newhorizons/textures/NHTextureFlipCol.jpg
|
||||
data/scene/newhorizons/textures/goldfoilbump.tif
|
||||
data/scene/newhorizons/textures/labels.png
|
||||
data/scene/newhorizons/newhorizons/models/Labels.obj
|
||||
data/scene/newhorizons/newhorizons/models/NewHorizonsCleanModel.obj
|
||||
data/scene/newhorizons/newhorizons/textures/NHTextureFlipCol.jpg
|
||||
data/scene/newhorizons/newhorizons/textures/goldfoilbump.tif
|
||||
data/scene/newhorizons/newhorizons/textures/labels.png
|
||||
data/scene/pluto/textures/
|
||||
data/scene/pluto/textures/Shenk_180.jpg
|
||||
data/scene/pluto/textures/pluto_highres_180.jpg
|
||||
data/scene/plutoprojectionhybrid/assets/core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt
|
||||
data/scene/plutoprojectionhybrid/textures/3.jpg
|
||||
data/scene/plutoprojectionhybrid/textures/Pluto-Text.png
|
||||
data/scene/newhorizons/pluto/plutoprojection/assets/core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt
|
||||
data/scene/newhorizons/pluto/plutoprojection/textures/3.jpg
|
||||
data/scene/newhorizons/pluto/plutoprojection/textures/Pluto-Text.png
|
||||
data/scene/vestaprojection/VestaComet/VestaComet.mtl
|
||||
data/scene/vestaprojection/textures/defaultProj_backup.png
|
||||
data/scene/vestaprojection/textures/dummy.jpg
|
||||
@@ -120,3 +119,4 @@ data/scene/vestaprojection/textures/projectMe.png
|
||||
data/spice/MAR063.BSP
|
||||
data/spice/de430_1850-2150.bsp
|
||||
data/spice/jup260.bsp
|
||||
data/scene/newhorizons/pluto/plutoprojection/images
|
||||
|
||||
@@ -41,7 +41,6 @@ include(${GHOUL_BASE_DIR}/support/cmake/CopySharedLibraries.cmake)
|
||||
test_compiler_compatibility()
|
||||
cleanup_project()
|
||||
set_build_output_directories()
|
||||
configure_openspace_version(0 3 0 "prerelease-8")
|
||||
|
||||
option(OPENSPACE_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF)
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ InfoWidget::InfoWidget(QString name, int totalBytes)
|
||||
setLayout(layout);
|
||||
}
|
||||
|
||||
void InfoWidget::update(openspace::DownloadManager::FileFuture* f) {
|
||||
void InfoWidget::update(std::shared_ptr<openspace::DownloadManager::FileFuture> f) {
|
||||
_bytes->setText(
|
||||
QString("%1 / %2")
|
||||
.arg(f->currentSize)
|
||||
|
||||
@@ -40,7 +40,7 @@ Q_OBJECT
|
||||
public:
|
||||
InfoWidget(QString name, int totalBytes = -1);
|
||||
|
||||
void update(openspace::DownloadManager::FileFuture* f);
|
||||
void update(std::shared_ptr<openspace::DownloadManager::FileFuture> f);
|
||||
void update(libtorrent::torrent_status s);
|
||||
|
||||
void error(QString message);
|
||||
|
||||
@@ -166,11 +166,11 @@ QScrollBar::add-page, QScrollBar::sub-page {
|
||||
)style";
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
QApplication app(argc, argv);
|
||||
QApplication app(argc, argv);
|
||||
app.setStyleSheet(style);
|
||||
|
||||
MainWindow window;
|
||||
window.show();
|
||||
MainWindow window;
|
||||
window.show();
|
||||
|
||||
return app.exec();
|
||||
return app.exec();
|
||||
}
|
||||
|
||||
@@ -104,58 +104,58 @@ MainWindow::MainWindow()
|
||||
|
||||
QWidget* container = new QWidget;
|
||||
{
|
||||
QGridLayout* layout = new QGridLayout;
|
||||
QGridLayout* innerLayout = new QGridLayout;
|
||||
|
||||
QLabel* shortcutLabel = new QLabel("Keyboard Shortcuts:");
|
||||
layout->addWidget(shortcutLabel, 0, 0);
|
||||
innerLayout->addWidget(shortcutLabel, 0, 0);
|
||||
QPushButton* shortcutButton = new QPushButton("Open...");
|
||||
QObject::connect(shortcutButton, SIGNAL(clicked(bool)),
|
||||
this, SLOT(shortcutButtonPressed())
|
||||
);
|
||||
layout->addWidget(shortcutButton, 0, 1);
|
||||
innerLayout->addWidget(shortcutButton, 0, 1);
|
||||
|
||||
layout->setRowStretch(1, 10);
|
||||
innerLayout->setRowStretch(1, 10);
|
||||
|
||||
QLabel* configurationSelectionLabel = new QLabel("Configuration:");
|
||||
layout->addWidget(configurationSelectionLabel, 2, 0);
|
||||
innerLayout->addWidget(configurationSelectionLabel, 2, 0);
|
||||
_configurations = new QComboBox;
|
||||
layout->addWidget(_configurations, 2, 1);
|
||||
innerLayout->addWidget(_configurations, 2, 1);
|
||||
|
||||
QLabel* sceneSelectionLabel = new QLabel("Scenes:");
|
||||
layout->addWidget(sceneSelectionLabel, 3, 0);
|
||||
innerLayout->addWidget(sceneSelectionLabel, 3, 0);
|
||||
_scenes = new QComboBox;
|
||||
layout->addWidget(_scenes, 3, 1);
|
||||
innerLayout->addWidget(_scenes, 3, 1);
|
||||
|
||||
container->setLayout(layout);
|
||||
container->setLayout(innerLayout);
|
||||
}
|
||||
layout->addWidget(container, 1, 1);
|
||||
|
||||
container = new QWidget;
|
||||
{
|
||||
QBoxLayout* layout = new QHBoxLayout;
|
||||
QBoxLayout* innerLayout = new QHBoxLayout;
|
||||
|
||||
QPushButton* cancelButton = new QPushButton("Cancel");
|
||||
QObject::connect(
|
||||
cancelButton, SIGNAL(clicked(bool)),
|
||||
QApplication::instance(), SLOT(quit())
|
||||
);
|
||||
layout->addWidget(cancelButton);
|
||||
innerLayout->addWidget(cancelButton);
|
||||
|
||||
QPushButton* syncButton = new QPushButton("Sync");
|
||||
QObject::connect(
|
||||
syncButton, SIGNAL(clicked(bool)),
|
||||
this, SLOT(syncButtonPressed())
|
||||
);
|
||||
layout->addWidget(syncButton);
|
||||
innerLayout->addWidget(syncButton);
|
||||
|
||||
QPushButton* startButton = new QPushButton("Start");
|
||||
QObject::connect(
|
||||
startButton, SIGNAL(clicked(bool)),
|
||||
this, SLOT(startButtonPressed())
|
||||
);
|
||||
layout->addWidget(startButton);
|
||||
innerLayout->addWidget(startButton);
|
||||
|
||||
container->setLayout(layout);
|
||||
container->setLayout(innerLayout);
|
||||
}
|
||||
layout->addWidget(container, 2, 1);
|
||||
|
||||
@@ -257,8 +257,8 @@ void MainWindow::newsNetworkError() {
|
||||
}
|
||||
|
||||
void MainWindow::newsReadyRead() {
|
||||
QByteArray data = _newsReply->readAll();
|
||||
QString news = QString::fromLatin1(data);
|
||||
QByteArray arrayData = _newsReply->readAll();
|
||||
QString news = QString::fromLatin1(arrayData);
|
||||
_informationWidget->setText(news);
|
||||
_newsReply->deleteLater();
|
||||
}
|
||||
|
||||
@@ -79,8 +79,8 @@ private:
|
||||
//class MainWindow : public QWidget {
|
||||
//Q_OBJECT
|
||||
//public:
|
||||
// MainWindow();
|
||||
// ~MainWindow();
|
||||
// MainWindow();
|
||||
// ~MainWindow();
|
||||
//
|
||||
// std::string nextTarget() const;
|
||||
//
|
||||
@@ -94,7 +94,7 @@ private:
|
||||
// void onSocketConnected();
|
||||
// void onSocketDisconnected();
|
||||
//
|
||||
// void readTcpData();
|
||||
// void readTcpData();
|
||||
// void handleStatusMessage(QByteArray data);
|
||||
// void handlePlaybook(QByteArray data);
|
||||
//
|
||||
@@ -106,7 +106,7 @@ private:
|
||||
// InformationWidget* _informationWidget;
|
||||
// TimelineWidget* _timelineWidget;
|
||||
//
|
||||
// QTcpSocket* _socket;
|
||||
// QTcpSocket* _socket;
|
||||
//
|
||||
// bool _hasHongKangTimeline = false;
|
||||
// bool _hasLabelTimeline = false;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
#include "infowidget.h"
|
||||
|
||||
#include <openspace/version.h>
|
||||
#include <openspace/openspace.h>
|
||||
|
||||
#include <ghoul/ghoul.h>
|
||||
#include <ghoul/filesystem/filesystem.h>
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <QApplication>
|
||||
#include <QCheckBox>
|
||||
#include <QDir>
|
||||
#include <QDirIterator>
|
||||
#include <QFileInfo>
|
||||
#include <QGridLayout>
|
||||
#include <QGroupBox>
|
||||
@@ -138,9 +139,9 @@ SyncWidget::SyncWidget(QWidget* parent, Qt::WindowFlags f)
|
||||
libtorrent::session_settings settings = _session->settings();
|
||||
settings.user_agent =
|
||||
"OpenSpace/" +
|
||||
std::to_string(OPENSPACE_VERSION_MAJOR) + "." +
|
||||
std::to_string(OPENSPACE_VERSION_MINOR) + "." +
|
||||
std::to_string(OPENSPACE_VERSION_PATCH);
|
||||
std::to_string(openspace::OPENSPACE_VERSION_MAJOR) + "." +
|
||||
std::to_string(openspace::OPENSPACE_VERSION_MINOR) + "." +
|
||||
std::to_string(openspace::OPENSPACE_VERSION_PATCH);
|
||||
settings.allow_multiple_connections_per_ip = true;
|
||||
settings.ignore_limits_on_local_network = true;
|
||||
settings.connection_speed = 20;
|
||||
@@ -230,7 +231,7 @@ void SyncWidget::setSceneFiles(QMap<QString, QString> sceneFiles) {
|
||||
}
|
||||
|
||||
void SyncWidget::clear() {
|
||||
for (openspace::DownloadManager::FileFuture* f : _futures)
|
||||
for (std::shared_ptr<openspace::DownloadManager::FileFuture> f : _futures)
|
||||
f->abortDownload = true;
|
||||
|
||||
using libtorrent::torrent_handle;
|
||||
@@ -254,7 +255,7 @@ void SyncWidget::handleDirectFiles() {
|
||||
for (const DirectFile& f : _directFiles) {
|
||||
LDEBUG(f.url.toStdString() << " -> " << f.destination.toStdString());
|
||||
|
||||
openspace::DownloadManager::FileFuture* future = DlManager.downloadFile(
|
||||
std::shared_ptr<openspace::DownloadManager::FileFuture> future = DlManager.downloadFile(
|
||||
f.url.toStdString(),
|
||||
absPath("${SCENE}/" + f.module.toStdString() + "/" + f.destination.toStdString()),
|
||||
OverwriteFiles
|
||||
@@ -275,8 +276,8 @@ void SyncWidget::handleFileRequest() {
|
||||
LDEBUG(f.identifier.toStdString() << " (" << f.version << ") -> " << f.destination.toStdString());
|
||||
|
||||
ghoul::filesystem::Directory d = FileSys.currentDirectory();
|
||||
std::string thisDirectory = absPath("${SCENE}/" + f.module.toStdString() + "/");
|
||||
FileSys.setCurrentDirectory(thisDirectory);
|
||||
// std::string thisDirectory = absPath("${SCENE}/" + f.module.toStdString() + "/");
|
||||
FileSys.setCurrentDirectory(f.baseDir.toStdString());
|
||||
|
||||
|
||||
std::string identifier = f.identifier.toStdString();
|
||||
@@ -301,8 +302,9 @@ void SyncWidget::handleTorrentFiles() {
|
||||
LDEBUG(f.file.toStdString() << " -> " << f.destination.toStdString());
|
||||
|
||||
ghoul::filesystem::Directory d = FileSys.currentDirectory();
|
||||
std::string thisDirectory = absPath("${SCENE}/" + f.module.toStdString() + "/");
|
||||
FileSys.setCurrentDirectory(thisDirectory);
|
||||
// std::string thisDirectory = absPath("${SCENE}/" + f.module.toStdString() + "/");
|
||||
FileSys.setCurrentDirectory(f.baseDir.toStdString());
|
||||
// FileSys.setCurrentDirectory(thisDirectory);
|
||||
|
||||
QString file = QString::fromStdString(absPath(f.file.toStdString()));
|
||||
|
||||
@@ -367,18 +369,65 @@ void SyncWidget::syncButtonPressed() {
|
||||
LERROR("Could not find 'Modules'");
|
||||
return;
|
||||
}
|
||||
|
||||
QStringList modulesList;
|
||||
for (int i = 1; i <= modules.size(); ++i) {
|
||||
std::string module = modules.value<std::string>(std::to_string(i));
|
||||
modulesList.append(QString::fromStdString(module));
|
||||
}
|
||||
modulesList.append("common");
|
||||
|
||||
|
||||
struct ModuleInformation {
|
||||
QString moduleName;
|
||||
QString moduleDatafile;
|
||||
QString modulePath;
|
||||
};
|
||||
|
||||
QDir sceneDir(scene);
|
||||
sceneDir.cdUp();
|
||||
for (QString module : modulesList) {
|
||||
QString dataFile = sceneDir.absoluteFilePath(module + "/" + module + ".data");
|
||||
QList<ModuleInformation> modulesList;
|
||||
for (int i = 1; i <= modules.size(); ++i) {
|
||||
std::string module = modules.value<std::string>(std::to_string(i));
|
||||
std::string shortModule = module;
|
||||
|
||||
std::string::size_type pos = module.find_last_of(FileSys.PathSeparator);
|
||||
if (pos != std::string::npos) {
|
||||
shortModule = module.substr(pos+1);
|
||||
}
|
||||
|
||||
QString m = QString::fromStdString(module);
|
||||
|
||||
QString dataFile = sceneDir.absoluteFilePath(
|
||||
QString::fromStdString(module) + "/" + QString::fromStdString(shortModule) + ".data"
|
||||
);
|
||||
|
||||
if (QFileInfo(dataFile).exists()) {
|
||||
modulesList.append({
|
||||
QString::fromStdString(module),
|
||||
dataFile,
|
||||
sceneDir.absolutePath() + "/" + QString::fromStdString(module)
|
||||
});
|
||||
}
|
||||
else {
|
||||
QDir metaModuleDir = sceneDir;
|
||||
metaModuleDir.cd(QString::fromStdString(module));
|
||||
|
||||
QDirIterator it(metaModuleDir.absolutePath(), QStringList() << "*.data", QDir::Files, QDirIterator::Subdirectories);
|
||||
while (it.hasNext()) {
|
||||
QString v = it.next();
|
||||
QDir d(v);
|
||||
d.cdUp();
|
||||
|
||||
modulesList.append({
|
||||
d.dirName(),
|
||||
v,
|
||||
d.absolutePath()
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
modulesList.append({
|
||||
"common",
|
||||
sceneDir.absolutePath() + "/common/common.data",
|
||||
sceneDir.absolutePath() + "/common"
|
||||
});
|
||||
|
||||
for (const ModuleInformation& module : modulesList) {
|
||||
QString dataFile = module.moduleDatafile;
|
||||
// QString dataFile = sceneDir.absoluteFilePath(module + "/" + module + ".data");
|
||||
|
||||
if (QFileInfo(dataFile).exists()) {
|
||||
ghoul::Dictionary dataDictionary;
|
||||
@@ -407,9 +456,10 @@ void SyncWidget::syncButtonPressed() {
|
||||
dest = d.value<std::string>(DestinationKey);
|
||||
|
||||
_directFiles.append({
|
||||
module,
|
||||
module.moduleName,
|
||||
QString::fromStdString(url),
|
||||
QString::fromStdString(dest)
|
||||
QString::fromStdString(dest),
|
||||
module.modulePath
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -436,9 +486,10 @@ void SyncWidget::syncButtonPressed() {
|
||||
int version = static_cast<int>(d.value<double>(VersionKey));
|
||||
|
||||
_fileRequests.append({
|
||||
module,
|
||||
module.moduleName,
|
||||
QString::fromStdString(url),
|
||||
QString::fromStdString(dest),
|
||||
module.modulePath,
|
||||
version
|
||||
});
|
||||
}
|
||||
@@ -462,9 +513,10 @@ void SyncWidget::syncButtonPressed() {
|
||||
dest = "";
|
||||
|
||||
_torrentFiles.append({
|
||||
module,
|
||||
module.moduleName,
|
||||
QString::fromStdString(file),
|
||||
QString::fromStdString(dest)
|
||||
QString::fromStdString(dest),
|
||||
module.modulePath
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -571,8 +623,8 @@ void SyncWidget::handleTimer() {
|
||||
using namespace libtorrent;
|
||||
using FileFuture = openspace::DownloadManager::FileFuture;
|
||||
|
||||
std::vector<FileFuture*> toRemove;
|
||||
for (FileFuture* f : _futures) {
|
||||
std::vector<std::shared_ptr<FileFuture>> toRemove;
|
||||
for (std::shared_ptr<FileFuture> f : _futures) {
|
||||
InfoWidget* w = _futureInfoWidgetMap[f];
|
||||
|
||||
if (CleanInfoWidgets && (f->isFinished || f->isAborted)) {
|
||||
@@ -585,13 +637,12 @@ void SyncWidget::handleTimer() {
|
||||
w->update(f);
|
||||
}
|
||||
|
||||
for (FileFuture* f : toRemove) {
|
||||
for (std::shared_ptr<FileFuture> f : toRemove) {
|
||||
_futures.erase(std::remove(_futures.begin(), _futures.end(), f), _futures.end());
|
||||
delete f;
|
||||
}
|
||||
|
||||
while (_mutex.test_and_set()) {}
|
||||
for (openspace::DownloadManager::FileFuture* f : _futuresToAdd) {
|
||||
for (std::shared_ptr<FileFuture> f : _futuresToAdd) {
|
||||
InfoWidget* w = new InfoWidget(QString::fromStdString(f->filePath), -1);
|
||||
_downloadLayout->insertWidget(_downloadLayout->count() - 1, w);
|
||||
|
||||
@@ -679,7 +730,7 @@ void SyncWidget::handleTimer() {
|
||||
}
|
||||
|
||||
void SyncWidget::handleFileFutureAddition(
|
||||
const std::vector<openspace::DownloadManager::FileFuture*>& futures)
|
||||
const std::vector<std::shared_ptr<openspace::DownloadManager::FileFuture>>& futures)
|
||||
{
|
||||
while (_mutex.test_and_set()) {}
|
||||
_futuresToAdd.insert(_futuresToAdd.end(), futures.begin(), futures.end());
|
||||
|
||||
@@ -65,12 +65,14 @@ private:
|
||||
QString module;
|
||||
QString url;
|
||||
QString destination;
|
||||
QString baseDir;
|
||||
};
|
||||
|
||||
struct FileRequest {
|
||||
QString module;
|
||||
QString identifier;
|
||||
QString destination;
|
||||
QString baseDir;
|
||||
int version;
|
||||
};
|
||||
|
||||
@@ -78,12 +80,13 @@ private:
|
||||
QString module;
|
||||
QString file;
|
||||
QString destination;
|
||||
QString baseDir;
|
||||
};
|
||||
|
||||
void clear();
|
||||
QStringList selectedScenes() const;
|
||||
|
||||
void handleFileFutureAddition(const std::vector<openspace::DownloadManager::FileFuture*>& futures);
|
||||
void handleFileFutureAddition(const std::vector<std::shared_ptr<openspace::DownloadManager::FileFuture>>& futures);
|
||||
|
||||
void handleDirectFiles();
|
||||
void handleFileRequest();
|
||||
@@ -101,10 +104,10 @@ private:
|
||||
QList<FileRequest> _fileRequests;
|
||||
QList<TorrentFile> _torrentFiles;
|
||||
|
||||
std::vector<openspace::DownloadManager::FileFuture*> _futures;
|
||||
std::map<openspace::DownloadManager::FileFuture*, InfoWidget*> _futureInfoWidgetMap;
|
||||
std::vector<std::shared_ptr<openspace::DownloadManager::FileFuture>> _futures;
|
||||
std::map<std::shared_ptr<openspace::DownloadManager::FileFuture>, InfoWidget*> _futureInfoWidgetMap;
|
||||
|
||||
std::vector<openspace::DownloadManager::FileFuture*> _futuresToAdd;
|
||||
std::vector<std::shared_ptr<openspace::DownloadManager::FileFuture>> _futuresToAdd;
|
||||
std::atomic_flag _mutex;
|
||||
};
|
||||
|
||||
|
||||
@@ -167,9 +167,9 @@ int main(int argc, char** argv) {
|
||||
LDEBUG("Starting rendering loop");
|
||||
_sgctEngine->render();
|
||||
|
||||
//clear function bindings to avoid crash after destroying the OpenSpace Engine
|
||||
sgct::MessageHandler::instance()->setLogToCallback(false);
|
||||
sgct::MessageHandler::instance()->setLogCallback(nullptr);
|
||||
//clear function bindings to avoid crash after destroying the OpenSpace Engine
|
||||
sgct::MessageHandler::instance()->setLogToCallback(false);
|
||||
sgct::MessageHandler::instance()->setLogCallback(nullptr);
|
||||
|
||||
LDEBUG("Destroying OpenSpaceEngine");
|
||||
openspace::OpenSpaceEngine::destroy();
|
||||
@@ -183,7 +183,7 @@ int main(int argc, char** argv) {
|
||||
}
|
||||
|
||||
void mainInitFunc() {
|
||||
//is this node the master? (must be set after call to _sgctEngine->init())
|
||||
//is this node the master? (must be set after call to _sgctEngine->init())
|
||||
OsEng.setMaster(_sgctEngine->isMaster());
|
||||
|
||||
bool success = OsEng.initialize();
|
||||
@@ -199,7 +199,7 @@ void mainInitFunc() {
|
||||
size_t nWindows = _sgctEngine->getNumberOfWindows();
|
||||
for (size_t i = 0; i < nWindows; ++i) {
|
||||
sgct::SGCTWindow* w = _sgctEngine->getWindowPtr(i);
|
||||
size_t nViewports = nViewports = w->getNumberOfViewports();
|
||||
size_t nViewports = w->getNumberOfViewports();
|
||||
for (size_t j = 0; j < nViewports; ++j) {
|
||||
sgct_core::Viewport* v = w->getViewport(j);
|
||||
ghoul_assert(v != nullptr, "Number of reported viewports was incorrect");
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
class ConfigurationWidget : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ConfigurationWidget(QWidget* parent);
|
||||
ConfigurationWidget(QWidget* parent);
|
||||
|
||||
void socketConnected();
|
||||
void socketDisconnected();
|
||||
|
||||
@@ -35,7 +35,7 @@ class QSlider;
|
||||
class ControlWidget : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ControlWidget(QWidget* parent);
|
||||
ControlWidget(QWidget* parent);
|
||||
|
||||
void update(QString currentTime, QString currentDelta);
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
class InformationWidget : public QTextEdit {
|
||||
Q_OBJECT
|
||||
public:
|
||||
InformationWidget(QWidget* parent);
|
||||
InformationWidget(QWidget* parent);
|
||||
void socketConnected();
|
||||
void socketDisconnected();
|
||||
|
||||
|
||||
@@ -28,15 +28,15 @@
|
||||
|
||||
static const QString style = R"style(
|
||||
QWidget {
|
||||
background-color: rgb(80, 80, 80);
|
||||
font-family: Helvetica;
|
||||
background-color: rgb(80, 80, 80);
|
||||
font-family: Helvetica;
|
||||
}
|
||||
|
||||
QGroupBox {
|
||||
background-color: qlineargradient(
|
||||
x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 #858585,
|
||||
stop: 1 #959595);
|
||||
x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 #858585,
|
||||
stop: 1 #959595);
|
||||
border: 2px solid gray;
|
||||
border-radius: 5px;
|
||||
margin-top: 4ex;
|
||||
@@ -44,7 +44,7 @@ QGroupBox {
|
||||
}
|
||||
|
||||
QGroupBox::title {
|
||||
background-color: #E0E0E0;
|
||||
background-color: #E0E0E0;
|
||||
border: 2px solid gray;
|
||||
border-radius: 5px;
|
||||
subcontrol-origin: margin;
|
||||
@@ -60,10 +60,10 @@ QSlider::groove:horizontal {
|
||||
border: 1px solid #999999;
|
||||
height: 8px; /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */
|
||||
background: qlineargradient(
|
||||
x1:0, y1:0, x2:1, y2:0,
|
||||
stop:0 #c4c4c4,
|
||||
stop:0.5 #555555,
|
||||
stop:1 #c4c4c4
|
||||
x1:0, y1:0, x2:1, y2:0,
|
||||
stop:0 #c4c4c4,
|
||||
stop:0.5 #555555,
|
||||
stop:1 #c4c4c4
|
||||
);
|
||||
margin: 2px 0;
|
||||
}
|
||||
@@ -77,7 +77,7 @@ QSlider::handle:horizontal {
|
||||
}
|
||||
|
||||
QPushButton {
|
||||
background-color: lightgray;
|
||||
background-color: lightgray;
|
||||
border-style: outset;
|
||||
border-width: 0.5px;
|
||||
border-radius: 5px;
|
||||
@@ -87,16 +87,16 @@ QPushButton {
|
||||
}
|
||||
|
||||
QPushButton#connection {
|
||||
background-color: lightgreen;
|
||||
background-color: lightgreen;
|
||||
}
|
||||
|
||||
QPushButton#connection:pressed {
|
||||
background-color: green;
|
||||
background-color: green;
|
||||
}
|
||||
|
||||
|
||||
QPushButton#pause, QPushButton#play {
|
||||
padding: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
QPushButton#pause:pressed, QPushButton#play:pressed, QPushButton:pressed {
|
||||
@@ -112,7 +112,7 @@ QCombobox {
|
||||
}
|
||||
|
||||
QComboBox:editable {
|
||||
background: lightgrey;
|
||||
background: lightgrey;
|
||||
}
|
||||
|
||||
QComboBox QAbstractItemView {
|
||||
@@ -123,34 +123,34 @@ QComboBox QAbstractItemView {
|
||||
}
|
||||
|
||||
QLabel#label {
|
||||
font-size: 13px;
|
||||
background-color: transparent;
|
||||
font-variant: small-caps;
|
||||
font-size: 13px;
|
||||
background-color: transparent;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
QLabel#value {
|
||||
font-family: monospace;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
background-color: transparent;
|
||||
font-family: monospace;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
QWidget#background {
|
||||
background-color: transparent;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
QTextEdit {
|
||||
font-family: monospace;
|
||||
font-family: monospace;
|
||||
}
|
||||
)style";
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
QApplication app(argc, argv);
|
||||
QApplication app(argc, argv);
|
||||
|
||||
app.setStyleSheet(style);
|
||||
|
||||
MainWindow window;
|
||||
window.show();
|
||||
MainWindow window;
|
||||
window.show();
|
||||
|
||||
return app.exec();
|
||||
return app.exec();
|
||||
}
|
||||
|
||||
@@ -67,9 +67,9 @@ MainWindow::MainWindow()
|
||||
, _timeControlWidget(nullptr)
|
||||
, _informationWidget(nullptr)
|
||||
, _timelineWidget(nullptr)
|
||||
, _socket(nullptr)
|
||||
, _socket(nullptr)
|
||||
{
|
||||
setWindowTitle("OpenSpace Timeline");
|
||||
setWindowTitle("OpenSpace Timeline");
|
||||
|
||||
_configurationWidget = new ConfigurationWidget(this);
|
||||
_configurationWidget->setMinimumWidth(350);
|
||||
@@ -79,7 +79,7 @@ MainWindow::MainWindow()
|
||||
_informationWidget->setMinimumWidth(350);
|
||||
_timelineWidget = new TimelineWidget(this);
|
||||
|
||||
QGridLayout* layout = new QGridLayout;
|
||||
QGridLayout* layout = new QGridLayout;
|
||||
layout->addWidget(_configurationWidget, 0, 0);
|
||||
layout->addWidget(_timeControlWidget, 1, 0);
|
||||
layout->addWidget(_informationWidget, 2, 0);
|
||||
@@ -102,7 +102,7 @@ MainWindow::MainWindow()
|
||||
this, SLOT(sendScript(QString))
|
||||
);
|
||||
|
||||
setLayout(layout);
|
||||
setLayout(layout);
|
||||
|
||||
_configurationWidget->socketDisconnected();
|
||||
_timeControlWidget->socketDisconnected();
|
||||
@@ -111,7 +111,7 @@ MainWindow::MainWindow()
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow() {
|
||||
delete _socket;
|
||||
delete _socket;
|
||||
}
|
||||
|
||||
void MainWindow::onConnect(QString host, QString port) {
|
||||
@@ -138,7 +138,7 @@ void MainWindow::readTcpData() {
|
||||
static const uint16_t MessageTypePlayBookHongKang = 4;
|
||||
|
||||
QByteArray data = continuousData.append(_socket->readAll());
|
||||
int d = data.size();
|
||||
// int d = data.size();
|
||||
|
||||
if (QString(data) == "Connected to SGCT!\r\n") {
|
||||
continuousData.clear();
|
||||
@@ -191,7 +191,7 @@ void MainWindow::readTcpData() {
|
||||
case MessageTypePlayBookHongKang:
|
||||
case MessageTypePlayBookLabel:
|
||||
{
|
||||
const char* payloadDebug = data.mid(2).data();
|
||||
// const char* payloadDebug = data.mid(2).data();
|
||||
|
||||
size_t beginning = 0;
|
||||
uint32_t size = readFromBuffer<uint32_t>(data.mid(2).data(), beginning);
|
||||
|
||||
@@ -38,8 +38,8 @@ class TimelineWidget;
|
||||
class MainWindow : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
MainWindow();
|
||||
~MainWindow();
|
||||
MainWindow();
|
||||
~MainWindow();
|
||||
|
||||
std::string nextTarget() const;
|
||||
|
||||
@@ -53,7 +53,7 @@ private slots:
|
||||
void onSocketConnected();
|
||||
void onSocketDisconnected();
|
||||
|
||||
void readTcpData();
|
||||
void readTcpData();
|
||||
void handleStatusMessage(QByteArray data);
|
||||
QByteArray handlePlaybook(QByteArray data);
|
||||
void printMapping(QByteArray data);
|
||||
@@ -66,7 +66,7 @@ private:
|
||||
InformationWidget* _informationWidget;
|
||||
TimelineWidget* _timelineWidget;
|
||||
|
||||
QTcpSocket* _socket;
|
||||
QTcpSocket* _socket;
|
||||
|
||||
bool _isConnected = false;
|
||||
};
|
||||
|
||||
@@ -78,6 +78,7 @@ namespace {
|
||||
|
||||
TimelineWidget::TimelineWidget(QWidget* parent)
|
||||
: QWidget(parent)
|
||||
, _currentTime{"", 0.0}
|
||||
{
|
||||
setMinimumWidth(600);
|
||||
setMinimumHeight(600);
|
||||
@@ -152,17 +153,14 @@ void TimelineWidget::drawContent(QPainter& painter, QRectF rect) {
|
||||
}
|
||||
|
||||
void TimelineWidget::drawLegend(QPainter& painter, QRectF rect) {
|
||||
static const int HalfHeight = LegendHeight / 2;
|
||||
static const int Padding = 5;
|
||||
static const int BoxSize = 20;
|
||||
|
||||
// Draw Targets
|
||||
int currentHorizontalPosition = Padding;
|
||||
int currentVerticalPosition = Padding;
|
||||
int currentVerticalPosition = Padding + BoxSize + Padding;
|
||||
|
||||
// Draw Targets
|
||||
// Draw Instruments
|
||||
currentHorizontalPosition = Padding;
|
||||
currentVerticalPosition = Padding + BoxSize + Padding;
|
||||
for (int i = 0; i < _instruments.size(); ++i) {
|
||||
if (i == _instruments.size() / 3 || i == _instruments.size() * 2 / 3) {
|
||||
currentVerticalPosition += BoxSize + Padding;
|
||||
@@ -179,7 +177,7 @@ void TimelineWidget::drawLegend(QPainter& painter, QRectF rect) {
|
||||
painter.setPen(QPen(QColor(200, 200, 200)));
|
||||
//painter.setPen(QPen(Qt::black));
|
||||
painter.drawText(currentHorizontalPosition, currentVerticalPosition + BoxSize / 2 + TextOffset, InstrumentConversion[QString::fromStdString(instrument)]);
|
||||
int textWidth = painter.boundingRect(QRect(), QString::fromStdString(instrument)).width();
|
||||
// int textWidth = painter.boundingRect(QRect(), QString::fromStdString(instrument)).width();
|
||||
//currentHorizontalPosition += std::max(textWidth, 25) + Padding;
|
||||
currentHorizontalPosition += 125;
|
||||
}
|
||||
@@ -198,9 +196,6 @@ void TimelineWidget::drawImages(
|
||||
std::vector<Image*> images,
|
||||
double minimumTime, double maximumTime)
|
||||
{
|
||||
int width = timelineRect.width();
|
||||
|
||||
int nInstruments = 0;
|
||||
std::set<std::string> instrumentSet;
|
||||
for (Image* i : images) {
|
||||
for (std::string instrument : i->instruments)
|
||||
@@ -225,7 +220,7 @@ void TimelineWidget::drawImages(
|
||||
|
||||
std::string target = i->target;
|
||||
auto it = std::find(_targets.begin(), _targets.end(), target);
|
||||
int iTarget = std::distance(_targets.begin(), it);
|
||||
// int iTarget = std::distance(_targets.begin(), it);
|
||||
|
||||
for (std::string instrument : i->instruments) {
|
||||
auto it = std::find(_instruments.begin(), _instruments.end(), instrument);
|
||||
|
||||
@@ -38,7 +38,7 @@ class QPaintEvent;
|
||||
class TimelineWidget : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
TimelineWidget(QWidget* parent);
|
||||
TimelineWidget(QWidget* parent);
|
||||
|
||||
void setData(std::vector<Image> images, std::map<uint8_t, std::string> targetMap, std::map<uint16_t, std::string> instrumentMap);
|
||||
void setCurrentTime(std::string currentTime, double et);
|
||||
|
||||
@@ -130,4 +130,4 @@ return {
|
||||
},
|
||||
GuiName = "/Solar/67PTrail"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
UseAccurateNewHorizonsKernels = false
|
||||
|
||||
return {
|
||||
ScenePath = ".",
|
||||
CommonFolder = "common",
|
||||
@@ -14,41 +16,15 @@ return {
|
||||
"saturn",
|
||||
"uranus",
|
||||
"neptune",
|
||||
--"PlutoProjection",
|
||||
"plutoprojectionhybrid",
|
||||
"charonprojection",
|
||||
"kerberos",
|
||||
"nix",
|
||||
"styx",
|
||||
"hydra",
|
||||
"newhorizons/pluto",
|
||||
"newhorizons/jupiter",
|
||||
"stars",
|
||||
-- "stars-denver",
|
||||
"milkyway",
|
||||
-- "milkyway-eso",
|
||||
"imageplane",
|
||||
--"constellationbounds",
|
||||
--"io",
|
||||
--"europa",
|
||||
--"ganymede",
|
||||
--"callisto",
|
||||
"jupiterprojection",
|
||||
"ioprojection",
|
||||
"europaprojection",
|
||||
"ganymedeprojection",
|
||||
"callistoprojection",
|
||||
"newhorizons",
|
||||
"newhorizonsfov",
|
||||
--"gridGalactic",
|
||||
--"gridEcliptic",
|
||||
--"gridEquatorial",
|
||||
-- "ephemeris",
|
||||
|
||||
-- "newhorizonspath",
|
||||
-- "newhorizonstrail",
|
||||
-- "enlil",
|
||||
-- "volumegl3",
|
||||
-- "volumegl2",
|
||||
-- "volumegl",
|
||||
"newhorizons/newhorizons",
|
||||
"newhorizons/newhorizonsfov",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
22
data/scene/enlilnh/enlilnh.mod
Normal file
@@ -0,0 +1,22 @@
|
||||
return {
|
||||
-- Volume module
|
||||
{
|
||||
Name = "Enlil New Horizons",
|
||||
Parent = "Root",
|
||||
Ephemeris = {
|
||||
Type = "Static",
|
||||
Position = { 0.0, 0.0, 0.0, 0}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableMultiresVolume",
|
||||
Translation = {0, 0, 0},
|
||||
Rotation = {2.1, 0, 0},
|
||||
Scaling = {1.1, 1.1, 1.1},
|
||||
ScalingExponent = 12,
|
||||
Source = "tsp/enlil_nh_128_128_16.tsp",
|
||||
TransferFunction = "transferfunctions/fire.txt",
|
||||
BrickSelector = "tf",
|
||||
},
|
||||
GuiName = "/Volumes/ENLIL New Horizons"
|
||||
}
|
||||
}
|
||||
10
data/scene/enlilnh/transferfunctions/fire.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
width 1024
|
||||
lower 0.0
|
||||
upper 1.0
|
||||
|
||||
mappingkey 0.05 254 0 0 0
|
||||
mappingkey 0.10 254 0 0 110
|
||||
mappingkey 0.12 254 220 0 254
|
||||
mappingkey 0.15 254 100 0 254
|
||||
mappingkey 0.20 180 0 0 254
|
||||
mappingkey 0.25 180 0 80 254
|
||||
@@ -3,6 +3,6 @@ return {
|
||||
{ Identifier = "mars_textures", Destination = "textures", Version = 1 }
|
||||
},
|
||||
TorrentFiles = {
|
||||
{ File = "MAR063.BSP.torrent", Destination = "${SPICE}" }
|
||||
-- { File = "MAR063.BSP.torrent", Destination = "${SPICE}" }
|
||||
}
|
||||
}
|
||||
@@ -37,7 +37,7 @@ return {
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "SUN",
|
||||
Kernels = {
|
||||
"${OPENSPACE_DATA}/spice/MAR063.BSP"
|
||||
"${OPENSPACE_DATA}/spice/de430_1850-2150.bsp"
|
||||
}
|
||||
},
|
||||
Rotation = {
|
||||
|
||||
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
@@ -39,7 +39,7 @@ return {
|
||||
},
|
||||
Projection = {
|
||||
--Sequence = "F:/JupiterFullSequence",
|
||||
Sequence = "${OPENSPACE_DATA}/scene/jupiterprojection/ProjectionsOfInterest",
|
||||
Sequence = "${OPENSPACE_DATA}/scene/newhorizons/jupiter/jupiterprojection/ProjectionsOfInterest",
|
||||
SequenceType = "image-sequence",
|
||||
Observer = "NEW HORIZONS",
|
||||
Target = "JUPITER",
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 284 KiB After Width: | Height: | Size: 284 KiB |
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 2.1 MiB |
|
Before Width: | Height: | Size: 3.4 MiB After Width: | Height: | Size: 3.4 MiB |
|
Before Width: | Height: | Size: 2.7 MiB After Width: | Height: | Size: 2.7 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 146 KiB |
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 175 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 282 KiB After Width: | Height: | Size: 282 KiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 2.4 MiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 304 B |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
@@ -1,3 +1,82 @@
|
||||
if UseAccurateNewHorizonsKernels then
|
||||
NewHorizonsKernels = {
|
||||
-- SCLK
|
||||
"${SPICE}/nh_kernels/sclk/new-horizons_0976.tsc",
|
||||
-- "${SPICE}/NewHorizonsKernels/new_horizons_413.tsc",
|
||||
|
||||
-- SPK
|
||||
"${SPICE}/nh_kernels/spk/nh_pred_20141201_20190301_od122.bsp",
|
||||
-- "${SPICE}/nh_kernels/spk/nh_pred_20120501_20160913_od093.bsp",
|
||||
"${SPICE}/nh_kernels/spk/plu_all_mvi.spk",
|
||||
"${SPICE}/jup260.bsp",
|
||||
-- "${SPICE}/NewHorizonsKernels/de413.bsp",
|
||||
|
||||
-- CK
|
||||
"${SPICE}/nh_kernels/ck/nh_scispi_2015_pred.bc",
|
||||
"${SPICE}/nh_kernels/ck/nh_scispi_2015_recon.bc",
|
||||
"${SPICE}/nh_kernels/ck/nh_lorri_wcs.bc",
|
||||
"${SPICE}/nh_kernels/ck/plutonet_PS104.bc",
|
||||
|
||||
-- FK
|
||||
"${SPICE}/nh_kernels/fk/nh_soc_misc_v001.tf",
|
||||
"${SPICE}/nh_kernels/fk/nh_v220.tf",
|
||||
|
||||
-- IK
|
||||
"${SPICE}/nh_kernels/ik/nh_alice_v120.ti",
|
||||
"${SPICE}/nh_kernels/ik/nh_allinstruments_v002.ti",
|
||||
"${SPICE}/nh_kernels/ik/nh_astr_v000.ti",
|
||||
"${SPICE}/nh_kernels/ik/nh_fss_v000.ti",
|
||||
"${SPICE}/nh_kernels/ik/nh_lorri_v100.ti",
|
||||
"${SPICE}/nh_kernels/ik/nh_pepssi_v110.ti",
|
||||
"${SPICE}/nh_kernels/ik/nh_ralph_v100.ti",
|
||||
"${SPICE}/nh_kernels/ik/nh_rex_v100.ti",
|
||||
"${SPICE}/nh_kernels/ik/nh_sdc_v101.ti",
|
||||
"${SPICE}/nh_kernels/ik/nh_swap_v100.ti",
|
||||
|
||||
-- LSK
|
||||
"${SPICE}/nh_kernels/lsk/naif0011.tls",
|
||||
|
||||
-- PCK
|
||||
"${SPICE}/nh_kernels/pck/nh_targets_v001.tpc",
|
||||
"${SPICE}/nh_kernels/pck/pck00010.tpc",
|
||||
"${SPICE}/nh_kernels/pck/nh_pcnh_002.tpc"
|
||||
};
|
||||
else
|
||||
NewHorizonsKernels = {
|
||||
--SCLK
|
||||
|
||||
"${SPICE}/NewHorizonsKernels/new_horizons_413.tsc",
|
||||
|
||||
"${SPICE}/NewHorizonsKernels/nhops_CORE_v9g_cdh2.bc",
|
||||
"${SPICE}/NewHorizonsKernels/nh_ref_20080710_20160101_od059B.bsp",
|
||||
|
||||
"${SPICE}/de430_1850-2150.bsp",
|
||||
-- CK
|
||||
"${SPICE}/NewHorizonsKernels/merged_nhpc_2006_v011.bc",
|
||||
"${SPICE}/NewHorizonsKernels/merged_nhpc_2007_v006.bc",
|
||||
-- FK
|
||||
"${SPICE}/NewHorizonsKernels/nh_v200.tf",
|
||||
-- IK
|
||||
"${SPICE}/NewHorizonsKernels/nh_alice_v110.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_lorri_v100.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_pepssi_v110.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_ralph_v100.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_rex_v100.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_sdc_v101.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_swap_v100.ti",
|
||||
-- PCK
|
||||
|
||||
-- SPK
|
||||
"${SPICE}/jup260.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/de413.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/nh_nep_ura_000.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/nh_recon_e2j_v1.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/nh_recon_j2sep07_prelimv1.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/sb_2002jf56_2.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/nh_plu017.bsp",
|
||||
}
|
||||
end
|
||||
|
||||
return {
|
||||
-- New Horizons Body module
|
||||
{
|
||||
@@ -10,7 +89,7 @@ return {
|
||||
Body = "NEW HORIZONS",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = "${OPENSPACE_DATA}/scene/newhorizons/models/NewHorizonsCleanModel.obj",
|
||||
GeometryFile = "models/NewHorizonsCleanModel.obj",
|
||||
Magnification = 4,
|
||||
},
|
||||
Textures = {
|
||||
@@ -35,39 +114,7 @@ return {
|
||||
-- Observer = "PLUTO BARYCENTER",
|
||||
Observer = "SUN",
|
||||
-- Observer = "JUPITER BARYCENTER",
|
||||
Kernels = {
|
||||
--SCLK
|
||||
|
||||
"${SPICE}/NewHorizonsKernels/new_horizons_413.tsc",
|
||||
|
||||
"${SPICE}/NewHorizonsKernels/nhops_CORE_v9g_cdh2.bc",
|
||||
"${SPICE}/NewHorizonsKernels/nh_ref_20080710_20160101_od059B.bsp",
|
||||
|
||||
"${SPICE}/de430_1850-2150.bsp",
|
||||
-- CK
|
||||
"${SPICE}/NewHorizonsKernels/merged_nhpc_2006_v011.bc",
|
||||
"${SPICE}/NewHorizonsKernels/merged_nhpc_2007_v006.bc",
|
||||
-- FK
|
||||
"${SPICE}/NewHorizonsKernels/nh_v200.tf",
|
||||
-- IK
|
||||
"${SPICE}/NewHorizonsKernels/nh_alice_v110.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_lorri_v100.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_pepssi_v110.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_ralph_v100.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_rex_v100.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_sdc_v101.ti",
|
||||
"${SPICE}/NewHorizonsKernels/nh_swap_v100.ti",
|
||||
-- PCK
|
||||
|
||||
-- SPK
|
||||
"${SPICE}/jup260.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/de413.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/nh_nep_ura_000.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/nh_recon_e2j_v1.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/nh_recon_j2sep07_prelimv1.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/sb_2002jf56_2.bsp",
|
||||
"${SPICE}/NewHorizonsKernels/nh_plu017.bsp",
|
||||
}
|
||||
Kernels = NewHorizonsKernels
|
||||
},
|
||||
GuiName = "/Solar/NewHorizons"
|
||||
},
|
||||
@@ -104,7 +151,7 @@ return {
|
||||
Body = "NEW HORIZONS",
|
||||
Geometry = {
|
||||
Type = "MultiModelGeometry",
|
||||
GeometryFile = "${OPENSPACE_DATA}/scene/newhorizons/models/Labels.obj",
|
||||
GeometryFile = "models/Labels.obj",
|
||||
Magnification = 4,
|
||||
},
|
||||
Textures = {
|
||||
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
@@ -1,3 +1,14 @@
|
||||
if UseAccurateNewHorizonsKernels then
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/nh_kernels/spk/NavSE_plu047_od122.bsp"
|
||||
}
|
||||
else
|
||||
NewHorizonsKernels = {
|
||||
"${OPENSPACE_DATA}/spice/de430_1850-2150.bsp"
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
return {
|
||||
-- CharonProjection module
|
||||
{
|
||||
@@ -47,9 +58,7 @@ return {
|
||||
Body = "CHARON",
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "PLUTO BARYCENTER",
|
||||
Kernels = {
|
||||
"${OPENSPACE_DATA}/spice/de430_1850-2150.bsp"
|
||||
}
|
||||
Kernels = NewHorizonsKernels
|
||||
},
|
||||
Rotation = {
|
||||
Type = "Spice",
|
||||
@@ -1,3 +1,13 @@
|
||||
if UseAccurateNewHorizonsKernels then
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/nh_kernels/spk/NavSE_plu047_od122.bsp"
|
||||
}
|
||||
else
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_p4p5_revised.bsp"
|
||||
}
|
||||
end
|
||||
|
||||
return {
|
||||
-- Hydra module
|
||||
{
|
||||
@@ -27,9 +37,7 @@ return {
|
||||
Body = "Hydra",
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "PLUTO BARYCENTER",
|
||||
Kernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_p4p5_revised.bsp"
|
||||
}
|
||||
Kernels = NewHorizonsKernels
|
||||
},
|
||||
Rotation = {
|
||||
Type = "Spice",
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 587 B After Width: | Height: | Size: 587 B |
@@ -1,3 +1,13 @@
|
||||
if UseAccurateNewHorizonsKernels then
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/nh_kernels/spk/NavSE_plu047_od122.bsp"
|
||||
}
|
||||
else
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_p4p5_revised.bsp"
|
||||
}
|
||||
end
|
||||
|
||||
return {
|
||||
-- Styx module
|
||||
{
|
||||
@@ -27,9 +37,7 @@ return {
|
||||
Body = "KERBEROS",
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "PLUTO BARYCENTER",
|
||||
Kernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_p4p5_revised.bsp"
|
||||
}
|
||||
Kernels = NewHorizonsKernels
|
||||
},
|
||||
Rotation = {
|
||||
Type = "Spice",
|
||||
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 587 B After Width: | Height: | Size: 587 B |
@@ -1,3 +1,13 @@
|
||||
if UseAccurateNewHorizonsKernels then
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/nh_kernels/spk/NavSE_plu047_od122.bsp"
|
||||
}
|
||||
else
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_p4p5_revised.bsp"
|
||||
}
|
||||
end
|
||||
|
||||
return {
|
||||
-- Nix module
|
||||
{
|
||||
@@ -27,9 +37,7 @@ return {
|
||||
Body = "NIX",
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "PLUTO BARYCENTER",
|
||||
Kernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_p4p5_revised.bsp"
|
||||
}
|
||||
Kernels = NewHorizonsKernels
|
||||
},
|
||||
Rotation = {
|
||||
Type = "Spice",
|
||||
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 587 B After Width: | Height: | Size: 587 B |
@@ -2,6 +2,7 @@ return {
|
||||
FileRequest = {
|
||||
{ Identifier = "newhorizons_plutoencounter_pluto_assets", Destination = "assets", Version = 1 },
|
||||
{ Identifier = "newhorizons_plutoencounter_pluto_textures", Destination = "textures", Version = 2 },
|
||||
{ Identifier = "pluto_textures", Destination = "textures", Version = 2 }
|
||||
{ Identifier = "pluto_textures", Destination = "textures", Version = 2 },
|
||||
{ Identifier = "newhorizons_plutoencounter_pluto_images", Destination = "images", Version = 1 }
|
||||
},
|
||||
}
|
||||
@@ -1,3 +1,14 @@
|
||||
if UseAccurateNewHorizonsKernels then
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/nh_kernels/spk/NavPE_de433_od122.bsp",
|
||||
"${SPICE}/nh_kernels/spk/NavSE_plu047_od122.bsp"
|
||||
}
|
||||
else
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_plu017.bsp"
|
||||
}
|
||||
end
|
||||
|
||||
return {
|
||||
-- Pluto barycenter module
|
||||
{
|
||||
@@ -8,9 +19,7 @@ return {
|
||||
Body = "PLUTO BARYCENTER",
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "SUN",
|
||||
Kernels = {
|
||||
"${OPENSPACE_DATA}/spice/de430_1850-2150.bsp"
|
||||
}
|
||||
Kernels = NewHorizonsKernels
|
||||
},
|
||||
},
|
||||
-- PlutoProjection module
|
||||
@@ -28,7 +37,10 @@ return {
|
||||
},
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "textures/pluto_large.jpg",
|
||||
-- Color = "textures/pluto_highres_180.jpg",
|
||||
Color = "textures/Shenk_180.jpg",
|
||||
-- Color = "textures/pluto_large.jpg",
|
||||
-- Color = "textures/white.png",
|
||||
Project = "textures/3.jpg",
|
||||
Sequencing = "true",
|
||||
},
|
||||
@@ -38,44 +50,14 @@ return {
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
},
|
||||
Projection = {
|
||||
--Sequence = "${OPENSPACE_DATA}/scene/plutoprojection/assets/incomingImagery",
|
||||
--SequenceType = "image-sequence",
|
||||
Sequence = "${OPENSPACE_DATA}/scene/plutoprojection/assets/core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt",
|
||||
SequenceType = "playbook",
|
||||
Observer = "NEW HORIZONS",
|
||||
Target = "PLUTO",
|
||||
Aberration = "NONE",
|
||||
Sequence = "${OPENSPACE_DATA}/scene/newhorizons/pluto/plutoprojection/images",
|
||||
EventFile = "${OPENSPACE_DATA}/scene/newhorizons/pluto/plutoprojection/assets/core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt",
|
||||
SequenceType = "hybrid",
|
||||
Observer = "NEW HORIZONS",
|
||||
Target = "PLUTO",
|
||||
Aberration = "NONE",
|
||||
},
|
||||
DataInputTranslation = {
|
||||
--[[Instrument = {
|
||||
LORRI = {
|
||||
DetectorType = "Camera",
|
||||
Spice = {"NH_LORRI"},
|
||||
},
|
||||
RALPH_MVIC_PAN_FRAME = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "RALPH_ABORT",
|
||||
Spice = {"NH_RALPH_MVIC_FT"},
|
||||
},
|
||||
},
|
||||
Target ={
|
||||
Read = {
|
||||
"TARGET_NAME",
|
||||
"INSTRUMENT_HOST_NAME",
|
||||
"INSTRUMENT_ID",
|
||||
"START_TIME",
|
||||
"STOP_TIME",
|
||||
"DETECTOR_TYPE",
|
||||
--"SEQUENCE_ID",
|
||||
},
|
||||
Convert = {
|
||||
PLUTO = {"PLUTO" },
|
||||
NEWHORIZONS = {"NEW HORIZONS"},
|
||||
CCD = {"CAMERA" },
|
||||
FRAMECCD = {"SCANNER" },
|
||||
},
|
||||
},
|
||||
--]]
|
||||
Instrument = {
|
||||
LORRI = {
|
||||
DetectorType = "Camera",
|
||||
@@ -134,6 +116,23 @@ return {
|
||||
StopCommand = "REX_MODE_OFF",
|
||||
Spice = { "NH_REX" },
|
||||
}
|
||||
},
|
||||
Target ={
|
||||
Read = {
|
||||
"TARGET_NAME",
|
||||
"INSTRUMENT_HOST_NAME",
|
||||
"INSTRUMENT_ID",
|
||||
"START_TIME",
|
||||
"STOP_TIME",
|
||||
"DETECTOR_TYPE",
|
||||
--"SEQUENCE_ID",
|
||||
},
|
||||
Convert = {
|
||||
PLUTO = {"PLUTO" },
|
||||
NEWHORIZONS = {"NEW HORIZONS"},
|
||||
CCD = {"CAMERA" },
|
||||
FRAMECCD = {"SCANNER" },
|
||||
},
|
||||
},
|
||||
},
|
||||
Instrument = {
|
||||
@@ -159,9 +158,7 @@ return {
|
||||
Body = "PLUTO",
|
||||
Reference = "GALACTIC",
|
||||
Observer = "PLUTO BARYCENTER",
|
||||
Kernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_plu017.bsp"
|
||||
}
|
||||
Kernels = NewHorizonsKernels
|
||||
},
|
||||
Rotation = {
|
||||
Type = "Spice",
|
||||
@@ -171,7 +168,7 @@ return {
|
||||
GuiName = "/Solar/Planets/Pluto"
|
||||
},
|
||||
{
|
||||
Name = "Barycenter",
|
||||
Name = "PlutoBarycenterLabel",
|
||||
Parent = "PlutoBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
@@ -185,14 +182,8 @@ return {
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Spice",
|
||||
Body = "PLUTO BARYCENTER",
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "SUN",
|
||||
Kernels = {
|
||||
--"${OPENSPACE_DATA}/spice/de430_1850-2150.bsp"
|
||||
"${OPENSPACE_DATA}/spice/nh_plu017.bsp"
|
||||
}
|
||||
Type = "Static",
|
||||
Position = {0, 0, 0, 1}
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -264,25 +255,6 @@ return {
|
||||
},
|
||||
},
|
||||
GuiName = "/Solar/CharonTrail"
|
||||
},
|
||||
{
|
||||
Name = "PlutoBarycenterLabel",
|
||||
Parent = "PlutoBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Billboard = true,
|
||||
Size = { 5, 4 },
|
||||
Texture = "textures/barycenter.png",
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Static",
|
||||
Position = {0, 0, 0, 1}
|
||||
},
|
||||
},
|
||||
-- PlutoTrail module
|
||||
{
|
||||
@@ -1,3 +1,13 @@
|
||||
if UseAccurateNewHorizonsKernels then
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/nh_kernels/spk/NavSE_plu047_od122.bsp"
|
||||
}
|
||||
else
|
||||
NewHorizonsKernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_p4p5_revised.bsp"
|
||||
}
|
||||
end
|
||||
|
||||
return {
|
||||
-- Styx module
|
||||
{
|
||||
@@ -27,9 +37,7 @@ return {
|
||||
Body = "STYX",
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "PLUTO BARYCENTER",
|
||||
Kernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_p4p5_revised.bsp"
|
||||
}
|
||||
Kernels = NewHorizonsKernels
|
||||
},
|
||||
Rotation = {
|
||||
Type = "Spice",
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 587 B After Width: | Height: | Size: 587 B |
@@ -1,7 +0,0 @@
|
||||
return {
|
||||
FileRequest = {
|
||||
{ Identifier = "newhorizons_plutoencounter_pluto_assets", Destination = "assets", Version = 1 },
|
||||
{ Identifier = "newhorizons_plutoencounter_pluto_textures", Destination = "textures", Version = 2 },
|
||||
{ Identifier = "pluto_textures", Destination = "textures", Version = 2 }
|
||||
},
|
||||
}
|
||||
@@ -1,273 +0,0 @@
|
||||
return {
|
||||
-- Pluto barycenter module
|
||||
{
|
||||
Name = "PlutoBarycenter",
|
||||
Parent = "SolarSystemBarycenter",
|
||||
Ephemeris = {
|
||||
Type = "Spice",
|
||||
Body = "PLUTO BARYCENTER",
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "SUN",
|
||||
Kernels = {
|
||||
"${OPENSPACE_DATA}/spice/de430_1850-2150.bsp"
|
||||
}
|
||||
},
|
||||
},
|
||||
-- PlutoProjection module
|
||||
{
|
||||
Name = "PlutoProjection",
|
||||
Parent = "PlutoBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderablePlanetProjection",
|
||||
Frame = "IAU_PLUTO",
|
||||
Body = "PLUTO",
|
||||
Geometry = {
|
||||
Type = "SimpleSphereProjection",
|
||||
Radius = { 1.173 , 6 },
|
||||
Segments = 100
|
||||
},
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
-- Color = "textures/pluto_highres_180.jpg",
|
||||
Color = "textures/Shenk_180.jpg",
|
||||
-- Color = "textures/pluto_large.jpg",
|
||||
-- Color = "textures/white.png",
|
||||
Project = "textures/3.jpg",
|
||||
Sequencing = "true",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
},
|
||||
Projection = {
|
||||
Sequence = "${OPENSPACE_DATA}/scene/plutoprojectionhybrid/images",
|
||||
EventFile = "${OPENSPACE_DATA}/scene/plutoprojectionhybrid/assets/core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt",
|
||||
SequenceType = "hybrid",
|
||||
Observer = "NEW HORIZONS",
|
||||
Target = "PLUTO",
|
||||
Aberration = "NONE",
|
||||
},
|
||||
DataInputTranslation = {
|
||||
Instrument = {
|
||||
LORRI = {
|
||||
DetectorType = "Camera",
|
||||
Spice = {"NH_LORRI"},
|
||||
},
|
||||
RALPH_MVIC_PAN_FRAME = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "RALPH_ABORT",
|
||||
Spice = {"NH_RALPH_MVIC_FT"},
|
||||
},
|
||||
RALPH_MVIC_COLOR = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "END_NOM",
|
||||
Spice = { "NH_RALPH_MVIC_NIR",
|
||||
"NH_RALPH_MVIC_METHANE",
|
||||
"NH_RALPH_MVIC_RED",
|
||||
"NH_RALPH_MVIC_BLUE" },
|
||||
},
|
||||
RALPH_LEISA = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "END_NOM",
|
||||
Spice = {"NH_RALPH_LEISA"},
|
||||
},
|
||||
RALPH_MVIC_PAN1 = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "END_NOM",
|
||||
Spice = {"NH_RALPH_MVIC_PAN1"},
|
||||
},
|
||||
RALPH_MVIC_PAN2 = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "END_NOM",
|
||||
Spice = {"NH_RALPH_MVIC_PAN2"},
|
||||
},
|
||||
ALICE_Use_AIRGLOW = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "ALICE_END_PIXELLIST",
|
||||
Spice = {"NH_ALICE_AIRGLOW"},
|
||||
},
|
||||
ALICE_Use_AIRGLOW = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "ALICE_END_HISTOGRAM",
|
||||
Spice = {"NH_ALICE_AIRGLOW"},
|
||||
},
|
||||
ALICE_Use_SOCC = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "ALICE_END_PIXELLIST",
|
||||
Spice = {"NH_ALICE_SOC"},
|
||||
},
|
||||
ALICE_Use_SOCC = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "ALICE_END_HISTOGRAM",
|
||||
Spice = {"NH_ALICE_SOC"},
|
||||
},
|
||||
REX_START = {
|
||||
DetectorType = "Scanner",
|
||||
StopCommand = "REX_MODE_OFF",
|
||||
Spice = { "NH_REX" },
|
||||
}
|
||||
},
|
||||
Target ={
|
||||
Read = {
|
||||
"TARGET_NAME",
|
||||
"INSTRUMENT_HOST_NAME",
|
||||
"INSTRUMENT_ID",
|
||||
"START_TIME",
|
||||
"STOP_TIME",
|
||||
"DETECTOR_TYPE",
|
||||
--"SEQUENCE_ID",
|
||||
},
|
||||
Convert = {
|
||||
PLUTO = {"PLUTO" },
|
||||
NEWHORIZONS = {"NEW HORIZONS"},
|
||||
CCD = {"CAMERA" },
|
||||
FRAMECCD = {"SCANNER" },
|
||||
},
|
||||
},
|
||||
},
|
||||
Instrument = {
|
||||
Name = "NH_LORRI",
|
||||
Method = "ELLIPSOID",
|
||||
Aberration = "NONE",
|
||||
Fovy = 0.2907,
|
||||
Aspect = 1,
|
||||
Near = 0.2,
|
||||
Far = 10000,
|
||||
},
|
||||
PotentialTargets = {
|
||||
"PLUTO",
|
||||
"CHARON",
|
||||
"NIX",
|
||||
"HYDRA",
|
||||
"P5",
|
||||
"P4",
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Spice",
|
||||
Body = "PLUTO",
|
||||
Reference = "GALACTIC",
|
||||
Observer = "PLUTO BARYCENTER",
|
||||
Kernels = {
|
||||
"${SPICE}/NewHorizonsKernels/nh_plu017.bsp"
|
||||
}
|
||||
},
|
||||
Rotation = {
|
||||
Type = "Spice",
|
||||
Frame = "IAU_PLUTO",
|
||||
Reference = "GALACTIC"
|
||||
},
|
||||
GuiName = "/Solar/Planets/Pluto"
|
||||
},
|
||||
{
|
||||
Name = "PlutoBarycenterLabel",
|
||||
Parent = "PlutoBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Billboard = true,
|
||||
Size = { 5, 4 },
|
||||
Texture = "textures/barycenter.png",
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Static",
|
||||
Position = {0, 0, 0, 1}
|
||||
},
|
||||
},
|
||||
{
|
||||
Name = "PlutoText",
|
||||
Parent = "PlutoProjection",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 6.3},
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/Pluto-Text.png"
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Static",
|
||||
Position = {0, -20, 0, 5}
|
||||
}
|
||||
},
|
||||
{
|
||||
Name = "PlutoTexture",
|
||||
Parent = "PlutoProjection",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {1.0, 6.4},
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
ProjectionListener = true,
|
||||
Texture = "textures/Pluto-Text.png"
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Static",
|
||||
Position = {0, 0, 40, 5}
|
||||
}
|
||||
},
|
||||
{
|
||||
Name = "PlutoShadow",
|
||||
Parent = "PlutoProjection",
|
||||
Renderable = {
|
||||
Type = "RenderableShadowCylinder",
|
||||
TerminatorType = "PENUMBRAL",
|
||||
LightSource = "SUN",
|
||||
Observer = "NEW HORIZONS",
|
||||
Body = "PLUTO",
|
||||
BodyFrame = "IAU_PLUTO",
|
||||
MainFrame = "GALACTIC",
|
||||
Aberration = "NONE",
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Static",
|
||||
Position = {0, 0, 0, 5}
|
||||
}
|
||||
},
|
||||
-- PlutoBarycentricTrail module
|
||||
{
|
||||
Name = "PlutoBarycentricTrail",
|
||||
Parent = "PlutoBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderableTrail",
|
||||
Body = "PLUTO",
|
||||
Frame = "GALACTIC",
|
||||
Observer = "PLUTO BARYCENTER",
|
||||
RGB = {0.00,0.62,1.00},
|
||||
TropicalOrbitPeriod = 120 ,
|
||||
EarthOrbitRatio = 0.03,
|
||||
DayLength = 1,
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "${COMMON_MODULE}/textures/glare_blue.png",
|
||||
-- need to add different texture
|
||||
},
|
||||
},
|
||||
GuiName = "/Solar/CharonTrail"
|
||||
},
|
||||
-- PlutoTrail module
|
||||
{
|
||||
Name = "PlutoTrail",
|
||||
Parent = "SolarSystemBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderableTrail",
|
||||
Body = "PLUTO BARYCENTER",
|
||||
Frame = "GALACTIC",
|
||||
Observer = "SUN",
|
||||
RGB = { 0.3, 0.7, 0.3 },
|
||||
TropicalOrbitPeriod = 90588 ,
|
||||
EarthOrbitRatio = 248.02,
|
||||
DayLength = 9.9259,
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "${COMMON_MODULE}/textures/glare_blue.png",
|
||||
-- need to add different texture
|
||||
},
|
||||
},
|
||||
GuiName = "/Solar/PlutoTrail"
|
||||
}
|
||||
}
|
||||
@@ -116,7 +116,7 @@ public:
|
||||
* configuration file
|
||||
* \pre \p filename must not be empty
|
||||
*/
|
||||
void loadFromFile(const std::string& filename);
|
||||
void loadFromFile(const std::string& filename);
|
||||
|
||||
private:
|
||||
/**
|
||||
@@ -126,7 +126,7 @@ private:
|
||||
* \return <code>true</code> if the configuration file was complete;
|
||||
* <code>false</code> otherwise
|
||||
*/
|
||||
bool checkCompleteness() const;
|
||||
bool checkCompleteness() const;
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
|
||||