From 09b367549136791c6156f16f9c82e604081ff929 Mon Sep 17 00:00:00 2001 From: Kalle Bladin Date: Thu, 13 Jul 2017 20:23:57 +0200 Subject: [PATCH 01/51] Move readImageData from GdalRawTileDataReader to RawTileDataReader so that it can be used by other RawTileDataReaders --- .../tile/asynctiledataprovider.cpp | 4 + .../gdalrawtiledatareader.cpp | 134 +----------------- .../rawtiledatareader/gdalrawtiledatareader.h | 3 +- .../rawtiledatareader/rawtiledatareader.cpp | 128 +++++++++++++++++ .../rawtiledatareader/rawtiledatareader.h | 10 +- .../simplerawtiledatareader.cpp | 9 ++ .../simplerawtiledatareader.h | 3 +- .../tile/tileprovider/defaulttileprovider.cpp | 3 +- 8 files changed, 153 insertions(+), 141 deletions(-) diff --git a/modules/globebrowsing/tile/asynctiledataprovider.cpp b/modules/globebrowsing/tile/asynctiledataprovider.cpp index 46723e5fbc..ee4c6bc6e8 100644 --- a/modules/globebrowsing/tile/asynctiledataprovider.cpp +++ b/modules/globebrowsing/tile/asynctiledataprovider.cpp @@ -62,6 +62,10 @@ std::shared_ptr AsyncTileDataProvider::getRawTileDataReader() } bool AsyncTileDataProvider::enqueueTileIO(const TileIndex& tileIndex) { + if (tileIndex.level < 2) { + int hej = 0; + } + if (_resetMode == ResetMode::ShouldNotReset && satisfiesEnqueueCriteria(tileIndex)) { if (_pboContainer) { char* dataPtr = static_cast(_pboContainer->mapBuffer( diff --git a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp index 45eaa90a8b..608baeb69d 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp @@ -106,6 +106,10 @@ int GdalRawTileDataReader::rasterYSize() const { return _gdalDatasetMetaDataCached.rasterYSize; } +int GdalRawTileDataReader::dataSourceNumRasters() const { + return _gdalDatasetMetaDataCached.rasterCount; +} + float GdalRawTileDataReader::depthOffset() const { return _gdalDatasetMetaDataCached.offset; } @@ -182,134 +186,6 @@ void GdalRawTileDataReader::initialize() { _cached._maxLevel = std::max(_cached._maxLevel, 2); } -void GdalRawTileDataReader::readImageData( - IODescription& io, RawTile::ReadError& worstError, char* imageDataDest) const { - - // Only read the minimum number of rasters - int nRastersToRead = std::min(_gdalDatasetMetaDataCached.rasterCount, - static_cast(_initData.nRasters())); - - switch (_initData.ghoulTextureFormat()) { - case ghoul::opengl::Texture::Format::Red: - if (nRastersToRead == 1) { // One channel - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dataDestination = imageDataDest + _initData.bytesPerDatum(); - - RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - break; - case ghoul::opengl::Texture::Format::RG: - case ghoul::opengl::Texture::Format::RGB: - case ghoul::opengl::Texture::Format::RGBA: { - if (nRastersToRead == 1) { // Grayscale - for (int i = 0; i < 3; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); - - RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - } - else if (nRastersToRead == 2) { // Grayscale + alpha - for (int i = 0; i < 3; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); - - RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - // Last read is the alpha channel - char* dataDestination = imageDataDest + (3 * _initData.bytesPerDatum()); - RawTile::ReadError err = repeatedRasterRead(2, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - else { // Three or more rasters - for (int i = 0; i < nRastersToRead; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); - - RawTile::ReadError err = repeatedRasterRead(i + 1, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - } - break; - } - case ghoul::opengl::Texture::Format::BGR: - case ghoul::opengl::Texture::Format::BGRA: { - if (nRastersToRead == 1) { // Grayscale - for (int i = 0; i < 3; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); - - RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - } - else if (nRastersToRead == 2) { // Grayscale + alpha - for (int i = 0; i < 3; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); - - RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - // Last read is the alpha channel - char* dataDestination = imageDataDest + (3 * _initData.bytesPerDatum()); - RawTile::ReadError err = repeatedRasterRead(2, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - else { // Three or more rasters - for (int i = 0; i < 3 && i < nRastersToRead; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); - - RawTile::ReadError err = repeatedRasterRead(3 - i, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - } - if (nRastersToRead > 3) { // Alpha channel exists - // Last read is the alpha channel - char* dataDestination = imageDataDest + (3 * _initData.bytesPerDatum()); - RawTile::ReadError err = repeatedRasterRead(4, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } - break; - } - default: { - ghoul_assert(false, "Texture format not supported for tiles"); - break; - } - } -} - RawTile::ReadError GdalRawTileDataReader::rasterRead( int rasterBand, const IODescription& io, char* dataDestination) const { @@ -400,4 +276,4 @@ int GdalRawTileDataReader::calculateTileLevelDifference(int minimumPixelSize) co } // namespace globebrowsing } // namespace openspace -#endif // GLOBEBROWSING_USE_GDAL \ No newline at end of file +#endif // GLOBEBROWSING_USE_GDAL diff --git a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h index 8280b61ec3..e79c2158af 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h +++ b/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h @@ -79,6 +79,7 @@ public: virtual float noDataValueAsFloat() const override; virtual int rasterXSize() const override; virtual int rasterYSize() const override; + virtual int dataSourceNumRasters() const; virtual float depthOffset() const override; virtual float depthScale() const override; @@ -96,8 +97,6 @@ protected: private: // Private virtual function overloading virtual void initialize() override; - virtual void readImageData(IODescription& io, RawTile::ReadError& worstError, - char* dataDestination) const override; virtual RawTile::ReadError rasterRead( int rasterBand, const IODescription& io, char* dst) const override; diff --git a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp index b88fb167ed..9078745da4 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp @@ -116,6 +116,134 @@ std::shared_ptr RawTileDataReader::readTileData(TileIndex tileIndex, return rawTile; } +void RawTileDataReader::readImageData( + IODescription& io, RawTile::ReadError& worstError, char* imageDataDest) const { + + // Only read the minimum number of rasters + int nRastersToRead = std::min(dataSourceNumRasters(), + static_cast(_initData.nRasters())); + + switch (_initData.ghoulTextureFormat()) { + case ghoul::opengl::Texture::Format::Red: + if (nRastersToRead == 1) { // One channel + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dataDestination = imageDataDest + _initData.bytesPerDatum(); + + RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + break; + case ghoul::opengl::Texture::Format::RG: + case ghoul::opengl::Texture::Format::RGB: + case ghoul::opengl::Texture::Format::RGBA: { + if (nRastersToRead == 1) { // Grayscale + for (int i = 0; i < 3; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); + + RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + } + else if (nRastersToRead == 2) { // Grayscale + alpha + for (int i = 0; i < 3; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); + + RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + // Last read is the alpha channel + char* dataDestination = imageDataDest + (3 * _initData.bytesPerDatum()); + RawTile::ReadError err = repeatedRasterRead(2, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + else { // Three or more rasters + for (int i = 0; i < nRastersToRead; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); + + RawTile::ReadError err = repeatedRasterRead(i + 1, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + } + break; + } + case ghoul::opengl::Texture::Format::BGR: + case ghoul::opengl::Texture::Format::BGRA: { + if (nRastersToRead == 1) { // Grayscale + for (int i = 0; i < 3; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); + + RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + } + else if (nRastersToRead == 2) { // Grayscale + alpha + for (int i = 0; i < 3; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); + + RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + // Last read is the alpha channel + char* dataDestination = imageDataDest + (3 * _initData.bytesPerDatum()); + RawTile::ReadError err = repeatedRasterRead(2, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + else { // Three or more rasters + for (int i = 0; i < 3 && i < nRastersToRead; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dataDestination = imageDataDest + (i * _initData.bytesPerDatum()); + + RawTile::ReadError err = repeatedRasterRead(3 - i, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + } + if (nRastersToRead > 3) { // Alpha channel exists + // Last read is the alpha channel + char* dataDestination = imageDataDest + (3 * _initData.bytesPerDatum()); + RawTile::ReadError err = repeatedRasterRead(4, io, dataDestination); + + // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 + worstError = std::max(worstError, err); + } + break; + } + default: { + ghoul_assert(false, "Texture format not supported for tiles"); + break; + } + } +} + TileDepthTransform RawTileDataReader::getDepthTransform() const { return _depthTransform; } diff --git a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h index 4d0b5197e9..7840ea5cf2 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h +++ b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h @@ -76,6 +76,7 @@ public: virtual float noDataValueAsFloat() const = 0; virtual int rasterXSize() const = 0; virtual int rasterYSize() const = 0; + virtual int dataSourceNumRasters() const = 0; virtual float depthOffset() const; virtual float depthScale() const; PixelRegion fullPixelRegion() const; @@ -96,11 +97,6 @@ protected: */ virtual void initialize() = 0; - /** - * Call this in the constructor of the class extending RawTileDataReader - */ - //void ensureInitialized(); - /** * The function returns a transform to map * the pixel coordinates to cover the whole geodetic lat long space. @@ -113,8 +109,8 @@ protected: * \param worstError should be set to the error code returned when * reading the data. */ - virtual void readImageData( - IODescription& io, RawTile::ReadError& worstError, char* dataDestination) const = 0; + void readImageData( + IODescription& io, RawTile::ReadError& worstError, char* dataDestination) const; virtual RawTile::ReadError rasterRead( int rasterBand, const IODescription& io, char* dst) const = 0; diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp index e0d4d72ac7..f1ed547ab7 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp @@ -73,6 +73,10 @@ int SimpleRawTileDataReader::rasterYSize() const { return _dataTexture->dimensions().y; } +int SimpleRawTileDataReader::dataSourceNumRasters() const { + return _dataTexture->numberOfChannels(); +} + float SimpleRawTileDataReader::depthOffset() const { return 0.0f; } @@ -115,6 +119,7 @@ void SimpleRawTileDataReader::initialize() { _depthTransform = {depthScale(), depthOffset()}; } +/* void SimpleRawTileDataReader::readImageData( IODescription& io, RawTile::ReadError& worstError, char* dataDestination) const { @@ -127,6 +132,7 @@ void SimpleRawTileDataReader::readImageData( // None = 0, Debug = 1, Warning = 2, Failure = 3, Fatal = 4 worstError = std::max(worstError, err); } +*/ RawTile::ReadError SimpleRawTileDataReader::rasterRead( int rasterBand, const IODescription& io, char* dataDestination) const @@ -141,6 +147,8 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( "IODescription does not match data texture."); char* pixelWriteRow = dataDestination; + +/* try { // For each row for (int y = 0; y < io.read.region.numPixels.y; y++) { @@ -157,6 +165,7 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( return RawTile::ReadError::Failure; } return RawTile::ReadError::None; + */ } diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h index 0716dca804..7a7d913e15 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h @@ -58,6 +58,7 @@ public: virtual float noDataValueAsFloat() const override; virtual int rasterXSize() const override; virtual int rasterYSize() const override; + virtual int dataSourceNumRasters() const; virtual float depthOffset() const override; virtual float depthScale() const override; @@ -68,8 +69,6 @@ protected: private: // Private virtual function overloading virtual void initialize() override; - virtual void readImageData( - IODescription& io, RawTile::ReadError& worstError, char* dataDestination) const override; virtual RawTile::ReadError rasterRead( int rasterBand, const IODescription& io, char* dst) const override; diff --git a/modules/globebrowsing/tile/tileprovider/defaulttileprovider.cpp b/modules/globebrowsing/tile/tileprovider/defaulttileprovider.cpp index 63496682e5..0179c102ef 100644 --- a/modules/globebrowsing/tile/tileprovider/defaulttileprovider.cpp +++ b/modules/globebrowsing/tile/tileprovider/defaulttileprovider.cpp @@ -214,7 +214,8 @@ void DefaultTileProvider::initAsyncTileDataReader(TileTextureInitData initData) _asyncTextureDataProvider = std::make_shared(_name, tileDataset); - if (_preCacheLevel > -1) { + // Tiles are only available for levels 2 and higher. + if (_preCacheLevel >= 2) { LDEBUG("Precaching '" << _filePath << "' with level '" << _preCacheLevel << "'"); for (int level = 0; level <= _preCacheLevel; ++level) { for (int x = 0; x <= level * 2; ++x) { From 5ef29660836919962de2ae6f444a8152ce6589f1 Mon Sep 17 00:00:00 2001 From: Kalle Bladin Date: Thu, 13 Jul 2017 20:34:56 +0200 Subject: [PATCH 02/51] Move getIODescription from GdalRawTileDataReader to RawTileDataReader. --- .../gdalrawtiledatareader.cpp | 32 ----------------- .../rawtiledatareader/gdalrawtiledatareader.h | 1 - .../rawtiledatareader/rawtiledatareader.cpp | 34 +++++++++++++++++++ .../rawtiledatareader/rawtiledatareader.h | 2 +- .../simplerawtiledatareader.cpp | 4 ++- .../simplerawtiledatareader.h | 4 --- 6 files changed, 38 insertions(+), 39 deletions(-) diff --git a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp index 608baeb69d..b55b651fa2 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp @@ -122,38 +122,6 @@ std::array GdalRawTileDataReader::getGeoTransform() const { return _gdalDatasetMetaDataCached.padfTransform; } -IODescription GdalRawTileDataReader::getIODescription(const TileIndex& tileIndex) const { - IODescription io; - io.read.region = highestResPixelRegion(tileIndex); - - // write region starts in origin - io.write.region.start = PixelRegion::PixelCoordinate(0, 0); - io.write.region.numPixels = PixelRegion::PixelCoordinate( - _initData.dimensionsWithoutPadding().x, _initData.dimensionsWithoutPadding().y); - - io.read.overview = 0; - io.read.fullRegion = fullPixelRegion(); - // For correct sampling in dataset, we need to pad the texture tile - - PixelRegion scaledPadding = padding; - double scale = - io.read.region.numPixels.x / static_cast(io.write.region.numPixels.x); - scaledPadding.numPixels *= scale; - scaledPadding.start *= scale; - - io.read.region.pad(scaledPadding); - io.write.region.pad(padding); - io.write.region.start = PixelRegion::PixelCoordinate(0, 0); - - io.write.bytesPerLine = _initData.bytesPerLine(); - io.write.totalNumBytes = _initData.totalNumBytes(); - - ghoul_assert(io.write.region.numPixels.x == io.write.region.numPixels.y, ""); - ghoul_assert(io.write.region.numPixels.x == _initData.dimensionsWithPadding().x, ""); - - return io; -} - void GdalRawTileDataReader::initialize() { if (_datasetFilePath.empty()) { throw ghoul::RuntimeError("File path must not be empty"); diff --git a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h index e79c2158af..12787f1358 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h +++ b/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h @@ -92,7 +92,6 @@ protected: * the pixel coordinates to cover the whole geodetic lat long space. */ virtual std::array getGeoTransform() const override; - virtual IODescription getIODescription(const TileIndex& tileIndex) const override; private: // Private virtual function overloading diff --git a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp index 9078745da4..fef381fcce 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp @@ -244,6 +244,40 @@ void RawTileDataReader::readImageData( } } +IODescription RawTileDataReader::getIODescription(const TileIndex& tileIndex) const { + IODescription io; + io.read.region = highestResPixelRegion(tileIndex); + + // write region starts in origin + io.write.region.start = PixelRegion::PixelCoordinate(0, 0); + io.write.region.numPixels = PixelRegion::PixelCoordinate( + _initData.dimensionsWithoutPadding().x, _initData.dimensionsWithoutPadding().y); + + io.read.overview = 0; + io.read.fullRegion = fullPixelRegion(); + // For correct sampling in dataset, we need to pad the texture tile + + PixelRegion scaledPadding = padding; + double scale = + io.read.region.numPixels.x / static_cast(io.write.region.numPixels.x); + scaledPadding.numPixels *= scale; + scaledPadding.start *= scale; + + io.read.region.pad(scaledPadding); + io.write.region.pad(padding); + io.write.region.start = PixelRegion::PixelCoordinate(0, 0); + + io.write.bytesPerLine = _initData.bytesPerLine(); + io.write.totalNumBytes = _initData.totalNumBytes(); + + ghoul_assert(io.write.region.numPixels.x == io.write.region.numPixels.y, + "Write region must be square"); + ghoul_assert(io.write.region.numPixels.x == _initData.dimensionsWithPadding().x, + "Write region must match tile it writes to."); + + return io; +} + TileDepthTransform RawTileDataReader::getDepthTransform() const { return _depthTransform; } diff --git a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h index 7840ea5cf2..64f0d89f41 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h +++ b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h @@ -115,7 +115,7 @@ protected: virtual RawTile::ReadError rasterRead( int rasterBand, const IODescription& io, char* dst) const = 0; - virtual IODescription getIODescription(const TileIndex& tileIndex) const = 0; + IODescription getIODescription(const TileIndex& tileIndex) const; /** * Get the pixel corresponding to a specific position on the globe defined by the diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp index f1ed547ab7..f7d730ecea 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp @@ -85,6 +85,7 @@ float SimpleRawTileDataReader::depthScale() const { return 1.0f; } +/* IODescription SimpleRawTileDataReader::getIODescription(const TileIndex& tileIndex) const { IODescription io; io.read.overview = 0; @@ -96,6 +97,7 @@ IODescription SimpleRawTileDataReader::getIODescription(const TileIndex& tileInd return io; } +*/ void SimpleRawTileDataReader::initialize() { _dataTexture = ghoul::io::TextureReader::ref().loadTexture(_datasetFilePath); @@ -146,7 +148,7 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( ghoul_assert(io.read.region.numPixels.y == io.write.region.numPixels.y, "IODescription does not match data texture."); - char* pixelWriteRow = dataDestination; + char* pixelWriteRow = dataDestination + io.write.bytesPerLine; /* try { diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h index 7a7d913e15..5f8241cf13 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h @@ -62,10 +62,6 @@ public: virtual float depthOffset() const override; virtual float depthScale() const override; -protected: - - virtual IODescription getIODescription(const TileIndex& tileIndex) const override; - private: // Private virtual function overloading virtual void initialize() override; From c22d1e3df4a8544982a27dd3bbf506cc7b13cd56 Mon Sep 17 00:00:00 2001 From: Kalle Bladin Date: Thu, 13 Jul 2017 22:14:29 +0200 Subject: [PATCH 03/51] SimpleRawTileDataReader can now read all image sizes --- .../simplerawtiledatareader.cpp | 152 +++++++++++------- 1 file changed, 91 insertions(+), 61 deletions(-) diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp index f7d730ecea..d40a98ddde 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp @@ -58,7 +58,7 @@ void SimpleRawTileDataReader::reset() { } int SimpleRawTileDataReader::maxChunkLevel() const { - return 2; + return 5; } float SimpleRawTileDataReader::noDataValueAsFloat() const { @@ -85,20 +85,6 @@ float SimpleRawTileDataReader::depthScale() const { return 1.0f; } -/* -IODescription SimpleRawTileDataReader::getIODescription(const TileIndex& tileIndex) const { - IODescription io; - io.read.overview = 0; - io.read.region = highestResPixelRegion(tileIndex); - io.read.fullRegion = PixelRegion({0, 0}, {rasterXSize(), rasterYSize()}); - io.write.region = PixelRegion({0, 0}, io.read.region.numPixels); - io.write.bytesPerLine = _dataTexture->bytesPerPixel() * io.write.region.numPixels.x; - io.write.totalNumBytes = io.write.bytesPerLine * io.write.region.numPixels.y; - - return io; -} -*/ - void SimpleRawTileDataReader::initialize() { _dataTexture = ghoul::io::TextureReader::ref().loadTexture(_datasetFilePath); if (_dataTexture == nullptr) { @@ -108,34 +94,9 @@ void SimpleRawTileDataReader::initialize() { "formats." ); } - float exponentX = log2(_dataTexture->dimensions().x); - float exponentY = log2(_dataTexture->dimensions().y); - if ( (exponentX - static_cast(exponentX)) > 0.0001 || - (exponentY - static_cast(exponentY)) > 0.0001 ) { - throw ghoul::RuntimeError( - "Unable to read dataset: " + _datasetFilePath + - ".\nCurrently only supporting power of 2 textures." - ); - } - _depthTransform = {depthScale(), depthOffset()}; } -/* -void SimpleRawTileDataReader::readImageData( - IODescription& io, RawTile::ReadError& worstError, char* dataDestination) const { - - // Modify to match OpenGL texture layout: - IODescription modifiedIO = io; - modifiedIO.read.region.start.y = modifiedIO.read.fullRegion.numPixels.y - modifiedIO.read.region.numPixels.y - modifiedIO.read.region.start.y; - - RawTile::ReadError err = repeatedRasterRead(0, modifiedIO, dataDestination); - - // None = 0, Debug = 1, Warning = 2, Failure = 3, Fatal = 4 - worstError = std::max(worstError, err); -} -*/ - RawTile::ReadError SimpleRawTileDataReader::rasterRead( int rasterBand, const IODescription& io, char* dataDestination) const { @@ -143,31 +104,100 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( "IODescription does not match data texture."); ghoul_assert(static_cast(io.read.fullRegion.numPixels.y) == _dataTexture->dimensions().y, "IODescription does not match data texture."); - ghoul_assert(io.read.region.numPixels.x == io.write.region.numPixels.x, - "IODescription does not match data texture."); - ghoul_assert(io.read.region.numPixels.y == io.write.region.numPixels.y, - "IODescription does not match data texture."); - char* pixelWriteRow = dataDestination + io.write.bytesPerLine; - -/* - try { - // For each row - for (int y = 0; y < io.read.region.numPixels.y; y++) { - int bytesPerLineDataTexture = - _dataTexture->bytesPerPixel() * _dataTexture->dimensions().x; - const char* textureRow = (static_cast(_dataTexture->pixelData()) - + io.read.region.start.x * _dataTexture->bytesPerPixel()) - + io.read.region.start.y * bytesPerLineDataTexture - + y * bytesPerLineDataTexture; - memcpy(pixelWriteRow, textureRow, io.write.bytesPerLine); - pixelWriteRow += io.write.bytesPerLine; + // Modify to match OpenGL texture layout: + IODescription modifiedIO = io; + modifiedIO.read.region.start.y = + modifiedIO.read.fullRegion.numPixels.y - + modifiedIO.read.region.numPixels.y - + modifiedIO.read.region.start.y; + + char* writeDataStart = + dataDestination + + _initData.bytesPerLine() * modifiedIO.write.region.start.y + + _initData.bytesPerPixel() * modifiedIO.write.region.start.x; + + for (int y = 0; y < modifiedIO.write.region.numPixels.y; ++y) { + for (int x = 0; x < modifiedIO.write.region.numPixels.x; ++x) { + char* pixelWriteDestination = + writeDataStart + + y * _initData.bytesPerLine() + + x * _initData.bytesPerPixel(); + + int xInSource = + modifiedIO.read.region.start.x + + static_cast(x) / modifiedIO.write.region.numPixels.x * + modifiedIO.read.region.numPixels.x; + int yInSource = + modifiedIO.read.region.start.y + + static_cast(y) / modifiedIO.write.region.numPixels.y * + modifiedIO.read.region.numPixels.y; + + glm::vec4 sourceTexel = _dataTexture->texelAsFloat(xInSource, yInSource); + + switch (_initData.glType()) { + case GL_UNSIGNED_BYTE: { + unsigned char value = static_cast( + sourceTexel[rasterBand - 1] * 255 + ); + char* bytes = reinterpret_cast(&value); + *pixelWriteDestination = *bytes; + break; + } + case GL_BYTE: { + char value = static_cast( + sourceTexel[rasterBand - 1] + ); + char* bytes = reinterpret_cast(&value); + *pixelWriteDestination = *bytes; + break; + } + case GL_UNSIGNED_SHORT: { + unsigned short value = static_cast( + sourceTexel[rasterBand - 1] + ); + char* bytes = reinterpret_cast(&value); + *pixelWriteDestination = *bytes; + break; + } + case GL_SHORT: { + short value = static_cast( + sourceTexel[rasterBand - 1] + ); + char* bytes = reinterpret_cast(&value); + *pixelWriteDestination = *bytes; + break; + } + case GL_UNSIGNED_INT: { + unsigned int value = static_cast( + sourceTexel[rasterBand - 1] + ); + char* bytes = reinterpret_cast(&value); + *pixelWriteDestination = *bytes; + break; + } + case GL_INT: { + int value = static_cast( + sourceTexel[rasterBand - 1] + ); + char* bytes = reinterpret_cast(&value); + *pixelWriteDestination = *bytes; + break; + } + case GL_FLOAT: { + float value = sourceTexel[rasterBand - 1]; + char* bytes = reinterpret_cast(&value); + *pixelWriteDestination = *bytes; + break; + } + default: { + ghoul_assert(false, "Unknown texture type"); + return RawTile::ReadError::Failure; + } + } } - } catch (const std::exception&) { - return RawTile::ReadError::Failure; } return RawTile::ReadError::None; - */ } From 28a6365aa22ff99f20c964ae38ee74b9c28fde94 Mon Sep 17 00:00:00 2001 From: Kalle Bladin Date: Thu, 13 Jul 2017 23:49:39 +0200 Subject: [PATCH 04/51] Add the ability to have fallback textures --- data/scene/lodglobes/earth/earth.mod | 30 +++++ .../rendering/layer/layergroup.cpp | 15 +++ .../rawtiledatareader/rawtiledatareader.cpp | 16 +-- .../simplerawtiledatareader.cpp | 15 ++- .../tile/tileprovider/tileproviderbylevel.cpp | 103 +++++++++--------- 5 files changed, 108 insertions(+), 71 deletions(-) diff --git a/data/scene/lodglobes/earth/earth.mod b/data/scene/lodglobes/earth/earth.mod index b20133580d..b94ced43a1 100644 --- a/data/scene/lodglobes/earth/earth.mod +++ b/data/scene/lodglobes/earth/earth.mod @@ -68,6 +68,11 @@ return { SegmentsPerPatch = 64, Layers = { ColorLayers = { + { + Name = "Earth Bluemarble Height", + FilePath = "textures/earth_bluemarble_height.jpg", + Enabled = true, + }, { Name = "ESRI VIIRS Combo", Type = "ByLevelTileLayer", @@ -88,6 +93,11 @@ return { }, }, Enabled = true, + Fallback = { + Name = "Blue Marble", + FilePath = "textures/earth_bluemarble.jpg", + Enabled = true, + } }, { Name = "BMNG", @@ -131,6 +141,16 @@ return { Gamma = 1.5, Multiplier = 15.0, }, + Fallback = { + Name = "Earth Night", + FilePath = "textures/earth_night.jpg", + Enabled = true, + Settings = { + Opacity = 1.0, + Gamma = 1.5, + Multiplier = 15.0, + }, + } }, { Type = "TemporalTileLayer", @@ -143,6 +163,11 @@ return { Name = "MODIS_Water_Mask", FilePath = "map_service_configs/GIBS/MODIS_Water_Mask.xml", Enabled = true, + Fallback = { + Name = "Earth Reflectance", + FilePath = "textures/earth_reflectance.jpg", + Enabled = true, + } }, { Name = "GEBCO", @@ -178,6 +203,11 @@ return { FilePath = "map_service_configs/ESRI/TERRAIN.wms", Enabled = true, TilePixelSize = 64, + Fallback = { + Name = "Earth Bluemarble Height", + FilePath = "textures/earth_bluemarble_height.jpg", + Enabled = true, + } }, }, }, diff --git a/modules/globebrowsing/rendering/layer/layergroup.cpp b/modules/globebrowsing/rendering/layer/layergroup.cpp index 7b038c8f58..75b15fa4de 100644 --- a/modules/globebrowsing/rendering/layer/layergroup.cpp +++ b/modules/globebrowsing/rendering/layer/layergroup.cpp @@ -28,6 +28,8 @@ namespace { const char* _loggerCat = "LayerGroup"; + + const char* KeyFallback = "Fallback"; } namespace openspace { @@ -53,6 +55,19 @@ LayerGroup::LayerGroup(layergroupid::GroupID id, const ghoul::Dictionary& dict) } catch (const ghoul::RuntimeError& e) { LERRORC(e.component, e.message); + + if (layerDict.hasKeyAndValue(KeyFallback)) { + LWARNING("Unable to create layer. Initializing fallback layer."); + ghoul::Dictionary fallbackLayerDict = + layerDict.value(KeyFallback); + try { + addLayer(fallbackLayerDict); + } + catch (const ghoul::RuntimeError& e) { + LERRORC(e.component, e.message); + continue; + } + } continue; } } diff --git a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp index fef381fcce..914225f3cb 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp @@ -124,18 +124,12 @@ void RawTileDataReader::readImageData( static_cast(_initData.nRasters())); switch (_initData.ghoulTextureFormat()) { - case ghoul::opengl::Texture::Format::Red: - if (nRastersToRead == 1) { // One channel - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dataDestination = imageDataDest + _initData.bytesPerDatum(); - - RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); - - // CE_None = 0, CE_Debug = 1, CE_Warning = 2, CE_Failure = 3, CE_Fatal = 4 - worstError = std::max(worstError, err); - } + case ghoul::opengl::Texture::Format::Red: { + char* dataDestination = imageDataDest; + RawTile::ReadError err = repeatedRasterRead(1, io, dataDestination); + worstError = std::max(worstError, err); break; + } case ghoul::opengl::Texture::Format::RG: case ghoul::opengl::Texture::Format::RGB: case ghoul::opengl::Texture::Format::RGBA: { diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp index d40a98ddde..e11d644c90 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp @@ -135,6 +135,9 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( glm::vec4 sourceTexel = _dataTexture->texelAsFloat(xInSource, yInSource); + // Different type reinterpreting depending on the type of the target texture + // the _initData.glType() does not necessarily have to be the same type as + // the type of the source texture. Therefore the value is cast to float first. switch (_initData.glType()) { case GL_UNSIGNED_BYTE: { unsigned char value = static_cast( @@ -146,7 +149,7 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( } case GL_BYTE: { char value = static_cast( - sourceTexel[rasterBand - 1] + sourceTexel[rasterBand - 1] * 255 ); char* bytes = reinterpret_cast(&value); *pixelWriteDestination = *bytes; @@ -154,7 +157,7 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( } case GL_UNSIGNED_SHORT: { unsigned short value = static_cast( - sourceTexel[rasterBand - 1] + sourceTexel[rasterBand - 1] * 65535 ); char* bytes = reinterpret_cast(&value); *pixelWriteDestination = *bytes; @@ -162,7 +165,7 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( } case GL_SHORT: { short value = static_cast( - sourceTexel[rasterBand - 1] + sourceTexel[rasterBand - 1] * 65535 ); char* bytes = reinterpret_cast(&value); *pixelWriteDestination = *bytes; @@ -170,7 +173,7 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( } case GL_UNSIGNED_INT: { unsigned int value = static_cast( - sourceTexel[rasterBand - 1] + sourceTexel[rasterBand - 1] * 4294967295 ); char* bytes = reinterpret_cast(&value); *pixelWriteDestination = *bytes; @@ -178,14 +181,14 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( } case GL_INT: { int value = static_cast( - sourceTexel[rasterBand - 1] + sourceTexel[rasterBand - 1] * 4294967295 ); char* bytes = reinterpret_cast(&value); *pixelWriteDestination = *bytes; break; } case GL_FLOAT: { - float value = sourceTexel[rasterBand - 1]; + GLfloat value = sourceTexel[rasterBand - 1]; char* bytes = reinterpret_cast(&value); *pixelWriteDestination = *bytes; break; diff --git a/modules/globebrowsing/tile/tileprovider/tileproviderbylevel.cpp b/modules/globebrowsing/tile/tileprovider/tileproviderbylevel.cpp index 92438fbeb3..39e8c6e39a 100644 --- a/modules/globebrowsing/tile/tileprovider/tileproviderbylevel.cpp +++ b/modules/globebrowsing/tile/tileprovider/tileproviderbylevel.cpp @@ -54,62 +54,57 @@ TileProviderByLevel::TileProviderByLevel(const ghoul::Dictionary& dictionary) } for (size_t i = 0; i < providers.size(); i++) { - try { - std::string dictKey = std::to_string(i + 1); - ghoul::Dictionary levelProviderDict = providers.value( - dictKey + std::string dictKey = std::to_string(i + 1); + ghoul::Dictionary levelProviderDict = providers.value( + dictKey + ); + double floatMaxLevel; + int maxLevel = 0; + if (!levelProviderDict.getValue(KeyMaxLevel, floatMaxLevel)) { + throw std::runtime_error( + "Must define key '" + std::string(KeyMaxLevel) + "'" ); - double floatMaxLevel; - int maxLevel = 0; - if (!levelProviderDict.getValue(KeyMaxLevel, floatMaxLevel)) { - throw std::runtime_error( - "Must define key '" + std::string(KeyMaxLevel) + "'" - ); - } - maxLevel = std::round(floatMaxLevel); - - ghoul::Dictionary providerDict; - if (!levelProviderDict.getValue(KeyTileProvider, providerDict)) { - throw std::runtime_error( - "Must define key '" + std::string(KeyTileProvider) + "'" - ); - } - providerDict.setValue(KeyLayerGroupID, layerGroupID); - - std::string typeString; - providerDict.getValue("Type", typeString); - layergroupid::TypeID typeID = layergroupid::TypeID::Unknown; - if (typeString.empty()) { - typeID = layergroupid::TypeID::DefaultTileLayer; - } - else { - typeID = layergroupid::getTypeIDFromTypeString(typeString); - } - - if (typeID == layergroupid::TypeID::Unknown) { - throw ghoul::RuntimeError("Unknown layer type: " + typeString); - } - - _levelTileProviders.push_back( - std::shared_ptr(TileProvider::createFromDictionary(typeID, providerDict)) - ); - - std::string providerName; - providerDict.getValue("Name", providerName); - _levelTileProviders.back()->setName(providerName); - addPropertySubOwner(_levelTileProviders.back().get()); - - // Ensure we can represent the max level - if(static_cast(_providerIndices.size()) < maxLevel){ - _providerIndices.resize(maxLevel+1, -1); - } - - // map this level to the tile provider index - _providerIndices[maxLevel] = _levelTileProviders.size() - 1; } - catch (const ghoul::RuntimeError& e) { - LWARNING("Unable to create tile provider: " + std::string(e.what())); - } + maxLevel = std::round(floatMaxLevel); + + ghoul::Dictionary providerDict; + if (!levelProviderDict.getValue(KeyTileProvider, providerDict)) { + throw std::runtime_error( + "Must define key '" + std::string(KeyTileProvider) + "'" + ); + } + providerDict.setValue(KeyLayerGroupID, layerGroupID); + + std::string typeString; + providerDict.getValue("Type", typeString); + layergroupid::TypeID typeID = layergroupid::TypeID::Unknown; + if (typeString.empty()) { + typeID = layergroupid::TypeID::DefaultTileLayer; + } + else { + typeID = layergroupid::getTypeIDFromTypeString(typeString); + } + + if (typeID == layergroupid::TypeID::Unknown) { + throw ghoul::RuntimeError("Unknown layer type: " + typeString); + } + + _levelTileProviders.push_back( + std::shared_ptr(TileProvider::createFromDictionary(typeID, providerDict)) + ); + + std::string providerName; + providerDict.getValue("Name", providerName); + _levelTileProviders.back()->setName(providerName); + addPropertySubOwner(_levelTileProviders.back().get()); + + // Ensure we can represent the max level + if(static_cast(_providerIndices.size()) < maxLevel){ + _providerIndices.resize(maxLevel+1, -1); + } + + // map this level to the tile provider index + _providerIndices[maxLevel] = _levelTileProviders.size() - 1; } // Fill in the gaps (value -1) in provider indices, from back to end From e825d3b736f5a2037ef973b2430963429c8f2dc5 Mon Sep 17 00:00:00 2001 From: Kalle Bladin Date: Fri, 14 Jul 2017 00:09:44 +0200 Subject: [PATCH 05/51] Correct type reinterpretation --- .../simplerawtiledatareader.cpp | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp index e11d644c90..e7e148a0b0 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp @@ -143,54 +143,47 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( unsigned char value = static_cast( sourceTexel[rasterBand - 1] * 255 ); - char* bytes = reinterpret_cast(&value); - *pixelWriteDestination = *bytes; + *reinterpret_cast(pixelWriteDestination) = value; break; } case GL_BYTE: { char value = static_cast( sourceTexel[rasterBand - 1] * 255 ); - char* bytes = reinterpret_cast(&value); - *pixelWriteDestination = *bytes; + *reinterpret_cast(pixelWriteDestination) = value; break; } case GL_UNSIGNED_SHORT: { unsigned short value = static_cast( sourceTexel[rasterBand - 1] * 65535 ); - char* bytes = reinterpret_cast(&value); - *pixelWriteDestination = *bytes; + *reinterpret_cast(pixelWriteDestination) = value; break; } case GL_SHORT: { short value = static_cast( sourceTexel[rasterBand - 1] * 65535 ); - char* bytes = reinterpret_cast(&value); - *pixelWriteDestination = *bytes; + *reinterpret_cast(pixelWriteDestination) = value; break; } case GL_UNSIGNED_INT: { unsigned int value = static_cast( sourceTexel[rasterBand - 1] * 4294967295 ); - char* bytes = reinterpret_cast(&value); - *pixelWriteDestination = *bytes; + *reinterpret_cast(pixelWriteDestination) = value; break; } case GL_INT: { int value = static_cast( sourceTexel[rasterBand - 1] * 4294967295 ); - char* bytes = reinterpret_cast(&value); - *pixelWriteDestination = *bytes; + *reinterpret_cast(pixelWriteDestination) = value; break; } case GL_FLOAT: { - GLfloat value = sourceTexel[rasterBand - 1]; - char* bytes = reinterpret_cast(&value); - *pixelWriteDestination = *bytes; + float value = sourceTexel[rasterBand - 1]; + *reinterpret_cast(pixelWriteDestination) = value; break; } default: { From 42ff93c4da3c2811104c9aaf89f530918a530fbb Mon Sep 17 00:00:00 2001 From: Kalle Bladin Date: Fri, 14 Jul 2017 00:26:01 +0200 Subject: [PATCH 06/51] Add fallback texture for Mars --- data/scene/lodglobes/mars/mars.mod | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/scene/lodglobes/mars/mars.mod b/data/scene/lodglobes/mars/mars.mod index 7443aa8f2f..2daeeebdd4 100644 --- a/data/scene/lodglobes/mars/mars.mod +++ b/data/scene/lodglobes/mars/mars.mod @@ -43,6 +43,11 @@ return { Name = "Viking", FilePath = "map_service_configs/MARS_Viking_MDIM21.xml", Enabled = true, + Fallback = { + Name = "Mars Texture", + FilePath = "textures/mars.jpg", + Enabled = true, + }, }, { Name = "MOLA Pseudo Color", From f2d7c9c754154df8f9d54db6c1ef40188836f57e Mon Sep 17 00:00:00 2001 From: Kalle Bladin Date: Fri, 14 Jul 2017 00:46:39 +0200 Subject: [PATCH 07/51] Update maxChunkLevel function --- .../tile/rawtiledatareader/simplerawtiledatareader.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp index e7e148a0b0..f5d41d2769 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp @@ -58,7 +58,8 @@ void SimpleRawTileDataReader::reset() { } int SimpleRawTileDataReader::maxChunkLevel() const { - return 5; + float ratio = static_cast(rasterYSize()) / _initData.dimensionsWithoutPadding().y; + return glm::max(2, 1 + static_cast(glm::log2(ratio))); } float SimpleRawTileDataReader::noDataValueAsFloat() const { @@ -100,9 +101,11 @@ void SimpleRawTileDataReader::initialize() { RawTile::ReadError SimpleRawTileDataReader::rasterRead( int rasterBand, const IODescription& io, char* dataDestination) const { - ghoul_assert(static_cast(io.read.fullRegion.numPixels.x) == _dataTexture->dimensions().x, + ghoul_assert(static_cast( + io.read.fullRegion.numPixels.x) == _dataTexture->dimensions().x, "IODescription does not match data texture."); - ghoul_assert(static_cast(io.read.fullRegion.numPixels.y) == _dataTexture->dimensions().y, + ghoul_assert(static_cast( + io.read.fullRegion.numPixels.y) == _dataTexture->dimensions().y, "IODescription does not match data texture."); // Modify to match OpenGL texture layout: From 0a0942307c9daacc8a3f7e790e749b8e2e360e6f Mon Sep 17 00:00:00 2001 From: Kalle Bladin Date: Fri, 14 Jul 2017 10:58:50 +0200 Subject: [PATCH 08/51] Fix y axis flip issue. --- .../rawtiledatareader/rawtiledatareader.cpp | 6 +++ .../rawtiledatareader/rawtiledatareader.h | 6 +++ .../simplerawtiledatareader.cpp | 37 ++++++++++--------- .../simplerawtiledatareader.h | 3 ++ 4 files changed, 35 insertions(+), 17 deletions(-) diff --git a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp index 914225f3cb..1675a9fd12 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp @@ -119,6 +119,8 @@ std::shared_ptr RawTileDataReader::readTileData(TileIndex tileIndex, void RawTileDataReader::readImageData( IODescription& io, RawTile::ReadError& worstError, char* imageDataDest) const { + io = adjustIODescription(io); + // Only read the minimum number of rasters int nRastersToRead = std::min(dataSourceNumRasters(), static_cast(_initData.nRasters())); @@ -238,6 +240,10 @@ void RawTileDataReader::readImageData( } } +IODescription RawTileDataReader::adjustIODescription(const IODescription& io) const { + return io; +} + IODescription RawTileDataReader::getIODescription(const TileIndex& tileIndex) const { IODescription io; io.read.region = highestResPixelRegion(tileIndex); diff --git a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h index 64f0d89f41..338a6a3970 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h +++ b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h @@ -112,6 +112,12 @@ protected: void readImageData( IODescription& io, RawTile::ReadError& worstError, char* dataDestination) const; + /** + * The default does not affect the IODescription but this function can be used for + * example to flip the y axis. + */ + virtual IODescription adjustIODescription(const IODescription& io) const; + virtual RawTile::ReadError rasterRead( int rasterBand, const IODescription& io, char* dst) const = 0; diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp index f5d41d2769..dc9dfd1bc8 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp @@ -108,33 +108,26 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( io.read.fullRegion.numPixels.y) == _dataTexture->dimensions().y, "IODescription does not match data texture."); - // Modify to match OpenGL texture layout: - IODescription modifiedIO = io; - modifiedIO.read.region.start.y = - modifiedIO.read.fullRegion.numPixels.y - - modifiedIO.read.region.numPixels.y - - modifiedIO.read.region.start.y; - char* writeDataStart = dataDestination + - _initData.bytesPerLine() * modifiedIO.write.region.start.y + - _initData.bytesPerPixel() * modifiedIO.write.region.start.x; + _initData.bytesPerLine() * io.write.region.start.y + + _initData.bytesPerPixel() * io.write.region.start.x; - for (int y = 0; y < modifiedIO.write.region.numPixels.y; ++y) { - for (int x = 0; x < modifiedIO.write.region.numPixels.x; ++x) { + for (int y = 0; y < io.write.region.numPixels.y; ++y) { + for (int x = 0; x < io.write.region.numPixels.x; ++x) { char* pixelWriteDestination = writeDataStart + y * _initData.bytesPerLine() + x * _initData.bytesPerPixel(); int xInSource = - modifiedIO.read.region.start.x + - static_cast(x) / modifiedIO.write.region.numPixels.x * - modifiedIO.read.region.numPixels.x; + io.read.region.start.x + + static_cast(x) / io.write.region.numPixels.x * + io.read.region.numPixels.x; int yInSource = - modifiedIO.read.region.start.y + - static_cast(y) / modifiedIO.write.region.numPixels.y * - modifiedIO.read.region.numPixels.y; + io.read.region.start.y + + static_cast(y) / io.write.region.numPixels.y * + io.read.region.numPixels.y; glm::vec4 sourceTexel = _dataTexture->texelAsFloat(xInSource, yInSource); @@ -199,6 +192,16 @@ RawTile::ReadError SimpleRawTileDataReader::rasterRead( return RawTile::ReadError::None; } +IODescription SimpleRawTileDataReader::adjustIODescription(const IODescription& io) const { + // Modify to match OpenGL texture layout + IODescription modifiedIO = io; + modifiedIO.read.region.start.y = + modifiedIO.read.fullRegion.numPixels.y - + modifiedIO.read.region.numPixels.y - + modifiedIO.read.region.start.y; + + return modifiedIO; +} } // namespace globebrowsing } // namespace openspace diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h index 5f8241cf13..b22d56d915 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h +++ b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h @@ -62,6 +62,9 @@ public: virtual float depthOffset() const override; virtual float depthScale() const override; +protected: + virtual IODescription adjustIODescription(const IODescription& io) const; + private: // Private virtual function overloading virtual void initialize() override; From 3aa8f2a056c5ca377ce9aae6320a24339aeb94d0 Mon Sep 17 00:00:00 2001 From: Kalle Bladin Date: Wed, 19 Jul 2017 10:01:53 +0200 Subject: [PATCH 09/51] Recompile shaders at initialization of globes --- data/scene/lodglobes/earth/earth.mod | 12 +----------- modules/globebrowsing/globes/chunkedlodglobe.cpp | 5 +++++ modules/globebrowsing/globes/chunkedlodglobe.h | 10 ++++++++++ modules/globebrowsing/globes/renderableglobe.cpp | 4 ++++ 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/data/scene/lodglobes/earth/earth.mod b/data/scene/lodglobes/earth/earth.mod index 40ca41b843..e18362ed33 100644 --- a/data/scene/lodglobes/earth/earth.mod +++ b/data/scene/lodglobes/earth/earth.mod @@ -66,11 +66,6 @@ return { SegmentsPerPatch = 64, Layers = { ColorLayers = { - { - Name = "Earth Bluemarble Height", - FilePath = "textures/earth_bluemarble_height.jpg", - Enabled = true, - }, { Name = "ESRI VIIRS Combo", Type = "ByLevelTileLayer", @@ -98,8 +93,8 @@ return { } }, { + Name = "ESRI_Imagery_World_2D", FilePath = "map_service_configs/ESRI/ESRI_Imagery_World_2D.wms", - Name = "ESRI", }, { Name = "BMNG", @@ -165,11 +160,6 @@ return { Name = "MODIS_Water_Mask", FilePath = "map_service_configs/GIBS/MODIS_Water_Mask.xml", Enabled = true, - Fallback = { - Name = "Earth Reflectance", - FilePath = "textures/earth_reflectance.jpg", - Enabled = true, - } }, { Name = "GEBCO", diff --git a/modules/globebrowsing/globes/chunkedlodglobe.cpp b/modules/globebrowsing/globes/chunkedlodglobe.cpp index 60de75ff00..c38a791557 100644 --- a/modules/globebrowsing/globes/chunkedlodglobe.cpp +++ b/modules/globebrowsing/globes/chunkedlodglobe.cpp @@ -279,6 +279,11 @@ void ChunkedLodGlobe::notifyShaderRecompilation() { _shadersNeedRecompilation = true; } +void ChunkedLodGlobe::recompileShaders() { + _renderer->recompileShaders(_owner); + _shadersNeedRecompilation = false; +} + void ChunkedLodGlobe::render(const RenderData& data) { stats.startNewRecord(); if (_shadersNeedRecompilation) { diff --git a/modules/globebrowsing/globes/chunkedlodglobe.h b/modules/globebrowsing/globes/chunkedlodglobe.h index 52f5e61d3c..8b7dba9651 100644 --- a/modules/globebrowsing/globes/chunkedlodglobe.h +++ b/modules/globebrowsing/globes/chunkedlodglobe.h @@ -107,8 +107,18 @@ public: */ float getHeight(glm::dvec3 position) const; + /** + * Notifies the renderer to recompile its shaders the next time the render function is + * called. The actual shader recompilation takes place in the render function because + * properties that the shader depends on need to be properly synced. + */ void notifyShaderRecompilation(); + /** + * Directly recompile the shaders of the renderer. + */ + void recompileShaders(); + const int minSplitDepth; const int maxSplitDepth; diff --git a/modules/globebrowsing/globes/renderableglobe.cpp b/modules/globebrowsing/globes/renderableglobe.cpp index 6b61e0f7d0..d7dd6d4b49 100644 --- a/modules/globebrowsing/globes/renderableglobe.cpp +++ b/modules/globebrowsing/globes/renderableglobe.cpp @@ -141,6 +141,10 @@ RenderableGlobe::RenderableGlobe(const ghoul::Dictionary& dictionary) addPropertySubOwner(_debugPropertyOwner); addPropertySubOwner(_layerManager.get()); //addPropertySubOwner(_pointGlobe.get()); + + // Recompile the shaders directly so that it is not done the first time the render + // function is called. + _chunkedLodGlobe->recompileShaders(); } bool RenderableGlobe::initialize() { From 19f8e30813049560dd4b1dd21ecbb23e6dc536c3 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Wed, 26 Jul 2017 21:40:59 -0400 Subject: [PATCH 10/51] Change RenderableModel "Rotation.ModelTransform" to "ModelTransform" Add Property descriptions to the documentation file Remove update method from StaticTranslation Remove spelling error in RenderableGlobe Remove rotation from renderablemodel projection Fix setting the Origin through the GUI Reorder Optional and documentation arguments for DocumentationEntry, and making Optional a non-optional argument --- .../missions/rosetta/rosetta/rosetta.mod | 28 +-- data/web/common/style.css | 4 + data/web/properties/property.hbs | 1 + .../openspace/documentation/documentation.h | 6 +- modules/base/rendering/modelgeometry.cpp | 8 +- modules/base/rendering/renderablemodel.cpp | 35 ++-- modules/base/rendering/renderablemodel.h | 4 +- modules/base/rendering/renderableplane.cpp | 12 +- modules/base/rendering/renderablesphere.cpp | 20 +- modules/base/rendering/renderabletrail.cpp | 28 +-- .../base/rendering/renderabletrailorbit.cpp | 8 +- .../rendering/renderabletrailtrajectory.cpp | 20 +- modules/base/rendering/screenspaceimage.cpp | 8 +- modules/base/rotation/staticrotation.cpp | 5 +- modules/base/scale/staticscale.cpp | 4 +- modules/base/shaders/model_fs.glsl | 3 +- .../base/translation/statictranslation.cpp | 7 +- modules/base/translation/statictranslation.h | 1 - .../rendering/renderabledebugplane.cpp | 16 +- .../globebrowsing/globes/renderableglobe.cpp | 3 +- .../tasks/kameleondocumentationtask.cpp | 3 + .../tasks/kameleonmetadatatojsontask.cpp | 3 + .../rendering/renderablecrawlingline.cpp | 22 +-- .../newhorizons/rendering/renderablefov.cpp | 39 ++-- .../rendering/renderablemodelprojection.cpp | 62 ++----- .../rendering/renderablemodelprojection.h | 2 - .../rendering/renderableplanetprojection.cpp | 24 +-- .../rendering/renderableshadowcylinder.cpp | 40 ++-- .../newhorizons/util/projectioncomponent.cpp | 41 ++--- .../onscreengui/src/guiorigincomponent.cpp | 2 +- modules/space/rendering/planetgeometry.cpp | 4 +- .../renderableconstellationbounds.cpp | 16 +- modules/space/rendering/renderableplanet.cpp | 32 ++-- modules/space/rendering/renderablerings.cpp | 21 +-- modules/space/rendering/renderablestars.cpp | 29 ++- .../space/rendering/simplespheregeometry.cpp | 8 +- modules/space/rotation/spicerotation.cpp | 13 +- .../space/translation/keplertranslation.cpp | 33 ++-- .../space/translation/spicetranslation.cpp | 17 +- modules/space/translation/tletranslation.cpp | 10 +- src/documentation/documentation.cpp | 10 +- src/documentation/verifier.cpp | 8 +- src/engine/configurationmanager_doc.inl | 174 +++++++++--------- src/engine/logfactory.cpp | 22 ++- src/mission/mission.cpp | 16 +- src/rendering/renderable.cpp | 4 +- src/rendering/screenspacerenderable.cpp | 4 +- src/scene/rotation.cpp | 4 +- src/scene/scale.cpp | 4 +- src/scene/scene.cpp | 3 +- src/scene/scene_doc.inl | 29 +-- src/scene/scenegraphnode_doc.inl | 28 +-- src/scene/translation.cpp | 4 +- src/scripting/scriptscheduler.cpp | 19 +- src/util/task.cpp | 4 +- src/util/timerange.cpp | 8 +- 56 files changed, 491 insertions(+), 492 deletions(-) diff --git a/data/scene/missions/rosetta/rosetta/rosetta.mod b/data/scene/missions/rosetta/rosetta/rosetta.mod index 930a4941df..961749dd01 100644 --- a/data/scene/missions/rosetta/rosetta/rosetta.mod +++ b/data/scene/missions/rosetta/rosetta/rosetta.mod @@ -48,7 +48,7 @@ RosettaKernels = { "${OPENSPACE_DATA}/spice/Rosetta/PCK/ROS_CGS_RSOC_V03.TPC", } -RotationMatrix = { +local RotationMatrix = { 0, 1, 0, 0, 0, 1, 1, 0, 0 @@ -99,7 +99,7 @@ return { Type = "simple", Color = "textures/foil_silver_ramp.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, { @@ -116,7 +116,7 @@ return { Type = "simple", Color = "textures/foil_silver_ramp.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, { @@ -133,7 +133,7 @@ return { Type = "simple", Color = "textures/dish_AO.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix }, -- Transform = { @@ -158,7 +158,7 @@ return { Type = "simple", Color = "textures/parts2_AO.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, @@ -176,7 +176,7 @@ return { Type = "simple", Color = "textures/foil_silver_ramp.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, @@ -194,7 +194,7 @@ return { Type = "simple", Color = "textures/tex_01.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, @@ -212,7 +212,7 @@ return { Type = "simple", Color = "textures/tex_01.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix }, -- Transform = { @@ -237,7 +237,7 @@ return { Type = "simple", Color = "textures/tex_01.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix }, -- Transform = { @@ -262,7 +262,7 @@ return { Type = "simple", Color = "textures/foil_gold_ramp.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, @@ -304,7 +304,7 @@ return { Type = "simple", Color = "textures/foil_silver_ramp.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, @@ -322,7 +322,7 @@ return { Type = "simple", Color = "textures/parts2_AO.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, @@ -340,7 +340,7 @@ return { Type = "simple", Color = "textures/foil_silver_ramp.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, @@ -358,7 +358,7 @@ return { Type = "simple", Color = "textures/tex_01.png" }, - Rotation = { ModelTransform = RotationMatrix } + ModelTransform = RotationMatrix } }, { diff --git a/data/web/common/style.css b/data/web/common/style.css index ac82e9fe77..f785e54ff7 100644 --- a/data/web/common/style.css +++ b/data/web/common/style.css @@ -57,6 +57,10 @@ font-size: 0.9em; } +.documentation-documentation { + font-size: 0.9em; +} + .documentation-container { font-size: 1.2em; } diff --git a/data/web/properties/property.hbs b/data/web/properties/property.hbs index b01807229d..7a0bd7a430 100644 --- a/data/web/properties/property.hbs +++ b/data/web/properties/property.hbs @@ -10,6 +10,7 @@

{{fullyQualifiedId}} copy

+

{{description}}

diff --git a/include/openspace/documentation/documentation.h b/include/openspace/documentation/documentation.h index 852b8faa9b..6458a55485 100644 --- a/include/openspace/documentation/documentation.h +++ b/include/openspace/documentation/documentation.h @@ -162,7 +162,7 @@ struct DocumentationEntry { * \pre \p verifier must not be nullptr */ DocumentationEntry(std::string key, std::shared_ptr verifier, - std::string doc = "", Optional optional = Optional::No); + Optional optional, std::string doc = ""); /** * The constructor for a DocumentationEntry describing a \p key in a Documentation. @@ -185,8 +185,8 @@ struct DocumentationEntry { * \pre \p key must not be empty * \pre \p verifier must not be nullptr */ - DocumentationEntry(std::string key, Verifier* verifier, std::string doc = "", - Optional optional = Optional::No); + DocumentationEntry(std::string key, Verifier* verifier, Optional optional, + std::string doc = ""); /// The key that is described by this DocumentationEntry std::string key; diff --git a/modules/base/rendering/modelgeometry.cpp b/modules/base/rendering/modelgeometry.cpp index c82d08c700..df680a4b99 100644 --- a/modules/base/rendering/modelgeometry.cpp +++ b/modules/base/rendering/modelgeometry.cpp @@ -55,16 +55,16 @@ documentation:: Documentation ModelGeometry::Documentation() { { KeyType, new StringVerifier, - "The type of the Model Geometry that should be generated", - Optional::No + Optional::No, + "The type of the Model Geometry that should be generated" }, { KeyGeomModelFile, new StringVerifier, + Optional::No, "The file that should be loaded in this ModelGeometry. The file can " "contain filesystem tokens or can be specified relatively to the " - "location of the .mod file.", - Optional::No + "location of the .mod file." } } }; diff --git a/modules/base/rendering/renderablemodel.cpp b/modules/base/rendering/renderablemodel.cpp index 374ae7587b..4dd43cd3ff 100644 --- a/modules/base/rendering/renderablemodel.cpp +++ b/modules/base/rendering/renderablemodel.cpp @@ -42,10 +42,10 @@ #include #include -namespace { +namespace { const char* KeyGeometry = "Geometry"; const char* KeyTexture = "Textures.Color"; - const char* KeyModelTransform = "Rotation.ModelTransform"; + const char* KeyModelTransform = "ModelTransform"; static const openspace::properties::Property::PropertyInfo TextureInfo = { "ColorTexture", // @TODO replace with only "Texture" @@ -60,6 +60,13 @@ namespace { "This value determines whether this model should be shaded by using the position " "of the Sun." }; + + static const openspace::properties::Property::PropertyInfo ModelTransformInfo = { + "ModelTransform", + "Model Transform", + "This value specifies the model transform that is applied to the model before " + "all other transformations are applied." + }; } // namespace namespace openspace { @@ -73,27 +80,26 @@ documentation::Documentation RenderableModel::Documentation() { { KeyGeometry, new ReferencingVerifier("base_geometry_model"), - "This specifies the model that is rendered by the Renderable.", - Optional::No + Optional::No, + "This specifies the model that is rendered by the Renderable." }, { KeyTexture, // @TODO replace with TextureInfo.identifier new StringVerifier, - TextureInfo.description, - Optional::Yes + Optional::Yes, + TextureInfo.description }, { ShadingInfo.identifier, new BoolVerifier, - ShadingInfo.description, - Optional::Yes + Optional::Yes, + ShadingInfo.description }, { - KeyModelTransform, + ModelTransformInfo.identifier, new DoubleMatrix3Verifier, - "Specifies a distinct transformation matrix that is applied to the " - "model. If it is not specified, it is equal to the Identity matrix.", - Optional::Yes + Optional::Yes, + ModelTransformInfo.description } } }; @@ -104,9 +110,9 @@ RenderableModel::RenderableModel(const ghoul::Dictionary& dictionary) , _geometry(nullptr) , _colorTexturePath(TextureInfo) , _performShading(ShadingInfo, true) + , _modelTransform(ModelTransformInfo, glm::mat3(1.0)) , _programObject(nullptr) , _texture(nullptr) - , _modelTransform(1.0) { ghoul_precondition( dictionary.hasKeyAndValue(SceneGraphNode::KeyName), @@ -187,7 +193,7 @@ void RenderableModel::render(const RenderData& data, RendererTasks&) { glm::dmat4 modelTransform = glm::translate(glm::dmat4(1.0), data.modelTransform.translation) * // Translation glm::dmat4(data.modelTransform.rotation) * // Spice rotation - glm::dmat4(glm::scale(glm::dmat4(_modelTransform), glm::dvec3(data.modelTransform.scale))); + glm::dmat4(glm::scale(glm::dmat4(_modelTransform.value()), glm::dvec3(data.modelTransform.scale))); glm::dmat4 modelViewTransform = data.camera.combinedViewMatrix() * modelTransform; glm::vec3 directionToSun = glm::normalize(_sunPos - data.modelTransform.translation); @@ -197,7 +203,6 @@ void RenderableModel::render(const RenderData& data, RendererTasks&) { _programObject->setUniform("modelViewTransform", glm::mat4(modelViewTransform)); _programObject->setUniform("projectionTransform", data.camera.projectionMatrix()); _programObject->setUniform("performShading", _performShading); - _programObject->setUniform("fading", 1.f); // @TODO remove this _geometry->setUniforms(*_programObject); diff --git a/modules/base/rendering/renderablemodel.h b/modules/base/rendering/renderablemodel.h index 1fc9ec5c51..57a7f600b8 100644 --- a/modules/base/rendering/renderablemodel.h +++ b/modules/base/rendering/renderablemodel.h @@ -28,9 +28,9 @@ #include #include +#include #include #include -#include #include @@ -69,11 +69,11 @@ private: properties::StringProperty _colorTexturePath; properties::BoolProperty _performShading; + properties::Mat3Property _modelTransform; std::unique_ptr _programObject; std::unique_ptr _texture; - glm::dmat3 _modelTransform; glm::dvec3 _sunPos; }; diff --git a/modules/base/rendering/renderableplane.cpp b/modules/base/rendering/renderableplane.cpp index 8dafb0a336..82e5d24653 100644 --- a/modules/base/rendering/renderableplane.cpp +++ b/modules/base/rendering/renderableplane.cpp @@ -82,26 +82,26 @@ documentation::Documentation RenderablePlane::Documentation() { { SizeInfo.identifier, new DoubleVerifier, - SizeInfo.description, - Optional::No + Optional::No, + SizeInfo.description }, { BillboardInfo.identifier, new BoolVerifier, - BillboardInfo.description, - Optional::Yes + Optional::Yes, + BillboardInfo.description }, { BlendModeInfo.identifier, new StringInListVerifier({ "Normal", "Additive" }), + Optional::Yes, BlendModeInfo.description, // + " The default value is 'Normal'.", - Optional::Yes }, { TextureInfo.identifier, new StringVerifier, + Optional::No, TextureInfo.description, - Optional::No } } }; diff --git a/modules/base/rendering/renderablesphere.cpp b/modules/base/rendering/renderablesphere.cpp index a226bd7bda..3276b08098 100644 --- a/modules/base/rendering/renderablesphere.cpp +++ b/modules/base/rendering/renderablesphere.cpp @@ -92,32 +92,32 @@ documentation::Documentation RenderableSphere::Documentation() { { SizeInfo.identifier, new DoubleVerifier, - SizeInfo.description, - Optional::No + Optional::No, + SizeInfo.description }, { SegmentsInfo.identifier, new IntVerifier, - SegmentsInfo.description, - Optional::No + Optional::No, + SegmentsInfo.description }, { TextureInfo.identifier, new StringVerifier, - TextureInfo.description, - Optional::No + Optional::No, + TextureInfo.description }, { OrientationInfo.identifier, new StringInListVerifier({ "Inside", "Outside", "Inside/Outside" }), - OrientationInfo.description, - Optional::Yes + Optional::Yes, + OrientationInfo.description }, { TransparencyInfo.identifier, new DoubleInRangeVerifier(0.0, 1.0), - TransparencyInfo.description, - Optional::Yes + Optional::Yes, + TransparencyInfo.description } } }; diff --git a/modules/base/rendering/renderabletrail.cpp b/modules/base/rendering/renderabletrail.cpp index 898346c226..39b5d4ca5a 100644 --- a/modules/base/rendering/renderabletrail.cpp +++ b/modules/base/rendering/renderabletrail.cpp @@ -111,39 +111,39 @@ documentation::Documentation RenderableTrail::Documentation() { { KeyTranslation, new ReferencingVerifier("core_transform_translation"), + Optional::No, "This object is used to compute locations along the path. Any " - "Translation object can be used here.", - Optional::No + "Translation object can be used here." }, { LineColorInfo.identifier, new DoubleVector3Verifier, - LineColorInfo.description, - Optional::No + Optional::No, + LineColorInfo.description }, { EnableFadeInfo.identifier, new BoolVerifier, - EnableFadeInfo.description, - Optional::Yes + Optional::Yes, + EnableFadeInfo.description }, { FadeInfo.identifier, new DoubleVerifier, - FadeInfo.description, - Optional::Yes + Optional::Yes, + FadeInfo.description }, { LineWidthInfo.identifier, new DoubleVerifier, - LineWidthInfo.description, - Optional::Yes + Optional::Yes, + LineWidthInfo.description }, { PointSizeInfo.identifier, new DoubleVerifier, - PointSizeInfo.description, - Optional::Yes + Optional::Yes, + PointSizeInfo.description }, { RenderingModeInfo.identifier, @@ -151,8 +151,8 @@ documentation::Documentation RenderableTrail::Documentation() { // Taken from the RenderingModeConversion map above { "Lines", "Points", "Lines+Points", "Points+Lines" } ), - RenderingModeInfo.description, - Optional::Yes + Optional::Yes, + RenderingModeInfo.description } }, Exhaustive::No diff --git a/modules/base/rendering/renderabletrailorbit.cpp b/modules/base/rendering/renderabletrailorbit.cpp index d69d2adceb..6bb29dacf3 100644 --- a/modules/base/rendering/renderabletrailorbit.cpp +++ b/modules/base/rendering/renderabletrailorbit.cpp @@ -112,14 +112,14 @@ documentation::Documentation RenderableTrailOrbit::Documentation() { { PeriodInfo.identifier, new DoubleVerifier, - PeriodInfo.description, - Optional::No + Optional::No, + PeriodInfo.description }, { ResolutionInfo.identifier, new IntVerifier, - ResolutionInfo.description, - Optional::No + Optional::No, + ResolutionInfo.description } } }; diff --git a/modules/base/rendering/renderabletrailtrajectory.cpp b/modules/base/rendering/renderabletrailtrajectory.cpp index d44705a6f6..8129dc8dc9 100644 --- a/modules/base/rendering/renderabletrailtrajectory.cpp +++ b/modules/base/rendering/renderabletrailtrajectory.cpp @@ -97,32 +97,32 @@ documentation::Documentation RenderableTrailTrajectory::Documentation() { { StartTimeInfo.identifier, new StringAnnotationVerifier("A valid date in ISO 8601 format"), - StartTimeInfo.description, - Optional::No + Optional::No, + StartTimeInfo.description }, { EndTimeInfo.identifier, new StringAnnotationVerifier("A valid date in ISO 8601 format"), - EndTimeInfo.description, - Optional::No + Optional::No, + EndTimeInfo.description }, { SampleIntervalInfo.identifier, new DoubleVerifier, - SampleIntervalInfo.description, - Optional::No + Optional::No, + SampleIntervalInfo.description }, { TimeSubSampleInfo.identifier, new IntVerifier, - TimeSubSampleInfo.description, - Optional::Yes + Optional::Yes, + TimeSubSampleInfo.description }, { RenderFullPathInfo.identifier, new BoolVerifier, - RenderFullPathInfo.description, - Optional::Yes + Optional::Yes, + RenderFullPathInfo.description } } }; diff --git a/modules/base/rendering/screenspaceimage.cpp b/modules/base/rendering/screenspaceimage.cpp index 8f8932d681..735e53c171 100644 --- a/modules/base/rendering/screenspaceimage.cpp +++ b/modules/base/rendering/screenspaceimage.cpp @@ -61,15 +61,15 @@ documentation::Documentation ScreenSpaceImage::Documentation() { { KeyName, new StringVerifier, - "Specifies the GUI name of the ScreenspaceImage", - Optional::Yes + Optional::Yes, + "Specifies the GUI name of the ScreenspaceImage" }, { KeyTexturePath, new StringVerifier, + Optional::Yes, "Specifies the image that is shown on the screenspace-aligned plane. If " - "this value is set and the URL is not, the disk image is used.", - Optional::Yes + "this value is set and the URL is not, the disk image is used." } } }; diff --git a/modules/base/rotation/staticrotation.cpp b/modules/base/rotation/staticrotation.cpp index 8f88d81389..f728305935 100644 --- a/modules/base/rotation/staticrotation.cpp +++ b/modules/base/rotation/staticrotation.cpp @@ -47,7 +47,6 @@ documentation::Documentation StaticRotation::Documentation() { { "Type", new StringEqualVerifier("StaticRotation"), - "", Optional::No }, { @@ -56,9 +55,9 @@ documentation::Documentation StaticRotation::Documentation() { new DoubleVector3Verifier(), new DoubleMatrix3Verifier() ), + Optional::No, "Stores the static rotation as either a vector containing Euler angles " - "or by specifiying the 3x3 rotation matrix directly", - Optional::No + "or by specifiying the 3x3 rotation matrix directly" } }, Exhaustive::Yes diff --git a/modules/base/scale/staticscale.cpp b/modules/base/scale/staticscale.cpp index 69db7ea3f8..8a9f895856 100644 --- a/modules/base/scale/staticscale.cpp +++ b/modules/base/scale/staticscale.cpp @@ -47,8 +47,8 @@ documentation::Documentation StaticScale::Documentation() { { ScaleInfo.identifier, new DoubleVerifier, - ScaleInfo.description, - Optional::No + Optional::No, + ScaleInfo.description } } }; diff --git a/modules/base/shaders/model_fs.glsl b/modules/base/shaders/model_fs.glsl index da2bb50a24..3ef96cac5e 100644 --- a/modules/base/shaders/model_fs.glsl +++ b/modules/base/shaders/model_fs.glsl @@ -29,7 +29,6 @@ in vec3 vs_normalViewSpace; in vec4 vs_positionCameraSpace; in float vs_screenSpaceDepth; -uniform float fading; uniform bool performShading = true; uniform vec3 directionToSunViewSpace; uniform sampler2D texture1; @@ -69,7 +68,7 @@ Fragment getFragment() { frag.color.rgb = diffuseAlbedo; } - frag.color.a = fading; + frag.color.a = 1.0; frag.depth = vs_screenSpaceDepth; return frag; diff --git a/modules/base/translation/statictranslation.cpp b/modules/base/translation/statictranslation.cpp index 27b013fab0..a11cf42a05 100644 --- a/modules/base/translation/statictranslation.cpp +++ b/modules/base/translation/statictranslation.cpp @@ -47,14 +47,13 @@ documentation::Documentation StaticTranslation::Documentation() { { "Type", new StringEqualVerifier("StaticTranslation"), - "", Optional::No }, { PositionInfo.identifier, new DoubleVector3Verifier, - PositionInfo.description, - Optional::No + Optional::No, + PositionInfo.description } }, Exhaustive::Yes @@ -89,6 +88,4 @@ glm::dvec3 StaticTranslation::position() const { return _position; } -void StaticTranslation::update(const UpdateData&) {} - } // namespace openspace diff --git a/modules/base/translation/statictranslation.h b/modules/base/translation/statictranslation.h index fd92a76645..a7bd625054 100644 --- a/modules/base/translation/statictranslation.h +++ b/modules/base/translation/statictranslation.h @@ -38,7 +38,6 @@ public: StaticTranslation(); StaticTranslation(const ghoul::Dictionary& dictionary); virtual glm::dvec3 position() const; - virtual void update(const UpdateData& data) override; static documentation::Documentation Documentation(); diff --git a/modules/debugging/rendering/renderabledebugplane.cpp b/modules/debugging/rendering/renderabledebugplane.cpp index 3442f909d7..12cb8745e9 100644 --- a/modules/debugging/rendering/renderabledebugplane.cpp +++ b/modules/debugging/rendering/renderabledebugplane.cpp @@ -89,28 +89,28 @@ documentation::Documentation RenderableDebugPlane::Documentation() { { TextureInfo.identifier, new IntVerifier, - TextureInfo.description, - Optional::Yes + Optional::Yes, + TextureInfo.description }, { BillboardInfo.identifier, new BoolVerifier, - BillboardInfo.description, - Optional::Yes + Optional::Yes, + BillboardInfo.description }, { SizeInfo.identifier, new DoubleVerifier, - SizeInfo.description, - Optional::Yes + Optional::Yes, + SizeInfo.description }, { OriginInfo.identifier, new StringInListVerifier( { "LowerLeft", "LowerRight", "UpperLeft", "UpperRight", "Center" } ), - OriginInfo.description, - Optional::Yes + Optional::Yes, + OriginInfo.description } }, Exhaustive::Yes diff --git a/modules/globebrowsing/globes/renderableglobe.cpp b/modules/globebrowsing/globes/renderableglobe.cpp index 01045b9611..632c03fcb7 100644 --- a/modules/globebrowsing/globes/renderableglobe.cpp +++ b/modules/globebrowsing/globes/renderableglobe.cpp @@ -199,8 +199,7 @@ RenderableGlobe::RenderableGlobe(const ghoul::Dictionary& dictionary) // Init layer manager ghoul::Dictionary layersDictionary; if (!dictionary.getValue(keyLayers, layersDictionary)) { - throw ghoul::RuntimeError( - std::string(keyLayers) + " must be specified specified!"); + throw ghoul::RuntimeError(std::string(keyLayers) + " must be specified"); } _layerManager = std::make_shared(layersDictionary); diff --git a/modules/kameleonvolume/tasks/kameleondocumentationtask.cpp b/modules/kameleonvolume/tasks/kameleondocumentationtask.cpp index 3de805b347..7ced53033f 100644 --- a/modules/kameleonvolume/tasks/kameleondocumentationtask.cpp +++ b/modules/kameleonvolume/tasks/kameleondocumentationtask.cpp @@ -145,16 +145,19 @@ documentation::Documentation KameleonDocumentationTask::documentation() { { "Type", new StringEqualVerifier("KameleonDocumentationTask"), + Optional::No, "The type of this task" }, { KeyInput, new StringAnnotationVerifier("A file path to a cdf file"), + Optional::No, "The cdf file to extract data from" }, { KeyOutput, new StringAnnotationVerifier("A valid filepath"), + Optional::No, "The html file to write documentation to" } } diff --git a/modules/kameleonvolume/tasks/kameleonmetadatatojsontask.cpp b/modules/kameleonvolume/tasks/kameleonmetadatatojsontask.cpp index 536301af87..75309f32cf 100644 --- a/modules/kameleonvolume/tasks/kameleonmetadatatojsontask.cpp +++ b/modules/kameleonvolume/tasks/kameleonmetadatatojsontask.cpp @@ -79,16 +79,19 @@ documentation::Documentation KameleonMetadataToJsonTask::documentation() { { "Type", new StringEqualVerifier("KameleonMetadataToJsonTask"), + Optional::No, "The type of this task" }, { KeyInput, new StringAnnotationVerifier("A file path to a cdf file"), + Optional::No, "The cdf file to extract data from" }, { KeyOutput, new StringAnnotationVerifier("A valid filepath"), + Optional::No, "The json file to export data into" } } diff --git a/modules/newhorizons/rendering/renderablecrawlingline.cpp b/modules/newhorizons/rendering/renderablecrawlingline.cpp index a4516d0e1c..7857f2715c 100644 --- a/modules/newhorizons/rendering/renderablecrawlingline.cpp +++ b/modules/newhorizons/rendering/renderablecrawlingline.cpp @@ -61,22 +61,22 @@ documentation::Documentation RenderableCrawlingLine::Documentation() { { KeySource, new StringVerifier, + Optional::No, "Denotes the SPICE name of the source of the renderable crawling line, " - "for example, the space craft", - Optional::No + "for example, the space craft" }, { KeyTarget, new StringVerifier, - "Denotes the SPICE name of the target of the crawling line", - Optional::Yes + Optional::Yes, + "Denotes the SPICE name of the target of the crawling line" }, { KeyInstrument, new StringVerifier, + Optional::No, "Denotes the SPICE name of the instrument that is used to render the " - "crawling line", - Optional::No + "crawling line" }, { KeyColor, @@ -85,22 +85,22 @@ documentation::Documentation RenderableCrawlingLine::Documentation() { { KeyColorStart, new DoubleVector4Verifier, + Optional::No, "The color at the start of the line", - Optional::No }, { KeyColorEnd, new DoubleVector4Verifier, - "The color at the end of the line", - Optional::No + Optional::No, + "The color at the end of the line" } }, Exhaustive::Yes }), + Optional::No, "Specifies the colors that are used for the crawling line. One value " "determines the starting color of the line, the second value is the " - "color at the end of the line.", - Optional::No + "color at the end of the line." } } }; diff --git a/modules/newhorizons/rendering/renderablefov.cpp b/modules/newhorizons/rendering/renderablefov.cpp index e830715a20..6c02e1736c 100644 --- a/modules/newhorizons/rendering/renderablefov.cpp +++ b/modules/newhorizons/rendering/renderablefov.cpp @@ -143,16 +143,16 @@ documentation::Documentation RenderableFov::Documentation() { { KeyBody, new StringVerifier, + Optional::No, "The SPICE name of the source body for which the field of view should be " - "rendered.", - Optional::No + "rendered." }, { KeyFrame, new StringVerifier, + Optional::No, "The SPICE name of the source body's frame in which the field of view " - "should be rendered.", - Optional::No + "should be rendered." }, { KeyInstrument, @@ -160,8 +160,8 @@ documentation::Documentation RenderableFov::Documentation() { { KeyInstrumentName, new StringVerifier, - "The SPICE name of the instrument that is rendered", - Optional::No + Optional::No, + "The SPICE name of the instrument that is rendered" }, { KeyInstrumentAberration, @@ -173,45 +173,46 @@ documentation::Documentation RenderableFov::Documentation() { "XLT", "XLT+S", "XCN", "XCN+S" }), + Optional::Yes, "The aberration correction that is used for this field of view. " - "The default is 'NONE'.", - Optional::Yes + "The default is 'NONE'." } }), + Optional::No, "A table describing the instrument whose field of view should be " - "rendered.", - Optional::No + "rendered." }, { KeyPotentialTargets, new StringListVerifier, + Optional::No, "A list of potential targets (specified as SPICE names) that the field " - "of view should be tested against.", - Optional::No + "of view should be tested against." }, { KeyFrameConversions, new TableVerifier({ { DocumentationEntry::Wildcard, - new StringVerifier + new StringVerifier, + Optional::No } }), + Optional::Yes, "A list of frame conversions that should be registered with the " - "SpiceManager.", - Optional::Yes + "SpiceManager." }, { LineWidthInfo.identifier, new DoubleVerifier, - LineWidthInfo.description, - Optional::Yes + Optional::Yes, + LineWidthInfo.description }, { StandoffDistanceInfo.identifier, new DoubleVerifier, - StandoffDistanceInfo.description, - Optional::Yes + Optional::Yes, + StandoffDistanceInfo.description } } }; diff --git a/modules/newhorizons/rendering/renderablemodelprojection.cpp b/modules/newhorizons/rendering/renderablemodelprojection.cpp index 6b023ada05..6b58159866 100644 --- a/modules/newhorizons/rendering/renderablemodelprojection.cpp +++ b/modules/newhorizons/rendering/renderablemodelprojection.cpp @@ -82,41 +82,41 @@ documentation::Documentation RenderableModelProjection::Documentation() { { "Type", new StringEqualVerifier("RenderableModelProjection"), - "", - Optional::No + Optional::No, + "" }, { keyGeometry, new ReferencingVerifier("base_geometry_model"), - "The geometry that is used for rendering this model.", - Optional::No + Optional::No, + "The geometry that is used for rendering this model." }, { keyProjection, new ReferencingVerifier("newhorizons_projectioncomponent"), - "Contains information about projecting onto this planet.", - Optional::No + Optional::No, + "Contains information about projecting onto this planet." }, { keyTextureColor, // @TODO Change to ColorTextureInfo.identifier new StringVerifier, - ColorTextureInfo.description, - Optional::No + Optional::No, + ColorTextureInfo.description }, { PerformShadingInfo.identifier, new BoolVerifier, - PerformShadingInfo.description, - Optional::Yes + Optional::Yes, + PerformShadingInfo.description }, { keyBoundingSphereRadius, new DoubleVerifier, + Optional::Yes, "The radius of the bounding sphere of this object. This has to be a " "radius that is larger than anything that is rendered by it. It has to " "be at least as big as the convex hull of the object. The default value " - "is 10e9 meters.", - Optional::Yes + "is 10e9 meters." } } }; @@ -125,7 +125,6 @@ documentation::Documentation RenderableModelProjection::Documentation() { RenderableModelProjection::RenderableModelProjection(const ghoul::Dictionary& dictionary) : Renderable(dictionary) , _colorTexturePath(ColorTextureInfo) - , _rotation({ "Rotation", "Rotation", "" }, glm::vec3(0.f), glm::vec3(0.f), glm::vec3(360.f)) // @TODO Remove this property , _programObject(nullptr) , _fboProgramObject(nullptr) , _baseTexture(nullptr) @@ -171,7 +170,6 @@ RenderableModelProjection::RenderableModelProjection(const ghoul::Dictionary& di } Renderable::addProperty(_performShading); - Renderable::addProperty(_rotation); } RenderableModelProjection::~RenderableModelProjection() { @@ -376,30 +374,11 @@ void RenderableModelProjection::attitudeParameters(double time) { return; } - _transform = glm::mat4(1); - glm::mat4 rotPropX = glm::rotate( - _transform, - glm::radians(static_cast(_rotation.value().x)), - glm::vec3(1, 0, 0) - ); - glm::mat4 rotPropY = glm::rotate( - _transform, - glm::radians(static_cast(_rotation.value().y)), - glm::vec3(0, 1, 0) - ); - glm::mat4 rotPropZ = glm::rotate( - _transform, - glm::radians(static_cast(_rotation.value().z)), - glm::vec3(0, 0, 1) - ); - for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { _transform[i][j] = static_cast(_stateMatrix[i][j]); } } - _transform = _transform * rotPropX * rotPropY * rotPropZ; - glm::dvec3 boresight; try { SpiceManager::FieldOfViewResult res = SpiceManager::ref().fieldOfView(_projectionComponent.instrumentId()); @@ -409,13 +388,14 @@ void RenderableModelProjection::attitudeParameters(double time) { } double lightTime; - glm::dvec3 p = - SpiceManager::ref().targetPosition( - _projectionComponent.projectorId(), - _projectionComponent.projecteeId(), - _destination, - _projectionComponent.aberration(), - time, lightTime); + glm::dvec3 p = SpiceManager::ref().targetPosition( + _projectionComponent.projectorId(), + _projectionComponent.projecteeId(), + _destination, + _projectionComponent.aberration(), + time, lightTime + ); + psc position = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z); position[3] += 4; @@ -434,8 +414,6 @@ void RenderableModelProjection::attitudeParameters(double time) { ); } - - void RenderableModelProjection::project() { for (auto img : _imageTimes) { attitudeParameters(img.timeRange.start); diff --git a/modules/newhorizons/rendering/renderablemodelprojection.h b/modules/newhorizons/rendering/renderablemodelprojection.h index 1b0cc9b22d..42cd0a9fc4 100644 --- a/modules/newhorizons/rendering/renderablemodelprojection.h +++ b/modules/newhorizons/rendering/renderablemodelprojection.h @@ -78,8 +78,6 @@ private: properties::StringProperty _colorTexturePath; - properties::Vec3Property _rotation; - std::unique_ptr _programObject; std::unique_ptr _fboProgramObject; std::unique_ptr _depthFboProgramObject; diff --git a/modules/newhorizons/rendering/renderableplanetprojection.cpp b/modules/newhorizons/rendering/renderableplanetprojection.cpp index 62450baa15..357f6887fe 100644 --- a/modules/newhorizons/rendering/renderableplanetprojection.cpp +++ b/modules/newhorizons/rendering/renderableplanetprojection.cpp @@ -104,45 +104,45 @@ documentation::Documentation RenderablePlanetProjection::Documentation() { { "Type", new StringEqualVerifier("RenderablePlanetProjection"), - "", - Optional::No + Optional::No, + "" }, { keyGeometry, new ReferencingVerifier("space_geometry_planet"), + Optional::No, "The geometry that is used for rendering this planet.", - Optional::No }, { keyProjection, new ReferencingVerifier("newhorizons_projectioncomponent"), + Optional::No, "Contains information about projecting onto this planet.", - Optional::No }, { keyMeridianShift, new BoolVerifier, + Optional::Yes, "Determines whether the meridian of the planet should be shifted by 180 " - "degrees. The default value is 'false'", - Optional::Yes + "degrees. The default value is 'false'" }, { keyColorTexture, // @TODO This should be ColorTextureInfo.identifier new StringVerifier, - ColorTextureInfo.description, - Optional::No + Optional::No, + ColorTextureInfo.description }, { keyHeightTexture, // @TODO This should be HeightTextureInfo.identifier new StringVerifier, - HeightTextureInfo.description, - Optional::Yes + Optional::Yes, + HeightTextureInfo.description }, { HeightExaggerationInfo.identifier, new DoubleVerifier, - HeightExaggerationInfo.description, - Optional::Yes + Optional::Yes, + HeightExaggerationInfo.description } } }; diff --git a/modules/newhorizons/rendering/renderableshadowcylinder.cpp b/modules/newhorizons/rendering/renderableshadowcylinder.cpp index 60fa854b48..465c84db02 100644 --- a/modules/newhorizons/rendering/renderableshadowcylinder.cpp +++ b/modules/newhorizons/rendering/renderableshadowcylinder.cpp @@ -112,26 +112,26 @@ documentation::Documentation RenderableShadowCylinder::Documentation() { { "Type", new StringEqualVerifier("RenderableShadowCylinder"), - "", - Optional::No + Optional::No, + "" }, { NumberPointsInfo.identifier, new IntVerifier, - NumberPointsInfo.description, - Optional::Yes + Optional::Yes, + NumberPointsInfo.description }, { ShadowLengthInfo.identifier, new DoubleVerifier, - ShadowLengthInfo.description, - Optional::Yes + Optional::Yes, + ShadowLengthInfo.description }, { ShadowColorInfo.identifier, new DoubleVector4Verifier, - ShadowColorInfo.description, - Optional::Yes + Optional::Yes, + ShadowColorInfo.description }, { TerminatorTypeInfo.identifier, @@ -139,32 +139,32 @@ documentation::Documentation RenderableShadowCylinder::Documentation() { // Synchronized with SpiceManager::terminatorTypeFromString "UMBRAL", "PENUMBRAL" }), - TerminatorTypeInfo.description, - Optional::No + Optional::No, + TerminatorTypeInfo.description }, { LightSourceInfo.identifier, new StringVerifier, - LightSourceInfo.description, - Optional::No + Optional::No, + LightSourceInfo.description }, { ObserverInfo.identifier, new StringVerifier, - ObserverInfo.description, - Optional::No + Optional::No, + ObserverInfo.description }, { BodyInfo.identifier, new StringVerifier, - BodyInfo.description, - Optional::No + Optional::No, + BodyInfo.description }, { BodyFrameInfo.identifier, new StringVerifier, - BodyFrameInfo.description, - Optional::No + Optional::No, + BodyFrameInfo.description }, { AberrationInfo.identifier, @@ -172,8 +172,8 @@ documentation::Documentation RenderableShadowCylinder::Documentation() { // SpiceManager::AberrationCorrection::AberrationCorrection "NONE", "LT", "LT+S", "CN", "CN+S" }), - AberrationInfo.description, - Optional::No + Optional::No, + AberrationInfo.description }, }, Exhaustive::Yes diff --git a/modules/newhorizons/util/projectioncomponent.cpp b/modules/newhorizons/util/projectioncomponent.cpp index 06b19c6141..fcf5578e63 100644 --- a/modules/newhorizons/util/projectioncomponent.cpp +++ b/modules/newhorizons/util/projectioncomponent.cpp @@ -125,34 +125,34 @@ documentation::Documentation ProjectionComponent::Documentation() { { keyInstrument, new StringAnnotationVerifier("A SPICE name of an instrument"), - "The instrument that is used to perform the projections", - Optional::No + Optional::No, + "The instrument that is used to perform the projections" }, { keyInstrumentFovy, new DoubleVerifier, - "The field of view in degrees along the y axis", - Optional::No + Optional::No, + "The field of view in degrees along the y axis" }, { keyInstrumentAspect, new DoubleVerifier, - "The aspect ratio of the instrument in relation between x and y axis", - Optional::No + Optional::No, + "The aspect ratio of the instrument in relation between x and y axis" }, { keyProjObserver, new StringAnnotationVerifier("A SPICE name of the observing object"), + Optional::No, "The observer that is doing the projection. This has to be a valid SPICE " - "name or SPICE integer.", - Optional::No + "name or SPICE integer." }, { keyProjTarget, new StringAnnotationVerifier("A SPICE name of the observed object"), + Optional::No, "The observed object that is projected on. This has to be a valid SPICE " - "name or SPICE integer.", - Optional::No + "name or SPICE integer." }, { keyProjAberration, @@ -160,46 +160,45 @@ documentation::Documentation ProjectionComponent::Documentation() { // from SpiceManager::AberrationCorrection::AberrationCorrection "NONE", "LT", "LT+S", "CN", "CN+S", "XLT", "XLT+S", "XCN", "XCN+S" }), + Optional::No, "The aberration correction that is supposed to be used for the " "projection. The values for the correction correspond to the SPICE " "definition as described in " - "ftp://naif.jpl.nasa.gov/pub/naif/toolkit_docs/IDL/cspice/spkezr_c.html", - Optional::No + "ftp://naif.jpl.nasa.gov/pub/naif/toolkit_docs/IDL/cspice/spkezr_c.html" }, { keyPotentialTargets, new StringListVerifier, + Optional::Yes, "The list of potential targets that are involved with the image " - "projection", - Optional::Yes + "projection" }, { keyNeedsTextureMapDilation, new BoolVerifier, + Optional::Yes, "Determines whether a dilation step of the texture map has to be " "performed after each projection. This is necessary if the texture of " "the projected object is a texture map where the borders are not " - "touching. The default value is 'false'.", - Optional::Yes + "touching. The default value is 'false'." }, { keyNeedsShadowing, new BoolVerifier, + Optional::Yes, "Determines whether the object requires a self-shadowing algorithm. This " "is necessary if the object is concave and might cast a shadow on itself " - "during presentation. The default value is 'false'.", - Optional::Yes + "during presentation. The default value is 'false'." }, { keyTextureMapAspectRatio, new DoubleVerifier, + Optional::Yes, "Sets the desired aspect ratio of the projected texture. This might be " "necessary as planets usually have 2x1 aspect ratios, whereas this does " "not hold for non-planet objects (comets, asteroids, etc). The default " - "value is '1.0'.", - Optional::Yes + "value is '1.0'." } - } }; } diff --git a/modules/onscreengui/src/guiorigincomponent.cpp b/modules/onscreengui/src/guiorigincomponent.cpp index 3505f904cd..0e093f7eaf 100644 --- a/modules/onscreengui/src/guiorigincomponent.cpp +++ b/modules/onscreengui/src/guiorigincomponent.cpp @@ -69,7 +69,7 @@ void GuiOriginComponent::render() { bool hasChanged = ImGui::Combo("Origin", ¤tPosition, nodeNames.c_str()); if (hasChanged) { OsEng.scriptEngine().queueScript( - "openspace.setPropertyValue('NavigationHandler.origin', '" + + "openspace.setPropertyValue('NavigationHandler.Origin', '" + nodes[currentPosition]->name() + "');", scripting::ScriptEngine::RemoteScripting::Yes ); diff --git a/modules/space/rendering/planetgeometry.cpp b/modules/space/rendering/planetgeometry.cpp index ad66dfc7bf..42c18f9e96 100644 --- a/modules/space/rendering/planetgeometry.cpp +++ b/modules/space/rendering/planetgeometry.cpp @@ -45,8 +45,8 @@ documentation::Documentation PlanetGeometry::Documentation() { { KeyType, new StringVerifier, - "The type of the PlanetGeometry that will can be constructed.", - Optional::No + Optional::No, + "The type of the PlanetGeometry that will can be constructed." } } }; diff --git a/modules/space/rendering/renderableconstellationbounds.cpp b/modules/space/rendering/renderableconstellationbounds.cpp index 0e8d96366a..dc2f316475 100644 --- a/modules/space/rendering/renderableconstellationbounds.cpp +++ b/modules/space/rendering/renderableconstellationbounds.cpp @@ -94,28 +94,28 @@ documentation::Documentation RenderableConstellationBounds::Documentation() { { VertexInfo.identifier, new StringVerifier, - VertexInfo.description, - Optional::No + Optional::No, + VertexInfo.description }, { ConstellationInfo.identifier, new StringVerifier, + Optional::Yes, "Specifies the file that contains the mapping between constellation " "abbreviations and full name of the constellation. If the file is " - "omitted, the abbreviations are used as the full names.", - Optional::Yes + "omitted, the abbreviations are used as the full names." }, { DistanceInfo.identifier, new DoubleVerifier, - DistanceInfo.description, - Optional::Yes + Optional::Yes, + DistanceInfo.description }, { SelectionInfo.identifier, new StringListVerifier, - SelectionInfo.description, - Optional::Yes + Optional::Yes, + SelectionInfo.description } } }; diff --git a/modules/space/rendering/renderableplanet.cpp b/modules/space/rendering/renderableplanet.cpp index 28c70d9264..86ea1410ee 100644 --- a/modules/space/rendering/renderableplanet.cpp +++ b/modules/space/rendering/renderableplanet.cpp @@ -116,54 +116,54 @@ documentation::Documentation RenderablePlanet::Documentation() { { KeyGeometry, new ReferencingVerifier("space_geometry_planet"), - "Specifies the planet geometry that is used for this RenderablePlanet.", - Optional::No + Optional::No, + "Specifies the planet geometry that is used for this RenderablePlanet." }, { KeyRadius, new DoubleVerifier, + Optional::Yes, "Specifies the radius of the planet. If this value is not specified, it " - "will try to query the SPICE library for radius values.", - Optional::Yes + "will try to query the SPICE library for radius values." }, { KeyColorTexture, // @TODO Use ColorTextureInfo.identifier instead new StringVerifier, - "Specifies the color texture that is used for this RenderablePlanet.", - Optional::Yes + Optional::Yes, + "Specifies the color texture that is used for this RenderablePlanet." }, { KeyHeightTexture, // @TODO Use HeightTextureInfo.identifier instead new StringVerifier, - "Specifies the height texture that is used for this RenderablePlanet.", - Optional::Yes + Optional::Yes, + "Specifies the height texture that is used for this RenderablePlanet." }, { KeyNightTexture, // @TODO Use NightTextureInfo.identifier instead new StringVerifier, + Optional::Yes, "Specifies the texture that is used for the night side of this " - "RenderablePlanet.", - Optional::Yes + "RenderablePlanet." }, { KeyShading, new BoolVerifier, + Optional::Yes, "Specifies whether the planet should be rendered shaded by the Sun. If " "this value is 'false', any existing night texture will not be used. " - "This value defaults to 'true'.", - Optional::Yes + "This value defaults to 'true'." }, { HeightExaggerationInfo.identifier, new DoubleVerifier, - HeightExaggerationInfo.description, - Optional::Yes + Optional::Yes, + HeightExaggerationInfo.description }, { PerformShadingInfo.identifier, new BoolVerifier, - PerformShadingInfo.description, - Optional::Yes + Optional::Yes, + PerformShadingInfo.description } } }; diff --git a/modules/space/rendering/renderablerings.cpp b/modules/space/rendering/renderablerings.cpp index 646716317c..9ba7e61b87 100644 --- a/modules/space/rendering/renderablerings.cpp +++ b/modules/space/rendering/renderablerings.cpp @@ -87,38 +87,37 @@ documentation::Documentation RenderableRings::Documentation() { { "Type", new StringEqualVerifier("RenderableRings"), - "", Optional::No }, { TextureInfo.identifier, new StringVerifier, - TextureInfo.description, - Optional::No + Optional::No, + TextureInfo.description }, { SizeInfo.identifier, new DoubleVerifier, - SizeInfo.description, - Optional::No + Optional::No, + SizeInfo.description }, { OffsetInfo.identifier, new DoubleVector2Verifier, - OffsetInfo.description, - Optional::Yes + Optional::Yes, + OffsetInfo.description }, { NightFactorInfo.identifier, new DoubleVerifier, - NightFactorInfo.description, - Optional::Yes + Optional::Yes, + NightFactorInfo.description }, { TransparencyInfo.identifier, new DoubleVerifier, - TransparencyInfo.description, - Optional::Yes + Optional::Yes, + TransparencyInfo.description } } }; diff --git a/modules/space/rendering/renderablestars.cpp b/modules/space/rendering/renderablestars.cpp index ccdd5f5143..c5972a83cf 100644 --- a/modules/space/rendering/renderablestars.cpp +++ b/modules/space/rendering/renderablestars.cpp @@ -132,53 +132,52 @@ documentation::Documentation RenderableStars::Documentation() { { "Type", new StringEqualVerifier("RenderableStars"), - "", Optional::No }, { KeyFile, new StringVerifier, + Optional::No, "The path to the SPECK file that contains information about the stars " - "being rendered.", - Optional::No + "being rendered." }, { PsfTextureInfo.identifier, new StringVerifier, - PsfTextureInfo.description, - Optional::No + Optional::No, + PsfTextureInfo.description }, { ColorTextureInfo.identifier, new StringVerifier, - ColorTextureInfo.description, - Optional::No + Optional::No, + ColorTextureInfo.description }, { ColorOptionInfo.identifier, new StringInListVerifier({ "Color", "Velocity", "Speed" }), - ColorOptionInfo.description, - Optional::Yes + Optional::Yes, + ColorOptionInfo.description }, { TransparencyInfo.identifier, new DoubleVerifier, - TransparencyInfo.description, - Optional::Yes + Optional::Yes, + TransparencyInfo.description }, { ScaleFactorInfo.identifier, new DoubleVerifier, - ScaleFactorInfo.description, - Optional::Yes + Optional::Yes, + ScaleFactorInfo.description }, { MinBillboardSizeInfo.identifier, new DoubleVerifier, - MinBillboardSizeInfo.description, - Optional::Yes + Optional::Yes, + MinBillboardSizeInfo.description } } }; diff --git a/modules/space/rendering/simplespheregeometry.cpp b/modules/space/rendering/simplespheregeometry.cpp index 88dff332cf..3e583b08f6 100644 --- a/modules/space/rendering/simplespheregeometry.cpp +++ b/modules/space/rendering/simplespheregeometry.cpp @@ -59,14 +59,14 @@ documentation::Documentation SimpleSphereGeometry::Documentation() { new DoubleVerifier, new DoubleVector3Verifier ), - RadiusInfo.description, - Optional::No + Optional::No, + RadiusInfo.description }, { SegmentsInfo.identifier, new IntVerifier, - SegmentsInfo.description, - Optional::No + Optional::No, + SegmentsInfo.description } } }; diff --git a/modules/space/rotation/spicerotation.cpp b/modules/space/rotation/spicerotation.cpp index d1117f2df0..16886e3544 100644 --- a/modules/space/rotation/spicerotation.cpp +++ b/modules/space/rotation/spicerotation.cpp @@ -60,20 +60,19 @@ documentation::Documentation SpiceRotation::Documentation() { { "Type", new StringEqualVerifier("SpiceRotation"), - "", Optional::No }, { SourceInfo.identifier, new StringAnnotationVerifier("A valid SPICE NAIF name or integer"), - SourceInfo.description, - Optional::No + Optional::No, + SourceInfo.description }, { DestinationInfo.identifier, new StringAnnotationVerifier("A valid SPICE NAIF name or integer"), - DestinationInfo.description, - Optional::No + Optional::No, + DestinationInfo.description }, { KeyKernels, @@ -81,10 +80,10 @@ documentation::Documentation SpiceRotation::Documentation() { new StringListVerifier, new StringVerifier ), + Optional::Yes, "A single kernel or list of kernels that this SpiceTranslation depends " "on. All provided kernels will be loaded before any other operation is " - "performed.", - Optional::Yes + "performed." } } }; diff --git a/modules/space/translation/keplertranslation.cpp b/modules/space/translation/keplertranslation.cpp index 765c2e86f7..cf7557f003 100644 --- a/modules/space/translation/keplertranslation.cpp +++ b/modules/space/translation/keplertranslation.cpp @@ -129,56 +129,55 @@ documentation::Documentation KeplerTranslation::Documentation() { { "Type", new StringEqualVerifier("KeplerTranslation"), - "", Optional::No }, { EccentricityInfo.identifier, new DoubleInRangeVerifier(0.0, 1.0), - EccentricityInfo.description, - Optional::No + Optional::No, + EccentricityInfo.description }, { SemiMajorAxisInfo.identifier, new DoubleVerifier, - SemiMajorAxisInfo.description, - Optional::No + Optional::No, + SemiMajorAxisInfo.description }, { InclinationInfo.identifier, new DoubleInRangeVerifier(0.0, 360.0), - InclinationInfo.description, - Optional::No + Optional::No, + InclinationInfo.description }, { AscendingNodeInfo.identifier, new DoubleInRangeVerifier(0.0, 360.0), - AscendingNodeInfo.description, - Optional::No + Optional::No, + AscendingNodeInfo.description }, { ArgumentOfPeriapsisInfo.identifier, new DoubleInRangeVerifier(0.0, 360.0), - ArgumentOfPeriapsisInfo.description, - Optional::No + Optional::No, + ArgumentOfPeriapsisInfo.description }, { MeanAnomalyAtEpochInfo.identifier, new DoubleInRangeVerifier(0.0, 360.0), - MeanAnomalyAtEpochInfo.description, - Optional::No + Optional::No, + MeanAnomalyAtEpochInfo.description }, { EpochInfo.identifier, new StringVerifier, - EpochInfo.description, - Optional::No + Optional::No, + EpochInfo.description }, { PeriodInfo.identifier, new DoubleGreaterVerifier(0.0), - PeriodInfo.description, - Optional::No + Optional::No, + PeriodInfo.description }, }, Exhaustive::Yes diff --git a/modules/space/translation/spicetranslation.cpp b/modules/space/translation/spicetranslation.cpp index 01fbadfc18..19c3505201 100644 --- a/modules/space/translation/spicetranslation.cpp +++ b/modules/space/translation/spicetranslation.cpp @@ -74,30 +74,29 @@ documentation::Documentation SpiceTranslation::Documentation() { { "Type", new StringEqualVerifier("SpiceTranslation"), - "", Optional::No }, { KeyBody, // @TODO Rename to TargetInfo.identifier new StringAnnotationVerifier("A valid SPICE NAIF name or identifier"), + Optional::No, "This is the SPICE NAIF name for the body whose translation is to be " "computed by the SpiceTranslation. It can either be a fully qualified " - "name (such as 'EARTH') or a NAIF integer id code (such as '399').", - Optional::No + "name (such as 'EARTH') or a NAIF integer id code (such as '399')." }, { ObserverInfo.identifier, new StringAnnotationVerifier("A valid SPICE NAIF name or identifier"), - ObserverInfo.description, - Optional::No + Optional::No, + ObserverInfo.description }, { FrameInfo.identifier, new StringAnnotationVerifier( "A valid SPICE NAIF name for a reference frame" ), - FrameInfo.description, - Optional::Yes + Optional::Yes, + FrameInfo.description }, { KeyKernels, @@ -105,10 +104,10 @@ documentation::Documentation SpiceTranslation::Documentation() { new StringListVerifier, new StringVerifier ), + Optional::Yes, "A single kernel or list of kernels that this SpiceTranslation depends " "on. All provided kernels will be loaded before any other operation is " - "performed.", - Optional::Yes + "performed." } }, Exhaustive::Yes diff --git a/modules/space/translation/tletranslation.cpp b/modules/space/translation/tletranslation.cpp index ebc7897b51..3cef279b20 100644 --- a/modules/space/translation/tletranslation.cpp +++ b/modules/space/translation/tletranslation.cpp @@ -239,20 +239,20 @@ documentation::Documentation TLETranslation::Documentation() { { "Type", new StringEqualVerifier("TLETranslation"), - "", Optional::No }, { KeyFile, new StringVerifier, - "Specifies the filename of the Two-Line-Element file", - Optional::No + Optional::No, + "Specifies the filename of the Two-Line-Element file" }, { KeyLineNum, new DoubleGreaterVerifier(0), - "Specifies the line number within the file where the group of 3 TLE lines begins (1-based)", - Optional::No + Optional::No, + "Specifies the line number within the file where the group of 3 TLE " + "lines begins (1-based)." } }, Exhaustive::No diff --git a/src/documentation/documentation.cpp b/src/documentation/documentation.cpp index 9bd66deaf5..b43d47aa3f 100644 --- a/src/documentation/documentation.cpp +++ b/src/documentation/documentation.cpp @@ -115,7 +115,7 @@ SpecificationError::SpecificationError(TestResult res, std::string component) } DocumentationEntry::DocumentationEntry(std::string k, std::shared_ptr v, - std::string doc, Optional opt) + Optional opt, std::string doc) : key(std::move(k)) , verifier(std::move(v)) , optional(opt) @@ -125,10 +125,10 @@ DocumentationEntry::DocumentationEntry(std::string k, std::shared_ptr ghoul_assert(verifier, "Verifier must not be nullptr"); } -DocumentationEntry::DocumentationEntry(std::string key, Verifier* v, std::string doc, - Optional optional) - : DocumentationEntry(std::move(key), std::shared_ptr(v), std::move(doc), - optional) +DocumentationEntry::DocumentationEntry(std::string key, Verifier* v, Optional optional, + std::string doc) + : DocumentationEntry(std::move(key), std::shared_ptr(v), optional, + std::move(doc)) {} Documentation::Documentation(std::string n, std::string id, DocumentationEntries entries, diff --git a/src/documentation/verifier.cpp b/src/documentation/verifier.cpp index 73c116c1a7..6662caaa77 100644 --- a/src/documentation/verifier.cpp +++ b/src/documentation/verifier.cpp @@ -204,7 +204,9 @@ std::string TableVerifier::type() const { } StringListVerifier::StringListVerifier(std::string elementDocumentation) - : TableVerifier({{ "*", new StringVerifier, std::move(elementDocumentation) }}) + : TableVerifier({ + { "*", new StringVerifier, Optional::No, std::move(elementDocumentation) } + }) {} std::string StringListVerifier::type() const { @@ -212,7 +214,9 @@ std::string StringListVerifier::type() const { } IntListVerifier::IntListVerifier(std::string elementDocumentation) - : TableVerifier({ { "*", new IntVerifier, std::move(elementDocumentation) } }) + : TableVerifier({ + { "*", new IntVerifier, Optional::No, std::move(elementDocumentation) } + }) {} std::string IntListVerifier::type() const { diff --git a/src/engine/configurationmanager_doc.inl b/src/engine/configurationmanager_doc.inl index 982bc65607..d0c9740275 100644 --- a/src/engine/configurationmanager_doc.inl +++ b/src/engine/configurationmanager_doc.inl @@ -37,51 +37,51 @@ documentation::Documentation ConfigurationManager::Documentation() { { ConfigurationManager::KeyConfigSgct, new StringAnnotationVerifier("A valid SGCT configuration file"), + Optional::No, "The SGCT configuration file that determines the window and view frustum " - "settings that are being used when OpenSpace is started.", - Optional::No + "settings that are being used when OpenSpace is started." }, { ConfigurationManager::KeyConfigScene, new StringAnnotationVerifier( "A valid scene file as described in the Scene documentation" ), + Optional::No, "The scene description that is used to populate the application after " "startup. The scene determines which objects are loaded, the startup " "time and other scene-specific settings. More information is provided in " - "the Scene documentation.", - Optional::No + "the Scene documentation." }, { ConfigurationManager::KeyConfigTask, new StringAnnotationVerifier( - "A valid task file as described in the Task documentation"), - "The root task to be performed when launching the task runner " - "applicaition.", - Optional::Yes + "A valid task file as described in the Task documentation" + ), + Optional::Yes, + "The root task to be performed when launching the task runner application." }, { ConfigurationManager::KeyPaths, new StringListVerifier, + Optional::No, "A list of paths that are automatically registered with the file system. " "If a key X is used in the table, it is then useable by referencing ${X} " - "in all other configuration files or scripts.", - Optional::No + "in all other configuration files or scripts." }, { ConfigurationManager::KeyPaths + '.' + ConfigurationManager::KeyCache, new StringVerifier, + Optional::No, "The path to be used as a cache folder. If per scene caching is enabled, the " - "name of the scene will be appended to this folder", - Optional::No + "name of the scene will be appended to this folder" }, { ConfigurationManager::KeyFonts, new StringListVerifier("Font paths loadable by FreeType"), + Optional::Yes, "A list of all fonts that will automatically be loaded on startup. Each " "key-value pair contained in the table will become the name and the file " - "for a font.", - Optional::Yes + "for a font." }, { ConfigurationManager::KeyLogging, @@ -89,15 +89,15 @@ documentation::Documentation ConfigurationManager::Documentation() { { ConfigurationManager::PartLogDir, new StringVerifier, - "The directory for logs. Default value is \"${BASE_PATH}\"", - Optional::Yes + Optional::Yes, + "The directory for logs. Default value is \"${BASE_PATH}\"" }, { ConfigurationManager::PartLogPerformancePrefix, new StringVerifier, + Optional::Yes, "A string to prefix PerformanceMeasurement logfiles." - "Default value is \"PM-\"", - Optional::Yes + "Default value is \"PM-\"" }, { ConfigurationManager::PartLogLevel, @@ -105,21 +105,21 @@ documentation::Documentation ConfigurationManager::Documentation() { // List from logmanager.cpp::levelFromString { "Trace", "Debug", "Info", "Warning", "Error", "Fatal", "None" } ), + Optional::Yes, "The severity of log messages that will be displayed. Only " "messages of the selected level or higher will be displayed. All " "levels below will be silently discarded. The order of " - "severities is: Debug < Info < Warning < Error < Fatal < None.", - Optional::Yes + "severities is: Debug < Info < Warning < Error < Fatal < None." }, { ConfigurationManager::PartImmediateFlush, new BoolVerifier, + Optional::Yes, "Determines whether error messages will be displayed immediately " "or if it is acceptable to have a short delay, but being more " "performant. If the delay is allowed ('true'), messages might " "get lost if the application crashes shortly after a message was " - "logged.", - Optional::Yes + "logged." }, { ConfigurationManager::PartLogs, @@ -127,14 +127,15 @@ documentation::Documentation ConfigurationManager::Documentation() { { "*", new ReferencingVerifier("core_logfactory"), + Optional::No, "Additional log files" } }), + Optional::Yes, "Per default, log messages are written to the console, the " "onscreen text, and (if available) the Visual Studio output " "window. This table can define other logging methods that will " - "be used additionally.", - Optional::Yes + "be used additionally." }, { ConfigurationManager::PartCapabilitiesVerbosity, @@ -142,62 +143,62 @@ documentation::Documentation ConfigurationManager::Documentation() { // List from OpenspaceEngine::initialize { "None", "Minimal", "Default", "Full" } ), + Optional::Yes, "At startup, a list of system capabilities is created and logged." - "This value determines how verbose this listing should be.", - Optional::Yes + "This value determines how verbose this listing should be." } }), + Optional::Yes, "Configurations for the logging of messages that are generated " "throughout the code and are useful for debugging potential errors or " - "other information.", - Optional::Yes + "other information." }, { ConfigurationManager::KeyLuaDocumentation, new StringVerifier, + Optional::Yes, "The filename that will be created on startup containing the documentation " "of available Lua functions that can be executed in scene files or per " - "console. Any existing file will be silently overwritten.", - Optional::Yes + "console. Any existing file will be silently overwritten." }, { ConfigurationManager::KeyPropertyDocumentation, new StringVerifier, + Optional::Yes, "The file that will be created on startup containing a list of all " - "properties in the scene. Any existing file will be silently overwritten.", - Optional::Yes + "properties in the scene. Any existing file will be silently overwritten." }, { ConfigurationManager::KeyScriptLog, new StringVerifier, + Optional::Yes, "The file that will be created on startup containing the log of all Lua " "scripts that are executed in the last session. Any existing file (including " - "the results from previous runs) will be silently overwritten.", - Optional::Yes + "the results from previous runs) will be silently overwritten." }, { ConfigurationManager::KeyKeyboardShortcuts, new StringVerifier, + Optional::Yes, "The file that will be created on startup containing the list of all " "keyboard bindings with their respective Lua scripts. For each key, it " - "mentions which scripts will be executed in the current session.", - Optional::Yes + "mentions which scripts will be executed in the current session." }, { ConfigurationManager::KeyDocumentation, new StringVerifier, + Optional::Yes, "The file that will be created on startup containing this documentation. Any " - "previous file in this location will be silently overwritten.", - Optional::Yes + "previous file in this location will be silently overwritten." }, { ConfigurationManager::KeyFactoryDocumentation, new StringVerifier, + Optional::Yes, "The file that will be created on startup containing the factory " "documentation which shows the different types of objects that can be " "created in the current application configuration. Any previous file in this " - "location will be silently overritten.", - Optional::Yes + "location will be silently overritten." }, { ConfigurationManager::KeyLauncher, @@ -208,32 +209,32 @@ documentation::Documentation ConfigurationManager::Documentation() { // List from logmanager.cpp::levelFromString { "Trace", "Debug", "Info", "Warning", "Error", "Fatal", "None" } ), + Optional::Yes, "The severity of log messages that will be displayed. Only " "messages of the selected level or higher will be displayed. All " "levels below will be silently discarded. The order of " - "severities is: Debug < Info < Warning < Error < Fatal < None.", - Optional::Yes + "severities is: Debug < Info < Warning < Error < Fatal < None." }, }), - "Configurations for the Launcher & syncing application.", - Optional::Yes + Optional::Yes, + "Configurations for the Launcher & syncing application." }, { ConfigurationManager::KeyShutdownCountdown, new DoubleGreaterEqualVerifier(0.0), + Optional::Yes, "The countdown that the application will wait between pressing ESC and " "actually shutting down. If ESC is pressed again in this time, the " - "shutdown is aborted.", - Optional::Yes + "shutdown is aborted." }, { ConfigurationManager::KeyPerSceneCache, new BoolVerifier, + Optional::Yes, "If this is set to 'true', the name of the scene will be appended to the " "cache directory, thus not reusing the same directory. This is useful in " "cases where the same instance of OpenSpace is run with multiple scenes, but " - "the caches should be retained. This value defaults to 'false'.", - Optional::Yes + "the caches should be retained. This value defaults to 'false'." }, { ConfigurationManager::KeyOnScreenTextScaling, @@ -241,11 +242,11 @@ documentation::Documentation ConfigurationManager::Documentation() { // Values from RenderEngine:updateRenderer "window", "framebuffer" }), + Optional::Yes, "The method for scaling the onscreen text in the window. As the resolution " "of the rendering can be different from the size of the window, the onscreen " "text can either be scaled according to the window size ('window'), or the " - "rendering resolution ('framebuffer'). This value defaults to 'window'.", - Optional::Yes + "rendering resolution ('framebuffer'). This value defaults to 'window'." }, { ConfigurationManager::KeyDownloadRequestURL, @@ -253,10 +254,10 @@ documentation::Documentation ConfigurationManager::Documentation() { new StringVerifier, new StringListVerifier ), + Optional::Yes, "The URL from which files will be downloaded by the Launcher. This can " "either be a single URL or a list of possible URLs from which the " - "Launcher can then choose.", - Optional::Yes + "Launcher can then choose." }, { ConfigurationManager::KeyRenderingMethod, @@ -264,27 +265,27 @@ documentation::Documentation ConfigurationManager::Documentation() { // List from RenderEngine::setRendererFromString { "Framebuffer", "ABuffer" } ), + Optional::Yes, "The renderer that is use after startup. The renderer 'ABuffer' requires " - "support for at least OpenGL 4.3", - Optional::Yes + "support for at least OpenGL 4.3" }, { ConfigurationManager::KeyDisableMasterRendering, new BoolVerifier, + Optional::Yes, "Toggles whether the master in a multi-application setup should be rendering " "or just managing the state of the network. This is desired in cases where " - "the master computer does not have the resources to render a scene.", - Optional::Yes + "the master computer does not have the resources to render a scene." }, { ConfigurationManager::KeyDisableSceneOnMaster, new BoolVerifier, + Optional::Yes, "Toggles whether a potential scene transformation matrix, for example as " "specified in an SGCT configuration file, should apply to the master node. " "With some configurations, applying such a transformation complicates the " "interaction and it is thus desired to disable the transformation. The " - "default is false.", - Optional::Yes + "default is false." }, { ConfigurationManager::KeyHttpProxy, @@ -292,11 +293,13 @@ documentation::Documentation ConfigurationManager::Documentation() { { ConfigurationManager::PartHttpProxyAddress, new StringVerifier, + Optional::No, "The address of the http proxy" }, { ConfigurationManager::PartHttpProxyPort, new StringVerifier, + Optional::No, "The port of the http proxy" }, { @@ -304,25 +307,25 @@ documentation::Documentation ConfigurationManager::Documentation() { new StringInListVerifier( { "basic", "ntlm", "digest", "any" } ), - "The authentication method of the http proxy", - Optional::Yes + Optional::Yes, + "The authentication method of the http proxy" }, { ConfigurationManager::PartHttpProxyUser, new StringVerifier, - "The user of the http proxy", - Optional::Yes + Optional::Yes, + "The user of the http proxy" }, { ConfigurationManager::PartHttpProxyPassword, new StringVerifier, - "The password of the http proxy", - Optional::Yes + Optional::Yes, + "The password of the http proxy" } }), + Optional::Yes, "This defines the use for a proxy when fetching data over http." - "No proxy will be used if this is left out.", - Optional::Yes + "No proxy will be used if this is left out." }, { ConfigurationManager::KeyOpenGLDebugContext, @@ -330,17 +333,17 @@ documentation::Documentation ConfigurationManager::Documentation() { { ConfigurationManager::PartActivate, new BoolVerifier, - "Determines whether the OpenGL context should be a debug context", - Optional::No + Optional::No, + "Determines whether the OpenGL context should be a debug context" }, { ConfigurationManager::PartSynchronous, new BoolVerifier, + Optional::Yes, "Determines whether the OpenGL debug callbacks are performed " "synchronously. If set to the callbacks are in the same thead " "as the context and in the scope of the OpenGL function that " - "triggered the message. The default value is .", - Optional::Yes + "triggered the message. The default value is ." }, { ConfigurationManager::PartFilterIdentifier, @@ -350,8 +353,8 @@ documentation::Documentation ConfigurationManager::Documentation() { { ConfigurationManager::PartFilterIdentifierIdentifier, new IntVerifier, - "The identifier that is to be filtered", - Optional::No + Optional::No, + "The identifier that is to be filtered" }, { ConfigurationManager::PartFilterIdentifierSource, @@ -360,8 +363,8 @@ documentation::Documentation ConfigurationManager::Documentation() { "API", "Window System", "Shader Compiler", "Third Party", "Application", "Other", "Don't care" }), - "The source of the identifier to be filtered", - Optional::No + Optional::No, + "The source of the identifier to be filtered" }, { ConfigurationManager::PartFilterIdentifierType, @@ -371,13 +374,15 @@ documentation::Documentation ConfigurationManager::Documentation() { "Performance", "Marker", "Push group", "Pop group", "Other", "Don't care" }), + Optional::No, "The type of the identifier to be filtered" } }), + Optional::No, "Individual OpenGL debug message identifiers" }}), - "A list of OpenGL debug messages identifiers that are filtered", - Optional::Yes + Optional::Yes, + "A list of OpenGL debug messages identifiers that are filtered" }, { ConfigurationManager::PartFilterSeverity, @@ -387,32 +392,33 @@ documentation::Documentation ConfigurationManager::Documentation() { new StringInListVerifier( // ghoul::debugcontext.cpp { "High", "Medium", "Low", "Notification" } - ) + ), + Optional::No } }), - "A list of severities that can are filtered out", - Optional::Yes + Optional::Yes, + "A list of severities that can are filtered out" } }), + Optional::Yes, "Determines the settings for the creation of an OpenGL debug context.", - Optional::Yes }, { ConfigurationManager::KeyCheckOpenGLState, new BoolVerifier, + Optional::Yes, "Determines whether the OpenGL state is checked after each OpenGL function " "call. This will dramatically slow down the rendering, but will make finding " - "OpenGL errors easier. This defaults to 'false'.", - Optional::Yes + "OpenGL errors easier. This defaults to 'false'." }, { ConfigurationManager::KeyLogEachOpenGLCall, new BoolVerifier, + Optional::Yes, "Determines whether each OpenGL call that happens should be logged using the " "'TRACE' loglevel. This will bring the rendering to a crawl but provides " "useful debugging features for the order in which OpenGL calls occur. This " - "defaults to 'false'.", - Optional::Yes + "defaults to 'false'." } } }; diff --git a/src/engine/logfactory.cpp b/src/engine/logfactory.cpp index ea6c3f84d4..444d4a0885 100644 --- a/src/engine/logfactory.cpp +++ b/src/engine/logfactory.cpp @@ -67,47 +67,49 @@ documentation::Documentation LogFactoryDocumentation() { // List from createLog valueTextLog, valueHtmlLog }), + Optional::No, "The type of the new log to be generated." }, { keyFilename, new StringVerifier, + Optional::No, "The filename to which the log will be written." }, { keyAppend, new BoolVerifier, + Optional::Yes, "Determines whether the file will be cleared at startup or if the " - "contents will be appended to previous runs.", - Optional::Yes + "contents will be appended to previous runs." }, { keyTimeStamping, new BoolVerifier, + Optional::Yes, "Determines whether the log entires should be stamped with the time at " - "which the message was logged.", - Optional::Yes + "which the message was logged." }, { keyDateStamping, new BoolVerifier, + Optional::Yes, "Determines whether the log entries should be stamped with the date at " - "which the message was logged.", - Optional::Yes + "which the message was logged." }, { keyCategoryStamping, new BoolVerifier, + Optional::Yes, "Determines whether the log entries should be stamped with the " - "category that creates the log message.", - Optional::Yes + "category that creates the log message." }, { keyLogLevelStamping, new BoolVerifier, + Optional::Yes, "Determines whether the log entries should be stamped with the log level " - "that was used to create the log message.", - Optional::Yes + "that was used to create the log message." } }, Exhaustive::Yes diff --git a/src/mission/mission.cpp b/src/mission/mission.cpp index 2dac741175..8ad5eb08a1 100644 --- a/src/mission/mission.cpp +++ b/src/mission/mission.cpp @@ -50,29 +50,29 @@ documentation::Documentation MissionPhase::Documentation() { { KeyName, new StringVerifier, + Optional::No, "The human readable name of this mission or mission phase that is " - "displayed to the user.", - Optional::No + "displayed to the user." }, { KeyDescription, new StringVerifier, - "A description of this mission or mission phase.", - Optional::Yes + Optional::Yes, + "A description of this mission or mission phase." }, { KeyTimeRange, new ReferencingVerifier("core_util_timerange"), + Optional::Yes, "The time range for which this mission or mission phase is valid. If no " "time range is specified, the ranges of sub mission phases are used " - "instead.", - Optional::Yes + "instead." }, { KeyPhases, new ReferencingVerifier("core_mission_mission"), - "The phases into which this mission or mission phase is separated.", - Optional::Yes + Optional::Yes, + "The phases into which this mission or mission phase is separated." } }, Exhaustive::Yes diff --git a/src/rendering/renderable.cpp b/src/rendering/renderable.cpp index 65b51003ed..f8fb604e6b 100644 --- a/src/rendering/renderable.cpp +++ b/src/rendering/renderable.cpp @@ -62,11 +62,11 @@ documentation::Documentation Renderable::Documentation() { { KeyType, new StringAnnotationVerifier("A valid Renderable created by a factory"), + Optional::No, "This key specifies the type of Renderable that gets created. It has to be one" "of the valid Renderables that are available for creation (see the " "FactoryDocumentation for a list of possible Renderables), which depends on " - "the configration of the application", - Optional::No + "the configration of the application" } } }; diff --git a/src/rendering/screenspacerenderable.cpp b/src/rendering/screenspacerenderable.cpp index a9af742723..ae648e730f 100644 --- a/src/rendering/screenspacerenderable.cpp +++ b/src/rendering/screenspacerenderable.cpp @@ -121,11 +121,11 @@ documentation::Documentation ScreenSpaceRenderable::Documentation() { { KeyType, new StringAnnotationVerifier("Must name a valid Screenspace renderable"), + Optional::No, "The type of the Screenspace renderable that is to be created. The " "available types of Screenspace renderable depend on the configuration of" "the application and can be written to disk on application startup into " - "the FactoryDocumentation.", - Optional::No + "the FactoryDocumentation." } } }; diff --git a/src/scene/rotation.cpp b/src/scene/rotation.cpp index 9aaee189a8..11ae9eadad 100644 --- a/src/scene/rotation.cpp +++ b/src/scene/rotation.cpp @@ -47,11 +47,11 @@ documentation::Documentation Rotation::Documentation() { { KeyType, new StringAnnotationVerifier("Must name a valid Rotation type."), + Optional::No, "The type of the rotation that is described in this element. The " "available types of rotations depend on the configuration of the " "application and can be written to disk on application startup into the " - "FactoryDocumentation.", - Optional::No + "FactoryDocumentation." } } }; diff --git a/src/scene/scale.cpp b/src/scene/scale.cpp index cd2c152186..0788c5fc58 100644 --- a/src/scene/scale.cpp +++ b/src/scene/scale.cpp @@ -48,11 +48,11 @@ documentation::Documentation Scale::Documentation() { { KeyType, new StringAnnotationVerifier("Must name a valid Scale type"), + Optional::No, "The type of the scaling that is described in this element. " "The available types of scaling depend on the configuration " "of the application and can be written to disk on " - "application startup into the FactoryDocumentation.", - Optional::No + "application startup into the FactoryDocumentation." } }, Exhaustive::No diff --git a/src/scene/scene.cpp b/src/scene/scene.cpp index 2f65a7b5d7..547c1e6627 100644 --- a/src/scene/scene.cpp +++ b/src/scene/scene.cpp @@ -290,7 +290,8 @@ std::string Scene::generateJson() const { json << "\"id\": \"" << p->identifier() << "\","; json << "\"type\": \"" << p->className() << "\","; json << "\"fullyQualifiedId\": \"" << p->fullyQualifiedIdentifier() << "\","; - json << "\"guiName\": \"" << p->guiName() << "\""; + json << "\"guiName\": \"" << p->guiName() << "\","; + json << "\"description\": \"" << escapedJson(p->description()) << "\""; json << "}"; if (p != properties.back()) { json << ","; diff --git a/src/scene/scene_doc.inl b/src/scene/scene_doc.inl index c6be2cc5a2..7e12ff7475 100644 --- a/src/scene/scene_doc.inl +++ b/src/scene/scene_doc.inl @@ -37,16 +37,16 @@ documentation::Documentation Scene::Documentation() { { "ScenePath", new StringVerifier, + Optional::Yes, "The path to the base directory of the scene. The path is considered " - "relative to the location of the scene description file.", - Optional::Yes + "relative to the location of the scene description file." }, { "CommonFolder", new StringAnnotationVerifier("A valid scene module folder"), + Optional::Yes, "The path to the common folder that is loaded and will be bound to the " - "${COMMON_MODULE} path token so that assets can be reused easily.", - Optional::Yes + "${COMMON_MODULE} path token so that assets can be reused easily." }, { "Camera", @@ -54,37 +54,42 @@ documentation::Documentation Scene::Documentation() { { "Focus", new StringAnnotationVerifier("A valid object in the scene"), + Optional::No, "The initial focus node of the camera, i.e., the node around which " "the interaction will be performed." }, { "Position", new DoubleVector3Verifier, - "The initial camera positive relative to the focus object.", - Optional::Yes + Optional::Yes, + "The initial camera positive relative to the focus object." }, { "Rotation", new DoubleVector4Verifier, - "The initial camera rotation expressed as a quaternion.", - Optional::Yes + Optional::Yes, + "The initial camera rotation expressed as a quaternion." } }), + Optional::Yes, "Definitions of the camera starting parameters, such as focus, location, and " - "orientation.", - Optional::Yes + "orientation." }, { "Modules", new TableVerifier({ - { "*", new StringAnnotationVerifier( + { + "*", + new StringVerifier, + Optional::No, "Loadable module folders. This means that they either have to point " "to a folder that contains a ModuleFile or a folder which contains " "other folders that eventually contain ModuleFile. This second " "recursive approach is useful for grouping modules into logical " "units." - )} + } }), + Optional::No, "This is the list of modules that will be loaded into the initial scene. The " "values in this table have to correspond to folders relative to the " "ScenePath key. The order in which the modules are loaded is the same as the " diff --git a/src/scene/scenegraphnode_doc.inl b/src/scene/scenegraphnode_doc.inl index 2766c91ee4..038d6c001e 100644 --- a/src/scene/scenegraphnode_doc.inl +++ b/src/scene/scenegraphnode_doc.inl @@ -37,33 +37,33 @@ documentation::Documentation SceneGraphNode::Documentation() { { "Name", new StringVerifier, + Optional::No, "The name of this scenegraph node. This name must be unique among all scene " "graph nodes that are loaded in a specific scene. If a duplicate is detected " "the loading of the node will fail, as will all childing that depend on the " - "node.", - Optional::No + "node." }, { "Parent", new StringAnnotationVerifier( "Must be a name for another scenegraph node, or 'Root'" ), + Optional::No, "This names the parent of the currently specified scenegraph node. The " "parent must not have been defined earlier, but must exist at loading time, " "or the scenegraph node creation will fail. A special parent 'Root' is " - "available that denotes the root of the scenegraph.", - Optional::No + "available that denotes the root of the scenegraph." }, { "Renderable", new ReferencingVerifier("renderable"), + Optional::Yes, "The renderable that is to be created for this scenegraph node. A renderable " "is a component of a scenegraph node that will lead to some visual result on " "the screen. The specifics heavily depend on the 'Type' of the renderable. " "If no Renderable is specified, this scenegraph node is an internal node and " "can be used for either group children, or apply common transformations to a " - "group of children.", - Optional::Yes + "group of children." }, { "Transform", @@ -71,33 +71,33 @@ documentation::Documentation SceneGraphNode::Documentation() { { "Translation", new ReferencingVerifier("core_transform_translation"), + Optional::Yes, "This node describes a translation that is applied to the scenegraph " "node and all its children. Depending on the 'Type' of the " "translation, this can either be a static translation or a " - "time-varying one.", - Optional::Yes + "time-varying one." }, { "Rotation", new ReferencingVerifier("core_transform_rotation"), + Optional::Yes, "This nodes describes a rotation that is applied to the scenegraph " "node and all its children. Depending on the 'Type' of the rotation, " - "this can either be a static rotation or a time-varying one.", - Optional::Yes + "this can either be a static rotation or a time-varying one." }, { "Scale", new ReferencingVerifier("core_transform_scaling"), + Optional::Yes, "This node describes a scaling that is applied to the scenegraph " "node and all its children. Depending on the 'Type' of the scaling, " - "this can either be a static scaling or a time-varying one.", - Optional::Yes + "this can either be a static scaling or a time-varying one." } }), + Optional::Yes, "This describes a set of transformations that are applied to this scenegraph " "node and all of its children. There are only three possible values " - "corresponding to a 'Translation', a 'Rotation', and a 'Scale'.", - Optional::Yes + "corresponding to a 'Translation', a 'Rotation', and a 'Scale'." }, } }; diff --git a/src/scene/translation.cpp b/src/scene/translation.cpp index 9dc3eb3931..7bbfc23149 100644 --- a/src/scene/translation.cpp +++ b/src/scene/translation.cpp @@ -47,11 +47,11 @@ documentation::Documentation Translation::Documentation() { { KeyType, new StringAnnotationVerifier("Must name a valid Translation type"), + Optional::No, "The type of translation that is described in this element. " "The available types of translations depend on the " "configuration of the application and can be written to disk " - "on application startup into the FactoryDocumentation.", - Optional::No + "on application startup into the FactoryDocumentation." } }, Exhaustive::No diff --git a/src/scripting/scriptscheduler.cpp b/src/scripting/scriptscheduler.cpp index 5b7db34bef..601fec5bf3 100644 --- a/src/scripting/scriptscheduler.cpp +++ b/src/scripting/scriptscheduler.cpp @@ -61,36 +61,37 @@ documentation::Documentation ScriptScheduler::Documentation() { { KeyTime, new TimeVerifier, + Optional::No, "The time at which, when the in game time passes it, the two " "scripts will be executed. If the traversal is forwards (towards " "+ infinity), the ForwardScript will be executed, otherwise the " - "BackwardScript will be executed instead.", - Optional::No + "BackwardScript will be executed instead." }, { KeyUniversalScript, new LuaScriptVerifier, + Optional::Yes, "The Lua script that will be executed when the specified time is " "passed independent of its direction. This script will be " "executed before the specific scripts if both versions are " - "specified", - Optional::Yes + "specified" }, { KeyForwardScript, new LuaScriptVerifier, + Optional::Yes, "The Lua script that is executed when OpenSpace passes the time " - "in a forward direction.", - Optional::Yes + "in a forward direction." }, { KeyBackwardScript, new LuaScriptVerifier, + Optional::Yes, "The Lua script that is executed when OpenSpace passes the time " - "in a backward direction.", - Optional::Yes + "in a backward direction." } - }) + }), + Optional::No } }, Exhaustive::Yes diff --git a/src/util/task.cpp b/src/util/task.cpp index 891614c1c2..2efc36d0cb 100644 --- a/src/util/task.cpp +++ b/src/util/task.cpp @@ -41,11 +41,11 @@ documentation::Documentation Task::documentation() { { "Type", new StringAnnotationVerifier("A valid Task created by a factory"), + Optional::No, "This key specifies the type of Task that gets created. It has to be one" "of the valid Tasks that are available for creation (see the " "FactoryDocumentation for a list of possible Tasks), which depends on " - "the configration of the application", - Optional::No + "the configration of the application" } } }; diff --git a/src/util/timerange.cpp b/src/util/timerange.cpp index 7c74baeb79..bcae0aefb6 100644 --- a/src/util/timerange.cpp +++ b/src/util/timerange.cpp @@ -46,14 +46,14 @@ documentation::Documentation TimeRange::Documentation() { { KeyStart, new StringAnnotationVerifier("A string representing a valid date"), - "The start date of the time range", - Optional::No + Optional::No, + "The start date of the time range" }, { KeyEnd, new StringAnnotationVerifier("A string representing a valid date"), - "The end date of the time range", - Optional::No + Optional::No, + "The end date of the time range" } }, Exhaustive::Yes From 8c581fc7d979c1b58ddb9e37f6afe0adabf6301c Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Thu, 27 Jul 2017 00:41:04 -0400 Subject: [PATCH 11/51] Rename SpiceTranslation's "Body" to "Target" --- data/scene/atmosphereearth/atmosphereearth.mod | 2 +- data/scene/earth/earth.mod | 4 ++-- data/scene/jupiter/callisto/callisto.mod | 4 ++-- data/scene/jupiter/europa/europa.mod | 4 ++-- data/scene/jupiter/ganymede/ganymede.mod | 4 ++-- data/scene/jupiter/io/io.mod | 4 ++-- data/scene/jupiter/jupiter/jupiter.mod | 4 ++-- data/scene/lodglobes/earth/earth.mod | 4 ++-- data/scene/lodglobes/jupiter/callisto/callisto.mod | 4 ++-- data/scene/lodglobes/jupiter/europa/europa.mod | 4 ++-- data/scene/lodglobes/jupiter/ganymede/ganymede.mod | 4 ++-- data/scene/lodglobes/jupiter/io/io.mod | 4 ++-- data/scene/lodglobes/jupiter/jupiter/jupiter.mod | 4 ++-- data/scene/lodglobes/mars/mars.mod | 4 ++-- data/scene/lodglobes/mercury/mercury.mod | 4 ++-- data/scene/lodglobes/moon/moon.mod | 4 ++-- data/scene/lodglobes/neptune/neptune.mod | 4 ++-- data/scene/lodglobes/saturn/saturn.mod | 6 +++--- data/scene/lodglobes/uranus/uranus.mod | 4 ++-- data/scene/lodglobes/venus/venus.mod | 6 +++--- data/scene/mars/mars.mod | 4 ++-- data/scene/mercury/mercury.mod | 4 ++-- data/scene/missions/dawn/dawn/dawn.mod | 2 +- .../dawn/vestaprojection/vestaprojection.mod | 2 +- data/scene/missions/juno/juno/juno.mod | 2 +- .../newhorizons/jupiter/callisto/callisto.mod | 4 ++-- .../missions/newhorizons/jupiter/europa/europa.mod | 4 ++-- .../newhorizons/jupiter/ganymede/ganymede.mod | 4 ++-- data/scene/missions/newhorizons/jupiter/io/io.mod | 4 ++-- .../missions/newhorizons/jupiter/jupiter/jupiter.mod | 4 ++-- .../missions/newhorizons/newhorizons/newhorizons.mod | 4 ++-- .../missions/newhorizons/pluto/charon/charon.mod | 4 ++-- .../scene/missions/newhorizons/pluto/hydra/hydra.mod | 4 ++-- .../missions/newhorizons/pluto/kerberos/kerberos.mod | 4 ++-- data/scene/missions/newhorizons/pluto/nix/nix.mod | 4 ++-- .../scene/missions/newhorizons/pluto/pluto/pluto.mod | 8 ++++---- data/scene/missions/newhorizons/pluto/styx/styx.mod | 4 ++-- data/scene/missions/osirisrex/bennu/bennu.mod | 4 ++-- .../scene/missions/osirisrex/osirisrex/osirisrex.mod | 8 ++++---- data/scene/missions/rosetta/67P/67P.mod | 4 ++-- data/scene/missions/rosetta/rosetta/rosetta.mod | 8 ++++---- data/scene/moon/moon.mod | 4 ++-- data/scene/neptune/neptune.mod | 4 ++-- data/scene/pluto/pluto.mod | 12 ++++++------ data/scene/saturn/dione/dione.mod | 4 ++-- data/scene/saturn/enceladus/enceladus.mod | 4 ++-- data/scene/saturn/iapetus/iapetus.mod | 4 ++-- data/scene/saturn/mimas/mimas.mod | 4 ++-- data/scene/saturn/rhea/rhea.mod | 4 ++-- data/scene/saturn/saturn/saturn.mod | 6 +++--- data/scene/saturn/tethys/tethys.mod | 4 ++-- data/scene/saturn/titan/titan.mod | 4 ++-- data/scene/sun/sun.mod | 4 ++-- data/scene/uranus/uranus.mod | 4 ++-- data/scene/venus/venus.mod | 4 ++-- modules/space/translation/spicetranslation.cpp | 5 ++--- 56 files changed, 121 insertions(+), 122 deletions(-) diff --git a/data/scene/atmosphereearth/atmosphereearth.mod b/data/scene/atmosphereearth/atmosphereearth.mod index b019c71241..bdf236fe04 100644 --- a/data/scene/atmosphereearth/atmosphereearth.mod +++ b/data/scene/atmosphereearth/atmosphereearth.mod @@ -110,7 +110,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "EARTH", + Target = "EARTH", Observer = "SUN" }, Color = { 0.5, 0.8, 1.0 }, diff --git a/data/scene/earth/earth.mod b/data/scene/earth/earth.mod index 3e293f6f3d..ee8f812ffc 100644 --- a/data/scene/earth/earth.mod +++ b/data/scene/earth/earth.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "EARTH", + Target = "EARTH", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" } @@ -71,7 +71,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "EARTH", + Target = "EARTH", Observer = "SUN" }, Color = { 0.5, 0.8, 1.0 }, diff --git a/data/scene/jupiter/callisto/callisto.mod b/data/scene/jupiter/callisto/callisto.mod index aa6122bd47..1491d121c1 100644 --- a/data/scene/jupiter/callisto/callisto.mod +++ b/data/scene/jupiter/callisto/callisto.mod @@ -25,7 +25,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "CALLISTO", + Target = "CALLISTO", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, @@ -48,7 +48,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "CALLISTO", + Target = "CALLISTO", Observer = "JUPITER BARYCENTER", }, Color = { 0.4, 0.3, 0.01 }, diff --git a/data/scene/jupiter/europa/europa.mod b/data/scene/jupiter/europa/europa.mod index fea16b4627..c1e6953ede 100644 --- a/data/scene/jupiter/europa/europa.mod +++ b/data/scene/jupiter/europa/europa.mod @@ -25,7 +25,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "EUROPA", + Target = "EUROPA", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, @@ -44,7 +44,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "EUROPA", + Target = "EUROPA", Observer = "JUPITER BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/jupiter/ganymede/ganymede.mod b/data/scene/jupiter/ganymede/ganymede.mod index 16aa1c175a..e8414d015f 100644 --- a/data/scene/jupiter/ganymede/ganymede.mod +++ b/data/scene/jupiter/ganymede/ganymede.mod @@ -25,7 +25,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "GANYMEDE", + Target = "GANYMEDE", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, @@ -48,7 +48,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "GANYMEDE", + Target = "GANYMEDE", Observer = "JUPITER BARYCENTER", }, Color = { 0.4, 0.3, 0.3 }, diff --git a/data/scene/jupiter/io/io.mod b/data/scene/jupiter/io/io.mod index 98e5e88e7f..438999814c 100644 --- a/data/scene/jupiter/io/io.mod +++ b/data/scene/jupiter/io/io.mod @@ -25,7 +25,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "IO", + Target = "IO", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, @@ -48,7 +48,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "IO", + Target = "IO", Observer = "JUPITER BARYCENTER", }, Color = { 0.4, 0.4, 0.2 }, diff --git a/data/scene/jupiter/jupiter/jupiter.mod b/data/scene/jupiter/jupiter/jupiter.mod index f9030b25f1..ae139ae95e 100644 --- a/data/scene/jupiter/jupiter/jupiter.mod +++ b/data/scene/jupiter/jupiter/jupiter.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "JUPITER BARYCENTER", + Target = "JUPITER BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -60,7 +60,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "JUPITER BARYCENTER", + Target = "JUPITER BARYCENTER", Observer = "SUN", }, Color = { 0.8, 0.7, 0.7 }, diff --git a/data/scene/lodglobes/earth/earth.mod b/data/scene/lodglobes/earth/earth.mod index 0819aa8638..ade90311c2 100644 --- a/data/scene/lodglobes/earth/earth.mod +++ b/data/scene/lodglobes/earth/earth.mod @@ -7,7 +7,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "EARTH", + Target = "EARTH", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -33,7 +33,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "EARTH", + Target = "EARTH", Observer = "SUN" }, Color = { 0.5, 0.8, 1.0 }, diff --git a/data/scene/lodglobes/jupiter/callisto/callisto.mod b/data/scene/lodglobes/jupiter/callisto/callisto.mod index 302fc7a103..9560703efa 100644 --- a/data/scene/lodglobes/jupiter/callisto/callisto.mod +++ b/data/scene/lodglobes/jupiter/callisto/callisto.mod @@ -11,7 +11,7 @@ return { }, Translation = { Type = "SpiceTranslation", - Body = "CALLISTO", + Target = "CALLISTO", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, @@ -43,7 +43,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "CALLISTO", + Target = "CALLISTO", Observer = "JUPITER BARYCENTER", }, Color = { 0.4, 0.3, 0.01 }, diff --git a/data/scene/lodglobes/jupiter/europa/europa.mod b/data/scene/lodglobes/jupiter/europa/europa.mod index d84d20d48d..72a530e04d 100644 --- a/data/scene/lodglobes/jupiter/europa/europa.mod +++ b/data/scene/lodglobes/jupiter/europa/europa.mod @@ -11,7 +11,7 @@ return { }, Translation = { Type = "SpiceTranslation", - Body = "EUROPA", + Target = "EUROPA", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, @@ -44,7 +44,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "EUROPA", + Target = "EUROPA", Observer = "JUPITER BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/lodglobes/jupiter/ganymede/ganymede.mod b/data/scene/lodglobes/jupiter/ganymede/ganymede.mod index e37a193bb8..95e64fa0f5 100644 --- a/data/scene/lodglobes/jupiter/ganymede/ganymede.mod +++ b/data/scene/lodglobes/jupiter/ganymede/ganymede.mod @@ -11,7 +11,7 @@ return { }, Translation = { Type = "SpiceTranslation", - Body = "GANYMEDE", + Target = "GANYMEDE", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, @@ -43,7 +43,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "GANYMEDE", + Target = "GANYMEDE", Observer = "JUPITER BARYCENTER", }, Color = { 0.4, 0.3, 0.3 }, diff --git a/data/scene/lodglobes/jupiter/io/io.mod b/data/scene/lodglobes/jupiter/io/io.mod index 87dfc06b20..2891180b5c 100644 --- a/data/scene/lodglobes/jupiter/io/io.mod +++ b/data/scene/lodglobes/jupiter/io/io.mod @@ -11,7 +11,7 @@ return { }, Translation = { Type = "SpiceTranslation", - Body = "IO", + Target = "IO", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, @@ -43,7 +43,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "IO", + Target = "IO", Observer = "JUPITER BARYCENTER", }, Color = { 0.4, 0.4, 0.2 }, diff --git a/data/scene/lodglobes/jupiter/jupiter/jupiter.mod b/data/scene/lodglobes/jupiter/jupiter/jupiter.mod index 58dc65149d..206661f368 100644 --- a/data/scene/lodglobes/jupiter/jupiter/jupiter.mod +++ b/data/scene/lodglobes/jupiter/jupiter/jupiter.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "JUPITER BARYCENTER", + Target = "JUPITER BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -54,7 +54,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "JUPITER BARYCENTER", + Target = "JUPITER BARYCENTER", Observer = "SUN", }, Color = { 0.8, 0.7, 0.7 }, diff --git a/data/scene/lodglobes/mars/mars.mod b/data/scene/lodglobes/mars/mars.mod index ceee56e4ea..71f4f164c9 100644 --- a/data/scene/lodglobes/mars/mars.mod +++ b/data/scene/lodglobes/mars/mars.mod @@ -8,7 +8,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "MARS BARYCENTER", + Target = "MARS BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -85,7 +85,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "MARS BARYCENTER", + Target = "MARS BARYCENTER", Observer = "SUN", }, Color = { 0.814, 0.305, 0.220 }, diff --git a/data/scene/lodglobes/mercury/mercury.mod b/data/scene/lodglobes/mercury/mercury.mod index 531b855ba7..db7acbaaea 100644 --- a/data/scene/lodglobes/mercury/mercury.mod +++ b/data/scene/lodglobes/mercury/mercury.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "MERCURY", + Target = "MERCURY", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -63,7 +63,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "MERCURY", + Target = "MERCURY", Observer = "SUN", }, Color = {0.6, 0.5, 0.5 }, diff --git a/data/scene/lodglobes/moon/moon.mod b/data/scene/lodglobes/moon/moon.mod index 1ddb3cf044..88fcaed569 100644 --- a/data/scene/lodglobes/moon/moon.mod +++ b/data/scene/lodglobes/moon/moon.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "MOON", + Target = "MOON", Observer = "EARTH BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -60,7 +60,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "MOON", + Target = "MOON", Observer = "EARTH BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/lodglobes/neptune/neptune.mod b/data/scene/lodglobes/neptune/neptune.mod index 99513e18bb..12064b44f2 100644 --- a/data/scene/lodglobes/neptune/neptune.mod +++ b/data/scene/lodglobes/neptune/neptune.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "NEPTUNE BARYCENTER", + Target = "NEPTUNE BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -51,7 +51,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "NEPTUNE BARYCENTER", + Target = "NEPTUNE BARYCENTER", Observer = "SUN", }, Color = {0.2, 0.5, 1.0 }, diff --git a/data/scene/lodglobes/saturn/saturn.mod b/data/scene/lodglobes/saturn/saturn.mod index dc1ef691eb..607a75aad9 100644 --- a/data/scene/lodglobes/saturn/saturn.mod +++ b/data/scene/lodglobes/saturn/saturn.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "SATURN BARYCENTER", + Target = "SATURN BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -61,8 +61,8 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "SATURN BARYCENTER", - Observer = "SUN", + Target = "SATURN BARYCENTER", + Observer = "SUN", }, Color = {0.85,0.75,0.51 }, Period = 10746.94, diff --git a/data/scene/lodglobes/uranus/uranus.mod b/data/scene/lodglobes/uranus/uranus.mod index b8cda62a16..66b585db1e 100644 --- a/data/scene/lodglobes/uranus/uranus.mod +++ b/data/scene/lodglobes/uranus/uranus.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "URANUS BARYCENTER", + Target = "URANUS BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -51,7 +51,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "URANUS BARYCENTER", + Target = "URANUS BARYCENTER", Observer = "SUN", }, Color = {0.60, 0.95, 1.00 }, diff --git a/data/scene/lodglobes/venus/venus.mod b/data/scene/lodglobes/venus/venus.mod index 285f88f466..06ff785391 100644 --- a/data/scene/lodglobes/venus/venus.mod +++ b/data/scene/lodglobes/venus/venus.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "VENUS BARYCENTER", + Target = "VENUS BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -28,7 +28,7 @@ return { }, Translation = { Type = "SpiceTranslation", - Body = "VENUS", + Target = "VENUS", Observer = "VENUS BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -56,7 +56,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "VENUS BARYCENTER", + Target = "VENUS BARYCENTER", Observer = "SUN", }, Color = { 1.0, 0.5, 0.2 }, diff --git a/data/scene/mars/mars.mod b/data/scene/mars/mars.mod index 301f510e5f..43c33ead59 100644 --- a/data/scene/mars/mars.mod +++ b/data/scene/mars/mars.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "MARS BARYCENTER", + Target = "MARS BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" } @@ -56,7 +56,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "MARS BARYCENTER", + Target = "MARS BARYCENTER", Observer = "SUN", }, Color = { 0.814, 0.305, 0.220 }, diff --git a/data/scene/mercury/mercury.mod b/data/scene/mercury/mercury.mod index 61d5c6ff8b..106b781331 100644 --- a/data/scene/mercury/mercury.mod +++ b/data/scene/mercury/mercury.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "MERCURY BARYCENTER", + Target = "MERCURY BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -56,7 +56,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "MERCURY", + Target = "MERCURY", Observer = "SUN", }, Color = {0.6, 0.5, 0.5 }, diff --git a/data/scene/missions/dawn/dawn/dawn.mod b/data/scene/missions/dawn/dawn/dawn.mod index 3d4a14e917..8bf49c27e7 100644 --- a/data/scene/missions/dawn/dawn/dawn.mod +++ b/data/scene/missions/dawn/dawn/dawn.mod @@ -703,7 +703,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = "DAWN", + Target = "DAWN", Observer = "SUN", }, Color = { 0.7, 0.4, 0.9 }, diff --git a/data/scene/missions/dawn/vestaprojection/vestaprojection.mod b/data/scene/missions/dawn/vestaprojection/vestaprojection.mod index f0b8cc87b6..b2167abf15 100644 --- a/data/scene/missions/dawn/vestaprojection/vestaprojection.mod +++ b/data/scene/missions/dawn/vestaprojection/vestaprojection.mod @@ -103,7 +103,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "VESTA", + Target = "VESTA", Observer = "SUN", }, Color = { 0.7, 0.8, 0.7 }, diff --git a/data/scene/missions/juno/juno/juno.mod b/data/scene/missions/juno/juno/juno.mod index 823c8f9339..3e6d9703fb 100644 --- a/data/scene/missions/juno/juno/juno.mod +++ b/data/scene/missions/juno/juno/juno.mod @@ -129,7 +129,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = "JUNO", + Target = "JUNO", Observer = "JUPITER BARYCENTER" }, Color = { 0.70, 0.50, 0.20 }, diff --git a/data/scene/missions/newhorizons/jupiter/callisto/callisto.mod b/data/scene/missions/newhorizons/jupiter/callisto/callisto.mod index 3a51e4c5bb..40daf905ef 100644 --- a/data/scene/missions/newhorizons/jupiter/callisto/callisto.mod +++ b/data/scene/missions/newhorizons/jupiter/callisto/callisto.mod @@ -45,7 +45,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "CALLISTO", + Target = "CALLISTO", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -88,7 +88,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "CALLISTO", + Target = "CALLISTO", Observer = "JUPITER BARYCENTER", }, Color = { 0.4, 0.3, 0.01 }, diff --git a/data/scene/missions/newhorizons/jupiter/europa/europa.mod b/data/scene/missions/newhorizons/jupiter/europa/europa.mod index 37a137fdb0..0558ac06b7 100644 --- a/data/scene/missions/newhorizons/jupiter/europa/europa.mod +++ b/data/scene/missions/newhorizons/jupiter/europa/europa.mod @@ -45,7 +45,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "EUROPA", + Target = "EUROPA", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -88,7 +88,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "EUROPA", + Target = "EUROPA", Observer = "JUPITER BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/missions/newhorizons/jupiter/ganymede/ganymede.mod b/data/scene/missions/newhorizons/jupiter/ganymede/ganymede.mod index 9d16289f9b..21dccf80ee 100644 --- a/data/scene/missions/newhorizons/jupiter/ganymede/ganymede.mod +++ b/data/scene/missions/newhorizons/jupiter/ganymede/ganymede.mod @@ -45,7 +45,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "GANYMEDE", + Target = "GANYMEDE", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -82,7 +82,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "GANYMEDE", + Target = "GANYMEDE", Observer = "JUPITER BARYCENTER", }, Color = { 0.4, 0.3, 0.3 }, diff --git a/data/scene/missions/newhorizons/jupiter/io/io.mod b/data/scene/missions/newhorizons/jupiter/io/io.mod index 60ed022544..70b810faf3 100644 --- a/data/scene/missions/newhorizons/jupiter/io/io.mod +++ b/data/scene/missions/newhorizons/jupiter/io/io.mod @@ -45,7 +45,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "IO", + Target = "IO", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -98,7 +98,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "IO", + Target = "IO", Observer = "JUPITER BARYCENTER", }, Color = { 0.4, 0.4, 0.2 }, diff --git a/data/scene/missions/newhorizons/jupiter/jupiter/jupiter.mod b/data/scene/missions/newhorizons/jupiter/jupiter/jupiter.mod index f4fbe278f0..c0f338abe6 100644 --- a/data/scene/missions/newhorizons/jupiter/jupiter/jupiter.mod +++ b/data/scene/missions/newhorizons/jupiter/jupiter/jupiter.mod @@ -8,7 +8,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "JUPITER BARYCENTER", + Target = "JUPITER BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -125,7 +125,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "JUPITER BARYCENTER", + Target = "JUPITER BARYCENTER", Observer = "SUN", }, Color = { 0.8, 0.7, 0.7 }, diff --git a/data/scene/missions/newhorizons/newhorizons/newhorizons.mod b/data/scene/missions/newhorizons/newhorizons/newhorizons.mod index 3e00eac771..c71caaba34 100644 --- a/data/scene/missions/newhorizons/newhorizons/newhorizons.mod +++ b/data/scene/missions/newhorizons/newhorizons/newhorizons.mod @@ -74,7 +74,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "NEW HORIZONS", + Target = "NEW HORIZONS", Observer = "SUN", Kernels = NewHorizonsKernels }, @@ -168,7 +168,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = "NEW HORIZONS", + Target = "NEW HORIZONS", Observer = "PLUTO BARYCENTER" }, Color = { 1.0, 0.8, 0.4 }, diff --git a/data/scene/missions/newhorizons/pluto/charon/charon.mod b/data/scene/missions/newhorizons/pluto/charon/charon.mod index 1813547e25..ac9c616432 100644 --- a/data/scene/missions/newhorizons/pluto/charon/charon.mod +++ b/data/scene/missions/newhorizons/pluto/charon/charon.mod @@ -60,7 +60,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "CHARON", + Target = "CHARON", Observer = "PLUTO BARYCENTER", Kernels = NewHorizonsKernels }, @@ -111,7 +111,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "CHARON", + Target = "CHARON", Observer = "PLUTO BARYCENTER", }, Color = {0.00, 0.62, 1.00}, diff --git a/data/scene/missions/newhorizons/pluto/hydra/hydra.mod b/data/scene/missions/newhorizons/pluto/hydra/hydra.mod index 9418f4ceb4..1165dcac5f 100644 --- a/data/scene/missions/newhorizons/pluto/hydra/hydra.mod +++ b/data/scene/missions/newhorizons/pluto/hydra/hydra.mod @@ -33,7 +33,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "HYDRA", + Target = "HYDRA", Observer = "PLUTO BARYCENTER", Kernels = NewHorizonsKernels }, @@ -69,7 +69,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "HYDRA", + Target = "HYDRA", Observer = "PLUTO BARYCENTER", }, Color = {0.00, 0.62, 1.00}, diff --git a/data/scene/missions/newhorizons/pluto/kerberos/kerberos.mod b/data/scene/missions/newhorizons/pluto/kerberos/kerberos.mod index 9dab2c556f..68039ab0d3 100644 --- a/data/scene/missions/newhorizons/pluto/kerberos/kerberos.mod +++ b/data/scene/missions/newhorizons/pluto/kerberos/kerberos.mod @@ -33,7 +33,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "KERBEROS", + Target = "KERBEROS", Observer = "PLUTO BARYCENTER", Kernels = NewHorizonsKernels }, @@ -69,7 +69,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "KERBEROS", + Target = "KERBEROS", Observer = "PLUTO BARYCENTER", }, Color = {0.00, 0.62, 1.00}, diff --git a/data/scene/missions/newhorizons/pluto/nix/nix.mod b/data/scene/missions/newhorizons/pluto/nix/nix.mod index 5ea9374cf0..9d8d25da53 100644 --- a/data/scene/missions/newhorizons/pluto/nix/nix.mod +++ b/data/scene/missions/newhorizons/pluto/nix/nix.mod @@ -33,7 +33,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "NIX", + Target = "NIX", Observer = "PLUTO BARYCENTER", Kernels = NewHorizonsKernels }, @@ -63,7 +63,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "NIX", + Target = "NIX", Observer = "PLUTO BARYCENTER", }, Color = {0.00, 0.62, 1.00}, diff --git a/data/scene/missions/newhorizons/pluto/pluto/pluto.mod b/data/scene/missions/newhorizons/pluto/pluto/pluto.mod index 4e54ff8b2a..20fc87d708 100644 --- a/data/scene/missions/newhorizons/pluto/pluto/pluto.mod +++ b/data/scene/missions/newhorizons/pluto/pluto/pluto.mod @@ -26,7 +26,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "PLUTO BARYCENTER", + Target = "PLUTO BARYCENTER", Observer = "SUN", Kernels = NewHorizonsKernels }, @@ -159,7 +159,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "PLUTO", + Target = "PLUTO", Observer = "PLUTO BARYCENTER", Kernels = NewHorizonsKernels }, @@ -243,7 +243,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "PLUTO", + Target = "PLUTO", Observer = "PLUTO BARYCENTER", }, Color = {0.00, 0.62, 1.00}, @@ -259,7 +259,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "PLUTO BARYCENTER", + Target = "PLUTO BARYCENTER", Observer = "SUN", }, Color = { 0.3, 0.7, 0.3 }, diff --git a/data/scene/missions/newhorizons/pluto/styx/styx.mod b/data/scene/missions/newhorizons/pluto/styx/styx.mod index da6e1bce05..fa3a975fce 100644 --- a/data/scene/missions/newhorizons/pluto/styx/styx.mod +++ b/data/scene/missions/newhorizons/pluto/styx/styx.mod @@ -33,7 +33,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "STYX", + Target = "STYX", Observer = "PLUTO BARYCENTER", Kernels = NewHorizonsKernels }, @@ -70,7 +70,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "STYX", + Target = "STYX", Observer = "PLUTO BARYCENTER", }, Color = {0.00, 0.62, 1.00}, diff --git a/data/scene/missions/osirisrex/bennu/bennu.mod b/data/scene/missions/osirisrex/bennu/bennu.mod index d7718f66bb..ff099ce50e 100644 --- a/data/scene/missions/osirisrex/bennu/bennu.mod +++ b/data/scene/missions/osirisrex/bennu/bennu.mod @@ -10,7 +10,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = BENNU_BODY, + Target = BENNU_BODY, Observer = "SUN", }, }, @@ -100,7 +100,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = BENNU_BODY, + Target = BENNU_BODY, Observer = "SUN", }, Color = { 0.4, 0.0, 0.7}, diff --git a/data/scene/missions/osirisrex/osirisrex/osirisrex.mod b/data/scene/missions/osirisrex/osirisrex/osirisrex.mod index 12776ce226..8ba3127250 100644 --- a/data/scene/missions/osirisrex/osirisrex/osirisrex.mod +++ b/data/scene/missions/osirisrex/osirisrex/osirisrex.mod @@ -182,7 +182,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "OSIRIS-REX", + Target = "OSIRIS-REX", Observer = "SUN", Kernels = OsirisRexKernels }, @@ -345,7 +345,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = "OSIRIS-REX", + Target = "OSIRIS-REX", Frame = "IAU_EARTH", Observer = "EARTH", }, @@ -364,7 +364,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = "OSIRIS-REX", + Target = "OSIRIS-REX", Observer = "SUN", }, Color = { 0.2, 0.9, 0.2 }, @@ -382,7 +382,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = "OSIRIS-REX", + Target = "OSIRIS-REX", Observer = BENNU_BODY, }, Color = { 0.9, 0.2, 0.9 }, diff --git a/data/scene/missions/rosetta/67P/67P.mod b/data/scene/missions/rosetta/67P/67P.mod index a039c22b4d..91c3ac13ba 100644 --- a/data/scene/missions/rosetta/67P/67P.mod +++ b/data/scene/missions/rosetta/67P/67P.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "CHURYUMOV-GERASIMENKO", + Target = "CHURYUMOV-GERASIMENKO", Observer = "SUN", }, }, @@ -90,7 +90,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = "CHURYUMOV-GERASIMENKO", + Target = "CHURYUMOV-GERASIMENKO", Observer = "SUN", }, Color = { 0.1, 0.9, 0.2 }, diff --git a/data/scene/missions/rosetta/rosetta/rosetta.mod b/data/scene/missions/rosetta/rosetta/rosetta.mod index 961749dd01..9ef08a4f90 100644 --- a/data/scene/missions/rosetta/rosetta/rosetta.mod +++ b/data/scene/missions/rosetta/rosetta/rosetta.mod @@ -63,7 +63,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "ROSETTA", + Target = "ROSETTA", Observer = "SUN", Kernels = RosettaKernels }, @@ -274,7 +274,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "PHILAE", + Target = "PHILAE", Observer = "CHURYUMOV-GERASIMENKO", Kernels = RosettaKernels }, @@ -368,7 +368,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = "ROSETTA", + Target = "ROSETTA", Observer = "CHURYUMOV-GERASIMENKO", }, Color = { 0.288, 0.375, 0.934 }, @@ -384,7 +384,7 @@ return { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Body = "PHILAE", + Target = "PHILAE", Observer = "CHURYUMOV-GERASIMENKO", }, Color = { 0.8, 0.5, 1.0 }, diff --git a/data/scene/moon/moon.mod b/data/scene/moon/moon.mod index 534adf617c..e9369653ed 100644 --- a/data/scene/moon/moon.mod +++ b/data/scene/moon/moon.mod @@ -31,7 +31,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "MOON", + Target = "MOON", Observer = "EARTH BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -50,7 +50,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "MOON", + Target = "MOON", Observer = "EARTH BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/neptune/neptune.mod b/data/scene/neptune/neptune.mod index 38e698c9ea..03640a07ec 100644 --- a/data/scene/neptune/neptune.mod +++ b/data/scene/neptune/neptune.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "NEPTUNE BARYCENTER", + Target = "NEPTUNE BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" } @@ -52,7 +52,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "NEPTUNE BARYCENTER", + Target = "NEPTUNE BARYCENTER", Observer = "SUN", }, Color = {0.2, 0.5, 1.0 }, diff --git a/data/scene/pluto/pluto.mod b/data/scene/pluto/pluto.mod index 27f540d731..fcc75d1e8a 100644 --- a/data/scene/pluto/pluto.mod +++ b/data/scene/pluto/pluto.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "PLUTO BARYCENTER", + Target = "PLUTO BARYCENTER", Observer = "SUN", Kernels = { "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp", @@ -41,7 +41,7 @@ return { Transformation = { Translation = { Type = "SpiceTranslation", - Body = "PLUTO", + Target = "PLUTO", Observer = "PLUTO BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/plu055.bsp", }, @@ -77,7 +77,7 @@ return { Transformation = { Translation = { Type = "SpiceTranslation", - Body = "CHARON", + Target = "CHARON", Observer = "PLUTO BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/plu055.bsp", }, @@ -96,7 +96,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "CHARON", + Target = "CHARON", Observer = "PLUTO BARYCENTER", }, Color = {0.00,0.62,1.00}, @@ -112,7 +112,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "PLUTO BARYCENTER", + Target = "PLUTO BARYCENTER", Observer = "SUN", }, Color = {0.58, 0.61, 1.00}, @@ -128,7 +128,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "PLUTO", + Target = "PLUTO", Observer = "PLUTO BARYCENTER", }, Color = {0.58, 0.61, 1.00}, diff --git a/data/scene/saturn/dione/dione.mod b/data/scene/saturn/dione/dione.mod index 477705ea2b..2726cb1bac 100644 --- a/data/scene/saturn/dione/dione.mod +++ b/data/scene/saturn/dione/dione.mod @@ -18,7 +18,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "DIONE", + Target = "DIONE", Observer = "SATURN BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/sat375.bsp" }, @@ -36,7 +36,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "DIONE", + Target = "DIONE", Observer = "SATURN BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/saturn/enceladus/enceladus.mod b/data/scene/saturn/enceladus/enceladus.mod index f49104d3ca..2128c9924f 100644 --- a/data/scene/saturn/enceladus/enceladus.mod +++ b/data/scene/saturn/enceladus/enceladus.mod @@ -18,7 +18,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "ENCELADUS", + Target = "ENCELADUS", Observer = "SATURN BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/sat375.bsp" }, @@ -36,7 +36,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "ENCELADUS", + Target = "ENCELADUS", Observer = "SATURN BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/saturn/iapetus/iapetus.mod b/data/scene/saturn/iapetus/iapetus.mod index 0bcc6b8c38..01f1bdd59f 100644 --- a/data/scene/saturn/iapetus/iapetus.mod +++ b/data/scene/saturn/iapetus/iapetus.mod @@ -18,7 +18,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "IAPETUS", + Target = "IAPETUS", Observer = "SATURN BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/sat375.bsp" }, @@ -36,7 +36,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "IAPETUS", + Target = "IAPETUS", Observer = "SATURN BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/saturn/mimas/mimas.mod b/data/scene/saturn/mimas/mimas.mod index 9f8e5242e6..bed954f391 100644 --- a/data/scene/saturn/mimas/mimas.mod +++ b/data/scene/saturn/mimas/mimas.mod @@ -18,7 +18,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "MIMAS", + Target = "MIMAS", Observer = "SATURN BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/sat375.bsp" }, @@ -36,7 +36,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "MIMAS", + Target = "MIMAS", Observer = "SATURN BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/saturn/rhea/rhea.mod b/data/scene/saturn/rhea/rhea.mod index 8bb6c61393..4f887a0804 100644 --- a/data/scene/saturn/rhea/rhea.mod +++ b/data/scene/saturn/rhea/rhea.mod @@ -18,7 +18,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "RHEA", + Target = "RHEA", Observer = "SATURN BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/sat375.bsp" }, @@ -36,7 +36,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "RHEA", + Target = "RHEA", Observer = "SATURN BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/saturn/saturn/saturn.mod b/data/scene/saturn/saturn/saturn.mod index 675910faab..4fd550b3ac 100644 --- a/data/scene/saturn/saturn/saturn.mod +++ b/data/scene/saturn/saturn/saturn.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "SATURN BARYCENTER", + Target = "SATURN BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" } @@ -69,8 +69,8 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "SATURN BARYCENTER", - Observer = "SUN", + Target = "SATURN BARYCENTER", + Observer = "SUN", }, Color = {0.85,0.75,0.51 }, Period = 10746.94, diff --git a/data/scene/saturn/tethys/tethys.mod b/data/scene/saturn/tethys/tethys.mod index 8fe16fa3cd..c680a48509 100644 --- a/data/scene/saturn/tethys/tethys.mod +++ b/data/scene/saturn/tethys/tethys.mod @@ -18,7 +18,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "TETHYS", + Target = "TETHYS", Observer = "SATURN BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/sat375.bsp" }, @@ -36,7 +36,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "TETHYS", + Target = "TETHYS", Observer = "SATURN BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/saturn/titan/titan.mod b/data/scene/saturn/titan/titan.mod index 12cc0d6034..2a5ff9b400 100644 --- a/data/scene/saturn/titan/titan.mod +++ b/data/scene/saturn/titan/titan.mod @@ -18,7 +18,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "TITAN", + Target = "TITAN", Observer = "SATURN BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/sat375.bsp" }, @@ -36,7 +36,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "TITAN", + Target = "TITAN", Observer = "SATURN BARYCENTER", }, Color = { 0.5, 0.3, 0.3 }, diff --git a/data/scene/sun/sun.mod b/data/scene/sun/sun.mod index 11b0e1516d..d780ccc3d4 100644 --- a/data/scene/sun/sun.mod +++ b/data/scene/sun/sun.mod @@ -33,7 +33,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "SUN", + Target = "SUN", Observer = "SSB", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -59,7 +59,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "SUN", + Target = "SUN", Observer = "SSB", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" } diff --git a/data/scene/uranus/uranus.mod b/data/scene/uranus/uranus.mod index 28e4568118..861cb622eb 100644 --- a/data/scene/uranus/uranus.mod +++ b/data/scene/uranus/uranus.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "URANUS BARYCENTER", + Target = "URANUS BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -58,7 +58,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "URANUS BARYCENTER", + Target = "URANUS BARYCENTER", Observer = "SUN", }, Color = {0.60, 0.95, 1.00 }, diff --git a/data/scene/venus/venus.mod b/data/scene/venus/venus.mod index 7badb32f9c..2c3940ae27 100644 --- a/data/scene/venus/venus.mod +++ b/data/scene/venus/venus.mod @@ -6,7 +6,7 @@ return { Transform = { Translation = { Type = "SpiceTranslation", - Body = "VENUS BARYCENTER", + Target = "VENUS BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" }, @@ -58,7 +58,7 @@ return { Type = "RenderableTrailOrbit", Translation = { Type = "SpiceTranslation", - Body = "VENUS BARYCENTER", + Target = "VENUS BARYCENTER", Observer = "SUN", }, Color = { 1.0, 0.5, 0.2 }, diff --git a/modules/space/translation/spicetranslation.cpp b/modules/space/translation/spicetranslation.cpp index 19c3505201..0986306267 100644 --- a/modules/space/translation/spicetranslation.cpp +++ b/modules/space/translation/spicetranslation.cpp @@ -33,7 +33,6 @@ #include namespace { - const char* KeyBody = "Body"; const char* KeyKernels = "Kernels"; const char* DefaultReferenceFrame = "GALACTIC"; @@ -77,7 +76,7 @@ documentation::Documentation SpiceTranslation::Documentation() { Optional::No }, { - KeyBody, // @TODO Rename to TargetInfo.identifier + TargetInfo.identifier, new StringAnnotationVerifier("A valid SPICE NAIF name or identifier"), Optional::No, "This is the SPICE NAIF name for the body whose translation is to be " @@ -125,7 +124,7 @@ SpiceTranslation::SpiceTranslation(const ghoul::Dictionary& dictionary) "SpiceTranslation" ); - _target = dictionary.value(KeyBody); + _target = dictionary.value(TargetInfo.identifier); _observer = dictionary.value(ObserverInfo.identifier); if (dictionary.hasKey(FrameInfo.identifier)) { From e794f6ae0115dab20809d850a11546d40c9b6db7 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Thu, 27 Jul 2017 01:12:27 -0400 Subject: [PATCH 12/51] Remove rotation and shift meridian from RenderablePlanetProjection Unify the property names in RenderablePlanet Remove MainFrame from RenderableShadowCylinder Clean up dictionary keys for RenderableModel, RenderableModelProjection, RenderablePlanetProjection --- .../scene/atmosphereearth/atmosphereearth.mod | 4 +- data/scene/earth/earth.mod | 14 +-- data/scene/jupiter/callisto/callisto.mod | 10 +-- data/scene/jupiter/europa/europa.mod | 10 +-- data/scene/jupiter/ganymede/ganymede.mod | 10 +-- data/scene/jupiter/io/io.mod | 10 +-- data/scene/jupiter/jupiter/jupiter.mod | 10 +-- data/scene/mars/mars.mod | 10 +-- data/scene/mercury/mercury.mod | 10 +-- data/scene/missions/dawn/ceres/ceres.mod | 5 +- data/scene/missions/dawn/dawn/dawn.mod | 15 +--- .../dawn/vestaprojection/vestaprojection.mod | 2 +- data/scene/missions/juno/juno/juno.mod | 5 +- .../newhorizons/jupiter/callisto/callisto.mod | 2 +- .../newhorizons/jupiter/europa/europa.mod | 2 +- .../newhorizons/jupiter/ganymede/ganymede.mod | 2 +- .../missions/newhorizons/jupiter/io/io.mod | 2 +- .../newhorizons/jupiter/jupiter/jupiter.mod | 2 +- .../newhorizons/newhorizons/newhorizons.mod | 7 +- .../newhorizons/pluto/charon/charon.mod | 7 +- .../newhorizons/pluto/hydra/hydra.mod | 5 +- .../newhorizons/pluto/kerberos/kerberos.mod | 5 +- .../missions/newhorizons/pluto/nix/nix.mod | 5 +- .../newhorizons/pluto/pluto/pluto.mod | 7 +- .../missions/newhorizons/pluto/styx/styx.mod | 5 +- .../osirisrex/osirisrex/osirisrex.mod | 15 +--- .../missions/rosetta/rosetta/rosetta.mod | 89 +++---------------- data/scene/moon/moon.mod | 6 +- data/scene/neptune/neptune.mod | 5 +- data/scene/pluto/pluto.mod | 20 +---- data/scene/saturn/dione/dione.mod | 4 +- data/scene/saturn/enceladus/enceladus.mod | 4 +- data/scene/saturn/iapetus/iapetus.mod | 4 +- data/scene/saturn/mimas/mimas.mod | 4 +- data/scene/saturn/rhea/rhea.mod | 4 +- data/scene/saturn/saturn/saturn.mod | 10 +-- data/scene/saturn/tethys/tethys.mod | 4 +- data/scene/saturn/titan/titan.mod | 4 +- data/scene/sun/sun.mod | 5 +- data/scene/uranus/uranus.mod | 10 +-- data/scene/venus/venus.mod | 10 +-- modules/base/rendering/renderablemodel.cpp | 16 ++-- .../rendering/renderablemodelprojection.cpp | 62 +++++++------ .../rendering/renderableplanetprojection.cpp | 84 ++++++----------- .../rendering/renderableplanetprojection.h | 4 - .../rendering/renderableshadowcylinder.cpp | 12 +-- .../rendering/renderableshadowcylinder.h | 1 - .../shaders/renderablePlanet_vs.glsl | 8 +- modules/space/rendering/renderableplanet.cpp | 54 +++++------ 49 files changed, 167 insertions(+), 438 deletions(-) diff --git a/data/scene/atmosphereearth/atmosphereearth.mod b/data/scene/atmosphereearth/atmosphereearth.mod index bdf236fe04..fd7116b122 100644 --- a/data/scene/atmosphereearth/atmosphereearth.mod +++ b/data/scene/atmosphereearth/atmosphereearth.mod @@ -40,10 +40,10 @@ return { }, --Caster2 = { Name = "Independency Day Ship", Radius = 0 } }, + ColorTexture = "textures/earth_bluemarble.jpg", + NightTexture = "textures/earth_night.jpg", Textures = { Type = "simple", - Color = "textures/earth_bluemarble.jpg", - Night = "textures/earth_night.jpg", --Height = "textures/earth_bluemarble_height.jpg", -- Depth = "textures/earth_depth.png", Reflectance = "textures/earth_reflectance.png", diff --git a/data/scene/earth/earth.mod b/data/scene/earth/earth.mod index ee8f812ffc..c4e478efd5 100644 --- a/data/scene/earth/earth.mod +++ b/data/scene/earth/earth.mod @@ -37,17 +37,9 @@ return { Radius = 6.371E6, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/earth_bluemarble.jpg", - Night = "textures/earth_night.jpg", - Height = "textures/earth_bluemarble_height.jpg" - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/earth_bluemarble.jpg", + HeightTexture = "textures/earth_bluemarble_height.jpg", + NightTexture = "textures/earth_night.jpg", }, Tag = {"planet_solarSystem", "planet_terrestrial"}, Transform = { diff --git a/data/scene/jupiter/callisto/callisto.mod b/data/scene/jupiter/callisto/callisto.mod index 1491d121c1..89bcbd9e4a 100644 --- a/data/scene/jupiter/callisto/callisto.mod +++ b/data/scene/jupiter/callisto/callisto.mod @@ -12,15 +12,7 @@ return { Radius = 2.631E6, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/callisto.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/callisto.jpg", }, Transform = { Translation = { diff --git a/data/scene/jupiter/europa/europa.mod b/data/scene/jupiter/europa/europa.mod index c1e6953ede..123a9d86b5 100644 --- a/data/scene/jupiter/europa/europa.mod +++ b/data/scene/jupiter/europa/europa.mod @@ -12,15 +12,7 @@ return { Radius = 1.561E6, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/europa.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/europa.jpg", }, Transform = { Translation = { diff --git a/data/scene/jupiter/ganymede/ganymede.mod b/data/scene/jupiter/ganymede/ganymede.mod index e8414d015f..7971e3c62e 100644 --- a/data/scene/jupiter/ganymede/ganymede.mod +++ b/data/scene/jupiter/ganymede/ganymede.mod @@ -12,15 +12,7 @@ return { Radius = 2.631E6, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/ganymede.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/ganymede.jpg", }, Transform = { Translation = { diff --git a/data/scene/jupiter/io/io.mod b/data/scene/jupiter/io/io.mod index 438999814c..bae45773e6 100644 --- a/data/scene/jupiter/io/io.mod +++ b/data/scene/jupiter/io/io.mod @@ -12,15 +12,7 @@ return { Radius = 1.8213E6, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/io.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/io.jpg", }, Transform = { Translation = { diff --git a/data/scene/jupiter/jupiter/jupiter.mod b/data/scene/jupiter/jupiter/jupiter.mod index ae139ae95e..128c743f33 100644 --- a/data/scene/jupiter/jupiter/jupiter.mod +++ b/data/scene/jupiter/jupiter/jupiter.mod @@ -25,15 +25,7 @@ return { Radius = 0.71492E8, Segments = 200 }, - Textures = { - Type = "simple", - Color = "textures/jupiter.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/jupiter.jpg", }, Tag = "planet_solarSystem", Transform = { diff --git a/data/scene/mars/mars.mod b/data/scene/mars/mars.mod index 43c33ead59..ea2b1200d1 100644 --- a/data/scene/mars/mars.mod +++ b/data/scene/mars/mars.mod @@ -25,15 +25,7 @@ return { Radius = 6.390E6, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/mars.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/mars.jpg", }, Tag = {"planet_solarSystem", "planet_terrestrial"}, Transform = { diff --git a/data/scene/mercury/mercury.mod b/data/scene/mercury/mercury.mod index 106b781331..59c2708f5d 100644 --- a/data/scene/mercury/mercury.mod +++ b/data/scene/mercury/mercury.mod @@ -25,15 +25,7 @@ return { Radius = 2.4397E6, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/mercury.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/mercury.jpg", }, Tag = {"planet_solarSystem", "planet_terrestrial"}, Transform = { diff --git a/data/scene/missions/dawn/ceres/ceres.mod b/data/scene/missions/dawn/ceres/ceres.mod index 0c29ae852b..775b94dae8 100644 --- a/data/scene/missions/dawn/ceres/ceres.mod +++ b/data/scene/missions/dawn/ceres/ceres.mod @@ -13,10 +13,7 @@ return { Radius = 6.390E5, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/gray.png", - }, + ColorTexture = "textures/gray.png", StartTime = "2010 JAN 01 00:00:00", EndTime = "2018 JAN 22 12:00:00" }, diff --git a/data/scene/missions/dawn/dawn/dawn.mod b/data/scene/missions/dawn/dawn/dawn.mod index 8bf49c27e7..54aae8158d 100644 --- a/data/scene/missions/dawn/dawn/dawn.mod +++ b/data/scene/missions/dawn/dawn/dawn.mod @@ -11,10 +11,7 @@ return { Type = "MultiModelGeometry", GeometryFile = "${OPENSPACE_DATA}/scene/dawn/obj/mainbodydawn.obj", }, - Textures = { - Type = "simple", - Color = "textures/gray.png", - }, + ColorTexture = "textures/gray.png", Rotation = { Source = "DAWN_SPACECRAFT", Destination = "GALACTIC" @@ -634,10 +631,7 @@ return { Type = "MultiModelGeometry", GeometryFile = "${OPENSPACE_DATA}/scene/dawn/obj/solarpanelleft.obj", }, - Textures = { - Type = "simple", - Color = "textures/gray.png", - }, + ColorTexture = "textures/gray.png", Rotation = { Source = "DAWN_SA-Y", Destination = "GALACTIC" @@ -657,10 +651,7 @@ return { Type = "MultiModelGeometry", GeometryFile = "${OPENSPACE_DATA}/scene/dawn/obj/solarpanelright.obj", }, - Textures = { - Type = "simple", - Color = "textures/gray.png", - }, + ColorTexture = "textures/gray.png", Rotation = { Source = "DAWN_SA+Y", Destination = "GALACTIC" diff --git a/data/scene/missions/dawn/vestaprojection/vestaprojection.mod b/data/scene/missions/dawn/vestaprojection/vestaprojection.mod index b2167abf15..379d0272c2 100644 --- a/data/scene/missions/dawn/vestaprojection/vestaprojection.mod +++ b/data/scene/missions/dawn/vestaprojection/vestaprojection.mod @@ -11,9 +11,9 @@ return { Type = "MultiModelGeometry", GeometryFile = "${OPENSPACE_DATA}/scene/vestaprojection_2/obj/VestaComet_5000.obj", }, + ColorTexture = "textures/dummy.jpg", Textures = { Type = "simple", - Color = "textures/dummy.jpg", Project = "textures/projectMe.png", Default = "textures/defaultProj_backup.png" }, diff --git a/data/scene/missions/juno/juno/juno.mod b/data/scene/missions/juno/juno/juno.mod index 3e6d9703fb..8ef710ddcc 100644 --- a/data/scene/missions/juno/juno/juno.mod +++ b/data/scene/missions/juno/juno/juno.mod @@ -13,10 +13,7 @@ return { GeometryFile = "Juno.obj", Magnification = 4, }, - Textures = { - Type = "simple", - Color = "textures/gray.png", - }, + ColorTexture = "textures/gray.png", Rotation = { Source = "JUNO_SPACECRAFT", Destination = "GALACTIC", diff --git a/data/scene/missions/newhorizons/jupiter/callisto/callisto.mod b/data/scene/missions/newhorizons/jupiter/callisto/callisto.mod index 40daf905ef..25facc74d4 100644 --- a/data/scene/missions/newhorizons/jupiter/callisto/callisto.mod +++ b/data/scene/missions/newhorizons/jupiter/callisto/callisto.mod @@ -15,9 +15,9 @@ return { Radius = callisto_radius, Segments = 100 }, + ColorTexture = "textures/callisto.jpg", Textures = { Type = "simple", - Color = "textures/callisto.jpg", Project = "textures/defaultProj.png", Sequencing = "true", }, diff --git a/data/scene/missions/newhorizons/jupiter/europa/europa.mod b/data/scene/missions/newhorizons/jupiter/europa/europa.mod index 0558ac06b7..8d0fbe1039 100644 --- a/data/scene/missions/newhorizons/jupiter/europa/europa.mod +++ b/data/scene/missions/newhorizons/jupiter/europa/europa.mod @@ -15,9 +15,9 @@ return { Radius = europa_radius, Segments = 100 }, + ColorTexture = "textures/europa.jpg", Textures = { Type = "simple", - Color = "textures/europa.jpg", Project = "textures/defaultProj.png", Sequencing = "true", }, diff --git a/data/scene/missions/newhorizons/jupiter/ganymede/ganymede.mod b/data/scene/missions/newhorizons/jupiter/ganymede/ganymede.mod index 21dccf80ee..fe5facac2b 100644 --- a/data/scene/missions/newhorizons/jupiter/ganymede/ganymede.mod +++ b/data/scene/missions/newhorizons/jupiter/ganymede/ganymede.mod @@ -15,9 +15,9 @@ return { Radius = ganymede_local, Segments = 100 }, + ColorTexture = "textures/ganymede.jpg", Textures = { Type = "simple", - Color = "textures/ganymede.jpg", Project = "textures/defaultProj.png", Sequencing = "true", }, diff --git a/data/scene/missions/newhorizons/jupiter/io/io.mod b/data/scene/missions/newhorizons/jupiter/io/io.mod index 70b810faf3..c8bc937554 100644 --- a/data/scene/missions/newhorizons/jupiter/io/io.mod +++ b/data/scene/missions/newhorizons/jupiter/io/io.mod @@ -15,9 +15,9 @@ return { Radius = io_radius, Segments = 100 }, + ColorTexture = "textures/io.jpg", Textures = { Type = "simple", - Color = "textures/io.jpg", Project = "textures/defaultProj.png", Sequencing = "true", }, diff --git a/data/scene/missions/newhorizons/jupiter/jupiter/jupiter.mod b/data/scene/missions/newhorizons/jupiter/jupiter/jupiter.mod index c0f338abe6..f611aa5542 100644 --- a/data/scene/missions/newhorizons/jupiter/jupiter/jupiter.mod +++ b/data/scene/missions/newhorizons/jupiter/jupiter/jupiter.mod @@ -28,9 +28,9 @@ return { Radius = jupiter_local, Segments = 200, }, + ColorTexture = "textures/jupiterFlipped_low.jpg", Textures = { Type = "simple", - Color = "textures/jupiterFlipped_low.jpg", Project = "textures/lorriTest1.jpg", Sequencing = "true", }, diff --git a/data/scene/missions/newhorizons/newhorizons/newhorizons.mod b/data/scene/missions/newhorizons/newhorizons/newhorizons.mod index c71caaba34..d15b46d79d 100644 --- a/data/scene/missions/newhorizons/newhorizons/newhorizons.mod +++ b/data/scene/missions/newhorizons/newhorizons/newhorizons.mod @@ -98,10 +98,7 @@ return { GeometryFile = "models/NewHorizonsCleanModel.obj", -- Magnification = 4, }, - Textures = { - Type = "simple", - Color = "textures/NHTexture.jpg", - }, + ColorTexture = "textures/NHTexture.jpg", Shading = { PerformShading = true, Fadeable = false, @@ -145,9 +142,9 @@ return { GeometryFile = "models/Labels.obj", -- Magnification = 4, }, + ColorTexture = "textures/labels.png", Textures = { Type = "simple", - Color = "textures/labels.png", BumpMap = "textures/goldfoilbump.tif" }, Rotation = { diff --git a/data/scene/missions/newhorizons/pluto/charon/charon.mod b/data/scene/missions/newhorizons/pluto/charon/charon.mod index ac9c616432..2f611209cb 100644 --- a/data/scene/missions/newhorizons/pluto/charon/charon.mod +++ b/data/scene/missions/newhorizons/pluto/charon/charon.mod @@ -31,10 +31,8 @@ return { Radius = charon_radius, Segments = 100 }, - Textures = { - Color = ColorTexture, - Height = "textures/cpdem-Mcolor2-MLorriCA-lr-5_ZMfs-cyl.jpg", - }, + ColorTexture = ColorTexture, + HeightTexture = "textures/cpdem-Mcolor2-MLorriCA-lr-5_ZMfs-cyl.jpg", Projection = { Observer = "NEW HORIZONS", Target = "CHARON", @@ -99,7 +97,6 @@ return { Observer = "NEW HORIZONS", Body = "CHARON", BodyFrame = "IAU_CHARON", - MainFrame = "GALACTIC", Aberration = "NONE", }, }, diff --git a/data/scene/missions/newhorizons/pluto/hydra/hydra.mod b/data/scene/missions/newhorizons/pluto/hydra/hydra.mod index 1165dcac5f..b6d7101c42 100644 --- a/data/scene/missions/newhorizons/pluto/hydra/hydra.mod +++ b/data/scene/missions/newhorizons/pluto/hydra/hydra.mod @@ -25,10 +25,7 @@ return { Radius = charon_radius, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/gray.jpg", - } + ColorTexture = "textures/gray.jpg", }, Transform = { Translation = { diff --git a/data/scene/missions/newhorizons/pluto/kerberos/kerberos.mod b/data/scene/missions/newhorizons/pluto/kerberos/kerberos.mod index 68039ab0d3..f75c930f0d 100644 --- a/data/scene/missions/newhorizons/pluto/kerberos/kerberos.mod +++ b/data/scene/missions/newhorizons/pluto/kerberos/kerberos.mod @@ -25,10 +25,7 @@ return { Radius = kerberos_radius, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/gray.jpg", - } + ColorTexture = "textures/gray.jpg", }, Transform = { Translation = { diff --git a/data/scene/missions/newhorizons/pluto/nix/nix.mod b/data/scene/missions/newhorizons/pluto/nix/nix.mod index 9d8d25da53..f5c75c866f 100644 --- a/data/scene/missions/newhorizons/pluto/nix/nix.mod +++ b/data/scene/missions/newhorizons/pluto/nix/nix.mod @@ -25,10 +25,7 @@ return { Radius = nix_radius, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/gray.jpg", - } + ColorTexture = "textures/gray.jpg", }, Transform = { Translation = { diff --git a/data/scene/missions/newhorizons/pluto/pluto/pluto.mod b/data/scene/missions/newhorizons/pluto/pluto/pluto.mod index 20fc87d708..5077ef65af 100644 --- a/data/scene/missions/newhorizons/pluto/pluto/pluto.mod +++ b/data/scene/missions/newhorizons/pluto/pluto/pluto.mod @@ -44,10 +44,8 @@ return { Radius = pluto_radius, Segments = 100 }, - Textures = { - Color = ColorTexture, - Height = "textures/pluto_shenk_heightmap.jpg", - }, + ColorTexture = ColorTexture, + HeightTexture = "textures/pluto_shenk_heightmap.jpg", Projection = { Sequence = "${OPENSPACE_DATA}/scene/missions/newhorizons/pluto/pluto/images", EventFile = "${OPENSPACE_DATA}/scene/missions/newhorizons/pluto/pluto/assets/core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt", @@ -231,7 +229,6 @@ return { Observer = "NEW HORIZONS", Body = "PLUTO", BodyFrame = "IAU_PLUTO", - MainFrame = "GALACTIC", Aberration = "NONE", }, }, diff --git a/data/scene/missions/newhorizons/pluto/styx/styx.mod b/data/scene/missions/newhorizons/pluto/styx/styx.mod index fa3a975fce..3d157182e5 100644 --- a/data/scene/missions/newhorizons/pluto/styx/styx.mod +++ b/data/scene/missions/newhorizons/pluto/styx/styx.mod @@ -25,10 +25,7 @@ return { Radius = styx_radius, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/gray.jpg", - } + ColorTexture = "textures/gray.jpg", }, Transform = { Translation = { diff --git a/data/scene/missions/osirisrex/osirisrex/osirisrex.mod b/data/scene/missions/osirisrex/osirisrex/osirisrex.mod index 8ba3127250..8871183179 100644 --- a/data/scene/missions/osirisrex/osirisrex/osirisrex.mod +++ b/data/scene/missions/osirisrex/osirisrex/osirisrex.mod @@ -169,10 +169,7 @@ return { GeometryFile = "models/orx_base_resized_12_sep_2016.obj", Magnification = 0, }, - Textures = { - Type = "simple", - Color = "textures/osirisTex.png", - }, + ColorTexture = "textures/osirisTex.png", Shading = { PerformShading = true, Fadeable = false, @@ -204,10 +201,7 @@ return { GeometryFile = "models/orx_polycam_resized_12_sep_2016.obj", Magnification = 0, }, - Textures = { - Type = "simple", - Color = "textures/osirisTex.png", - }, + ColorTexture = "textures/osirisTex.png", Shading = { PerformShading = true, Fadeable = false, @@ -237,10 +231,7 @@ return { GeometryFile = "models/orx_rexis_resized_12_sep_2016.obj", Magnification = 0, }, - Textures = { - Type = "simple", - Color = "textures/osirisTex.png", - }, + ColorTexture = "textures/osirisTex.png", Shading = { PerformShading = true, Fadeable = false, diff --git a/data/scene/missions/rosetta/rosetta/rosetta.mod b/data/scene/missions/rosetta/rosetta/rosetta.mod index 9ef08a4f90..fecc927266 100644 --- a/data/scene/missions/rosetta/rosetta/rosetta.mod +++ b/data/scene/missions/rosetta/rosetta/rosetta.mod @@ -95,10 +95,7 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/black_foil.obj" }, - Textures = { - Type = "simple", - Color = "textures/foil_silver_ramp.png" - }, + ColorTexture = "textures/foil_silver_ramp.png", ModelTransform = RotationMatrix } }, @@ -112,10 +109,7 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/black_parts.obj" }, - Textures = { - Type = "simple", - Color = "textures/foil_silver_ramp.png" - }, + ColorTexture = "textures/foil_silver_ramp.png", ModelTransform = RotationMatrix } }, @@ -129,20 +123,9 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/dish.obj" }, - Textures = { - Type = "simple", - Color = "textures/dish_AO.png" - }, + ColorTexture = "textures/dish_AO.png", ModelTransform = RotationMatrix - }, - -- Transform = { - -- Rotation = { - -- Type = "SpiceRotation", - -- SourceFrame = "-226071", -- ROS_HGA - -- DestinationFrame = "ROS_SPACECRAFT", - -- } - -- } }, { Name = "Rosetta_parts", @@ -154,12 +137,8 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/parts.obj" }, - Textures = { - Type = "simple", - Color = "textures/parts2_AO.png" - }, + ColorTexture = "textures/parts2_AO.png", ModelTransform = RotationMatrix - } }, { @@ -172,12 +151,8 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/silver_foil.obj" }, - Textures = { - Type = "simple", - Color = "textures/foil_silver_ramp.png" - }, + ColorTexture = "textures/foil_silver_ramp.png", ModelTransform = RotationMatrix - } }, { @@ -190,12 +165,8 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/vents.obj" }, - Textures = { - Type = "simple", - Color = "textures/tex_01.png" - }, + ColorTexture = "textures/tex_01.png", ModelTransform = RotationMatrix - } }, { @@ -208,20 +179,9 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/wingA.obj" }, - Textures = { - Type = "simple", - Color = "textures/tex_01.png" - }, + ColorTexture = "textures/tex_01.png", ModelTransform = RotationMatrix - }, - -- Transform = { - -- Rotation = { - -- Type = "SpiceRotation", - -- SourceFrame = "-226015", -- ROS_SA - -- DestinationFrame = "ROS_SPACECRAFT", - -- } - -- } }, { Name = "Rosetta_wing_b", @@ -233,12 +193,8 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/wingB.obj" }, - Textures = { - Type = "simple", - Color = "textures/tex_01.png" - }, + ColorTexture = "textures/tex_01.png", ModelTransform = RotationMatrix - }, -- Transform = { -- Rotation = { @@ -258,12 +214,8 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/yellow_foil.obj" }, - Textures = { - Type = "simple", - Color = "textures/foil_gold_ramp.png" - }, + ColorTexture = "textures/foil_gold_ramp.png", ModelTransform = RotationMatrix - } }, { @@ -300,12 +252,8 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/lander_foil.obj" }, - Textures = { - Type = "simple", - Color = "textures/foil_silver_ramp.png" - }, + ColorTexture = "textures/foil_silver_ramp.png", ModelTransform = RotationMatrix - } }, { @@ -318,12 +266,8 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/lander_lids.obj" }, - Textures = { - Type = "simple", - Color = "textures/parts2_AO.png" - }, + ColorTexture = "textures/parts2_AO.png", ModelTransform = RotationMatrix - } }, { @@ -336,12 +280,8 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/lander_parts.obj" }, - Textures = { - Type = "simple", - Color = "textures/foil_silver_ramp.png" - }, + ColorTexture = "textures/foil_silver_ramp.png", ModelTransform = RotationMatrix - } }, { @@ -354,10 +294,7 @@ return { Type = "MultiModelGeometry", GeometryFile = "rosetta/lander_solarp.obj" }, - Textures = { - Type = "simple", - Color = "textures/tex_01.png" - }, + ColorTexture = "textures/tex_01.png", ModelTransform = RotationMatrix } }, diff --git a/data/scene/moon/moon.mod b/data/scene/moon/moon.mod index e9369653ed..29298049c0 100644 --- a/data/scene/moon/moon.mod +++ b/data/scene/moon/moon.mod @@ -22,11 +22,7 @@ return { Radius = 6.371E6 }, }, - Textures = { - Type = "simple", - Color = "textures/Moon16K.dds", - --Color = "textures/moonmap4k.jpg", - }, + ColorTexture = "textures/Moon16K.dds", }, Transform = { Translation = { diff --git a/data/scene/neptune/neptune.mod b/data/scene/neptune/neptune.mod index 03640a07ec..5ba2c55237 100644 --- a/data/scene/neptune/neptune.mod +++ b/data/scene/neptune/neptune.mod @@ -26,10 +26,7 @@ return { Radius = 2.4622E7, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/neptune.jpg", - } + ColorTexture = "textures/neptune.jpg", }, Tag = "planet_solarSystem", Transform = { diff --git a/data/scene/pluto/pluto.mod b/data/scene/pluto/pluto.mod index fcc75d1e8a..c8cbb52367 100644 --- a/data/scene/pluto/pluto.mod +++ b/data/scene/pluto/pluto.mod @@ -28,15 +28,7 @@ return { Radius = 1.173E6, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/pluto.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/pluto.jpg", }, Transformation = { Translation = { @@ -64,15 +56,7 @@ return { Radius = 6.035E5, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/gray.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/gray.jpg", }, Transformation = { Translation = { diff --git a/data/scene/saturn/dione/dione.mod b/data/scene/saturn/dione/dione.mod index 2726cb1bac..f11eeb7113 100644 --- a/data/scene/saturn/dione/dione.mod +++ b/data/scene/saturn/dione/dione.mod @@ -11,9 +11,7 @@ return { Radius = 0.563E3, Segments = 50 }, - Textures = { - Color = "textures/dione.jpg" - } + ColorTexture = "textures/dione.jpg" }, Transform = { Translation = { diff --git a/data/scene/saturn/enceladus/enceladus.mod b/data/scene/saturn/enceladus/enceladus.mod index 2128c9924f..2e547a6d45 100644 --- a/data/scene/saturn/enceladus/enceladus.mod +++ b/data/scene/saturn/enceladus/enceladus.mod @@ -11,9 +11,7 @@ return { Radius = 0.257E3, Segments = 50 }, - Textures = { - Color = "textures/enceladus.jpg" - } + ColorTexture = "textures/enceladus.jpg" }, Transform = { Translation = { diff --git a/data/scene/saturn/iapetus/iapetus.mod b/data/scene/saturn/iapetus/iapetus.mod index 01f1bdd59f..20dc2ddc85 100644 --- a/data/scene/saturn/iapetus/iapetus.mod +++ b/data/scene/saturn/iapetus/iapetus.mod @@ -11,9 +11,7 @@ return { Radius = 0.746E3, Segments = 50 }, - Textures = { - Color = "textures/iapetus.jpg" - } + ColorTexture = "textures/iapetus.jpg" }, Transform = { Translation = { diff --git a/data/scene/saturn/mimas/mimas.mod b/data/scene/saturn/mimas/mimas.mod index bed954f391..c46f657208 100644 --- a/data/scene/saturn/mimas/mimas.mod +++ b/data/scene/saturn/mimas/mimas.mod @@ -11,9 +11,7 @@ return { Radius = 0.28E3, Segments = 50 }, - Textures = { - Color = "textures/mimas.jpg" - } + ColorTexture = "textures/mimas.jpg" }, Transform = { Translation = { diff --git a/data/scene/saturn/rhea/rhea.mod b/data/scene/saturn/rhea/rhea.mod index 4f887a0804..1c642c2bab 100644 --- a/data/scene/saturn/rhea/rhea.mod +++ b/data/scene/saturn/rhea/rhea.mod @@ -11,9 +11,7 @@ return { Radius = 0.765E3, Segments = 50 }, - Textures = { - Color = "textures/rhea.jpg" - } + ColorTexture = "textures/rhea.jpg" }, Transform = { Translation = { diff --git a/data/scene/saturn/saturn/saturn.mod b/data/scene/saturn/saturn/saturn.mod index 4fd550b3ac..955e1821c6 100644 --- a/data/scene/saturn/saturn/saturn.mod +++ b/data/scene/saturn/saturn/saturn.mod @@ -26,15 +26,7 @@ return { Radius = 5.8232E7, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/saturn.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/saturn.jpg", }, Tag = "planet_solarSystem", Transform = { diff --git a/data/scene/saturn/tethys/tethys.mod b/data/scene/saturn/tethys/tethys.mod index c680a48509..eef45fa450 100644 --- a/data/scene/saturn/tethys/tethys.mod +++ b/data/scene/saturn/tethys/tethys.mod @@ -11,9 +11,7 @@ return { Radius = 0.538E3, Segments = 50 }, - Textures = { - Color = "textures/tethys.jpg" - } + ColorTexture = "textures/tethys.jpg" }, Transform = { Translation = { diff --git a/data/scene/saturn/titan/titan.mod b/data/scene/saturn/titan/titan.mod index 2a5ff9b400..705de12cad 100644 --- a/data/scene/saturn/titan/titan.mod +++ b/data/scene/saturn/titan/titan.mod @@ -11,9 +11,7 @@ return { Radius = 0.2575E4, Segments = 50 }, - Textures = { - Color = "textures/titan.jpg" - } + ColorTexture = "textures/titan.jpg" }, Transform = { Translation = { diff --git a/data/scene/sun/sun.mod b/data/scene/sun/sun.mod index d780ccc3d4..86d5516c68 100644 --- a/data/scene/sun/sun.mod +++ b/data/scene/sun/sun.mod @@ -24,10 +24,7 @@ return { Radius = 6.957E8, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/sun.jpg", - }, + ColorTexture = "textures/sun.jpg", PerformShading = false, }, Transform = { diff --git a/data/scene/uranus/uranus.mod b/data/scene/uranus/uranus.mod index 861cb622eb..8d63b8f740 100644 --- a/data/scene/uranus/uranus.mod +++ b/data/scene/uranus/uranus.mod @@ -26,15 +26,7 @@ return { Radius = 2.5362E7, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/uranus.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/uranus.jpg", }, Tag = "planet_solarSystem", Transform = { diff --git a/data/scene/venus/venus.mod b/data/scene/venus/venus.mod index 2c3940ae27..16a08f7d76 100644 --- a/data/scene/venus/venus.mod +++ b/data/scene/venus/venus.mod @@ -26,15 +26,7 @@ return { Radius = 3.760E6, Segments = 100 }, - Textures = { - Type = "simple", - Color = "textures/venus.jpg", - }, - Atmosphere = { - Type = "Nishita", -- for example, values missing etc etc - MieFactor = 1.0, - MieColor = {1.0, 1.0, 1.0} - } + ColorTexture = "textures/venus.jpg", }, Tag = {"planet_solarSystem", "planet_terrestrial"}, Transform = { diff --git a/modules/base/rendering/renderablemodel.cpp b/modules/base/rendering/renderablemodel.cpp index 4dd43cd3ff..3fce045e87 100644 --- a/modules/base/rendering/renderablemodel.cpp +++ b/modules/base/rendering/renderablemodel.cpp @@ -44,11 +44,9 @@ namespace { const char* KeyGeometry = "Geometry"; - const char* KeyTexture = "Textures.Color"; - const char* KeyModelTransform = "ModelTransform"; static const openspace::properties::Property::PropertyInfo TextureInfo = { - "ColorTexture", // @TODO replace with only "Texture" + "ColorTexture", "Color Texture", "This value points to a color texture file that is applied to the geometry " "rendered in this object." @@ -84,7 +82,7 @@ documentation::Documentation RenderableModel::Documentation() { "This specifies the model that is rendered by the Renderable." }, { - KeyTexture, // @TODO replace with TextureInfo.identifier + TextureInfo.identifier, new StringVerifier, Optional::Yes, TextureInfo.description @@ -132,12 +130,14 @@ RenderableModel::RenderableModel(const ghoul::Dictionary& dictionary) _geometry = modelgeometry::ModelGeometry::createFromDictionary(dict); } - if (dictionary.hasKey(KeyTexture)) { - _colorTexturePath = absPath(dictionary.value(KeyTexture)); + if (dictionary.hasKey(TextureInfo.identifier)) { + _colorTexturePath = absPath(dictionary.value( + TextureInfo.identifier + )); } - if (dictionary.hasKey(KeyModelTransform)) { - _modelTransform = dictionary.value(KeyModelTransform); + if (dictionary.hasKey(ModelTransformInfo.identifier)) { + _modelTransform = dictionary.value(ModelTransformInfo.identifier); } if (dictionary.hasKey(ShadingInfo.identifier)) { diff --git a/modules/newhorizons/rendering/renderablemodelprojection.cpp b/modules/newhorizons/rendering/renderablemodelprojection.cpp index 6b58159866..18b7f76c10 100644 --- a/modules/newhorizons/rendering/renderablemodelprojection.cpp +++ b/modules/newhorizons/rendering/renderablemodelprojection.cpp @@ -44,21 +44,18 @@ namespace { const char* _loggerCat = "RenderableModelProjection"; - const char* keySource = "Rotation.Source"; - const char* keyDestination = "Rotation.Destination"; + const char* keyGeometry = "Geometry"; const char* keyProjection = "Projection"; const char* keyBoundingSphereRadius = "BoundingSphereRadius"; - const char* keyTextureColor = "Textures.Color"; - - const char* _destination = "GALACTIC"; + const char* DestinationFrame = "GALACTIC"; static const openspace::properties::Property::PropertyInfo ColorTextureInfo = { "ColorTexture", "Color Base Texture", - "This is the path to a local image file that is used as the base texture for " - "the model on which the image projections are layered." + "This is the path to a local image file that is used as the base texture for the " + "model on which the image projections are layered." }; static const openspace::properties::Property::PropertyInfo PerformShadingInfo = { @@ -82,8 +79,7 @@ documentation::Documentation RenderableModelProjection::Documentation() { { "Type", new StringEqualVerifier("RenderableModelProjection"), - Optional::No, - "" + Optional::No }, { keyGeometry, @@ -98,7 +94,7 @@ documentation::Documentation RenderableModelProjection::Documentation() { "Contains information about projecting onto this planet." }, { - keyTextureColor, // @TODO Change to ColorTextureInfo.identifier + ColorTextureInfo.identifier, new StringVerifier, Optional::No, ColorTextureInfo.description @@ -149,7 +145,9 @@ RenderableModelProjection::RenderableModelProjection(const ghoul::Dictionary& di ModelGeometry::createFromDictionary(geometryDictionary) ); - _colorTexturePath = absPath(dictionary.value(keyTextureColor)); + _colorTexturePath = absPath(dictionary.value( + ColorTextureInfo.identifier + )); addPropertySubOwner(_geometry.get()); addPropertySubOwner(_projectionComponent); @@ -172,11 +170,9 @@ RenderableModelProjection::RenderableModelProjection(const ghoul::Dictionary& di Renderable::addProperty(_performShading); } -RenderableModelProjection::~RenderableModelProjection() { - // This empty method needs to be here in order to use forward declaration with - // std::unique_ptr -} - +// This empty method needs to be here in order to use forward declaration with +// std::unique_ptr +RenderableModelProjection::~RenderableModelProjection() {} bool RenderableModelProjection::isReady() const { bool ready = true; @@ -218,8 +214,9 @@ bool RenderableModelProjection::initialize() { } bool RenderableModelProjection::deinitialize() { - if (_geometry) + if (_geometry) { _geometry->deinitialize(); + } _geometry = nullptr; _baseTexture = nullptr; @@ -237,13 +234,15 @@ ghoul::opengl::Texture& RenderableModelProjection::baseTexture() const { } void RenderableModelProjection::render(const RenderData& data, RendererTasks&) { - if (_projectionComponent.needsClearProjection()) + if (_projectionComponent.needsClearProjection()) { _projectionComponent.clearAllProjections(); + } _up = data.camera.lookUpVectorCameraSpace(); - if (_capture && _projectionComponent.doesPerformProjection()) + if (_capture && _projectionComponent.doesPerformProjection()) { project(); + } _programObject->activate(); @@ -296,8 +295,9 @@ void RenderableModelProjection::update(const UpdateData& data) { _projectionComponent.update(); - if (_depthFboProgramObject->isDirty()) + if (_depthFboProgramObject->isDirty()) { _depthFboProgramObject->rebuildFromFile(); + } _time = data.time.j2000Seconds(); @@ -368,7 +368,11 @@ void RenderableModelProjection::imageProjectGPU( void RenderableModelProjection::attitudeParameters(double time) { try { - _instrumentMatrix = SpiceManager::ref().positionTransformMatrix(_projectionComponent.instrumentId(), _destination, time); + _instrumentMatrix = SpiceManager::ref().positionTransformMatrix( + _projectionComponent.instrumentId(), + DestinationFrame, + time + ); } catch (const SpiceManager::SpiceException&) { return; @@ -381,7 +385,9 @@ void RenderableModelProjection::attitudeParameters(double time) { } glm::dvec3 boresight; try { - SpiceManager::FieldOfViewResult res = SpiceManager::ref().fieldOfView(_projectionComponent.instrumentId()); + SpiceManager::FieldOfViewResult res = SpiceManager::ref().fieldOfView( + _projectionComponent.instrumentId() + ); boresight = std::move(res.boresightVector); } catch (const SpiceManager::SpiceException&) { return; @@ -391,7 +397,7 @@ void RenderableModelProjection::attitudeParameters(double time) { glm::dvec3 p = SpiceManager::ref().targetPosition( _projectionComponent.projectorId(), _projectionComponent.projecteeId(), - _destination, + DestinationFrame, _projectionComponent.aberration(), time, lightTime ); @@ -417,7 +423,10 @@ void RenderableModelProjection::attitudeParameters(double time) { void RenderableModelProjection::project() { for (auto img : _imageTimes) { attitudeParameters(img.timeRange.start); - auto projTexture = _projectionComponent.loadProjectionTexture(img.path, img.isPlaceholder); + auto projTexture = _projectionComponent.loadProjectionTexture( + img.path, + img.isPlaceholder + ); imageProjectGPU(projTexture); } _capture = false; @@ -426,8 +435,9 @@ void RenderableModelProjection::project() { bool RenderableModelProjection::loadTextures() { _baseTexture = nullptr; if (_colorTexturePath.value() != "") { - _baseTexture = ghoul::io::TextureReader::ref().loadTexture(absPath(_colorTexturePath)) - ; + _baseTexture = ghoul::io::TextureReader::ref().loadTexture( + absPath(_colorTexturePath) + ); if (_baseTexture) { LDEBUG("Loaded texture from '" << absPath(_colorTexturePath) << "'"); _baseTexture->uploadTexture(); diff --git a/modules/newhorizons/rendering/renderableplanetprojection.cpp b/modules/newhorizons/rendering/renderableplanetprojection.cpp index 357f6887fe..b3f257db9d 100644 --- a/modules/newhorizons/rendering/renderableplanetprojection.cpp +++ b/modules/newhorizons/rendering/renderableplanetprojection.cpp @@ -54,36 +54,27 @@ namespace { const char* _loggerCat = "RenderablePlanetProjection"; - const char* keyGeometry = "Geometry"; - const char* keyProjection = "Projection"; - const char* keyMeridianShift = "Textures.MeridianShift"; - const char* keyColorTexture = "Textures.Color"; - const char* keyHeightTexture = "Textures.Height"; + const char* KeyGeometry = "Geometry"; + const char* KeyProjection = "Projection"; - const char* keyRadius = "Geometry.Radius"; + const char* KeyRadius = "Geometry.Radius"; // const char* keyShading = "PerformShading"; const char* _mainFrame = "GALACTIC"; static const openspace::properties::Property::PropertyInfo ColorTextureInfo = { - "PlanetTexture", + "ColorTexture", "Color Base Texture", "The path to the base color texture that is used on the planet prior to any " "image projection." }; static const openspace::properties::Property::PropertyInfo HeightTextureInfo = { - "HeightMap", + "HeightTexture", "Heightmap Texture", "The path to the height map texture that is used for the planet. If no height " "map is specified the planet does not use a height field." }; - static const openspace::properties::Property::PropertyInfo ShiftMeridianInfo = { - "ShiftMeridian", - "Shift Meridian by 180 deg", - "Shift the position of the meridian by 180 degrees. This value " - }; - static const openspace::properties::Property::PropertyInfo HeightExaggerationInfo = { "HeightExaggeration", "Height Exaggeration", @@ -108,32 +99,25 @@ documentation::Documentation RenderablePlanetProjection::Documentation() { "" }, { - keyGeometry, + KeyGeometry, new ReferencingVerifier("space_geometry_planet"), Optional::No, "The geometry that is used for rendering this planet.", }, { - keyProjection, + KeyProjection, new ReferencingVerifier("newhorizons_projectioncomponent"), Optional::No, "Contains information about projecting onto this planet.", }, { - keyMeridianShift, - new BoolVerifier, - Optional::Yes, - "Determines whether the meridian of the planet should be shifted by 180 " - "degrees. The default value is 'false'" - }, - { - keyColorTexture, // @TODO This should be ColorTextureInfo.identifier + ColorTextureInfo.identifier, new StringVerifier, Optional::No, ColorTextureInfo.description }, { - keyHeightTexture, // @TODO This should be HeightTextureInfo.identifier + HeightTextureInfo.identifier, new StringVerifier, Optional::Yes, HeightTextureInfo.description @@ -152,12 +136,10 @@ RenderablePlanetProjection::RenderablePlanetProjection(const ghoul::Dictionary& : Renderable(dictionary) , _colorTexturePath(ColorTextureInfo) , _heightMapTexturePath(HeightTextureInfo) - , _rotation({ "Rotation", "Rotation", "" }, 0, 0, 360) // @TODO Missing documentation , _programObject(nullptr) , _fboProgramObject(nullptr) , _baseTexture(nullptr) , _heightMapTexture(nullptr) - , _shiftMeridianBy180({"asd", "", "" }, false) // @TODO Missing documentation , _heightExaggeration(HeightExaggerationInfo, 1.f, 0.f, 100.f) , _capture(false) { @@ -172,8 +154,7 @@ RenderablePlanetProjection::RenderablePlanetProjection(const ghoul::Dictionary& ghoul_assert(success, ""); ghoul::Dictionary geometryDictionary; - success = dictionary.getValue( - keyGeometry, geometryDictionary); + success = dictionary.getValue(KeyGeometry, geometryDictionary); if (success) { geometryDictionary.setValue(SceneGraphNode::KeyName, name); using planetgeometry::PlanetGeometry; @@ -182,38 +163,34 @@ RenderablePlanetProjection::RenderablePlanetProjection(const ghoul::Dictionary& ); } - _projectionComponent.initialize(dictionary.value(keyProjection)); + _projectionComponent.initialize(dictionary.value(KeyProjection)); // TODO: textures need to be replaced by a good system similar to the geometry as soon // as the requirements are fixed (ab) std::string texturePath = ""; - success = dictionary.getValue("Textures.Color", texturePath); + success = dictionary.getValue(ColorTextureInfo.identifier, texturePath); if (success) { _colorTexturePath = absPath(texturePath); } std::string heightMapPath = ""; - success = dictionary.getValue("Textures.Height", heightMapPath); + success = dictionary.getValue(HeightTextureInfo.identifier, heightMapPath); if (success) { _heightMapTexturePath = absPath(heightMapPath); } - if (dictionary.hasKeyAndValue(keyMeridianShift)) { - _shiftMeridianBy180 = dictionary.value(keyMeridianShift); - } - float radius = std::pow(10.f, 9.f); - dictionary.getValue(keyRadius, radius); + dictionary.getValue(KeyRadius, radius); setBoundingSphere(radius); addPropertySubOwner(_geometry.get()); addPropertySubOwner(_projectionComponent); addProperty(_colorTexturePath); - _colorTexturePath.onChange(std::bind(&RenderablePlanetProjection::loadTextures, this)); + _colorTexturePath.onChange([&]() { loadTextures(); }); addProperty(_heightMapTexturePath); - _heightMapTexturePath.onChange(std::bind(&RenderablePlanetProjection::loadTextures, this)); + _heightMapTexturePath.onChange([&]() { loadTextures(); }); if (dictionary.hasKey(HeightExaggerationInfo.identifier)) { _heightExaggeration = static_cast( @@ -222,8 +199,6 @@ RenderablePlanetProjection::RenderablePlanetProjection(const ghoul::Dictionary& } addProperty(_heightExaggeration); - - addProperty(_shiftMeridianBy180); } RenderablePlanetProjection::~RenderablePlanetProjection() {} @@ -231,12 +206,14 @@ RenderablePlanetProjection::~RenderablePlanetProjection() {} bool RenderablePlanetProjection::initialize() { bool completeSuccess = true; - _programObject = OsEng.renderEngine().buildRenderProgram("projectiveProgram", + _programObject = OsEng.renderEngine().buildRenderProgram( + "projectiveProgram", "${MODULE_NEWHORIZONS}/shaders/renderablePlanet_vs.glsl", "${MODULE_NEWHORIZONS}/shaders/renderablePlanet_fs.glsl" ); - _fboProgramObject = ghoul::opengl::ProgramObject::Build("fboPassProgram", + _fboProgramObject = ghoul::opengl::ProgramObject::Build( + "fboPassProgram", "${MODULE_NEWHORIZONS}/shaders/renderablePlanetProjection_vs.glsl", "${MODULE_NEWHORIZONS}/shaders/renderablePlanetProjection_fs.glsl" ); @@ -311,17 +288,17 @@ void RenderablePlanetProjection::imageProjectGPU( _fboProgramObject->setUniform("_scaling" , _camScaling); _fboProgramObject->setUniform("boresight" , _boresight); - if (_geometry->hasProperty("radius")){ - ghoul::any r = _geometry->property("radius")->get(); + if (_geometry->hasProperty("Radius")){ + ghoul::any r = _geometry->property("Radius")->get(); if (glm::vec3* radius = ghoul::any_cast(&r)){ _fboProgramObject->setUniform("_radius", radius); } - }else{ + } else { LERROR("Geometry object needs to provide radius"); } - if (_geometry->hasProperty("segments")){ - ghoul::any s = _geometry->property("segments")->get(); - if (int* segments = ghoul::any_cast(&s)){ + if (_geometry->hasProperty("Segments")) { + ghoul::any s = _geometry->property("Segments")->get(); + if (int* segments = ghoul::any_cast(&s)) { _fboProgramObject->setUniform("_segments", segments[0]); } }else{ @@ -353,13 +330,8 @@ void RenderablePlanetProjection::attitudeParameters(double time) { static_cast(M_PI_2), glm::vec3(0, -1, 0) ); - glm::mat4 rotProp = glm::rotate( - _transform, - static_cast(glm::radians(static_cast(_rotation))), - glm::vec3(0, 1, 0) - ); - _transform = glm::mat4(_stateMatrix) * rot * roty * rotProp; + _transform = glm::mat4(_stateMatrix) * rot * roty; glm::dvec3 bs; try { @@ -465,8 +437,6 @@ void RenderablePlanetProjection::render(const RenderData& data, RendererTasks&) //setPscUniforms(*_programObject.get(), data.camera, data.position); - _programObject->setUniform("shiftMeridian", _shiftMeridianBy180); - ghoul::opengl::TextureUnit unit[3]; unit[0].activate(); _baseTexture->bind(); diff --git a/modules/newhorizons/rendering/renderableplanetprojection.h b/modules/newhorizons/rendering/renderableplanetprojection.h index ee131fdcb4..8723a024e0 100644 --- a/modules/newhorizons/rendering/renderableplanetprojection.h +++ b/modules/newhorizons/rendering/renderableplanetprojection.h @@ -67,16 +67,12 @@ private: properties::StringProperty _colorTexturePath; properties::StringProperty _heightMapTexturePath; - properties::IntProperty _rotation; - std::unique_ptr _programObject; std::unique_ptr _fboProgramObject; std::unique_ptr _baseTexture; std::unique_ptr _heightMapTexture; - properties::BoolProperty _shiftMeridianBy180; - properties::FloatProperty _heightExaggeration; std::unique_ptr _geometry; diff --git a/modules/newhorizons/rendering/renderableshadowcylinder.cpp b/modules/newhorizons/rendering/renderableshadowcylinder.cpp index 465c84db02..b6b5c8fd99 100644 --- a/modules/newhorizons/rendering/renderableshadowcylinder.cpp +++ b/modules/newhorizons/rendering/renderableshadowcylinder.cpp @@ -34,7 +34,7 @@ #include namespace { - const char* KeyMainFrame = "MainFrame"; + const char* MainFrame = "GALACTIC"; static const openspace::properties::Property::PropertyInfo NumberPointsInfo = { "AmountOfPoints", @@ -175,8 +175,7 @@ documentation::Documentation RenderableShadowCylinder::Documentation() { Optional::No, AberrationInfo.description }, - }, - Exhaustive::Yes + } }; } @@ -197,7 +196,6 @@ RenderableShadowCylinder::RenderableShadowCylinder(const ghoul::Dictionary& dict , _observer(ObserverInfo) , _body(BodyInfo) , _bodyFrame(BodyFrameInfo) - , _mainFrame({"mainFrame", "Main Frame", ""}) // @TODO Remove this , _aberration(AberrationInfo) , _shader(nullptr) , _vao(0) @@ -246,8 +244,6 @@ RenderableShadowCylinder::RenderableShadowCylinder(const ghoul::Dictionary& dict _observer = dictionary.value(ObserverInfo.identifier); _body = dictionary.value(BodyInfo.identifier); _bodyFrame = dictionary.value(BodyFrameInfo.identifier); - _mainFrame = dictionary.value(KeyMainFrame); - using T = SpiceManager::AberrationCorrection::Type; _aberration.addOptions({ @@ -330,7 +326,7 @@ void RenderableShadowCylinder::render(const RenderData& data, RendererTasks&) { void RenderableShadowCylinder::update(const UpdateData& data) { _stateMatrix = SpiceManager::ref().positionTransformMatrix( _bodyFrame, - _mainFrame, + MainFrame, data.time.j2000Seconds() ); if (_shader->isDirty()) { @@ -383,7 +379,7 @@ void RenderableShadowCylinder::createCylinder(double time) { glm::dvec3 vecLightSource = SpiceManager::ref().targetPosition( _body, _lightSource, - _mainFrame, + MainFrame, { SpiceManager::AberrationCorrection::Type(_aberration.value()), SpiceManager::AberrationCorrection::Direction::Reception diff --git a/modules/newhorizons/rendering/renderableshadowcylinder.h b/modules/newhorizons/rendering/renderableshadowcylinder.h index cebe3a4bdc..72382b9f6c 100644 --- a/modules/newhorizons/rendering/renderableshadowcylinder.h +++ b/modules/newhorizons/rendering/renderableshadowcylinder.h @@ -75,7 +75,6 @@ private: properties::StringProperty _observer; properties::StringProperty _body; properties::StringProperty _bodyFrame; - properties::StringProperty _mainFrame; properties::OptionProperty _aberration; std::unique_ptr _shader; diff --git a/modules/newhorizons/shaders/renderablePlanet_vs.glsl b/modules/newhorizons/shaders/renderablePlanet_vs.glsl index f14fb9eab8..d26f56720d 100644 --- a/modules/newhorizons/shaders/renderablePlanet_vs.glsl +++ b/modules/newhorizons/shaders/renderablePlanet_vs.glsl @@ -40,16 +40,10 @@ uniform mat4 modelViewProjectionTransform; uniform bool _hasHeightMap; uniform float _heightExaggeration; uniform sampler2D heightTexture; -uniform bool shiftMeridian; void main() { vs_st = in_st; - vec2 st = in_st; - if (shiftMeridian) { - st.s += 0.5; - } - vec4 tmp = in_position; // this is wrong for the normal. @@ -58,7 +52,7 @@ void main() { if (_hasHeightMap) { - const float height = texture(heightTexture, st).s; + const float height = texture(heightTexture, in_st).s; const vec3 displacementDirection = (normalize(tmp.xyz)); const float displacementFactor = height * _heightExaggeration / 750.0; tmp.xyz += displacementDirection * displacementFactor; diff --git a/modules/space/rendering/renderableplanet.cpp b/modules/space/rendering/renderableplanet.cpp index 86ea1410ee..7dd725773a 100644 --- a/modules/space/rendering/renderableplanet.cpp +++ b/modules/space/rendering/renderableplanet.cpp @@ -53,10 +53,6 @@ namespace { const char* KeyGeometry = "Geometry"; const char* KeyRadius = "Radius"; - const char* KeyColorTexture = "Textures.Color"; - const char* KeyNightTexture = "Textures.Night"; - const char* KeyHeightTexture = "Textures.Height"; - const char* KeyShading = "PerformShading"; static const char* _loggerCat = "RenderablePlanet"; @@ -67,14 +63,14 @@ namespace { const char* keyBody = "Body"; static const openspace::properties::Property::PropertyInfo ColorTextureInfo = { - "PlanetTexture", + "ColorTexture", "Color Base Texture", "The path to the base color texture that is used on the planet prior to any " "image projection." }; static const openspace::properties::Property::PropertyInfo HeightTextureInfo = { - "HeightMap", + "HeightTexture", "Heightmap Texture", "The path to the height map texture that is used for the planet. If no height " "map is specified the planet does not use a height field." @@ -101,7 +97,8 @@ namespace { "Perform Shading", "If this value is enabled, the model will be shaded based on the relative " "location to the Sun. If this value is disabled, shading is disabled and the " - "entire model is rendered brightly." + "entire model is rendered brightly. If this value is 'false', any existing night " + "texture will not be used." }; } // namespace @@ -127,31 +124,28 @@ documentation::Documentation RenderablePlanet::Documentation() { "will try to query the SPICE library for radius values." }, { - KeyColorTexture, // @TODO Use ColorTextureInfo.identifier instead + ColorTextureInfo.identifier, new StringVerifier, Optional::Yes, - "Specifies the color texture that is used for this RenderablePlanet." + ColorTextureInfo.description }, { - KeyHeightTexture, // @TODO Use HeightTextureInfo.identifier instead + HeightTextureInfo.identifier, new StringVerifier, Optional::Yes, - "Specifies the height texture that is used for this RenderablePlanet." + HeightTextureInfo.description }, { - KeyNightTexture, // @TODO Use NightTextureInfo.identifier instead + NightTextureInfo.identifier, new StringVerifier, Optional::Yes, - "Specifies the texture that is used for the night side of this " - "RenderablePlanet." + NightTextureInfo.description }, { - KeyShading, + PerformShadingInfo.identifier, new BoolVerifier, Optional::Yes, - "Specifies whether the planet should be rendered shaded by the Sun. If " - "this value is 'false', any existing night texture will not be used. " - "This value defaults to 'true'." + PerformShadingInfo.description }, { HeightExaggerationInfo.identifier, @@ -221,27 +215,33 @@ RenderablePlanet::RenderablePlanet(const ghoul::Dictionary& dictionary) _geometry = planetgeometry::PlanetGeometry::createFromDictionary(geomDict); - if (dictionary.hasKey(KeyColorTexture)) { - _colorTexturePath = absPath(dictionary.value(KeyColorTexture)); + if (dictionary.hasKey(ColorTextureInfo.identifier)) { + _colorTexturePath = absPath(dictionary.value( + ColorTextureInfo.identifier + )); } - if (dictionary.hasKey(KeyNightTexture)) { + if (dictionary.hasKey(NightTextureInfo.identifier)) { _hasNightTexture = true; - _nightTexturePath = absPath(dictionary.value(KeyNightTexture)); + _nightTexturePath = absPath(dictionary.value( + NightTextureInfo.identifier + )); } - if (dictionary.hasKey(KeyHeightTexture)) { + if (dictionary.hasKey(HeightTextureInfo.identifier)) { _hasHeightTexture = true; - _heightMapTexturePath = absPath(dictionary.value(KeyHeightTexture)); + _heightMapTexturePath = absPath(dictionary.value( + HeightTextureInfo.identifier + )); } - if (dictionary.hasKey(KeyShading)) { - _performShading = dictionary.value(KeyShading); + if (dictionary.hasKey(PerformShadingInfo.identifier)) { + _performShading = dictionary.value(PerformShadingInfo.identifier); } addPropertySubOwner(_geometry.get()); - auto loadTextureCallback = [this]() {loadTexture(); }; + auto loadTextureCallback = [this]() { loadTexture(); }; addProperty(_colorTexturePath); _colorTexturePath.onChange(loadTextureCallback); From 35a41d3283e9b51bdce8ecc8af175a244c753522 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Thu, 27 Jul 2017 14:46:46 -0400 Subject: [PATCH 13/51] Remove Exhaustive parameter for documentation --- .../openspace/documentation/documentation.h | 29 ++++---------- include/openspace/documentation/verifier.h | 9 +---- modules/base/rendering/renderabletrail.cpp | 3 +- .../base/rendering/screenspaceframebuffer.cpp | 3 +- modules/base/rotation/staticrotation.cpp | 3 +- .../base/translation/statictranslation.cpp | 3 +- .../rendering/renderabledebugplane.cpp | 3 +- .../rendering/renderablecrawlingline.cpp | 23 +++++------ .../space/translation/keplertranslation.cpp | 3 +- .../space/translation/spicetranslation.cpp | 3 +- modules/space/translation/tletranslation.cpp | 3 +- src/documentation/documentation.cpp | 39 +++---------------- src/documentation/verifier.cpp | 5 +-- src/engine/logfactory.cpp | 3 +- src/mission/mission.cpp | 3 +- src/scene/scale.cpp | 3 +- src/scene/translation.cpp | 3 +- src/scripting/scriptscheduler.cpp | 3 +- src/util/timerange.cpp | 3 +- 19 files changed, 39 insertions(+), 108 deletions(-) diff --git a/include/openspace/documentation/documentation.h b/include/openspace/documentation/documentation.h index 6458a55485..1bc33344e3 100644 --- a/include/openspace/documentation/documentation.h +++ b/include/openspace/documentation/documentation.h @@ -37,7 +37,6 @@ namespace ghoul { class Dictionary; } namespace openspace::documentation { using Optional = ghoul::Boolean; -using Exhaustive = ghoul::Boolean; /** * The TestResult structure returns the information from the #testSpecification method. It @@ -204,11 +203,8 @@ struct DocumentationEntry { * used to impose restrictions on keys and values and determine whether a given * ghoul::Dictionary adheres to these specifications (see #testSpecification and * #testSpecificationAndThrow methods). Each Documentation consists of a human-readable - * \c name, a list of DocumentationEntry%s that each describe a single key value, and a - * flag whether these entries are Exhaustive or not. If a Documentation is Exhaustive, a - * ghoul::Dictionary that contains additional keys will fail the specification, whereas a - * non-exhaustive Documentation allow for other (potentially non used) keys. The most - * convenient way of creating a Documentation is by using nested initializer lists: + * \c name, and a list of DocumentationEntry%s that each describe a single key value. The + * most convenient way of creating a Documentation is by using nested initializer lists: *\verbatim Documentation doc = { "Documentation for an arbitrary dictionary", @@ -216,9 +212,8 @@ Documentation doc = { { "key1", new IntVerifier, "Documentation key1", Optional::Yes }, { "key2", new FloatVerifier, "Documentation key2" }, { "key3", new StringVerifier } - }, - Exhaustive::Yes -+; + } +}; \endverbatim * * If multiple DocumentationEntries cover the same key, they are all evaluated for that @@ -236,31 +231,23 @@ struct Documentation { * Documentation%s to reference this entry * \param entries A list of DocumentationEntry%s that describe the individual keys for * this entrie Documentation - * \param exhaustive Determines whether the \p entries are an exhaustive specification - * of the object or whether additional, potentially unused, keys are allowed */ - Documentation(std::string name, std::string id, DocumentationEntries entries = {}, - Exhaustive exhaustive = Exhaustive::No); + Documentation(std::string name, std::string id, DocumentationEntries entries = {}); /** * Creates a Documentation with a human-readable \p name. * \param name The human-readable name of this Documentation * \param entries A list of DocumentationEntry%s that describe the individual keys for * this entrie Documentation - * \param exhaustive Determines whether the \p entries are an exhaustive specification - * of the object or whether additional, potentially unused, keys are allowed */ - Documentation(std::string name, DocumentationEntries entries = {}, - Exhaustive exhaustive = Exhaustive::No); + Documentation(std::string name, DocumentationEntries entries = {}); /** * Creates a Documentation. * \param entries A list of DocumentationEntry%s that describe the individual keys for * this entrie Documentation - * \param exhaustive Determines whether the \p entries are an exhaustive specification - * of the object or whether additional, potentially unused, keys are allowed */ - Documentation(DocumentationEntries entries = {}, Exhaustive exhaustive = Exhaustive::No); + Documentation(DocumentationEntries entries = {}); /// The human-readable name of the Documentation std::string name; @@ -268,8 +255,6 @@ struct Documentation { std::string id; /// A list of specifications that are describing this Documentation DocumentationEntries entries; - /// A flag to say wheter the DocumentationEntries are an exhaustive description - Exhaustive exhaustive; }; /** diff --git a/include/openspace/documentation/verifier.h b/include/openspace/documentation/verifier.h index d82681b0e7..aacecf1e44 100644 --- a/include/openspace/documentation/verifier.h +++ b/include/openspace/documentation/verifier.h @@ -170,12 +170,8 @@ struct TableVerifier : public TemplateVerifier { * \param documentationEntries The DocumentationEntry%s that are used to recursively * test the ghoul::Dictionary that is contained inside. If this list is empty, only a * type check is performed - * \param exhaustive Whether the DocumentationEntry%s contained in - * \p documentationEntries completely describe the contained table or whether - * additional keys are allowed */ - TableVerifier(std::vector documentationEntries = {}, - Exhaustive exhaustive = Exhaustive::No); + TableVerifier(std::vector documentationEntries = {}); /** * Checks whether the \p key%'s value is a table (= ghoul::Dictionary) and (if @@ -197,9 +193,6 @@ struct TableVerifier : public TemplateVerifier { /// The documentations passed in the constructor std::vector documentations; - /// Flag that specifies whether the TableVerifier::documentation exhaustively - /// describes the table or whether additional keys are allowed - Exhaustive exhaustive; }; /** diff --git a/modules/base/rendering/renderabletrail.cpp b/modules/base/rendering/renderabletrail.cpp index 39b5d4ca5a..89725e32d3 100644 --- a/modules/base/rendering/renderabletrail.cpp +++ b/modules/base/rendering/renderabletrail.cpp @@ -154,8 +154,7 @@ documentation::Documentation RenderableTrail::Documentation() { Optional::Yes, RenderingModeInfo.description } - }, - Exhaustive::No + } }; } diff --git a/modules/base/rendering/screenspaceframebuffer.cpp b/modules/base/rendering/screenspaceframebuffer.cpp index 8bc62a2c51..3f83cd16b4 100644 --- a/modules/base/rendering/screenspaceframebuffer.cpp +++ b/modules/base/rendering/screenspaceframebuffer.cpp @@ -50,8 +50,7 @@ documentation::Documentation ScreenSpaceFramebuffer::Documentation() { return { "ScreenSpace Framebuffer", "base_screenspace_framebuffer", - {}, - Exhaustive::Yes + {} }; } diff --git a/modules/base/rotation/staticrotation.cpp b/modules/base/rotation/staticrotation.cpp index f728305935..3929b9c808 100644 --- a/modules/base/rotation/staticrotation.cpp +++ b/modules/base/rotation/staticrotation.cpp @@ -59,8 +59,7 @@ documentation::Documentation StaticRotation::Documentation() { "Stores the static rotation as either a vector containing Euler angles " "or by specifiying the 3x3 rotation matrix directly" } - }, - Exhaustive::Yes + } }; } diff --git a/modules/base/translation/statictranslation.cpp b/modules/base/translation/statictranslation.cpp index a11cf42a05..be2c3c9520 100644 --- a/modules/base/translation/statictranslation.cpp +++ b/modules/base/translation/statictranslation.cpp @@ -55,8 +55,7 @@ documentation::Documentation StaticTranslation::Documentation() { Optional::No, PositionInfo.description } - }, - Exhaustive::Yes + } }; } diff --git a/modules/debugging/rendering/renderabledebugplane.cpp b/modules/debugging/rendering/renderabledebugplane.cpp index 12cb8745e9..ce185c2052 100644 --- a/modules/debugging/rendering/renderabledebugplane.cpp +++ b/modules/debugging/rendering/renderabledebugplane.cpp @@ -112,8 +112,7 @@ documentation::Documentation RenderableDebugPlane::Documentation() { Optional::Yes, OriginInfo.description } - }, - Exhaustive::Yes + } }; } diff --git a/modules/newhorizons/rendering/renderablecrawlingline.cpp b/modules/newhorizons/rendering/renderablecrawlingline.cpp index 7857f2715c..21703e96f4 100644 --- a/modules/newhorizons/rendering/renderablecrawlingline.cpp +++ b/modules/newhorizons/rendering/renderablecrawlingline.cpp @@ -82,20 +82,17 @@ documentation::Documentation RenderableCrawlingLine::Documentation() { KeyColor, new TableVerifier({ { - { - KeyColorStart, - new DoubleVector4Verifier, - Optional::No, - "The color at the start of the line", - }, - { - KeyColorEnd, - new DoubleVector4Verifier, - Optional::No, - "The color at the end of the line" - } + KeyColorStart, + new DoubleVector4Verifier, + Optional::No, + "The color at the start of the line", }, - Exhaustive::Yes + { + KeyColorEnd, + new DoubleVector4Verifier, + Optional::No, + "The color at the end of the line" + } }), Optional::No, "Specifies the colors that are used for the crawling line. One value " diff --git a/modules/space/translation/keplertranslation.cpp b/modules/space/translation/keplertranslation.cpp index cf7557f003..aeb1d43096 100644 --- a/modules/space/translation/keplertranslation.cpp +++ b/modules/space/translation/keplertranslation.cpp @@ -179,8 +179,7 @@ documentation::Documentation KeplerTranslation::Documentation() { Optional::No, PeriodInfo.description }, - }, - Exhaustive::Yes + } }; } diff --git a/modules/space/translation/spicetranslation.cpp b/modules/space/translation/spicetranslation.cpp index 0986306267..28fb2424c6 100644 --- a/modules/space/translation/spicetranslation.cpp +++ b/modules/space/translation/spicetranslation.cpp @@ -108,8 +108,7 @@ documentation::Documentation SpiceTranslation::Documentation() { "on. All provided kernels will be loaded before any other operation is " "performed." } - }, - Exhaustive::Yes + } }; } diff --git a/modules/space/translation/tletranslation.cpp b/modules/space/translation/tletranslation.cpp index 3cef279b20..836d9a8526 100644 --- a/modules/space/translation/tletranslation.cpp +++ b/modules/space/translation/tletranslation.cpp @@ -254,8 +254,7 @@ documentation::Documentation TLETranslation::Documentation() { "Specifies the line number within the file where the group of 3 TLE " "lines begins (1-based)." } - }, - Exhaustive::No + } }; } diff --git a/src/documentation/documentation.cpp b/src/documentation/documentation.cpp index b43d47aa3f..1318d5e3c3 100644 --- a/src/documentation/documentation.cpp +++ b/src/documentation/documentation.cpp @@ -131,20 +131,18 @@ DocumentationEntry::DocumentationEntry(std::string key, Verifier* v, Optional op std::move(doc)) {} -Documentation::Documentation(std::string n, std::string id, DocumentationEntries entries, - Exhaustive exh) +Documentation::Documentation(std::string n, std::string id, DocumentationEntries entries) : name(std::move(n)) , id(std::move(id)) , entries(std::move(entries)) - , exhaustive(std::move(exh)) {} -Documentation::Documentation(std::string n, DocumentationEntries entries, Exhaustive exh) - : Documentation(n, "", entries, exh) +Documentation::Documentation(std::string n, DocumentationEntries entries) + : Documentation(n, "", entries) {} -Documentation::Documentation(DocumentationEntries entries, Exhaustive exh) - : Documentation("", "", entries, exh) +Documentation::Documentation(DocumentationEntries entries) + : Documentation("", "", entries) {} TestResult testSpecification(const Documentation& d, const ghoul::Dictionary& dict) { @@ -184,33 +182,6 @@ TestResult testSpecification(const Documentation& d, const ghoul::Dictionary& di } } - if (d.exhaustive) { - // If the documentation is exhaustive, we have to check if there are extra values - // in the table that are not covered by the Documentation - - for (const std::string& key : dict.keys()) { - auto it = std::find_if( - d.entries.begin(), - d.entries.end(), - [&key](const DocumentationEntry& entry) { - if (entry.key == DocumentationEntry::Wildcard) { - return true; - } - else { - return entry.key == key; - } - } - ); - - if (it == d.entries.end()) { - result.success = false; - result.offenses.push_back( - { key, TestResult::Offense::Reason::ExtraKey } - ); - } - } - } - // Remove duplicate offenders that might occur if multiple rules apply to a single // key and more than one of these rules are broken std::set uniqueOffenders( diff --git a/src/documentation/verifier.cpp b/src/documentation/verifier.cpp index 6662caaa77..58dde75390 100644 --- a/src/documentation/verifier.cpp +++ b/src/documentation/verifier.cpp @@ -165,16 +165,15 @@ std::string StringVerifier::type() const { return "String"; } -TableVerifier::TableVerifier(std::vector d, Exhaustive exhaustive) +TableVerifier::TableVerifier(std::vector d) : documentations(std::move(d)) - , exhaustive(std::move(exhaustive)) {} TestResult TableVerifier::operator()(const ghoul::Dictionary& dict, const std::string& key) const { if (dict.hasKeyAndValue(key)) { ghoul::Dictionary d = dict.value(key); - TestResult res = testSpecification({documentations, exhaustive}, d); + TestResult res = testSpecification({documentations}, d); // Add the 'key' as a prefix to make the new offender a fully qualified identifer for (TestResult::Offense& s : res.offenses) { diff --git a/src/engine/logfactory.cpp b/src/engine/logfactory.cpp index 444d4a0885..0867c78f7c 100644 --- a/src/engine/logfactory.cpp +++ b/src/engine/logfactory.cpp @@ -111,8 +111,7 @@ documentation::Documentation LogFactoryDocumentation() { "Determines whether the log entries should be stamped with the log level " "that was used to create the log message." } - }, - Exhaustive::Yes + } }; } diff --git a/src/mission/mission.cpp b/src/mission/mission.cpp index 8ad5eb08a1..5c702c1d29 100644 --- a/src/mission/mission.cpp +++ b/src/mission/mission.cpp @@ -74,8 +74,7 @@ documentation::Documentation MissionPhase::Documentation() { Optional::Yes, "The phases into which this mission or mission phase is separated." } - }, - Exhaustive::Yes + } }; } diff --git a/src/scene/scale.cpp b/src/scene/scale.cpp index 0788c5fc58..6cacb5baff 100644 --- a/src/scene/scale.cpp +++ b/src/scene/scale.cpp @@ -54,8 +54,7 @@ documentation::Documentation Scale::Documentation() { "of the application and can be written to disk on " "application startup into the FactoryDocumentation." } - }, - Exhaustive::No + } }; } diff --git a/src/scene/translation.cpp b/src/scene/translation.cpp index 7bbfc23149..4284bc485a 100644 --- a/src/scene/translation.cpp +++ b/src/scene/translation.cpp @@ -53,8 +53,7 @@ documentation::Documentation Translation::Documentation() { "configuration of the application and can be written to disk " "on application startup into the FactoryDocumentation." } - }, - Exhaustive::No + } }; } diff --git a/src/scripting/scriptscheduler.cpp b/src/scripting/scriptscheduler.cpp index 601fec5bf3..afe21bc787 100644 --- a/src/scripting/scriptscheduler.cpp +++ b/src/scripting/scriptscheduler.cpp @@ -93,8 +93,7 @@ documentation::Documentation ScriptScheduler::Documentation() { }), Optional::No } - }, - Exhaustive::Yes + } }; } diff --git a/src/util/timerange.cpp b/src/util/timerange.cpp index bcae0aefb6..16b890b728 100644 --- a/src/util/timerange.cpp +++ b/src/util/timerange.cpp @@ -55,8 +55,7 @@ documentation::Documentation TimeRange::Documentation() { Optional::No, "The end date of the time range" } - }, - Exhaustive::Yes + } }; } From 5ca44d4aa182b65bef4950149d073c11cbfb29a1 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Thu, 27 Jul 2017 17:24:22 -0400 Subject: [PATCH 14/51] Allow RenderableGlobe to have a single radius Make GlobeBrowsing scene the new default scene --- data/scene/default.scene | 73 +++++-- data/scene/earth/earth.data | 5 - data/scene/earth/earth.mod | 199 +++++++++++++----- data/scene/globebrowsing.scene | 93 -------- data/scene/jupiter/callisto/callisto.mod | 52 ++--- data/scene/jupiter/europa/europa.mod | 42 ++-- data/scene/jupiter/ganymede/ganymede.mod | 49 +++-- data/scene/jupiter/io/io.mod | 47 ++--- data/scene/jupiter/jupiter/jupiter.mod | 59 +++--- data/scene/lodglobes/arrows.png | Bin 20377 -> 0 bytes data/scene/lodglobes/earth/earth.data | 5 - data/scene/lodglobes/earth/earth.mod | 188 ----------------- .../ESRI/ESRI_Imagery_World_2D.wms | 17 -- .../map_service_configs/ESRI/TERRAIN.wms | 9 - .../map_service_configs/GIBS/Coastlines.xml | 23 -- .../GIBS/GIBS_Aqua_MODIS_true.xml | 24 --- ...MODIS_Terra_Brightness_Temp_Band31_Day.xml | 24 --- ...S_Terra_CorrectedReflectance_TrueColor.xml | 24 --- .../GIBS/MODIS_Water_Mask.xml | 23 -- .../GIBS/Reference_Features.xml | 23 -- .../GIBS/Reference_Labels.xml | 23 -- .../GIBS/TERRA_CR_B143_2016-04-12.wms | 8 - ...al_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml | 28 --- .../GIBS/Temporal_Aqua_Orbit_Asc.xml | 33 --- ..._GHRSST_L4_MUR_Sea_Surface_Temperature.xml | 28 --- ...IS_Aqua_CorrectedReflectance_TrueColor.xml | 28 --- ...S_Terra_CorrectedReflectance_TrueColor.xml | 28 --- ...RS_SNPP_CorrectedReflectance_TrueColor.xml | 28 --- .../Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml | 28 --- .../GIBS/VIIRS_CityLights_2012.xml | 23 -- ...RS_SNPP_CorrectedReflectance_TrueColor.xml | 23 -- .../earth/map_service_configs/Utah/Bmng.wms | 20 -- .../earth/map_service_configs/Utah/Gebco.wms | 20 -- .../ASTER_GDEM_Greyscale_Shaded_Relief.xml | 19 -- ...ueColor_Global_Monthly_v3_STD_temporal.xml | 10 - .../other/MLS_O3_46hPa_Day.xml | 19 -- .../other/OpenStreetMap.xml | 20 -- .../other/frmt_wms_virtualearth.xml | 6 - .../map_service_configs/other/noaa_rt.xml | 8 - .../earth/map_service_configs/other/test.wms | 79 ------- .../lodglobes/jupiter/callisto/callisto.data | 5 - .../lodglobes/jupiter/callisto/callisto.mod | 54 ----- .../lodglobes/jupiter/europa/europa.data | 5 - .../scene/lodglobes/jupiter/europa/europa.mod | 55 ----- .../lodglobes/jupiter/ganymede/ganymede.data | 5 - .../lodglobes/jupiter/ganymede/ganymede.mod | 54 ----- data/scene/lodglobes/jupiter/io/io.data | 5 - data/scene/lodglobes/jupiter/io/io.mod | 54 ----- .../jupiter/jupiter/jup260.bsp.torrent | Bin 16503 -> 0 bytes .../lodglobes/jupiter/jupiter/jupiter.data | 8 - .../lodglobes/jupiter/jupiter/jupiter.mod | 65 ------ data/scene/lodglobes/mars/MAR063.BSP.torrent | Bin 16463 -> 0 bytes .../mars/map_service_configs/CTX_Mosaic.xml | 17 -- .../mars/map_service_configs/MARS_Viking.xml | 10 - .../MARS_Viking_MDIM21.xml | 16 -- .../mars/map_service_configs/MDIM21_color.xml | 22 -- .../map_service_configs/Mars_MGS_MOLA_DEM.xml | 17 -- .../map_service_configs/Mola_Elevation.xml | 14 -- .../map_service_configs/Utah/CTX_Mosaic.xml | 22 -- .../mars/map_service_configs/Utah/Mdim.xml | 20 -- .../Utah/MolaCTX_Elevation.xml | 14 -- .../Utah/MolaPseudoColor.xml | 20 -- .../Utah/Mola_Elevation.xml | 21 -- .../map_service_configs/Utah/ThemisIRDay.xml | 20 -- .../Utah/ThemisIRNight.xml | 20 -- data/scene/lodglobes/mars/mars.data | 8 - data/scene/lodglobes/mars/mars.mod | 96 --------- .../map_service_configs/OnMercuryColor.xml | 31 --- .../OnMercuryElevationGaskell.xml | 24 --- .../map_service_configs/OnMercuryImage.xml | 31 --- .../Utah/MessengerMdis.wms | 20 -- .../Utah/MessengerMosaic.wms | 20 -- data/scene/lodglobes/mercury/mercury.data | 5 - data/scene/lodglobes/mercury/mercury.mod | 74 ------- .../moon/map_service_configs/OnMoonColor.xml | 68 ------ .../moon/map_service_configs/OnMoonHeight.xml | 22 -- .../map_service_configs/Utah/ClemUvvis.wms | 20 -- .../moon/map_service_configs/Utah/Kaguya.wms | 20 -- .../map_service_configs/Utah/LolaClrShade.wms | 20 -- .../moon/map_service_configs/Utah/LolaDem.wms | 21 -- .../map_service_configs/Utah/LolaShade.wms | 20 -- .../map_service_configs/Utah/UvvisHybrid.wms | 20 -- .../moon/map_service_configs/Utah/Wac.wms | 20 -- data/scene/lodglobes/moon/moon.data | 5 - data/scene/lodglobes/moon/moon.mod | 71 ------- data/scene/lodglobes/neptune/neptune.data | 5 - data/scene/lodglobes/neptune/neptune.mod | 62 ------ data/scene/lodglobes/saturn/saturn.data | 8 - data/scene/lodglobes/saturn/saturn.mod | 72 ------- data/scene/lodglobes/uranus/uranus.data | 5 - data/scene/lodglobes/uranus/uranus.mod | 62 ------ data/scene/lodglobes/venus/venus.data | 5 - data/scene/lodglobes/venus/venus.mod | 67 ------ data/scene/mars/mars.mod | 87 +++++--- data/scene/mercury/mercury.data | 5 - data/scene/mercury/mercury.mod | 60 +++--- data/scene/moon/moon.data | 5 - data/scene/moon/moon.mod | 66 +++--- data/scene/neptune/neptune.mod | 51 +++-- data/scene/pluto/pluto.data | 7 - data/scene/pluto/pluto.mod | 124 ----------- data/scene/saturn/dione/dione.mod | 23 +- data/scene/saturn/enceladus/enceladus.mod | 23 +- data/scene/saturn/iapetus/iapetus.mod | 23 +- data/scene/saturn/mimas/mimas.mod | 21 +- data/scene/saturn/rhea/rhea.mod | 23 +- data/scene/saturn/saturn/saturn.mod | 43 ++-- data/scene/saturn/tethys/tethys.mod | 23 +- data/scene/saturn/titan/titan.mod | 25 ++- data/scene/uranus/uranus.mod | 53 +++-- data/scene/venus/venus.mod | 57 ++--- .../properties/numericalproperty.inl | 2 +- .../globebrowsing/globes/renderableglobe.cpp | 14 +- openspace.cfg | 1 - 114 files changed, 663 insertions(+), 2976 deletions(-) delete mode 100644 data/scene/earth/earth.data delete mode 100644 data/scene/globebrowsing.scene delete mode 100644 data/scene/lodglobes/arrows.png delete mode 100644 data/scene/lodglobes/earth/earth.data delete mode 100644 data/scene/lodglobes/earth/earth.mod delete mode 100644 data/scene/lodglobes/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms delete mode 100644 data/scene/lodglobes/earth/map_service_configs/ESRI/TERRAIN.wms delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Coastlines.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/GIBS_Aqua_MODIS_true.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Terra_Brightness_Temp_Band31_Day.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Terra_CorrectedReflectance_TrueColor.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Water_Mask.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Reference_Features.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Reference_Labels.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/TERRA_CR_B143_2016-04-12.wms delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_Aqua_Orbit_Asc.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_MODIS_Aqua_CorrectedReflectance_TrueColor.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_MODIS_Terra_CorrectedReflectance_TrueColor.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/VIIRS_CityLights_2012.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/GIBS/VIIRS_SNPP_CorrectedReflectance_TrueColor.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/Utah/Bmng.wms delete mode 100644 data/scene/lodglobes/earth/map_service_configs/Utah/Gebco.wms delete mode 100644 data/scene/lodglobes/earth/map_service_configs/other/ASTER_GDEM_Greyscale_Shaded_Relief.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/other/Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD_temporal.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/other/MLS_O3_46hPa_Day.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/other/OpenStreetMap.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/other/frmt_wms_virtualearth.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/other/noaa_rt.xml delete mode 100644 data/scene/lodglobes/earth/map_service_configs/other/test.wms delete mode 100644 data/scene/lodglobes/jupiter/callisto/callisto.data delete mode 100644 data/scene/lodglobes/jupiter/callisto/callisto.mod delete mode 100644 data/scene/lodglobes/jupiter/europa/europa.data delete mode 100644 data/scene/lodglobes/jupiter/europa/europa.mod delete mode 100644 data/scene/lodglobes/jupiter/ganymede/ganymede.data delete mode 100644 data/scene/lodglobes/jupiter/ganymede/ganymede.mod delete mode 100644 data/scene/lodglobes/jupiter/io/io.data delete mode 100644 data/scene/lodglobes/jupiter/io/io.mod delete mode 100644 data/scene/lodglobes/jupiter/jupiter/jup260.bsp.torrent delete mode 100644 data/scene/lodglobes/jupiter/jupiter/jupiter.data delete mode 100644 data/scene/lodglobes/jupiter/jupiter/jupiter.mod delete mode 100644 data/scene/lodglobes/mars/MAR063.BSP.torrent delete mode 100644 data/scene/lodglobes/mars/map_service_configs/CTX_Mosaic.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/MARS_Viking.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/MARS_Viking_MDIM21.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/MDIM21_color.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/Mars_MGS_MOLA_DEM.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/Mola_Elevation.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/Utah/CTX_Mosaic.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/Utah/Mdim.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/Utah/MolaCTX_Elevation.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/Utah/MolaPseudoColor.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/Utah/Mola_Elevation.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/Utah/ThemisIRDay.xml delete mode 100644 data/scene/lodglobes/mars/map_service_configs/Utah/ThemisIRNight.xml delete mode 100644 data/scene/lodglobes/mars/mars.data delete mode 100644 data/scene/lodglobes/mars/mars.mod delete mode 100644 data/scene/lodglobes/mercury/map_service_configs/OnMercuryColor.xml delete mode 100644 data/scene/lodglobes/mercury/map_service_configs/OnMercuryElevationGaskell.xml delete mode 100644 data/scene/lodglobes/mercury/map_service_configs/OnMercuryImage.xml delete mode 100644 data/scene/lodglobes/mercury/map_service_configs/Utah/MessengerMdis.wms delete mode 100644 data/scene/lodglobes/mercury/map_service_configs/Utah/MessengerMosaic.wms delete mode 100644 data/scene/lodglobes/mercury/mercury.data delete mode 100644 data/scene/lodglobes/mercury/mercury.mod delete mode 100644 data/scene/lodglobes/moon/map_service_configs/OnMoonColor.xml delete mode 100644 data/scene/lodglobes/moon/map_service_configs/OnMoonHeight.xml delete mode 100644 data/scene/lodglobes/moon/map_service_configs/Utah/ClemUvvis.wms delete mode 100644 data/scene/lodglobes/moon/map_service_configs/Utah/Kaguya.wms delete mode 100644 data/scene/lodglobes/moon/map_service_configs/Utah/LolaClrShade.wms delete mode 100644 data/scene/lodglobes/moon/map_service_configs/Utah/LolaDem.wms delete mode 100644 data/scene/lodglobes/moon/map_service_configs/Utah/LolaShade.wms delete mode 100644 data/scene/lodglobes/moon/map_service_configs/Utah/UvvisHybrid.wms delete mode 100644 data/scene/lodglobes/moon/map_service_configs/Utah/Wac.wms delete mode 100644 data/scene/lodglobes/moon/moon.data delete mode 100644 data/scene/lodglobes/moon/moon.mod delete mode 100644 data/scene/lodglobes/neptune/neptune.data delete mode 100644 data/scene/lodglobes/neptune/neptune.mod delete mode 100644 data/scene/lodglobes/saturn/saturn.data delete mode 100644 data/scene/lodglobes/saturn/saturn.mod delete mode 100644 data/scene/lodglobes/uranus/uranus.data delete mode 100644 data/scene/lodglobes/uranus/uranus.mod delete mode 100644 data/scene/lodglobes/venus/venus.data delete mode 100644 data/scene/lodglobes/venus/venus.mod delete mode 100644 data/scene/mercury/mercury.data delete mode 100644 data/scene/moon/moon.data delete mode 100644 data/scene/pluto/pluto.data delete mode 100644 data/scene/pluto/pluto.mod diff --git a/data/scene/default.scene b/data/scene/default.scene index b887f7de54..468997791a 100644 --- a/data/scene/default.scene +++ b/data/scene/default.scene @@ -9,35 +9,71 @@ function preInitialization() openspace.spice.loadKernel("${SPICE}/naif0012.tls") openspace.spice.loadKernel("${SPICE}/pck00010.tpc") + -- For unit test + --openspace.time.setTime("2016 SEP 8 23:00:00.500") + --openspace.time.togglePause() + openspace.time.setTime(openspace.time.currentWallTime()) dofile(openspace.absPath('${SCRIPTS}/bind_common_keys.lua')) + + + -- Toggle night texture, shading, atmosphere and water + openspace.bindKey("s", + helper.property.invert('Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.Enabled') .. + helper.property.invert('Earth.RenderableGlobe.PerformShading') .. + helper.property.invert('Earth.RenderableGlobe.Atmosphere') .. + helper.property.invert('Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.Enabled'), + "Toggle night texture, shading, atmosphere, and water for Earth." + ) + + -- Toggle background + openspace.bindKey("b", + helper.property.invert('MilkyWay.renderable.Enabled') .. + helper.property.invert('Stars.renderable.Enabled'), + "Toggle background (Stars and Milkyway)." + ) + + openspace.bindKey("g", + helper.property.invert('MilkyWay.renderable.Enabled') .. + helper.property.invert('Stars.renderable.Enabled') .. + helper.property.invert('Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.Enabled') .. + helper.property.invert('Earth.RenderableGlobe.PerformShading') .. + helper.property.invert('Mars.RenderableGlobe.PerformShading') .. + helper.property.invert('Earth.RenderableGlobe.Atmosphere') .. + helper.property.invert('Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.Enabled') .. + helper.property.invert('Moon.RenderableGlobe.Enabled') .. + helper.property.invert('Sun.renderable.Enabled'), + "Toogles background and shading mode on the Earth and Mars alongside visibility of the Moon and the Sun" + ) + + openspace.bindKey("h", + "openspace.setPropertyValue('*Trail.renderable.Enabled', false)", + "Disables visibility of the trails" + ) end function postInitialization() - --[[ - The scripts in this function are executed after all objects in the scene have been - created and initialized, but before the first render call. This is the place to set - graphical settings for the renderables. - ]]-- - openspace.printInfo("Setting default values") - openspace.setPropertyValue("SunMarker.renderable.Enabled", false) - openspace.setPropertyValue("EarthMarker.renderable.Enabled", false) - openspace.setPropertyValue("Constellation Bounds.renderable.Enabled", false) - - openspace.setPropertyValue("MilkyWay.renderable.Transparency", 0.55) - openspace.setPropertyValue("MilkyWay.renderable.Segments", 50) - openspace.addVirtualProperty( "BoolProperty", "Show Trails", - "*Trail.renderable.enabled", + "*Trail.renderable.Enabled", "Disable or enable all trails of the scene at the same time", true, nil, nil ) - openspace.navigation.resetCameraDirection() + openspace.printInfo("Setting default values") + + openspace.setPropertyValue("SunGlare.renderable.Enabled", false) + openspace.setPropertyValue("SunMarker.renderable.Enabled", false) + + openspace.setPropertyValue("Constellation Bounds.renderable.Enabled", false) + + openspace.setPropertyValue("Earth.RenderableGlobe.Atmosphere", true) + openspace.setPropertyValue("Earth.RenderableGlobe.Debug.LevelByProjectedAreaElseDistance", false) + + openspace.globebrowsing.goToGeo(58.5877, 16.1924, 20000000) openspace.printInfo("Done setting default values") end @@ -48,14 +84,15 @@ return { CommonFolder = "common", Camera = { Focus = "Earth", - Position = {505370268486.696167, 1089706179272.719116, -890259148524.319458}, - Rotation = {0.250635, -0.028751, 0.879269, 0.404030}, + Position = {0, 0, 0}, + Rotation = {0.758797, 0.221490, -0.605693, -0.091135}, }, Modules = { "sun", "mercury", "venus", "earth", + "moon", "mars", "jupiter", "saturn", @@ -65,6 +102,8 @@ return { -- "stars-denver", "milkyway", --"milkyway-eso", + -- "satellites" "constellationbounds", } } + diff --git a/data/scene/earth/earth.data b/data/scene/earth/earth.data deleted file mode 100644 index e168d4c8be..0000000000 --- a/data/scene/earth/earth.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "earth_textures", Destination = "textures", Version = 2 } - }, -} diff --git a/data/scene/earth/earth.mod b/data/scene/earth/earth.mod index c4e478efd5..d0963b6dfb 100644 --- a/data/scene/earth/earth.mod +++ b/data/scene/earth/earth.mod @@ -1,3 +1,4 @@ +earthEllipsoid = {6378137.0, 6378137.0, 6356752.314245} -- Earth's radii return { -- Earth barycenter module { @@ -9,8 +10,8 @@ return { Target = "EARTH", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - } - } + }, + }, }, { -- The default reference frame for Earth-orbiting satellites @@ -23,38 +24,7 @@ return { DestinationFrame = "GALACTIC", } }, - }, - -- Earth module - { - Name = "Earth", - Parent = "EarthBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_EARTH", - Body = "EARTH", - Geometry = { - Type = "SimpleSphere", - Radius = 6.371E6, - Segments = 100 - }, - ColorTexture = "textures/earth_bluemarble.jpg", - HeightTexture = "textures/earth_bluemarble_height.jpg", - NightTexture = "textures/earth_night.jpg", - }, - Tag = {"planet_solarSystem", "planet_terrestrial"}, - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_EARTH", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, - GuiName = "/Solar/Planets/Earth" - }, + }, -- EarthTrail module { Name = "EarthTrail", @@ -71,27 +41,154 @@ return { -- EndTime = "2017 JAN 01 12:00:00.000", -- SampleInterval = 3600 Period = 365.242, - Resolution = 1000, - Tag = {"planetTrail_solarSystem", "planetTrail_terrestrial"} + Resolution = 1000 }, - GuiName = "/Solar/EarthTrail", + Tag = { "planetTrail_solarSystem", "planetTrail_terrestrial" }, + GuiName = "/Solar/EarthTrail" }, - --[[ + -- RenderableGlobe module { - Name = "EarthMarker", - Parent = "Earth", - Renderable = { - Type = "RenderablePlane", - Size = 3.0E11, - Origin = "Center", - Billboard = true, - Texture = "textures/marker.png", - BlendMode = "Additive" + Name = "Earth", + Parent = "EarthBarycenter", + Transform = { + Rotation = { + Type = "SpiceRotation", + SourceFrame = "IAU_EARTH", + DestinationFrame = "GALACTIC", + }, }, - Ephemeris = { - Type = "Static", - Position = {0, 0, 0, 5} + Tag = { "planet_solarSystem", "planet_terrestrial" }, + Renderable = { + Type = "RenderableGlobe", + Radii = earthEllipsoid, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "ESRI VIIRS Combo", + Type = "ByLevelTileLayer", + LevelTileProviders = { + { + MaxLevel = 3, + TileProvider = { + Name = "Temporal VIIRS SNPP", + Type = "TemporalTileLayer", + FilePath = "map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml", + } + }, + { + MaxLevel = 22, + TileProvider = { + Name = "ESRI Imagery World 2D", + FilePath = "map_service_configs/ESRI/ESRI_Imagery_World_2D.wms" + } + }, + }, + Enabled = true, + }, + { + Name = "ESRI Imagery World 2D", + FilePath = "map_service_configs/ESRI/ESRI_Imagery_World_2D.wms", + }, + { + Name = "Temporal VIIRS SNPP", + Type = "TemporalTileLayer", + FilePath = "map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml", + }, + { + Name = "BMNG", + FilePath = "map_service_configs/Utah/Bmng.wms" + }, + { + Name = "Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration", + Type = "TemporalTileLayer", + FilePath = "map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml", + }, + { + Name = "MODIS_Terra_Chlorophyll_A", + Type = "TemporalTileLayer", + FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( + "MODIS_Terra_Chlorophyll_A", + "2013-07-02", + "Yesterday", + "1d", + "1km", + "png" + ) + }, + { + Name = "GHRSST_L4_G1SST_Sea_Surface_Temperature", + Type = "TemporalTileLayer", + FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( + "GHRSST_L4_G1SST_Sea_Surface_Temperature", + "2010-06-21", + "Yesterday", + "1d", + "1km", + "png" + ) + }, + }, + NightLayers = { + { + Name = "Earth at Night 2012", + FilePath = "map_service_configs/GIBS/VIIRS_CityLights_2012.xml", + Enabled = true, + Settings = { + Opacity = 1.0, + Gamma = 1.5, + Multiplier = 15.0, + }, + }, + { + Name = "Temporal Earth at Night", + Type = "TemporalTileLayer", + FilePath = "map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml" + } + }, + WaterMasks = { + { + Name = "MODIS_Water_Mask", + FilePath = "map_service_configs/GIBS/MODIS_Water_Mask.xml", + Enabled = true, + }, + { + Name = "GEBCO", + FilePath = "map_service_configs/Utah/Gebco.wms", + } + }, + Overlays = { + { + Name = "Coastlines", + FilePath = "map_service_configs/GIBS/Coastlines.xml", + }, + { + Name = "Reference_Features", + FilePath = "map_service_configs/GIBS/Reference_Features.xml", + }, + { + Name = "Reference_Labels", + FilePath = "map_service_configs/GIBS/Reference_Labels.xml", + }, + { + Name = "Tile Indices", + Type = "TileIndexTileLayer", + }, + { + Name = "Size Reference", + Type = "SizeReferenceTileLayer", + Radii = earthEllipsoid, + }, + }, + HeightLayers = { + { + Name = "Terrain tileset", + FilePath = "map_service_configs/ESRI/TERRAIN.wms", + Enabled = true, + TilePixelSize = 64, + } + } + } } } - ]] } diff --git a/data/scene/globebrowsing.scene b/data/scene/globebrowsing.scene deleted file mode 100644 index 96ff9c3df9..0000000000 --- a/data/scene/globebrowsing.scene +++ /dev/null @@ -1,93 +0,0 @@ -function preInitialization() - --[[ - The scripts in this function are executed after the scene is loaded but before the - scene elements have been initialized, thus they should be used to set the time at - which the scene should start and other settings that might determine initialization - critical objects. - ]]-- - - openspace.spice.loadKernel("${SPICE}/naif0012.tls") - openspace.spice.loadKernel("${SPICE}/pck00010.tpc") - - -- For unit test - --openspace.time.setTime("2016 SEP 8 23:00:00.500") - --openspace.time.togglePause() - - openspace.time.setTime(openspace.time.currentWallTime()) - dofile(openspace.absPath('${SCRIPTS}/bind_common_keys.lua')) - - - -- Toggle night texture, shading, atmosphere and water - openspace.bindKey("s", - helper.property.invert('Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.Enabled') .. - helper.property.invert('Earth.RenderableGlobe.PerformShading') .. - helper.property.invert('Earth.RenderableGlobe.Atmosphere') .. - helper.property.invert('Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.Enabled'), - "Toggle night texture, shading, atmosphere, and water for Earth." - ) - - -- Toggle background - openspace.bindKey("b", - helper.property.invert('MilkyWay.renderable.Enabled') .. - helper.property.invert('Stars.renderable.Enabled'), - "Toggle background (Stars and Milkyway)." - ) - - openspace.bindKey("g", - "openspace.setInteractionMode('GlobeBrowsing')" .. - helper.property.invert('MilkyWay.renderable.Enabled') .. - helper.property.invert('Stars.renderable.Enabled') .. - helper.property.invert('Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.Enabled') .. - helper.property.invert('Earth.RenderableGlobe.PerformShading') .. - helper.property.invert('Mars.RenderableGlobe.PerformShading') .. - helper.property.invert('Earth.RenderableGlobe.Atmosphere') .. - helper.property.invert('Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.Enabled') .. - helper.property.invert('Moon.RenderableGlobe.Enabled') .. - helper.property.invert('Sun.renderable.Enabled'), - "Toogles background and shading mode on the Earth and Mars alongside visibility of the Moon and the Sun" - ) - - openspace.bindKey("h", - "openspace.setPropertyValue('*Trail.renderable.Enabled', false)", - "Disables visibility of the trails" - ) -end - -function postInitialization() - openspace.printInfo("Setting default values") - - openspace.setPropertyValue("MilkyWay.renderable.Transparency", 0.55) - openspace.setPropertyValue("MilkyWay.renderable.Segments", 50) - - openspace.setPropertyValue("Sun.renderable.Enabled", true) - openspace.setPropertyValue("SunGlare.renderable.Enabled", false) - openspace.setPropertyValue("SunMarker.renderable.Enabled", false) - - openspace.setPropertyValue("Earth.RenderableGlobe.Atmosphere", true) - openspace.setPropertyValue("Earth.RenderableGlobe.Debug.LevelByProjectedAreaElseDistance", false) - openspace.setPropertyValue("Earth.RenderableGlobe.Layers.ColorLayers.BlendTileLevels", true) - - openspace.globebrowsing.goToGeo(0, 0, 20000000) - - openspace.printInfo("Done setting default values") -end - - -return { - ScenePath = ".", - CommonFolder = "common", - Camera = { - Focus = "Earth", - Position = {0, 0, 0}, - Rotation = {0.758797, 0.221490, -0.605693, -0.091135}, - }, - - Modules = { - "lodglobes", - "sun", - "stars", - "milkyway", - -- "satellites" - } -} - diff --git a/data/scene/jupiter/callisto/callisto.mod b/data/scene/jupiter/callisto/callisto.mod index 89bcbd9e4a..7ee86055fb 100644 --- a/data/scene/jupiter/callisto/callisto.mod +++ b/data/scene/jupiter/callisto/callisto.mod @@ -1,38 +1,38 @@ return { - -- Callisto module - { + -- RenderableGlobe module + { Name = "Callisto", Parent = "JupiterBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_CALLISTO", -- should exist. - Body = "CALLISTO", - Geometry = { - Type = "SimpleSphere", - Radius = 2.631E6, - Segments = 100 - }, - ColorTexture = "textures/callisto.jpg", - }, Transform = { + Rotation = { + Type = "SpiceRotation", + SourceFrame = "IAU_CALLISTO", + DestinationFrame = "GALACTIC", + }, Translation = { Type = "SpiceTranslation", Target = "CALLISTO", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" - }, - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_CALLISTO", - DestinationFrame = "IAU_JUPITER", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, + } + }, + Renderable = { + Type = "RenderableGlobe", + Radii = 2410000, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Callisto Texture", + FilePath = "textures/callisto.jpg", + Enabled = true + } + } + } } }, - -- CallistoTrail module + + -- Trail module { Name = "CallistoTrail", Parent = "JupiterBarycenter", @@ -41,10 +41,10 @@ return { Translation = { Type = "SpiceTranslation", Target = "CALLISTO", - Observer = "JUPITER BARYCENTER", + Observer = "JUPITER BARYCENTER" }, Color = { 0.4, 0.3, 0.01 }, - Period = 17, + Period = 17, Resolution = 1000 } } diff --git a/data/scene/jupiter/europa/europa.mod b/data/scene/jupiter/europa/europa.mod index 123a9d86b5..92f9177da0 100644 --- a/data/scene/jupiter/europa/europa.mod +++ b/data/scene/jupiter/europa/europa.mod @@ -1,34 +1,38 @@ return { - -- Europa module - { + -- RenderableGlobe module + { Name = "Europa", Parent = "JupiterBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_EUROPA", -- should exist. - Body = "EUROPA", - Geometry = { - Type = "SimpleSphere", - Radius = 1.561E6, - Segments = 100 - }, - ColorTexture = "textures/europa.jpg", - }, Transform = { + Rotation = { + Type = "SpiceRotation", + SourceFrame = "IAU_EUROPA", + DestinationFrame = "GALACTIC", + }, Translation = { Type = "SpiceTranslation", Target = "EUROPA", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_EUROPA", - DestinationFrame = "IAU_JUPITER", - } + }, + Renderable = { + Type = "RenderableGlobe", + Radii = 1560800, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Europa Texture", + FilePath = "textures/europa.jpg", + Enabled = true, + }, + }, + }, } }, - -- EuropaTrail module + + -- Trail module { Name = "EuropaTrail", Parent = "JupiterBarycenter", diff --git a/data/scene/jupiter/ganymede/ganymede.mod b/data/scene/jupiter/ganymede/ganymede.mod index 7971e3c62e..61f048b368 100644 --- a/data/scene/jupiter/ganymede/ganymede.mod +++ b/data/scene/jupiter/ganymede/ganymede.mod @@ -1,38 +1,37 @@ return { - -- Ganymede module - { + -- RenderableGlobe module + { Name = "Ganymede", Parent = "JupiterBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_GANYMEDE", -- should exist. - Body = "JUPITER BARYCENTER", - Geometry = { - Type = "SimpleSphere", - Radius = 2.631E6, - Segments = 100 - }, - ColorTexture = "textures/ganymede.jpg", - }, Transform = { + Rotation = { + Type = "SpiceRotation", + SourceFrame = "IAU_GANYMEDE", + DestinationFrame = "GALACTIC" + }, Translation = { Type = "SpiceTranslation", Target = "GANYMEDE", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" - }, - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_GANYMEDE", - DestinationFrame = "IAU_JUPITER", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, + } + }, + Renderable = { + Type = "RenderableGlobe", + Radii = 2631000, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Ganymede Texture", + FilePath = "textures/ganymede.jpg", + Enabled = true + } + } + } } }, - -- GanymedeTrail module + -- Trail module { Name = "GanymedeTrail", Parent = "JupiterBarycenter", @@ -41,7 +40,7 @@ return { Translation = { Type = "SpiceTranslation", Target = "GANYMEDE", - Observer = "JUPITER BARYCENTER", + Observer = "JUPITER BARYCENTER" }, Color = { 0.4, 0.3, 0.3 }, Period = 172 / 24, diff --git a/data/scene/jupiter/io/io.mod b/data/scene/jupiter/io/io.mod index bae45773e6..70c265d266 100644 --- a/data/scene/jupiter/io/io.mod +++ b/data/scene/jupiter/io/io.mod @@ -1,38 +1,37 @@ return { - -- Io module - { + -- RenderableGlobe module + { Name = "Io", Parent = "JupiterBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_IO", -- should exist. - Body = "IO", - Geometry = { - Type = "SimpleSphere", - Radius = 1.8213E6, - Segments = 100 - }, - ColorTexture = "textures/io.jpg", - }, Transform = { + Rotation = { + Type = "SpiceRotation", + SourceFrame = "IAU_IO", + DestinationFrame = "GALACTIC" + }, Translation = { Type = "SpiceTranslation", Target = "IO", Observer = "JUPITER BARYCENTER", Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" }, - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_IO", - DestinationFrame = "IAU_JUPITER", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, + }, + Renderable = { + Type = "RenderableGlobe", + Radii = 1821600, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Io Texture", + FilePath = "textures/io.jpg", + Enabled = true + } + } + } } }, - -- IoTrail module + -- Trail module { Name = "IoTrail", Parent = "JupiterBarycenter", @@ -41,7 +40,7 @@ return { Translation = { Type = "SpiceTranslation", Target = "IO", - Observer = "JUPITER BARYCENTER", + Observer = "JUPITER BARYCENTER" }, Color = { 0.4, 0.4, 0.2 }, Period = 42 / 24, diff --git a/data/scene/jupiter/jupiter/jupiter.mod b/data/scene/jupiter/jupiter/jupiter.mod index 128c743f33..c8e822b5af 100644 --- a/data/scene/jupiter/jupiter/jupiter.mod +++ b/data/scene/jupiter/jupiter/jupiter.mod @@ -1,5 +1,5 @@ return { - -- Jupiter barycenter module + -- Barycenter module { Name = "JupiterBarycenter", Parent = "SolarSystemBarycenter", @@ -9,42 +9,37 @@ return { Target = "JUPITER BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, + } + } }, - -- Jupiter module - { + -- RenderableGlobe module + { Name = "Jupiter", Parent = "JupiterBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_JUPITER", - Body = "JUPITER BARYCENTER", - Geometry = { - Type = "SimpleSphere", - Radius = 0.71492E8, - Segments = 200 - }, - ColorTexture = "textures/jupiter.jpg", - }, - Tag = "planet_solarSystem", Transform = { - Translation = { - Type = "StaticTranslation", - Position = {0, 0, 0}, -- jupiter is at its barycenter - }, Rotation = { Type = "SpiceRotation", SourceFrame = "IAU_JUPITER", - DestinationFrame = "ECLIPJ2000", + DestinationFrame = "GALACTIC" }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - } + }, + Renderable = { + Type = "RenderableGlobe", + Radii = { 71492000, 71492000, 66854000 }, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Jupiter Texture", + FilePath = "textures/jupiter.jpg", + Enabled = true + } + } + } + }, + Tag = { "planet_solarSystem", "planet_giants" }, }, - -- JupiterTrail module + -- Trail module { Name = "JupiterTrail", Parent = "SolarSystemBarycenter", @@ -53,12 +48,12 @@ return { Translation = { Type = "SpiceTranslation", Target = "JUPITER BARYCENTER", - Observer = "SUN", + Observer = "SUN" }, Color = { 0.8, 0.7, 0.7 }, Period = 4330.595, - Resolution = 1000, + Resolution = 1000 }, - Tag = "planetTrail_solarSystem" + Tag = { "planetTrail_solarSystem", "planetTrail_giants" } } -} +} \ No newline at end of file diff --git a/data/scene/lodglobes/arrows.png b/data/scene/lodglobes/arrows.png deleted file mode 100644 index d10df6684c618aff5de9313b84132b809b60255f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20377 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 diff --git a/data/scene/lodglobes/earth/earth.data b/data/scene/lodglobes/earth/earth.data deleted file mode 100644 index e168d4c8be..0000000000 --- a/data/scene/lodglobes/earth/earth.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "earth_textures", Destination = "textures", Version = 2 } - }, -} diff --git a/data/scene/lodglobes/earth/earth.mod b/data/scene/lodglobes/earth/earth.mod deleted file mode 100644 index ade90311c2..0000000000 --- a/data/scene/lodglobes/earth/earth.mod +++ /dev/null @@ -1,188 +0,0 @@ -earthEllipsoid = {6378137.0, 6378137.0, 6356752.314245} -- Earth's radii -return { - -- Earth barycenter module - { - Name = "EarthBarycenter", - Parent = "SolarSystemBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "EARTH", - Observer = "SUN", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, - }, - { - -- The default reference frame for Earth-orbiting satellites - Name = "EarthInertial", - Parent = "EarthBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "J2000", - DestinationFrame = "GALACTIC", - } - }, - }, - -- EarthTrail module - { - Name = "EarthTrail", - Parent = "SolarSystemBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "EARTH", - Observer = "SUN" - }, - Color = { 0.5, 0.8, 1.0 }, - -- StartTime = "2016 JUN 01 12:00:00.000", - -- EndTime = "2017 JAN 01 12:00:00.000", - -- SampleInterval = 3600 - Period = 365.242, - Resolution = 1000 - }, - GuiName = "/Solar/EarthTrail" - }, - -- RenderableGlobe module - { - Name = "Earth", - Parent = "EarthBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_EARTH", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = earthEllipsoid, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "ESRI VIIRS Combo", - Type = "ByLevelTileLayer", - LevelTileProviders = { - { - MaxLevel = 3, - TileProvider = { - Type = "TemporalTileLayer", - Name = "Temporal VIIRS SNPP", - FilePath = "map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml", }, - }, - { - MaxLevel = 22, - TileProvider = { - Name = "ESRI Imagery World 2D", - FilePath = "map_service_configs/ESRI/ESRI_Imagery_World_2D.wms" - }, - }, - }, - Enabled = true, - }, - { - FilePath = "map_service_configs/ESRI/ESRI_Imagery_World_2D.wms", - Name = "ESRI", - }, - { - Name = "BMNG", - FilePath = "map_service_configs/Utah/Bmng.wms" - }, - { - Type = "TemporalTileLayer", - Name = "Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration", - FilePath = "map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml", - }, - { - Type = "TemporalTileLayer", - Name = "MODIS_Terra_Chlorophyll_A", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "MODIS_Terra_Chlorophyll_A", - "2013-07-02", - "Yesterday", - "1d", - "1km", - "png") - }, - { - Type = "TemporalTileLayer", - Name = "GHRSST_L4_G1SST_Sea_Surface_Temperature", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "GHRSST_L4_G1SST_Sea_Surface_Temperature", - "2010-06-21", - "Yesterday", - "1d", - "1km", - "png") - }, - }, - NightLayers = { - { - Name = "Earth at Night 2012", - FilePath = "map_service_configs/GIBS/VIIRS_CityLights_2012.xml", - Enabled = true, - Settings = { - Opacity = 1.0, - Gamma = 1.5, - Multiplier = 15.0, - }, - }, - { - Type = "TemporalTileLayer", - Name = "Temporal Earth at Night", - FilePath = "map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml" - } - }, - WaterMasks = { - { - Name = "MODIS_Water_Mask", - FilePath = "map_service_configs/GIBS/MODIS_Water_Mask.xml", - Enabled = true, - }, - { - Name = "GEBCO", - FilePath = "map_service_configs/Utah/Gebco.wms", - } - }, - Overlays = { - { - Name = "Coastlines", - FilePath = "map_service_configs/GIBS/Coastlines.xml", - }, - { - Name = "Reference_Features", - FilePath = "map_service_configs/GIBS/Reference_Features.xml", - }, - { - Name = "Reference_Labels", - FilePath = "map_service_configs/GIBS/Reference_Labels.xml", - }, - { - Type = "TileIndexTileLayer", - Name = "Tile Indices", - }, - { - Type = "SizeReferenceTileLayer", - Name = "Size Reference", - Radii = earthEllipsoid, - }, - }, - HeightLayers = { - { - Name = "Terrain tileset", - FilePath = "map_service_configs/ESRI/TERRAIN.wms", - Enabled = true, - TilePixelSize = 64, - }, - }, - }, - } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms b/data/scene/lodglobes/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms deleted file mode 100644 index 7c54ed40f0..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms +++ /dev/null @@ -1,17 +0,0 @@ - - - http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer/tile/${z}/${y}/${x} - - - 15 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - 5 - false - \ No newline at end of file diff --git a/data/scene/lodglobes/earth/map_service_configs/ESRI/TERRAIN.wms b/data/scene/lodglobes/earth/map_service_configs/ESRI/TERRAIN.wms deleted file mode 100644 index a4a50c0a83..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/ESRI/TERRAIN.wms +++ /dev/null @@ -1,9 +0,0 @@ - - - http://198.102.45.23/arcgis/rest/services/worldelevation3d/terrain3d? - GCS_Elevation - - 2 - 5 - false - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Coastlines.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Coastlines.xml deleted file mode 100644 index 120c022a25..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Coastlines.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/Coastlines/default/2013-08-21/250m/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 9 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 4 - true - 400 - true - 5 - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/GIBS_Aqua_MODIS_true.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/GIBS_Aqua_MODIS_true.xml deleted file mode 100644 index 1e5ed01815..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/GIBS_Aqua_MODIS_true.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Aqua_CorrectedReflectance_TrueColor/default/2013-08-21/250m/${z}/${y}/${x}.jpg - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - 5 - false - true - 400 - true - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Terra_Brightness_Temp_Band31_Day.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Terra_Brightness_Temp_Band31_Day.xml deleted file mode 100644 index 7311954847..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Terra_Brightness_Temp_Band31_Day.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_Brightness_Temp_Band31_Day/default/2013-08-21/1km/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 4 - 5 - false - true - 400 - true - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Terra_CorrectedReflectance_TrueColor.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Terra_CorrectedReflectance_TrueColor.xml deleted file mode 100644 index 3d9b24822d..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Terra_CorrectedReflectance_TrueColor.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_CorrectedReflectance_TrueColor/default/2013-08-21/250m/${z}/${y}/${x}.jpg - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - 5 - false - true - 400 - true - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Water_Mask.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Water_Mask.xml deleted file mode 100644 index 4abfdde13d..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/MODIS_Water_Mask.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Water_Mask/default/2013-08-21/250m/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 7 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 4 - 5 - true - 400,204,404 - true - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Reference_Features.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Reference_Features.xml deleted file mode 100644 index b4874f7db2..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Reference_Features.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/Reference_Features/default/2013-08-21/250m/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 9 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 4 - 5 - true - 400 - true - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Reference_Labels.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Reference_Labels.xml deleted file mode 100644 index 5f45a0d424..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Reference_Labels.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/Reference_Labels/default/2013-08-21/250m/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 9 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 4 - 5 - true - 400 - true - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/TERRA_CR_B143_2016-04-12.wms b/data/scene/lodglobes/earth/map_service_configs/GIBS/TERRA_CR_B143_2016-04-12.wms deleted file mode 100644 index ea8427a9a4..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/TERRA_CR_B143_2016-04-12.wms +++ /dev/null @@ -1,8 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/twms/twms.cgi? - MODIS TERRA tileset - 2016-04-12 - - 20 - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml deleted file mode 100644 index c838cf1667..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml +++ /dev/null @@ -1,28 +0,0 @@ - - 2012-05-08 - - 1d - YYYY-MM-DD - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/AMSR2_Sea_Ice_Concentration_12km/default/${OpenSpaceTimeId}/2km/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - true - 400 - true - - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_Aqua_Orbit_Asc.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_Aqua_Orbit_Asc.xml deleted file mode 100644 index a0c7ed6f8f..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_Aqua_Orbit_Asc.xml +++ /dev/null @@ -1,33 +0,0 @@ - - 2012-05-08 - - 1d - YYYY-MM-DD - - - 1.1.1 - https://gibs.earthdata.nasa.gov/wms/wms.php?TIME=${OpenSpaceTimeId} - EPSG:4326 - image/png - TRUE - Aqua_Orbit_Asc - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - true - 400 - true - - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature.xml deleted file mode 100644 index d28ad2d84f..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature.xml +++ /dev/null @@ -1,28 +0,0 @@ - - 2002-06-01 - - 1d - YYYY-MM-DD - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/GHRSST_L4_MUR_Sea_Surface_Temperature/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 4 - true - 400 - true - - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_MODIS_Aqua_CorrectedReflectance_TrueColor.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_MODIS_Aqua_CorrectedReflectance_TrueColor.xml deleted file mode 100644 index 1637409c25..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_MODIS_Aqua_CorrectedReflectance_TrueColor.xml +++ /dev/null @@ -1,28 +0,0 @@ - - 2012-05-08 - - 1d - YYYY-MM-DD - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Aqua_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - true - 400 - true - - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_MODIS_Terra_CorrectedReflectance_TrueColor.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_MODIS_Terra_CorrectedReflectance_TrueColor.xml deleted file mode 100644 index fb8ffbf297..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_MODIS_Terra_CorrectedReflectance_TrueColor.xml +++ /dev/null @@ -1,28 +0,0 @@ - - 2012-05-08 - - 1d - YYYY-MM-DD - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - true - 400 - true - - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml deleted file mode 100644 index 7faaa1e7e6..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml +++ /dev/null @@ -1,28 +0,0 @@ - - 2015-11-24 - Yesterday - 1d - YYYY-MM-DD - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - true - 400 - true - - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml deleted file mode 100644 index d2e093a97c..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml +++ /dev/null @@ -1,28 +0,0 @@ - - 2012-05-08 - - 1d - YYYY-MM-DD - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_DayNightBand_ENCC/default/${OpenSpaceTimeId}/500m/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - true - 400 - true - - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/VIIRS_CityLights_2012.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/VIIRS_CityLights_2012.xml deleted file mode 100644 index 5589007002..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/VIIRS_CityLights_2012.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_CityLights_2012/default/2013-08-21/500m/${z}/${y}/${x}.jpg - - - -180.0 - 90 - 396.0 - -198 - 7 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 4 - 5 - true - 400 - true - diff --git a/data/scene/lodglobes/earth/map_service_configs/GIBS/VIIRS_SNPP_CorrectedReflectance_TrueColor.xml b/data/scene/lodglobes/earth/map_service_configs/GIBS/VIIRS_SNPP_CorrectedReflectance_TrueColor.xml deleted file mode 100644 index d0ff0f3985..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/GIBS/VIIRS_SNPP_CorrectedReflectance_TrueColor.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/2016-08-21/250m/${z}/${y}/${x}.jpg - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - 5 - true - 400 - true - \ No newline at end of file diff --git a/data/scene/lodglobes/earth/map_service_configs/Utah/Bmng.wms b/data/scene/lodglobes/earth/map_service_configs/Utah/Bmng.wms deleted file mode 100644 index 3a82a1011b..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/Utah/Bmng.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Earth/Bmng/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 86400 - 43200 - 8 - top - - EPSG:4326 - 240 - 240 - 3 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/earth/map_service_configs/Utah/Gebco.wms b/data/scene/lodglobes/earth/map_service_configs/Utah/Gebco.wms deleted file mode 100644 index 98af78a869..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/Utah/Gebco.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Earth/Gebco/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 43200 - 21600 - 6 - top - - EPSG:4326 - 360 - 360 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/earth/map_service_configs/other/ASTER_GDEM_Greyscale_Shaded_Relief.xml b/data/scene/lodglobes/earth/map_service_configs/other/ASTER_GDEM_Greyscale_Shaded_Relief.xml deleted file mode 100644 index 8666bd37cc..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/other/ASTER_GDEM_Greyscale_Shaded_Relief.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - http://map1.vis.earthdata.nasa.gov/wmts-geo/ASTER_GDEM_Greyscale_Shaded_Relief/default/2016-05-16/EPSG4326_31m/${z}/${y}/${x}.jpg - - - -180.0 - 90 - 396.0 - -198 - 12 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 1 - \ No newline at end of file diff --git a/data/scene/lodglobes/earth/map_service_configs/other/Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD_temporal.xml b/data/scene/lodglobes/earth/map_service_configs/other/Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD_temporal.xml deleted file mode 100644 index 3dcf166656..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/other/Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD_temporal.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/std/wmts.cgi? - MODIS TERRA tileset - ${t} - Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD - image/jpeg - - 20 - \ No newline at end of file diff --git a/data/scene/lodglobes/earth/map_service_configs/other/MLS_O3_46hPa_Day.xml b/data/scene/lodglobes/earth/map_service_configs/other/MLS_O3_46hPa_Day.xml deleted file mode 100644 index e0dd1d4b7e..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/other/MLS_O3_46hPa_Day.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - http://map1.vis.earthdata.nasa.gov/wmts-geo/MLS_O3_46hPa_Day/default/2013-08-21/EPSG4326_2km/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 5 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 4 - \ No newline at end of file diff --git a/data/scene/lodglobes/earth/map_service_configs/other/OpenStreetMap.xml b/data/scene/lodglobes/earth/map_service_configs/other/OpenStreetMap.xml deleted file mode 100644 index 450aab0cd6..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/other/OpenStreetMap.xml +++ /dev/null @@ -1,20 +0,0 @@ - - -http://tile.openstreetmap.org/${z}/${x}/${y}.png - - --180 -90 -180 --90 -18 -1 -1 -top - -EPSG:4326 -256 -256 -3 - - \ No newline at end of file diff --git a/data/scene/lodglobes/earth/map_service_configs/other/frmt_wms_virtualearth.xml b/data/scene/lodglobes/earth/map_service_configs/other/frmt_wms_virtualearth.xml deleted file mode 100644 index 42946f0a2f..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/other/frmt_wms_virtualearth.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - http://a${server_num}.ortho.tiles.virtualearth.net/tiles/a${quadkey}.jpeg?g=90 - - 4 - diff --git a/data/scene/lodglobes/earth/map_service_configs/other/noaa_rt.xml b/data/scene/lodglobes/earth/map_service_configs/other/noaa_rt.xml deleted file mode 100644 index 717aab0070..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/other/noaa_rt.xml +++ /dev/null @@ -1,8 +0,0 @@ - - 2016-11-28T05:00:00 - 2016-12-06T04:30:00 - 30m - YYYY-MM-DDThh_mm_ssZ - - D:/NOAA/rt/imergert_composite.${OpenSpaceTimeId}.png - diff --git a/data/scene/lodglobes/earth/map_service_configs/other/test.wms b/data/scene/lodglobes/earth/map_service_configs/other/test.wms deleted file mode 100644 index 7ee62a7fc7..0000000000 --- a/data/scene/lodglobes/earth/map_service_configs/other/test.wms +++ /dev/null @@ -1,79 +0,0 @@ - - - http://192.168.1.167/OnMars/wms.cgi? - CTX Mosaic - - - -180.0 - 90.0 - 180.0 - -90.0 - bottom - - 1 - - - - - \ No newline at end of file diff --git a/data/scene/lodglobes/jupiter/callisto/callisto.data b/data/scene/lodglobes/jupiter/callisto/callisto.data deleted file mode 100644 index 9c381ecce7..0000000000 --- a/data/scene/lodglobes/jupiter/callisto/callisto.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "callisto_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/jupiter/callisto/callisto.mod b/data/scene/lodglobes/jupiter/callisto/callisto.mod deleted file mode 100644 index 9560703efa..0000000000 --- a/data/scene/lodglobes/jupiter/callisto/callisto.mod +++ /dev/null @@ -1,54 +0,0 @@ -return { - -- RenderableGlobe module - { - Name = "Callisto", - Parent = "JupiterBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_CALLISTO", - DestinationFrame = "GALACTIC", - }, - Translation = { - Type = "SpiceTranslation", - Target = "CALLISTO", - Observer = "JUPITER BARYCENTER", - Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {2631000, 2631000, 2631000}, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Callisto Texture", - FilePath = "textures/callisto.jpg", - Enabled = true, - }, - }, - }, - } - }, - -- Trail module - { - Name = "CallistoTrail", - Parent = "JupiterBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "CALLISTO", - Observer = "JUPITER BARYCENTER", - }, - Color = { 0.4, 0.3, 0.01 }, - Period = 17, - Resolution = 1000 - } - } -} diff --git a/data/scene/lodglobes/jupiter/europa/europa.data b/data/scene/lodglobes/jupiter/europa/europa.data deleted file mode 100644 index 4364fcbc49..0000000000 --- a/data/scene/lodglobes/jupiter/europa/europa.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "europa_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/jupiter/europa/europa.mod b/data/scene/lodglobes/jupiter/europa/europa.mod deleted file mode 100644 index 72a530e04d..0000000000 --- a/data/scene/lodglobes/jupiter/europa/europa.mod +++ /dev/null @@ -1,55 +0,0 @@ -return { - -- RenderableGlobe module - { - Name = "Europa", - Parent = "JupiterBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_EUROPA", - DestinationFrame = "GALACTIC", - }, - Translation = { - Type = "SpiceTranslation", - Target = "EUROPA", - Observer = "JUPITER BARYCENTER", - Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {1561000, 1561000, 1561000}, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Europa Texture", - FilePath = "textures/europa.jpg", - Enabled = true, - }, - }, - }, - } - }, - - -- Trail module - { - Name = "EuropaTrail", - Parent = "JupiterBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "EUROPA", - Observer = "JUPITER BARYCENTER", - }, - Color = { 0.5, 0.3, 0.3 }, - Period = 85 / 24, - Resolution = 1000 - } - } -} diff --git a/data/scene/lodglobes/jupiter/ganymede/ganymede.data b/data/scene/lodglobes/jupiter/ganymede/ganymede.data deleted file mode 100644 index 4ae2714582..0000000000 --- a/data/scene/lodglobes/jupiter/ganymede/ganymede.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "ganymede_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/jupiter/ganymede/ganymede.mod b/data/scene/lodglobes/jupiter/ganymede/ganymede.mod deleted file mode 100644 index 95e64fa0f5..0000000000 --- a/data/scene/lodglobes/jupiter/ganymede/ganymede.mod +++ /dev/null @@ -1,54 +0,0 @@ -return { - -- RenderableGlobe module - { - Name = "Ganymede", - Parent = "JupiterBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_GANYMEDE", - DestinationFrame = "GALACTIC", - }, - Translation = { - Type = "SpiceTranslation", - Target = "GANYMEDE", - Observer = "JUPITER BARYCENTER", - Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {2631000, 2631000, 2631000}, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Ganymede Texture", - FilePath = "textures/ganymede.jpg", - Enabled = true, - }, - }, - }, - } - }, - -- Trail module - { - Name = "GanymedeTrail", - Parent = "JupiterBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "GANYMEDE", - Observer = "JUPITER BARYCENTER", - }, - Color = { 0.4, 0.3, 0.3 }, - Period = 172 / 24, - Resolution = 1000 - } - } -} diff --git a/data/scene/lodglobes/jupiter/io/io.data b/data/scene/lodglobes/jupiter/io/io.data deleted file mode 100644 index baca863e4b..0000000000 --- a/data/scene/lodglobes/jupiter/io/io.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "io_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/jupiter/io/io.mod b/data/scene/lodglobes/jupiter/io/io.mod deleted file mode 100644 index 2891180b5c..0000000000 --- a/data/scene/lodglobes/jupiter/io/io.mod +++ /dev/null @@ -1,54 +0,0 @@ -return { - -- RenderableGlobe module - { - Name = "Io", - Parent = "JupiterBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_IO", - DestinationFrame = "GALACTIC", - }, - Translation = { - Type = "SpiceTranslation", - Target = "IO", - Observer = "JUPITER BARYCENTER", - Kernels = "${OPENSPACE_DATA}/spice/jup260.bsp" - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {1821300, 1821300, 1821300}, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Io Texture", - FilePath = "textures/io.jpg", - Enabled = true, - }, - }, - }, - } - }, - -- Trail module - { - Name = "IoTrail", - Parent = "JupiterBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "IO", - Observer = "JUPITER BARYCENTER", - }, - Color = { 0.4, 0.4, 0.2 }, - Period = 42 / 24, - Resolution = 1000 - } - } -} diff --git a/data/scene/lodglobes/jupiter/jupiter/jup260.bsp.torrent b/data/scene/lodglobes/jupiter/jupiter/jup260.bsp.torrent deleted file mode 100644 index 0c82073d38ad632e7c3de3c3330b204dfce18c91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16503 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 F{{qko?@j;! diff --git a/data/scene/lodglobes/jupiter/jupiter/jupiter.data b/data/scene/lodglobes/jupiter/jupiter/jupiter.data deleted file mode 100644 index b22e81119b..0000000000 --- a/data/scene/lodglobes/jupiter/jupiter/jupiter.data +++ /dev/null @@ -1,8 +0,0 @@ -return { - FileRequest = { - { Identifier = "jupiter_textures", Destination = "textures", Version = 1 } - }, - TorrentFiles = { - { File = "jup260.bsp.torrent", Destination = "${SPICE}" }, - } -} \ No newline at end of file diff --git a/data/scene/lodglobes/jupiter/jupiter/jupiter.mod b/data/scene/lodglobes/jupiter/jupiter/jupiter.mod deleted file mode 100644 index 206661f368..0000000000 --- a/data/scene/lodglobes/jupiter/jupiter/jupiter.mod +++ /dev/null @@ -1,65 +0,0 @@ -return { - -- Barycenter module - { - Name = "JupiterBarycenter", - Parent = "SolarSystemBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "JUPITER BARYCENTER", - Observer = "SUN", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, - }, - -- RenderableGlobe module - { - Name = "Jupiter", - Parent = "JupiterBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_JUPITER", - DestinationFrame = "GALACTIC", - }, - Translation = { - Type = "StaticTranslation", - Position = {0, 0, 0}, -- jupiter is at its barycenter - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {71492000, 71492000, 66854000}, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Jupiter Texture", - FilePath = "textures/jupiter.jpg", - Enabled = true, - }, - }, - }, - } - }, - -- Trail module - { - Name = "JupiterTrail", - Parent = "SolarSystemBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "JUPITER BARYCENTER", - Observer = "SUN", - }, - Color = { 0.8, 0.7, 0.7 }, - Period = 4330.595, - Resolution = 1000 - } - } -} \ No newline at end of file diff --git a/data/scene/lodglobes/mars/MAR063.BSP.torrent b/data/scene/lodglobes/mars/MAR063.BSP.torrent deleted file mode 100644 index 50cab2e6bf87782554f7578dbcf240682e6d0871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16463 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 V*}=#JKyT?{M{i^4O79E+{9l#z=#2mX diff --git a/data/scene/lodglobes/mars/map_service_configs/CTX_Mosaic.xml b/data/scene/lodglobes/mars/map_service_configs/CTX_Mosaic.xml deleted file mode 100644 index 0491a66bd5..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/CTX_Mosaic.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - http://wms.itn.liu.se/OnMars/wms.cgi? - CTX Mosaic - TRUE - - - -180.0 - 90.0 - 180.0 - -90.0 - 256 - 256 - - 400,204,404 - true - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/MARS_Viking.xml b/data/scene/lodglobes/mars/map_service_configs/MARS_Viking.xml deleted file mode 100644 index 7197faf38e..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/MARS_Viking.xml +++ /dev/null @@ -1,10 +0,0 @@ - - http://webgis3.wr.usgs.gov/arcgis/rest/services/Mars_color/MapServer/WMTS/1.0.0/WMTSCapabilities.xml - - -180.0 - 90 - 180.0 - -90 - - 3 - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/MARS_Viking_MDIM21.xml b/data/scene/lodglobes/mars/map_service_configs/MARS_Viking_MDIM21.xml deleted file mode 100644 index 405fc03065..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/MARS_Viking_MDIM21.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - http://d1poygwgh8gv6r.cloudfront.net/catalog/Mars_Viking_MDIM21_ClrMosaic_global_232m/1.0.0//default/default028mm/${z}/${y}/${x}.jpg - image/jpg - - - 8 - 2 - 1 - top - - EPSG:4326 - 256 - 256 - 3 - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/MDIM21_color.xml b/data/scene/lodglobes/mars/map_service_configs/MDIM21_color.xml deleted file mode 100644 index caaa46437f..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/MDIM21_color.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - 1.3.0 - http://planetarymaps.usgs.gov/cgi-bin/mapserv?map=/maps/mars/mars_simp_cyl.map - EPSG:4326 - image/png - MDIM21_color - TRUE - - - -180.0 - 90.0 - 180.0 - -90.0 - 2048 - 1024 - bottom - - - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/Mars_MGS_MOLA_DEM.xml b/data/scene/lodglobes/mars/map_service_configs/Mars_MGS_MOLA_DEM.xml deleted file mode 100644 index fbf695ecbd..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/Mars_MGS_MOLA_DEM.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - http://d1poygwgh8gv6r.cloudfront.net/catalog/Mars_MGS_MOLA_DEM_mosaic_global_463m_8/1.0.0//default/default028mm/${z}/${y}/${x}.png - image/png - - - 5 - 2 - 1 - top - - Byte - EPSG:4326 - 256 - 256 - 2 - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/Mola_Elevation.xml b/data/scene/lodglobes/mars/map_service_configs/Mola_Elevation.xml deleted file mode 100644 index c003ebf07d..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/Mola_Elevation.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - http://wms.itn.liu.se/OnMars/wms.cgi? - Mola Elevation - - - -180.0 - 90.0 - 180.0 - -90.0 - bottom - - false - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/Utah/CTX_Mosaic.xml b/data/scene/lodglobes/mars/map_service_configs/Utah/CTX_Mosaic.xml deleted file mode 100644 index 164ab0eb2f..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/Utah/CTX_Mosaic.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - http://asgard.sci.utah.edu/Mars/CTX/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 4194304 - 2097152 - 13 - top - - GEOGCS["Mars 2000", DATUM["D_Mars_2000", SPHEROID["MARS_2000_IAU_IAG",3396190.0,169.894447222361179]],PRIMEM["Greenwich"0],UNIT["Decimal_Degree",0.0174532925199433]] - 256 - 256 - 2 - 10 - 400,204,404 - true - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/Utah/Mdim.xml b/data/scene/lodglobes/mars/map_service_configs/Utah/Mdim.xml deleted file mode 100644 index acaaedae86..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/Utah/Mdim.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Mars/Mdim/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 92160 - 46080 - 7 - top - - GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 3 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/Utah/MolaCTX_Elevation.xml b/data/scene/lodglobes/mars/map_service_configs/Utah/MolaCTX_Elevation.xml deleted file mode 100644 index baa437174c..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/Utah/MolaCTX_Elevation.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - http://asgard.sci.utah.edu/MolaCTX/tile/${z}/${y}/${x} - Mola Elevation - - - -180.0 - 90.0 - 180.0 - -90.0 - bottom - - false - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/Utah/MolaPseudoColor.xml b/data/scene/lodglobes/mars/map_service_configs/Utah/MolaPseudoColor.xml deleted file mode 100644 index 494d21c5e4..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/Utah/MolaPseudoColor.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Mars/MolaPseudoColor/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 46080 - 23040 - 6 - top - - GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 3 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/Utah/Mola_Elevation.xml b/data/scene/lodglobes/mars/map_service_configs/Utah/Mola_Elevation.xml deleted file mode 100644 index 79332d59c9..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/Utah/Mola_Elevation.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - http://asgard.sci.utah.edu/Mars/MolaElevation/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 46080 - 23040 - 6 - top - - Int16 - GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/Utah/ThemisIRDay.xml b/data/scene/lodglobes/mars/map_service_configs/Utah/ThemisIRDay.xml deleted file mode 100644 index 3b7641214b..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/Utah/ThemisIRDay.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Mars/ThemisIRDay/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 213390 - 106695 - 9 - top - - GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 256 - 256 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/map_service_configs/Utah/ThemisIRNight.xml b/data/scene/lodglobes/mars/map_service_configs/Utah/ThemisIRNight.xml deleted file mode 100644 index 3b7641214b..0000000000 --- a/data/scene/lodglobes/mars/map_service_configs/Utah/ThemisIRNight.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Mars/ThemisIRDay/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 213390 - 106695 - 9 - top - - GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 256 - 256 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/mars/mars.data b/data/scene/lodglobes/mars/mars.data deleted file mode 100644 index afaf7ab69d..0000000000 --- a/data/scene/lodglobes/mars/mars.data +++ /dev/null @@ -1,8 +0,0 @@ -return { - FileRequest = { - { Identifier = "mars_textures", Destination = "textures", Version = 1 } - }, - TorrentFiles = { - -- { File = "MAR063.BSP.torrent", Destination = "${SPICE}" } - } -} \ No newline at end of file diff --git a/data/scene/lodglobes/mars/mars.mod b/data/scene/lodglobes/mars/mars.mod deleted file mode 100644 index 71f4f164c9..0000000000 --- a/data/scene/lodglobes/mars/mars.mod +++ /dev/null @@ -1,96 +0,0 @@ -local marsEllipsoid = {3396190.0, 3396190.0, 3376200.0} - -return { - -- Barycenter module - { - Name = "MarsBarycenter", - Parent = "SolarSystemBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "MARS BARYCENTER", - Observer = "SUN", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, - }, - -- RenderableGlobe module - { - Name = "Mars", - Parent = "MarsBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_MARS", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = marsEllipsoid, - SegmentsPerPatch = 90, - Layers = { - ColorLayers = { - { - Name = "Viking", - FilePath = "map_service_configs/MARS_Viking_MDIM21.xml", - Enabled = true, - }, - { - Name = "MOLA Pseudo Color", - FilePath = "map_service_configs/Utah/MolaPseudoColor.xml", - }, - { - Name = "CTX Mosaic [Europe]", - FilePath = "map_service_configs/CTX_Mosaic.xml", - BlendMode = "Color" - }, - { - Name = "CTX Mosaic [Utah]", - FilePath = "map_service_configs/Utah/CTX_Mosaic.xml", - BlendMode = "Color" - }, - }, - Overlays = { - { - Type = "TileIndexTileLayer", - Name = "Indices", - }, - { - Type = "SizeReferenceTileLayer", - Name = "Size Reference", - Radii = marsEllipsoid, - }, - }, - HeightLayers = { - { - Name = "Mola Elevation [Europe]", - FilePath = "map_service_configs/Mola_Elevation.xml", - Enabled = true, - TilePixelSize = 90, - }, - }, - }, - } - }, - -- Trail module - { - Name = "MarsTrail", - Parent = "SolarSystemBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "MARS BARYCENTER", - Observer = "SUN", - }, - Color = { 0.814, 0.305, 0.220 }, - Period = 686.973, - Resolution = 1000 - } - } -} diff --git a/data/scene/lodglobes/mercury/map_service_configs/OnMercuryColor.xml b/data/scene/lodglobes/mercury/map_service_configs/OnMercuryColor.xml deleted file mode 100644 index 4083bfbba8..0000000000 --- a/data/scene/lodglobes/mercury/map_service_configs/OnMercuryColor.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - http://192.168.1.167/OnMercury/wms.cgi? - Color 665m - - - - -180.0 - 90 - 180.0 - -90 - 20 - 2 - 1 - top - - 5 - 512 - 512 - \ No newline at end of file diff --git a/data/scene/lodglobes/mercury/map_service_configs/OnMercuryElevationGaskell.xml b/data/scene/lodglobes/mercury/map_service_configs/OnMercuryElevationGaskell.xml deleted file mode 100644 index 0563b2d018..0000000000 --- a/data/scene/lodglobes/mercury/map_service_configs/OnMercuryElevationGaskell.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - http://192.168.1.167/OnMercury/wms.cgi? - - Elevation 16bit, Gaskell - - - -180.0 - 90 - 180.0 - -90 - 8 - 2 - 1 - top - - 512 - 512 - \ No newline at end of file diff --git a/data/scene/lodglobes/mercury/map_service_configs/OnMercuryImage.xml b/data/scene/lodglobes/mercury/map_service_configs/OnMercuryImage.xml deleted file mode 100644 index d50931e40e..0000000000 --- a/data/scene/lodglobes/mercury/map_service_configs/OnMercuryImage.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - http://192.168.1.167/OnMercury/wms.cgi? - Mercury Image - - - - -180.0 - 90 - 180.0 - -90 - 20 - 2 - 1 - top - - 512 - 512 - \ No newline at end of file diff --git a/data/scene/lodglobes/mercury/map_service_configs/Utah/MessengerMdis.wms b/data/scene/lodglobes/mercury/map_service_configs/Utah/MessengerMdis.wms deleted file mode 100644 index 5b5a765ef4..0000000000 --- a/data/scene/lodglobes/mercury/map_service_configs/Utah/MessengerMdis.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Mercury/MessengerMdis/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 61324 - 30662 - 7 - top - - GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 256 - 256 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/mercury/map_service_configs/Utah/MessengerMosaic.wms b/data/scene/lodglobes/mercury/map_service_configs/Utah/MessengerMosaic.wms deleted file mode 100644 index 9152deb1e0..0000000000 --- a/data/scene/lodglobes/mercury/map_service_configs/Utah/MessengerMosaic.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Mercury/MessengerMosaic/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 23054 - 11527 - 6 - top - - GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 256 - 256 - 3 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/mercury/mercury.data b/data/scene/lodglobes/mercury/mercury.data deleted file mode 100644 index f2df36620b..0000000000 --- a/data/scene/lodglobes/mercury/mercury.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "mercury_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/mercury/mercury.mod b/data/scene/lodglobes/mercury/mercury.mod deleted file mode 100644 index db7acbaaea..0000000000 --- a/data/scene/lodglobes/mercury/mercury.mod +++ /dev/null @@ -1,74 +0,0 @@ -return { - -- Barycenter module - { - Name = "MercuryBarycenter", - Parent = "SolarSystemBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "MERCURY", - Observer = "SUN", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, - }, - -- RenderableGlobe module - { - Name = "Mercury", - Parent = "MercuryBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_MERCURY", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {2439700, 2439700.0, 2439700.0}, - Frame = "IAU_MERCURY", - Body = "MERCURY", - - CameraMinHeight = 300, - InteractionDepthBelowEllipsoid = 0, -- Useful when having negative height map values - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Simple Texture", - FilePath = "textures/mercury.jpg", - Enabled = true, - }, - { - Name = "Messenger_Mosaic", - FilePath = "map_service_configs/Utah/MessengerMosaic.wms" - }, - { - Name = "Messenger_MDIS", - FilePath = "map_service_configs/Utah/MessengerMDIS.wms" - } - }, - }, - }, - }, - -- Trail module - { - Name = "MercuryTrail", - Parent = "SolarSystemBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "MERCURY", - Observer = "SUN", - }, - Color = {0.6, 0.5, 0.5 }, - Period = 87.968, - Resolution = 100 - } - } -} diff --git a/data/scene/lodglobes/moon/map_service_configs/OnMoonColor.xml b/data/scene/lodglobes/moon/map_service_configs/OnMoonColor.xml deleted file mode 100644 index 458fdab892..0000000000 --- a/data/scene/lodglobes/moon/map_service_configs/OnMoonColor.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - http://onmoon.lmmp.nasa.gov/wms.cgi? - LRO WAC Mosaic, LMMP - - - - - - -180.0 - 90 - 180.0 - -90 - 20 - 2 - 1 - top - - 512 - 512 - true - 400 - true - \ No newline at end of file diff --git a/data/scene/lodglobes/moon/map_service_configs/OnMoonHeight.xml b/data/scene/lodglobes/moon/map_service_configs/OnMoonHeight.xml deleted file mode 100644 index 3f0934091c..0000000000 --- a/data/scene/lodglobes/moon/map_service_configs/OnMoonHeight.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - http://onmoon.lmmp.nasa.gov/raw/wms.cgi? - Lunar Elevation v2, half meters - - - - -180.0 - 90 - 180.0 - -90 - 24 - 2 - 1 - top - - true - 400 - true - \ No newline at end of file diff --git a/data/scene/lodglobes/moon/map_service_configs/Utah/ClemUvvis.wms b/data/scene/lodglobes/moon/map_service_configs/Utah/ClemUvvis.wms deleted file mode 100644 index 3340bb4fe7..0000000000 --- a/data/scene/lodglobes/moon/map_service_configs/Utah/ClemUvvis.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Moon/ClemUvvis/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 92160 - 46080 - 7 - top - - GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/moon/map_service_configs/Utah/Kaguya.wms b/data/scene/lodglobes/moon/map_service_configs/Utah/Kaguya.wms deleted file mode 100644 index 2e64c499ef..0000000000 --- a/data/scene/lodglobes/moon/map_service_configs/Utah/Kaguya.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Moon/Kaguya/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 1474560 - 737280 - 11 - top - - GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/moon/map_service_configs/Utah/LolaClrShade.wms b/data/scene/lodglobes/moon/map_service_configs/Utah/LolaClrShade.wms deleted file mode 100644 index 82f9289f36..0000000000 --- a/data/scene/lodglobes/moon/map_service_configs/Utah/LolaClrShade.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Moon/LolaClrShade/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 92160 - 46080 - 7 - top - - GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 3 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/moon/map_service_configs/Utah/LolaDem.wms b/data/scene/lodglobes/moon/map_service_configs/Utah/LolaDem.wms deleted file mode 100644 index 9465278db8..0000000000 --- a/data/scene/lodglobes/moon/map_service_configs/Utah/LolaDem.wms +++ /dev/null @@ -1,21 +0,0 @@ - - - http://asgard.sci.utah.edu/Moon/LolaDem/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 92160 - 46080 - 7 - top - - Int16 - GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/moon/map_service_configs/Utah/LolaShade.wms b/data/scene/lodglobes/moon/map_service_configs/Utah/LolaShade.wms deleted file mode 100644 index 4d25cf262f..0000000000 --- a/data/scene/lodglobes/moon/map_service_configs/Utah/LolaShade.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Moon/LolaShade/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 92160 - 46080 - 7 - top - - GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/moon/map_service_configs/Utah/UvvisHybrid.wms b/data/scene/lodglobes/moon/map_service_configs/Utah/UvvisHybrid.wms deleted file mode 100644 index 2b9a199ba6..0000000000 --- a/data/scene/lodglobes/moon/map_service_configs/Utah/UvvisHybrid.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Moon/UvvisHybrid/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 184320 - 92160 - 8 - top - - GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/moon/map_service_configs/Utah/Wac.wms b/data/scene/lodglobes/moon/map_service_configs/Utah/Wac.wms deleted file mode 100644 index 1085bbda66..0000000000 --- a/data/scene/lodglobes/moon/map_service_configs/Utah/Wac.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://asgard.sci.utah.edu/Moon/Wac/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 109164 - 54582 - 8 - top - - GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 256 - 256 - 1 - 10 - \ No newline at end of file diff --git a/data/scene/lodglobes/moon/moon.data b/data/scene/lodglobes/moon/moon.data deleted file mode 100644 index f8c7094165..0000000000 --- a/data/scene/lodglobes/moon/moon.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "moon_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/moon/moon.mod b/data/scene/lodglobes/moon/moon.mod deleted file mode 100644 index 88fcaed569..0000000000 --- a/data/scene/lodglobes/moon/moon.mod +++ /dev/null @@ -1,71 +0,0 @@ -return { - -- Moon module - { - Name = "Moon", - Parent = "EarthBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "MOON", - Observer = "EARTH BARYCENTER", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_MOON", - DestinationFrame = "GALACTIC" - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {1738140, 1738140, 1735970}, -- Moons's radius - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "OnMoonColorGrayscale", - FilePath = "map_service_configs/OnMoonColor.xml", - Enabled = true, - }, - { - Name = "ClemUvvis", - FilePath = "map_service_configs/Utah/ClemUvvis.wms" - }, - { - Name = "Kaguya", - FilePath = "map_service_configs/Utah/Kaguya.wms" - }, - { - Name = "WAC", - FilePath = "map_service_configs/Utah/Wac.wms" - } - }, - HeightLayers = { - { - Name = "LolaDem", - FilePath = "map_service_configs/Utah/LolaDem.wms", - Enabled = true, - TilePixelSize = 64, - Settings = { Multiplier = 0.5 }, - } - }, - }, - } - }, - -- MoonTrail module - { - Name = "MoonTrail", - Parent = "EarthBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "MOON", - Observer = "EARTH BARYCENTER", - }, - Color = { 0.5, 0.3, 0.3 }, - Period = 27, - Resolution = 1000 - }, - } -} diff --git a/data/scene/lodglobes/neptune/neptune.data b/data/scene/lodglobes/neptune/neptune.data deleted file mode 100644 index 60b294047e..0000000000 --- a/data/scene/lodglobes/neptune/neptune.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "neptune_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/neptune/neptune.mod b/data/scene/lodglobes/neptune/neptune.mod deleted file mode 100644 index 12064b44f2..0000000000 --- a/data/scene/lodglobes/neptune/neptune.mod +++ /dev/null @@ -1,62 +0,0 @@ -return { - -- Barycenter module - { - Name = "NeptuneBarycenter", - Parent = "SolarSystemBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "NEPTUNE BARYCENTER", - Observer = "SUN", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, - }, - -- RenderableGlobe module - { - Name = "Neptune", - Parent = "NeptuneBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_NEPTUNE", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - -- No translation, Neptune is in its barycenter - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {24764000, 24764000, 24314000}, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Texture", - FilePath = "textures/neptune.jpg", - Enabled = true, - }, - }, - }, - }, - }, - -- Trail module - { - Name = "NeptuneTrail", - Parent = "SolarSystemBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "NEPTUNE BARYCENTER", - Observer = "SUN", - }, - Color = {0.2, 0.5, 1.0 }, - Period = 60200, - Resolution = 1000 - }, - } -} diff --git a/data/scene/lodglobes/saturn/saturn.data b/data/scene/lodglobes/saturn/saturn.data deleted file mode 100644 index cf0748dfc1..0000000000 --- a/data/scene/lodglobes/saturn/saturn.data +++ /dev/null @@ -1,8 +0,0 @@ -return { - FileRequest = { - { Identifier = "saturn_textures", Destination = "textures", Version = 2 } - }, - TorrentFiles = { - { File = "sat375.bsp.torrent", Destination = "${SPICE}" }, - } -} \ No newline at end of file diff --git a/data/scene/lodglobes/saturn/saturn.mod b/data/scene/lodglobes/saturn/saturn.mod deleted file mode 100644 index 607a75aad9..0000000000 --- a/data/scene/lodglobes/saturn/saturn.mod +++ /dev/null @@ -1,72 +0,0 @@ -return { - -- Barycenter module - { - Name = "SaturnBarycenter", - Parent = "SolarSystemBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "SATURN BARYCENTER", - Observer = "SUN", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, - }, - -- RenderableGlobe module - { - Name = "Saturn", - Parent = "SaturnBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_SATURN", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - -- No translation, Saturn is in its barycenter - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {60268000, 60268000, 54364000}, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Saturn Texture", - FilePath = "textures/saturn.jpg", - Enabled = true, - }, - }, - }, - }, - }, - { - Name = "SaturnRings", - Parent = "Saturn", - Renderable = { - Type = "RenderableRings", - Texture = "textures/saturn_rings.png", - Size = 140220000, - Offset = { 74500 / 140445.100671159, 1.0 } -- min / max extend - }, - }, - -- Trail module - { - Name = "SaturnTrail", - Parent = "SolarSystemBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "SATURN BARYCENTER", - Observer = "SUN", - }, - Color = {0.85,0.75,0.51 }, - Period = 10746.94, - Resolution = 1000 - }, - } -} diff --git a/data/scene/lodglobes/uranus/uranus.data b/data/scene/lodglobes/uranus/uranus.data deleted file mode 100644 index 1260617597..0000000000 --- a/data/scene/lodglobes/uranus/uranus.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "uranus_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/uranus/uranus.mod b/data/scene/lodglobes/uranus/uranus.mod deleted file mode 100644 index 66b585db1e..0000000000 --- a/data/scene/lodglobes/uranus/uranus.mod +++ /dev/null @@ -1,62 +0,0 @@ -return { - -- Barycenter module - { - Name = "UranusBarycenter", - Parent = "SolarSystemBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "URANUS BARYCENTER", - Observer = "SUN", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, - }, - -- RenderableGlobe module - { - Name = "Uranus", - Parent = "UranusBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_URANUS", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - -- No translation, Uranus is in its barycenter - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {25559000, 25559000, 24973000}, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Texture", - FilePath = "textures/uranus.jpg", - Enabled = true, - }, - }, - }, - }, - }, - -- Trail module - { - Name = "UranusTrail", - Parent = "SolarSystemBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "URANUS BARYCENTER", - Observer = "SUN", - }, - Color = {0.60, 0.95, 1.00 }, - Period = 30588.740, - Resolution = 1000 - }, - } -} diff --git a/data/scene/lodglobes/venus/venus.data b/data/scene/lodglobes/venus/venus.data deleted file mode 100644 index 07753359f6..0000000000 --- a/data/scene/lodglobes/venus/venus.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "venus_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/lodglobes/venus/venus.mod b/data/scene/lodglobes/venus/venus.mod deleted file mode 100644 index 06ff785391..0000000000 --- a/data/scene/lodglobes/venus/venus.mod +++ /dev/null @@ -1,67 +0,0 @@ -return { - -- Barycenter module - { - Name = "VenusBarycenter", - Parent = "SolarSystemBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "VENUS BARYCENTER", - Observer = "SUN", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, - }, - -- RenderableGlobe module - { - Name = "Venus", - Parent = "VenusBarycenter", - Transform = { - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_VENUS", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - Translation = { - Type = "SpiceTranslation", - Target = "VENUS", - Observer = "VENUS BARYCENTER", - Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, - }, - Renderable = { - Type = "RenderableGlobe", - Radii = {6051900, 6051900, 6051800}, - SegmentsPerPatch = 64, - Layers = { - ColorLayers = { - { - Name = "Venus Texture", - FilePath = "textures/venus.jpg", - Enabled = true, - }, - }, - }, - }, - }, - -- Trail module - { - Name = "VenusTrail", - Parent = "SolarSystemBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "VENUS BARYCENTER", - Observer = "SUN", - }, - Color = { 1.0, 0.5, 0.2 }, - Period = 224.695, - Resolution = 1000 - }, - } -} diff --git a/data/scene/mars/mars.mod b/data/scene/mars/mars.mod index ea2b1200d1..dbcaf7838f 100644 --- a/data/scene/mars/mars.mod +++ b/data/scene/mars/mars.mod @@ -1,5 +1,7 @@ +local marsEllipsoid = {3396190.0, 3396190.0, 3376200.0} + return { - -- Mars barycenter module + -- Barycenter module { Name = "MarsBarycenter", Parent = "SolarSystemBarycenter", @@ -12,35 +14,68 @@ return { } } }, - -- Mars module + -- RenderableGlobe module { Name = "Mars", Parent = "MarsBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_MARS", - Body = "MARS BARYCENTER", - Geometry = { - Type = "SimpleSphere", - Radius = 6.390E6, - Segments = 100 - }, - ColorTexture = "textures/mars.jpg", - }, - Tag = {"planet_solarSystem", "planet_terrestrial"}, Transform = { Rotation = { Type = "SpiceRotation", SourceFrame = "IAU_MARS", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - } + DestinationFrame = "GALACTIC" + } + }, + Renderable = { + Type = "RenderableGlobe", + Radii = marsEllipsoid, + SegmentsPerPatch = 90, + Layers = { + ColorLayers = { + { + Name = "Viking", + FilePath = "map_service_configs/MARS_Viking_MDIM21.xml", + Enabled = true, + }, + { + Name = "MOLA Pseudo Color", + FilePath = "map_service_configs/Utah/MolaPseudoColor.xml" + }, + { + Name = "CTX Mosaic [Europe]", + FilePath = "map_service_configs/CTX_Mosaic.xml", + BlendMode = "Color" + }, + { + Name = "CTX Mosaic [Utah]", + FilePath = "map_service_configs/Utah/CTX_Mosaic.xml", + BlendMode = "Color" + } + }, + Overlays = { + { + Type = "TileIndexTileLayer", + Name = "Indices" + }, + { + Type = "SizeReferenceTileLayer", + Name = "Size Reference", + Radii = marsEllipsoid + } + }, + HeightLayers = { + { + Name = "Mola Elevation [Europe]", + FilePath = "map_service_configs/Mola_Elevation.xml", + Enabled = true, + TilePixelSize = 90 + } + } + } + }, + Tag = { "planet_solarSystem", "planet_terrestrial" }, }, - -- MarsTrail module + + -- Trail module { Name = "MarsTrail", Parent = "SolarSystemBarycenter", @@ -49,12 +84,12 @@ return { Translation = { Type = "SpiceTranslation", Target = "MARS BARYCENTER", - Observer = "SUN", + Observer = "SUN" }, Color = { 0.814, 0.305, 0.220 }, Period = 686.973, - Resolution = 1000, - Tag = {"planetTrail_solarSystem", "planetTrail_terrestrial"} - } + Resolution = 1000 + }, + Tag = { "planetTrail_solarSystem", "planetTrail_terrestrial" } } } diff --git a/data/scene/mercury/mercury.data b/data/scene/mercury/mercury.data deleted file mode 100644 index f2df36620b..0000000000 --- a/data/scene/mercury/mercury.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "mercury_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/mercury/mercury.mod b/data/scene/mercury/mercury.mod index 59c2708f5d..7f825463d8 100644 --- a/data/scene/mercury/mercury.mod +++ b/data/scene/mercury/mercury.mod @@ -1,46 +1,52 @@ return { - -- Mercury barycenter module + -- Barycenter module { Name = "MercuryBarycenter", Parent = "SolarSystemBarycenter", Transform = { Translation = { Type = "SpiceTranslation", - Target = "MERCURY BARYCENTER", + Target = "MERCURY", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, + } } }, - -- Mercury module + -- RenderableGlobe module { Name = "Mercury", Parent = "MercuryBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_MERCURY", - Body = "MERCURY", - Geometry = { - Type = "SimpleSphere", - Radius = 2.4397E6, - Segments = 100 - }, - ColorTexture = "textures/mercury.jpg", - }, - Tag = {"planet_solarSystem", "planet_terrestrial"}, Transform = { Rotation = { Type = "SpiceRotation", SourceFrame = "IAU_MERCURY", - DestinationFrame = "ECLIPJ2000", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - } + DestinationFrame = "GALACTIC" + } + }, + Renderable = { + Type = "RenderableGlobe", + Radii = 2439700, + Frame = "IAU_MERCURY", + Body = "MERCURY", + CameraMinHeight = 300, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Messenger_MDIS", + FilePath = "map_service_configs/Utah/MessengerMDIS.wms", + Enabled = true + }, + { + Name = "Messenger_Mosaic", + FilePath = "map_service_configs/Utah/MessengerMosaic.wms" + } + } + } + }, + Tag = { "planet_solarSystem", "planet_terrestrial" }, }, - -- MercuryTrail module + -- Trail module { Name = "MercuryTrail", Parent = "SolarSystemBarycenter", @@ -53,8 +59,8 @@ return { }, Color = {0.6, 0.5, 0.5 }, Period = 87.968, - Resolution = 100, - Tag = {"planetTrail_solarSystem", "planetTrail_terrestrial"} - } + Resolution = 100 + }, + Tag = { "planetTrail_solarSystem", "planetTrail_terrestrial" } } } diff --git a/data/scene/moon/moon.data b/data/scene/moon/moon.data deleted file mode 100644 index f8c7094165..0000000000 --- a/data/scene/moon/moon.data +++ /dev/null @@ -1,5 +0,0 @@ -return { - FileRequest = { - { Identifier = "moon_textures", Destination = "textures", Version = 1 } - }, -} \ No newline at end of file diff --git a/data/scene/moon/moon.mod b/data/scene/moon/moon.mod index 29298049c0..6c441d2b7b 100644 --- a/data/scene/moon/moon.mod +++ b/data/scene/moon/moon.mod @@ -1,29 +1,8 @@ return { -- Moon module - { + { Name = "Moon", Parent = "EarthBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_MOON", - Body = "MOON", - Geometry = { - Type = "SimpleSphere", - Radius = 1.737E6, - Segments = 100 - }, - Shadow_Group = { - Source1 = { - Name = "Sun", - Radius = 696.3E6 - }, - Caster1 = { - Name = "Earth", - Radius = 6.371E6 - }, - }, - ColorTexture = "textures/Moon16K.dds", - }, Transform = { Translation = { Type = "SpiceTranslation", @@ -34,9 +13,44 @@ return { Rotation = { Type = "SpiceRotation", SourceFrame = "IAU_MOON", - DestinationFrame = "ECLIPJ2000" - }, + DestinationFrame = "GALACTIC" + } }, + Renderable = { + Type = "RenderableGlobe", + Radii = 1738140, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "OnMoonColorGrayscale", + FilePath = "map_service_configs/OnMoonColor.xml", + Enabled = true, + }, + { + Name = "ClemUvvis", + FilePath = "map_service_configs/Utah/ClemUvvis.wms" + }, + { + Name = "Kaguya", + FilePath = "map_service_configs/Utah/Kaguya.wms" + }, + { + Name = "WAC", + FilePath = "map_service_configs/Utah/Wac.wms" + } + }, + HeightLayers = { + { + Name = "LolaDem", + FilePath = "map_service_configs/Utah/LolaDem.wms", + Enabled = true, + TilePixelSize = 64, + Settings = { Multiplier = 0.5 }, + } + } + } + } }, -- MoonTrail module { @@ -47,11 +61,11 @@ return { Translation = { Type = "SpiceTranslation", Target = "MOON", - Observer = "EARTH BARYCENTER", + Observer = "EARTH BARYCENTER" }, Color = { 0.5, 0.3, 0.3 }, Period = 27, Resolution = 1000 - }, + } } } diff --git a/data/scene/neptune/neptune.mod b/data/scene/neptune/neptune.mod index 5ba2c55237..57448d3042 100644 --- a/data/scene/neptune/neptune.mod +++ b/data/scene/neptune/neptune.mod @@ -1,5 +1,5 @@ return { - -- Neptune barycenter module + -- Barycenter module { Name = "NeptuneBarycenter", Parent = "SolarSystemBarycenter", @@ -12,36 +12,35 @@ return { } } }, - - -- Neptune module + -- RenderableGlobe module { Name = "Neptune", Parent = "NeptuneBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_NEPTUNE", - Body = "NEPTUNE BARYCENTER", - Geometry = { - Type = "SimpleSphere", - Radius = 2.4622E7, - Segments = 100 - }, - ColorTexture = "textures/neptune.jpg", - }, - Tag = "planet_solarSystem", Transform = { Rotation = { Type = "SpiceRotation", SourceFrame = "IAU_NEPTUNE", DestinationFrame = "GALACTIC" - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - } + } + }, + Renderable = { + Type = "RenderableGlobe", + Radii = { 24764000, 24764000, 24314000 }, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Texture", + FilePath = "textures/neptune.jpg", + Enabled = true + } + } + } + }, + Tag = { "planet_solarSystem", "planet_giants" }, + }, - -- NeptuneTrail module + -- Trail module { Name = "NeptuneTrail", Parent = "SolarSystemBarycenter", @@ -50,12 +49,12 @@ return { Translation = { Type = "SpiceTranslation", Target = "NEPTUNE BARYCENTER", - Observer = "SUN", + Observer = "SUN" }, Color = {0.2, 0.5, 1.0 }, Period = 60200, - Resolution = 1000, - Tag = "planetTrail_solarSystem" - } + Resolution = 1000 + }, + Tag = { "planetTrail_solarSystem", "planetTrail_giants" } } } diff --git a/data/scene/pluto/pluto.data b/data/scene/pluto/pluto.data deleted file mode 100644 index db86c15f8c..0000000000 --- a/data/scene/pluto/pluto.data +++ /dev/null @@ -1,7 +0,0 @@ -return { - FileRequest = { - { Identifier = "charon_textures", Destination = "textures", Version = 1 }, - { Identifier = "pluto_textures", Destination = "textures", Version = 4 }, - { Identifier = "pluto_spice", Destination = "${SPICE}", Version = 1 } - } -} \ No newline at end of file diff --git a/data/scene/pluto/pluto.mod b/data/scene/pluto/pluto.mod deleted file mode 100644 index c8cbb52367..0000000000 --- a/data/scene/pluto/pluto.mod +++ /dev/null @@ -1,124 +0,0 @@ -return { - -- Pluto barycenter module - { - Name = "PlutoBarycenter", - Parent = "SolarSystemBarycenter", - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = "PLUTO BARYCENTER", - Observer = "SUN", - Kernels = { - "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp", - "${OPENSPACE_DATA}/spice/plu055.bsp", - } - } - } - }, - -- Pluto module - { - Name = "Pluto", - Parent = "PlutoBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_PLUTO", - Body = "PLUTO", - Geometry = { - Type = "SimpleSphere", - Radius = 1.173E6, - Segments = 100 - }, - ColorTexture = "textures/pluto.jpg", - }, - Transformation = { - Translation = { - Type = "SpiceTranslation", - Target = "PLUTO", - Observer = "PLUTO BARYCENTER", - Kernels = "${OPENSPACE_DATA}/spice/plu055.bsp", - }, - Rotation = { - Type = "Spice", - SourceFrame = "IAU_PLUTO", - DestinationFrame = "GALACTIC" - } - } - }, - { - Name = "Charon", - Parent = "PlutoBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_CHARON", - Body = "CHARON", - Geometry = { - Type = "SimpleSphere", - Radius = 6.035E5, - Segments = 100 - }, - ColorTexture = "textures/gray.jpg", - }, - Transformation = { - Translation = { - Type = "SpiceTranslation", - Target = "CHARON", - Observer = "PLUTO BARYCENTER", - Kernels = "${OPENSPACE_DATA}/spice/plu055.bsp", - }, - Rotation = { - Type = "Spice", - SourceFrame = "IAU_CHARON", - DestinationFrame = "GALACTIC" - } - } - }, - -- CharonTrail module - { - Name = "CharonTrail", - Parent = "PlutoBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "CHARON", - Observer = "PLUTO BARYCENTER", - }, - Color = {0.00,0.62,1.00}, - Period = 6.38725, - Resolution = 1000, - }, - }, - -- PlutoTrail module - { - Name = "PlutoTrailSolarSystem", - Parent = "SolarSystemBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "PLUTO BARYCENTER", - Observer = "SUN", - }, - Color = {0.58, 0.61, 1.00}, - Period = 247.92 * 365.242, - Resolution = 1000 - }, - GuiName = "/Solar/PlutoTrail" - }, - { - Name = "PlutoTrailPluto", - Parent = "PlutoBarycenter", - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "SpiceTranslation", - Target = "PLUTO", - Observer = "PLUTO BARYCENTER", - }, - Color = {0.58, 0.61, 1.00}, - Period = 6.38725, - Resolution = 1000 - }, - GuiName = "/Solar/PlutoTrail" - } -} diff --git a/data/scene/saturn/dione/dione.mod b/data/scene/saturn/dione/dione.mod index f11eeb7113..57517df105 100644 --- a/data/scene/saturn/dione/dione.mod +++ b/data/scene/saturn/dione/dione.mod @@ -3,15 +3,18 @@ return { Name = "Dione", Parent = "SaturnBarycenter", Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_DIONE", - Body = "DIONE", - Geometry = { - Type = "SimpleSphere", - Radius = 0.563E3, - Segments = 50 - }, - ColorTexture = "textures/dione.jpg" + Type = "RenderableGlobe", + Radii = 561400, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Dione Texture", + FilePath = "textures/dione.jpg", + Enabled = true + } + } + } }, Transform = { Translation = { @@ -42,4 +45,4 @@ return { Resolution = 1000 } } -} \ No newline at end of file +} diff --git a/data/scene/saturn/enceladus/enceladus.mod b/data/scene/saturn/enceladus/enceladus.mod index 2e547a6d45..877ffd5ac1 100644 --- a/data/scene/saturn/enceladus/enceladus.mod +++ b/data/scene/saturn/enceladus/enceladus.mod @@ -3,15 +3,18 @@ return { Name = "Enceladus", Parent = "SaturnBarycenter", Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_ENCELADUS", - Body = "ENCELADUS", - Geometry = { - Type = "SimpleSphere", - Radius = 0.257E3, - Segments = 50 - }, - ColorTexture = "textures/enceladus.jpg" + Type = "RenderableGlobe", + Radii = 252000, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Enceladus Texture", + FilePath = "textures/enceladus.jpg", + Enabled = true + } + } + } }, Transform = { Translation = { @@ -42,4 +45,4 @@ return { Resolution = 1000 } } -} \ No newline at end of file +} diff --git a/data/scene/saturn/iapetus/iapetus.mod b/data/scene/saturn/iapetus/iapetus.mod index 20dc2ddc85..077282c537 100644 --- a/data/scene/saturn/iapetus/iapetus.mod +++ b/data/scene/saturn/iapetus/iapetus.mod @@ -3,15 +3,18 @@ return { Name = "Iapetus", Parent = "SaturnBarycenter", Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_IAPETUS", - Body = "IAPETUS", - Geometry = { - Type = "SimpleSphere", - Radius = 0.746E3, - Segments = 50 - }, - ColorTexture = "textures/iapetus.jpg" + Type = "RenderableGlobe", + Radii = 734000, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Iapetus Texture", + FilePath = "textures/iapetus.jpg", + Enabled = true + } + } + } }, Transform = { Translation = { @@ -42,4 +45,4 @@ return { Resolution = 1000 } } -} \ No newline at end of file +} diff --git a/data/scene/saturn/mimas/mimas.mod b/data/scene/saturn/mimas/mimas.mod index c46f657208..3d4eb0bf4d 100644 --- a/data/scene/saturn/mimas/mimas.mod +++ b/data/scene/saturn/mimas/mimas.mod @@ -3,15 +3,18 @@ return { Name = "Mimas", Parent = "SaturnBarycenter", Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_MIMAS", - Body = "MIMAS", - Geometry = { - Type = "SimpleSphere", - Radius = 0.28E3, - Segments = 50 - }, - ColorTexture = "textures/mimas.jpg" + Type = "RenderableGlobe", + Radii = 198000, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Mimas Texture", + FilePath = "textures/mimas.jpg", + Enabled = true + } + } + } }, Transform = { Translation = { diff --git a/data/scene/saturn/rhea/rhea.mod b/data/scene/saturn/rhea/rhea.mod index 1c642c2bab..52e61ed44c 100644 --- a/data/scene/saturn/rhea/rhea.mod +++ b/data/scene/saturn/rhea/rhea.mod @@ -3,15 +3,18 @@ return { Name = "Rhea", Parent = "SaturnBarycenter", Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_RHEA", - Body = "RHEA", - Geometry = { - Type = "SimpleSphere", - Radius = 0.765E3, - Segments = 50 - }, - ColorTexture = "textures/rhea.jpg" + Type = "RenderableGlobe", + Radii = 765000, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Rhea Texture", + FilePath = "textures/rhea.jpg", + Enabled = true + } + } + } }, Transform = { Translation = { @@ -42,4 +45,4 @@ return { Resolution = 1000 } } -} \ No newline at end of file +} diff --git a/data/scene/saturn/saturn/saturn.mod b/data/scene/saturn/saturn/saturn.mod index 955e1821c6..f597dfcdb3 100644 --- a/data/scene/saturn/saturn/saturn.mod +++ b/data/scene/saturn/saturn/saturn.mod @@ -10,7 +10,7 @@ return { Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" } - }, + } }, -- Saturn module @@ -18,28 +18,27 @@ return { Name = "Saturn", Parent = "SaturnBarycenter", Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_SATURN", - Body = "SATURN BARYCENTER", - Geometry = { - Type = "SimpleSphere", - Radius = 5.8232E7, - Segments = 100 - }, - ColorTexture = "textures/saturn.jpg", + Type = "RenderableGlobe", + Radii = { 60268000, 60268000, 54364000 }, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Saturn Texture", + FilePath = "textures/saturn.jpg", + Enabled = true + } + } + } }, - Tag = "planet_solarSystem", + Tag = { "planet_solarSystem", "planet_giants" }, Transform = { Rotation = { Type = "SpiceRotation", SourceFrame = "IAU_SATURN", - DestinationFrame = "GALACTIC", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, - }, + DestinationFrame = "GALACTIC" + } + } }, { Name = "SaturnRings", @@ -49,9 +48,7 @@ return { Texture = "textures/saturn_rings.png", Size = 140220000, Offset = { 74500 / 140445.100671159, 1.0 } -- min / max extend - - }, - + } }, -- SaturnTrail module { @@ -62,12 +59,12 @@ return { Translation = { Type = "SpiceTranslation", Target = "SATURN BARYCENTER", - Observer = "SUN", + Observer = "SUN" }, Color = {0.85,0.75,0.51 }, Period = 10746.94, Resolution = 1000, - Tag = "planetTrail_solarSystem" }, + Tag = { "planetTrail_solarSystem", "planetTrail_giants" } } } diff --git a/data/scene/saturn/tethys/tethys.mod b/data/scene/saturn/tethys/tethys.mod index eef45fa450..c7c94548bc 100644 --- a/data/scene/saturn/tethys/tethys.mod +++ b/data/scene/saturn/tethys/tethys.mod @@ -3,15 +3,18 @@ return { Name = "Tethys", Parent = "SaturnBarycenter", Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_TETHYS", - Body = "TETHYS", - Geometry = { - Type = "SimpleSphere", - Radius = 0.538E3, - Segments = 50 - }, - ColorTexture = "textures/tethys.jpg" + Type = "RenderableGlobe", + Radii = 531100, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Tethys Texture", + FilePath = "textures/tethys.jpg", + Enabled = true + } + } + } }, Transform = { Translation = { @@ -42,4 +45,4 @@ return { Resolution = 1000 } } -} \ No newline at end of file +} diff --git a/data/scene/saturn/titan/titan.mod b/data/scene/saturn/titan/titan.mod index 705de12cad..47f20679c7 100644 --- a/data/scene/saturn/titan/titan.mod +++ b/data/scene/saturn/titan/titan.mod @@ -3,16 +3,19 @@ return { Name = "Titan", Parent = "SaturnBarycenter", Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_TITAN", - Body = "TITAN", - Geometry = { - Type = "SimpleSphere", - Radius = 0.2575E4, - Segments = 50 - }, - ColorTexture = "textures/titan.jpg" - }, + Type = "RenderableGlobe", + Radii = 2576000, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Titan Texture", + FilePath = "textures/titan.jpg", + Enabled = true + } + } + } + }, Transform = { Translation = { Type = "SpiceTranslation", @@ -42,4 +45,4 @@ return { Resolution = 1000 } } -} \ No newline at end of file +} diff --git a/data/scene/uranus/uranus.mod b/data/scene/uranus/uranus.mod index 8d63b8f740..648a60f943 100644 --- a/data/scene/uranus/uranus.mod +++ b/data/scene/uranus/uranus.mod @@ -1,5 +1,5 @@ return { - -- Uranus barycenter module + -- Barycenter module { Name = "UranusBarycenter", Parent = "SolarSystemBarycenter", @@ -9,40 +9,37 @@ return { Target = "URANUS BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, + } } }, - - -- Uranus module + -- RenderableGlobe module { Name = "Uranus", Parent = "UranusBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_URANUS", - Body = "URANUS BARYCENTER", - Geometry = { - Type = "SimpleSphere", - Radius = 2.5362E7, - Segments = 100 - }, - ColorTexture = "textures/uranus.jpg", - }, - Tag = "planet_solarSystem", Transform = { Rotation = { Type = "SpiceRotation", SourceFrame = "IAU_URANUS", - DestinationFrame = "ECLIPJ2000", - }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, + DestinationFrame = "GALACTIC" + } }, + Renderable = { + Type = "RenderableGlobe", + Radii = { 25559000, 25559000, 24973000 }, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Texture", + FilePath = "textures/uranus.jpg", + Enabled = true + } + } + } + }, + Tag = { "planet_solarSystem", "planet_giants" } }, - - -- UranusTrail module + -- Trail module { Name = "UranusTrail", Parent = "SolarSystemBarycenter", @@ -51,12 +48,12 @@ return { Translation = { Type = "SpiceTranslation", Target = "URANUS BARYCENTER", - Observer = "SUN", + Observer = "SUN" }, Color = {0.60, 0.95, 1.00 }, Period = 30588.740, - Resolution = 1000, - Tag = "planetTrail_solarSystem" - } + Resolution = 1000 + }, + Tag = { "planetTrail_solarSystem", "planetTrail_giants" } } } diff --git a/data/scene/venus/venus.mod b/data/scene/venus/venus.mod index 16a08f7d76..60a095ad9d 100644 --- a/data/scene/venus/venus.mod +++ b/data/scene/venus/venus.mod @@ -1,5 +1,5 @@ return { - -- Venus barycenter module + -- Barycenter module { Name = "VenusBarycenter", Parent = "SolarSystemBarycenter", @@ -9,41 +9,44 @@ return { Target = "VENUS BARYCENTER", Observer = "SUN", Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" - }, + } } }, - - -- Venus module + -- RenderableGlobe module { Name = "Venus", Parent = "VenusBarycenter", - Renderable = { - Type = "RenderablePlanet", - Frame = "IAU_VENUS", - Body = "VENUS", - Geometry = { - Type = "SimpleSphere", - Radius = 3.760E6, - Segments = 100 - }, - ColorTexture = "textures/venus.jpg", - }, - Tag = {"planet_solarSystem", "planet_terrestrial"}, Transform = { Rotation = { Type = "SpiceRotation", SourceFrame = "IAU_VENUS", DestinationFrame = "GALACTIC" }, - Scale = { - Type = "StaticScale", - Scale = 1, - }, + Translation = { + Type = "SpiceTranslation", + Target = "VENUS", + Observer = "VENUS BARYCENTER", + Kernels = "${OPENSPACE_DATA}/spice/de430_1850-2150.bsp" + } }, + Renderable = { + Type = "RenderableGlobe", + Radii = { 6051900, 6051900, 6051800 }, + SegmentsPerPatch = 64, + Layers = { + ColorLayers = { + { + Name = "Venus Texture", + FilePath = "textures/venus.jpg", + Enabled = true + } + } + } + }, + Tag = { "planet_solarSystem", "planet_terrestrial" }, }, - - -- VenusTrail module - { + -- Trail module + { Name = "VenusTrail", Parent = "SolarSystemBarycenter", Renderable = { @@ -51,12 +54,12 @@ return { Translation = { Type = "SpiceTranslation", Target = "VENUS BARYCENTER", - Observer = "SUN", + Observer = "SUN" }, Color = { 1.0, 0.5, 0.2 }, Period = 224.695, - Resolution = 1000, - Tag = {"planetTrail_solarSystem", "planetTrail_terrestrial"} - } + Resolution = 1000 + }, + Tag = { "planetTrail_solarSystem", "planetTrail_terrestrial" } } } diff --git a/include/openspace/properties/numericalproperty.inl b/include/openspace/properties/numericalproperty.inl index 0c524a3b0c..79d2f13b23 100644 --- a/include/openspace/properties/numericalproperty.inl +++ b/include/openspace/properties/numericalproperty.inl @@ -27,7 +27,7 @@ namespace openspace::properties { #define REGISTER_NUMERICALPROPERTY_HEADER(CLASS_NAME, TYPE) \ - typedef NumericalProperty CLASS_NAME; \ + using CLASS_NAME = NumericalProperty; \ \ template <> \ std::string PropertyDelegate>::className(); \ diff --git a/modules/globebrowsing/globes/renderableglobe.cpp b/modules/globebrowsing/globes/renderableglobe.cpp index 632c03fcb7..71e3c0fa57 100644 --- a/modules/globebrowsing/globes/renderableglobe.cpp +++ b/modules/globebrowsing/globes/renderableglobe.cpp @@ -186,10 +186,16 @@ RenderableGlobe::RenderableGlobe(const ghoul::Dictionary& dictionary) dictionary.getValue(keyFrame, _frame); // Read the radii in to its own dictionary - glm::dvec3 radii; - dictionary.getValue(keyRadii, radii); - _ellipsoid = Ellipsoid(radii); - setBoundingSphere(static_cast(_ellipsoid.maximumRadius())); + if (dictionary.hasKeyAndValue(keyRadii)) { + const glm::dvec3 radii = dictionary.value(keyRadii); + _ellipsoid = Ellipsoid(radii); + setBoundingSphere(static_cast(_ellipsoid.maximumRadius())); + } + else if (dictionary.hasKeyAndValue(keyRadii)) { + const double radius = dictionary.value(keyRadii); + _ellipsoid = Ellipsoid({ radius, radius, radius }); + setBoundingSphere(static_cast(_ellipsoid.maximumRadius())); + } // Ghoul can't read ints from lua dictionaries... double patchSegmentsd; diff --git a/openspace.cfg b/openspace.cfg index 1843f47a02..12db70bccb 100644 --- a/openspace.cfg +++ b/openspace.cfg @@ -30,7 +30,6 @@ return { -- Sets the scene that is to be loaded by OpenSpace. A scene file is a description -- of all entities that will be visible during an instance of OpenSpace Scene = "${SCENE}/default.scene", - -- Scene = "${SCENE}/globebrowsing.scene", -- Scene = "${SCENE}/newhorizons.scene", -- Scene = "${SCENE}/rosetta.scene", -- Scene = "${SCENE}/osirisrex.scene", From e64a4b607930f7a09d68b572f2be38ee0a7b7ba1 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Thu, 27 Jul 2017 17:54:44 -0400 Subject: [PATCH 15/51] More scene cleanup --- data/scene/common/textures/arrows.png | Bin 0 -> 20377 bytes .../scene/{ => deprecated}/batsrus/batsrus.mod | 0 .../{ => deprecated}/batsrus/psampler.glsl | 0 .../{ => deprecated}/batsrus/rhosampler.glsl | 0 .../batsrus/transferfunctions/p.txt | 0 .../batsrus/transferfunctions/rho.txt | 0 data/scene/{ => deprecated}/enlil/enlil.cl | 0 data/scene/{ => deprecated}/enlil/enlil.mod | 0 data/scene/{ => deprecated}/enlil/sampler.glsl | 0 .../enlil/transferfunctions/t1.txt | 0 .../enlil/transferfunctions/t2.txt | 0 .../scene/{ => deprecated}/enlilnh/enlilnh.mod | 0 .../enlilnh/transferfunctions/fire.txt | 0 .../flare/TSPTraversal_cs.glsl | 0 .../flare/TSPTraversal_fs.glsl | 0 data/scene/{ => deprecated}/flare/fire.txt | 0 data/scene/{ => deprecated}/flare/flare.mod | 0 .../{ => deprecated}/flare/helpers_cs.hglsl | 0 .../{ => deprecated}/flare/passthrough_vs.glsl | 0 .../flare/raycasterTSP_cs.glsl | 0 .../flare/raycasterTSP_fs.glsl | 0 data/scene/grids/gridEcliptic/gridEcliptic.mod | 17 ----------------- .../grids/gridEquatorial/gridEquatorial.mod | 17 ----------------- data/scene/grids/gridGalactic/gridGalactic.mod | 17 ----------------- 24 files changed, 51 deletions(-) create mode 100644 data/scene/common/textures/arrows.png rename data/scene/{ => deprecated}/batsrus/batsrus.mod (100%) rename data/scene/{ => deprecated}/batsrus/psampler.glsl (100%) rename data/scene/{ => deprecated}/batsrus/rhosampler.glsl (100%) rename data/scene/{ => deprecated}/batsrus/transferfunctions/p.txt (100%) rename data/scene/{ => deprecated}/batsrus/transferfunctions/rho.txt (100%) rename data/scene/{ => deprecated}/enlil/enlil.cl (100%) rename data/scene/{ => deprecated}/enlil/enlil.mod (100%) rename data/scene/{ => deprecated}/enlil/sampler.glsl (100%) rename data/scene/{ => deprecated}/enlil/transferfunctions/t1.txt (100%) rename data/scene/{ => deprecated}/enlil/transferfunctions/t2.txt (100%) rename data/scene/{ => deprecated}/enlilnh/enlilnh.mod (100%) rename data/scene/{ => deprecated}/enlilnh/transferfunctions/fire.txt (100%) rename data/scene/{ => deprecated}/flare/TSPTraversal_cs.glsl (100%) rename data/scene/{ => deprecated}/flare/TSPTraversal_fs.glsl (100%) rename data/scene/{ => deprecated}/flare/fire.txt (100%) rename data/scene/{ => deprecated}/flare/flare.mod (100%) rename data/scene/{ => deprecated}/flare/helpers_cs.hglsl (100%) rename data/scene/{ => deprecated}/flare/passthrough_vs.glsl (100%) rename data/scene/{ => deprecated}/flare/raycasterTSP_cs.glsl (100%) rename data/scene/{ => deprecated}/flare/raycasterTSP_fs.glsl (100%) delete mode 100644 data/scene/grids/gridEcliptic/gridEcliptic.mod delete mode 100644 data/scene/grids/gridEquatorial/gridEquatorial.mod delete mode 100644 data/scene/grids/gridGalactic/gridGalactic.mod diff --git a/data/scene/common/textures/arrows.png b/data/scene/common/textures/arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..d10df6684c618aff5de9313b84132b809b60255f GIT binary patch literal 20377 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 literal 0 HcmV?d00001 diff --git a/data/scene/batsrus/batsrus.mod b/data/scene/deprecated/batsrus/batsrus.mod similarity index 100% rename from data/scene/batsrus/batsrus.mod rename to data/scene/deprecated/batsrus/batsrus.mod diff --git a/data/scene/batsrus/psampler.glsl b/data/scene/deprecated/batsrus/psampler.glsl similarity index 100% rename from data/scene/batsrus/psampler.glsl rename to data/scene/deprecated/batsrus/psampler.glsl diff --git a/data/scene/batsrus/rhosampler.glsl b/data/scene/deprecated/batsrus/rhosampler.glsl similarity index 100% rename from data/scene/batsrus/rhosampler.glsl rename to data/scene/deprecated/batsrus/rhosampler.glsl diff --git a/data/scene/batsrus/transferfunctions/p.txt b/data/scene/deprecated/batsrus/transferfunctions/p.txt similarity index 100% rename from data/scene/batsrus/transferfunctions/p.txt rename to data/scene/deprecated/batsrus/transferfunctions/p.txt diff --git a/data/scene/batsrus/transferfunctions/rho.txt b/data/scene/deprecated/batsrus/transferfunctions/rho.txt similarity index 100% rename from data/scene/batsrus/transferfunctions/rho.txt rename to data/scene/deprecated/batsrus/transferfunctions/rho.txt diff --git a/data/scene/enlil/enlil.cl b/data/scene/deprecated/enlil/enlil.cl similarity index 100% rename from data/scene/enlil/enlil.cl rename to data/scene/deprecated/enlil/enlil.cl diff --git a/data/scene/enlil/enlil.mod b/data/scene/deprecated/enlil/enlil.mod similarity index 100% rename from data/scene/enlil/enlil.mod rename to data/scene/deprecated/enlil/enlil.mod diff --git a/data/scene/enlil/sampler.glsl b/data/scene/deprecated/enlil/sampler.glsl similarity index 100% rename from data/scene/enlil/sampler.glsl rename to data/scene/deprecated/enlil/sampler.glsl diff --git a/data/scene/enlil/transferfunctions/t1.txt b/data/scene/deprecated/enlil/transferfunctions/t1.txt similarity index 100% rename from data/scene/enlil/transferfunctions/t1.txt rename to data/scene/deprecated/enlil/transferfunctions/t1.txt diff --git a/data/scene/enlil/transferfunctions/t2.txt b/data/scene/deprecated/enlil/transferfunctions/t2.txt similarity index 100% rename from data/scene/enlil/transferfunctions/t2.txt rename to data/scene/deprecated/enlil/transferfunctions/t2.txt diff --git a/data/scene/enlilnh/enlilnh.mod b/data/scene/deprecated/enlilnh/enlilnh.mod similarity index 100% rename from data/scene/enlilnh/enlilnh.mod rename to data/scene/deprecated/enlilnh/enlilnh.mod diff --git a/data/scene/enlilnh/transferfunctions/fire.txt b/data/scene/deprecated/enlilnh/transferfunctions/fire.txt similarity index 100% rename from data/scene/enlilnh/transferfunctions/fire.txt rename to data/scene/deprecated/enlilnh/transferfunctions/fire.txt diff --git a/data/scene/flare/TSPTraversal_cs.glsl b/data/scene/deprecated/flare/TSPTraversal_cs.glsl similarity index 100% rename from data/scene/flare/TSPTraversal_cs.glsl rename to data/scene/deprecated/flare/TSPTraversal_cs.glsl diff --git a/data/scene/flare/TSPTraversal_fs.glsl b/data/scene/deprecated/flare/TSPTraversal_fs.glsl similarity index 100% rename from data/scene/flare/TSPTraversal_fs.glsl rename to data/scene/deprecated/flare/TSPTraversal_fs.glsl diff --git a/data/scene/flare/fire.txt b/data/scene/deprecated/flare/fire.txt similarity index 100% rename from data/scene/flare/fire.txt rename to data/scene/deprecated/flare/fire.txt diff --git a/data/scene/flare/flare.mod b/data/scene/deprecated/flare/flare.mod similarity index 100% rename from data/scene/flare/flare.mod rename to data/scene/deprecated/flare/flare.mod diff --git a/data/scene/flare/helpers_cs.hglsl b/data/scene/deprecated/flare/helpers_cs.hglsl similarity index 100% rename from data/scene/flare/helpers_cs.hglsl rename to data/scene/deprecated/flare/helpers_cs.hglsl diff --git a/data/scene/flare/passthrough_vs.glsl b/data/scene/deprecated/flare/passthrough_vs.glsl similarity index 100% rename from data/scene/flare/passthrough_vs.glsl rename to data/scene/deprecated/flare/passthrough_vs.glsl diff --git a/data/scene/flare/raycasterTSP_cs.glsl b/data/scene/deprecated/flare/raycasterTSP_cs.glsl similarity index 100% rename from data/scene/flare/raycasterTSP_cs.glsl rename to data/scene/deprecated/flare/raycasterTSP_cs.glsl diff --git a/data/scene/flare/raycasterTSP_fs.glsl b/data/scene/deprecated/flare/raycasterTSP_fs.glsl similarity index 100% rename from data/scene/flare/raycasterTSP_fs.glsl rename to data/scene/deprecated/flare/raycasterTSP_fs.glsl diff --git a/data/scene/grids/gridEcliptic/gridEcliptic.mod b/data/scene/grids/gridEcliptic/gridEcliptic.mod deleted file mode 100644 index ed4e7fb452..0000000000 --- a/data/scene/grids/gridEcliptic/gridEcliptic.mod +++ /dev/null @@ -1,17 +0,0 @@ -return { - -- SphericalGrid module - { - Name = "SphericalGrid", - Parent = "Root", - Renderable = { - Type = "RenderableSphericalGrid", - GridType = "ECLIPJ2000", - GridColor = { 0.4, 0.0, 0.0, 1}, - GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0, - -0.9938214 , -0.1109906, -0.0003515167, 0.0, - -0.09647644, 0.8622859, 0.4971472 , 0.0, - 0.0 , 0.0 , 0.0 , 1.0 }, - GridSegments = 36, - } - } -} \ No newline at end of file diff --git a/data/scene/grids/gridEquatorial/gridEquatorial.mod b/data/scene/grids/gridEquatorial/gridEquatorial.mod deleted file mode 100644 index ccee24ccad..0000000000 --- a/data/scene/grids/gridEquatorial/gridEquatorial.mod +++ /dev/null @@ -1,17 +0,0 @@ -return { - -- SphericalGrid module - { - Name = "SphericalGrid", - Parent = "Root", - Renderable = { - Type = "RenderableSphericalGrid", - GridType = "ICRF", - GridColor = { 0.0, 0.0, 0.4, 1}, - GridMatrix = { -0.05487554, 0.4941095, -0.8676661, 0.0, - -0.8734371 , -0.4448296, -0.1980764, 0.0, - -0.483835 , 0.7469823, 0.4559838, 0.0, - 0.0 , 0.0 , 0.0 , 1.0 }, - GridSegments = 36, - } - } -} \ No newline at end of file diff --git a/data/scene/grids/gridGalactic/gridGalactic.mod b/data/scene/grids/gridGalactic/gridGalactic.mod deleted file mode 100644 index b27d939b6c..0000000000 --- a/data/scene/grids/gridGalactic/gridGalactic.mod +++ /dev/null @@ -1,17 +0,0 @@ -return { - -- gridGalactic module - { - Name = "gridGalactic", - Parent = "SolarSystem", - Renderable = { - Type = "RenderableSphericalGrid", - GridType = "GALACTIC", - GridColor = { 0.0, 0.4, 0.4, 1}, - GridMatrix = { 1.0, 0.0, 0.0, 0.0, - 0.0, 1.0, 0.0, 0.0, - 0.0, 0.0, 1.0, 0.0, - 0.0, 0.0, 0.0, 1.0 }, - GridSegments = 36, - } - } -} \ No newline at end of file From dfce5a0aad9774aa163ff0820c0ec59427c448f0 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Fri, 28 Jul 2017 01:38:32 -0400 Subject: [PATCH 16/51] Fix the missing wms files for Earth, Mars, Moon, and Mercury Fix the spherical grid --- .../ESRI/ESRI_Imagery_World_2D.wms | 17 ++ .../map_service_configs/ESRI/TERRAIN.wms | 9 + .../map_service_configs/GIBS/Coastlines.xml | 23 ++ .../GIBS/GIBS_Aqua_MODIS_true.xml | 24 ++ ...MODIS_Terra_Brightness_Temp_Band31_Day.xml | 24 ++ ...S_Terra_CorrectedReflectance_TrueColor.xml | 24 ++ .../GIBS/MODIS_Water_Mask.xml | 23 ++ .../GIBS/Reference_Features.xml | 23 ++ .../GIBS/Reference_Labels.xml | 23 ++ .../GIBS/TERRA_CR_B143_2016-04-12.wms | 8 + ...al_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml | 28 +++ .../GIBS/Temporal_Aqua_Orbit_Asc.xml | 33 +++ ..._GHRSST_L4_MUR_Sea_Surface_Temperature.xml | 28 +++ ...IS_Aqua_CorrectedReflectance_TrueColor.xml | 28 +++ ...S_Terra_CorrectedReflectance_TrueColor.xml | 28 +++ ...RS_SNPP_CorrectedReflectance_TrueColor.xml | 28 +++ .../Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml | 28 +++ .../GIBS/VIIRS_CityLights_2012.xml | 23 ++ ...RS_SNPP_CorrectedReflectance_TrueColor.xml | 23 ++ .../earth/map_service_configs/Utah/Bmng.wms | 20 ++ .../earth/map_service_configs/Utah/Gebco.wms | 20 ++ .../ASTER_GDEM_Greyscale_Shaded_Relief.xml | 19 ++ ...ueColor_Global_Monthly_v3_STD_temporal.xml | 10 + .../other/MLS_O3_46hPa_Day.xml | 19 ++ .../other/OpenStreetMap.xml | 20 ++ .../other/frmt_wms_virtualearth.xml | 6 + .../map_service_configs/other/noaa_rt.xml | 8 + .../earth/map_service_configs/other/test.wms | 79 +++++++ data/scene/grids/grids.mod | 41 ++++ .../mars/map_service_configs/CTX_Mosaic.xml | 17 ++ .../mars/map_service_configs/MARS_Viking.xml | 10 + .../MARS_Viking_MDIM21.xml | 16 ++ .../mars/map_service_configs/MDIM21_color.xml | 22 ++ .../map_service_configs/Mars_MGS_MOLA_DEM.xml | 17 ++ .../map_service_configs/Mola_Elevation.xml | 14 ++ .../map_service_configs/Utah/CTX_Mosaic.xml | 22 ++ .../mars/map_service_configs/Utah/Mdim.xml | 20 ++ .../Utah/MolaCTX_Elevation.xml | 14 ++ .../Utah/MolaPseudoColor.xml | 20 ++ .../Utah/Mola_Elevation.xml | 21 ++ .../map_service_configs/Utah/ThemisIRDay.xml | 20 ++ .../Utah/ThemisIRNight.xml | 20 ++ .../map_service_configs/OnMercuryColor.xml | 31 +++ .../OnMercuryElevationGaskell.xml | 24 ++ .../map_service_configs/OnMercuryImage.xml | 31 +++ .../Utah/MessengerMdis.wms | 20 ++ .../Utah/MessengerMosaic.wms | 20 ++ .../moon/map_service_configs/OnMoonColor.xml | 68 ++++++ .../moon/map_service_configs/OnMoonHeight.xml | 22 ++ .../map_service_configs/Utah/ClemUvvis.wms | 20 ++ .../moon/map_service_configs/Utah/Kaguya.wms | 20 ++ .../map_service_configs/Utah/LolaClrShade.wms | 20 ++ .../moon/map_service_configs/Utah/LolaDem.wms | 21 ++ .../map_service_configs/Utah/LolaShade.wms | 20 ++ .../map_service_configs/Utah/UvvisHybrid.wms | 20 ++ .../moon/map_service_configs/Utah/Wac.wms | 20 ++ modules/base/rendering/renderableplane.cpp | 2 +- .../rendering/renderablesphericalgrid.cpp | 213 ++++++++++++------ .../base/rendering/renderablesphericalgrid.h | 54 +++-- modules/base/shaders/grid_fs.glsl | 37 +++ modules/base/shaders/grid_vs.glsl | 42 ++++ 61 files changed, 1526 insertions(+), 99 deletions(-) create mode 100644 data/scene/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms create mode 100644 data/scene/earth/map_service_configs/ESRI/TERRAIN.wms create mode 100644 data/scene/earth/map_service_configs/GIBS/Coastlines.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/GIBS_Aqua_MODIS_true.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/MODIS_Terra_Brightness_Temp_Band31_Day.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/MODIS_Terra_CorrectedReflectance_TrueColor.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/MODIS_Water_Mask.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/Reference_Features.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/Reference_Labels.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/TERRA_CR_B143_2016-04-12.wms create mode 100644 data/scene/earth/map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/Temporal_Aqua_Orbit_Asc.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/Temporal_MODIS_Aqua_CorrectedReflectance_TrueColor.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/Temporal_MODIS_Terra_CorrectedReflectance_TrueColor.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/VIIRS_CityLights_2012.xml create mode 100644 data/scene/earth/map_service_configs/GIBS/VIIRS_SNPP_CorrectedReflectance_TrueColor.xml create mode 100644 data/scene/earth/map_service_configs/Utah/Bmng.wms create mode 100644 data/scene/earth/map_service_configs/Utah/Gebco.wms create mode 100644 data/scene/earth/map_service_configs/other/ASTER_GDEM_Greyscale_Shaded_Relief.xml create mode 100644 data/scene/earth/map_service_configs/other/Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD_temporal.xml create mode 100644 data/scene/earth/map_service_configs/other/MLS_O3_46hPa_Day.xml create mode 100644 data/scene/earth/map_service_configs/other/OpenStreetMap.xml create mode 100644 data/scene/earth/map_service_configs/other/frmt_wms_virtualearth.xml create mode 100644 data/scene/earth/map_service_configs/other/noaa_rt.xml create mode 100644 data/scene/earth/map_service_configs/other/test.wms create mode 100644 data/scene/grids/grids.mod create mode 100644 data/scene/mars/map_service_configs/CTX_Mosaic.xml create mode 100644 data/scene/mars/map_service_configs/MARS_Viking.xml create mode 100644 data/scene/mars/map_service_configs/MARS_Viking_MDIM21.xml create mode 100644 data/scene/mars/map_service_configs/MDIM21_color.xml create mode 100644 data/scene/mars/map_service_configs/Mars_MGS_MOLA_DEM.xml create mode 100644 data/scene/mars/map_service_configs/Mola_Elevation.xml create mode 100644 data/scene/mars/map_service_configs/Utah/CTX_Mosaic.xml create mode 100644 data/scene/mars/map_service_configs/Utah/Mdim.xml create mode 100644 data/scene/mars/map_service_configs/Utah/MolaCTX_Elevation.xml create mode 100644 data/scene/mars/map_service_configs/Utah/MolaPseudoColor.xml create mode 100644 data/scene/mars/map_service_configs/Utah/Mola_Elevation.xml create mode 100644 data/scene/mars/map_service_configs/Utah/ThemisIRDay.xml create mode 100644 data/scene/mars/map_service_configs/Utah/ThemisIRNight.xml create mode 100644 data/scene/mercury/map_service_configs/OnMercuryColor.xml create mode 100644 data/scene/mercury/map_service_configs/OnMercuryElevationGaskell.xml create mode 100644 data/scene/mercury/map_service_configs/OnMercuryImage.xml create mode 100644 data/scene/mercury/map_service_configs/Utah/MessengerMdis.wms create mode 100644 data/scene/mercury/map_service_configs/Utah/MessengerMosaic.wms create mode 100644 data/scene/moon/map_service_configs/OnMoonColor.xml create mode 100644 data/scene/moon/map_service_configs/OnMoonHeight.xml create mode 100644 data/scene/moon/map_service_configs/Utah/ClemUvvis.wms create mode 100644 data/scene/moon/map_service_configs/Utah/Kaguya.wms create mode 100644 data/scene/moon/map_service_configs/Utah/LolaClrShade.wms create mode 100644 data/scene/moon/map_service_configs/Utah/LolaDem.wms create mode 100644 data/scene/moon/map_service_configs/Utah/LolaShade.wms create mode 100644 data/scene/moon/map_service_configs/Utah/UvvisHybrid.wms create mode 100644 data/scene/moon/map_service_configs/Utah/Wac.wms create mode 100644 modules/base/shaders/grid_fs.glsl create mode 100644 modules/base/shaders/grid_vs.glsl diff --git a/data/scene/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms b/data/scene/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms new file mode 100644 index 0000000000..7c54ed40f0 --- /dev/null +++ b/data/scene/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms @@ -0,0 +1,17 @@ + + + http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer/tile/${z}/${y}/${x} + + + 15 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + 5 + false + \ No newline at end of file diff --git a/data/scene/earth/map_service_configs/ESRI/TERRAIN.wms b/data/scene/earth/map_service_configs/ESRI/TERRAIN.wms new file mode 100644 index 0000000000..a4a50c0a83 --- /dev/null +++ b/data/scene/earth/map_service_configs/ESRI/TERRAIN.wms @@ -0,0 +1,9 @@ + + + http://198.102.45.23/arcgis/rest/services/worldelevation3d/terrain3d? + GCS_Elevation + + 2 + 5 + false + diff --git a/data/scene/earth/map_service_configs/GIBS/Coastlines.xml b/data/scene/earth/map_service_configs/GIBS/Coastlines.xml new file mode 100644 index 0000000000..120c022a25 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Coastlines.xml @@ -0,0 +1,23 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/Coastlines/default/2013-08-21/250m/${z}/${y}/${x}.png + + + -180.0 + 90 + 396.0 + -198 + 9 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 4 + true + 400 + true + 5 + diff --git a/data/scene/earth/map_service_configs/GIBS/GIBS_Aqua_MODIS_true.xml b/data/scene/earth/map_service_configs/GIBS/GIBS_Aqua_MODIS_true.xml new file mode 100644 index 0000000000..1e5ed01815 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/GIBS_Aqua_MODIS_true.xml @@ -0,0 +1,24 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Aqua_CorrectedReflectance_TrueColor/default/2013-08-21/250m/${z}/${y}/${x}.jpg + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + 5 + false + true + 400 + true + diff --git a/data/scene/earth/map_service_configs/GIBS/MODIS_Terra_Brightness_Temp_Band31_Day.xml b/data/scene/earth/map_service_configs/GIBS/MODIS_Terra_Brightness_Temp_Band31_Day.xml new file mode 100644 index 0000000000..7311954847 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/MODIS_Terra_Brightness_Temp_Band31_Day.xml @@ -0,0 +1,24 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_Brightness_Temp_Band31_Day/default/2013-08-21/1km/${z}/${y}/${x}.png + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 4 + 5 + false + true + 400 + true + diff --git a/data/scene/earth/map_service_configs/GIBS/MODIS_Terra_CorrectedReflectance_TrueColor.xml b/data/scene/earth/map_service_configs/GIBS/MODIS_Terra_CorrectedReflectance_TrueColor.xml new file mode 100644 index 0000000000..3d9b24822d --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/MODIS_Terra_CorrectedReflectance_TrueColor.xml @@ -0,0 +1,24 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_CorrectedReflectance_TrueColor/default/2013-08-21/250m/${z}/${y}/${x}.jpg + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + 5 + false + true + 400 + true + diff --git a/data/scene/earth/map_service_configs/GIBS/MODIS_Water_Mask.xml b/data/scene/earth/map_service_configs/GIBS/MODIS_Water_Mask.xml new file mode 100644 index 0000000000..4abfdde13d --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/MODIS_Water_Mask.xml @@ -0,0 +1,23 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Water_Mask/default/2013-08-21/250m/${z}/${y}/${x}.png + + + -180.0 + 90 + 396.0 + -198 + 7 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 4 + 5 + true + 400,204,404 + true + diff --git a/data/scene/earth/map_service_configs/GIBS/Reference_Features.xml b/data/scene/earth/map_service_configs/GIBS/Reference_Features.xml new file mode 100644 index 0000000000..b4874f7db2 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Reference_Features.xml @@ -0,0 +1,23 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/Reference_Features/default/2013-08-21/250m/${z}/${y}/${x}.png + + + -180.0 + 90 + 396.0 + -198 + 9 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 4 + 5 + true + 400 + true + diff --git a/data/scene/earth/map_service_configs/GIBS/Reference_Labels.xml b/data/scene/earth/map_service_configs/GIBS/Reference_Labels.xml new file mode 100644 index 0000000000..5f45a0d424 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Reference_Labels.xml @@ -0,0 +1,23 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/Reference_Labels/default/2013-08-21/250m/${z}/${y}/${x}.png + + + -180.0 + 90 + 396.0 + -198 + 9 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 4 + 5 + true + 400 + true + diff --git a/data/scene/earth/map_service_configs/GIBS/TERRA_CR_B143_2016-04-12.wms b/data/scene/earth/map_service_configs/GIBS/TERRA_CR_B143_2016-04-12.wms new file mode 100644 index 0000000000..ea8427a9a4 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/TERRA_CR_B143_2016-04-12.wms @@ -0,0 +1,8 @@ + + + https://gibs.earthdata.nasa.gov/twms/twms.cgi? + MODIS TERRA tileset + 2016-04-12 + + 20 + diff --git a/data/scene/earth/map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml b/data/scene/earth/map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml new file mode 100644 index 0000000000..c838cf1667 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Temporal_AMSR2_GCOM_W1_Sea_Ice_Concentration.xml @@ -0,0 +1,28 @@ + + 2012-05-08 + + 1d + YYYY-MM-DD + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/AMSR2_Sea_Ice_Concentration_12km/default/${OpenSpaceTimeId}/2km/${z}/${y}/${x}.png + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + true + 400 + true + + diff --git a/data/scene/earth/map_service_configs/GIBS/Temporal_Aqua_Orbit_Asc.xml b/data/scene/earth/map_service_configs/GIBS/Temporal_Aqua_Orbit_Asc.xml new file mode 100644 index 0000000000..a0c7ed6f8f --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Temporal_Aqua_Orbit_Asc.xml @@ -0,0 +1,33 @@ + + 2012-05-08 + + 1d + YYYY-MM-DD + + + 1.1.1 + https://gibs.earthdata.nasa.gov/wms/wms.php?TIME=${OpenSpaceTimeId} + EPSG:4326 + image/png + TRUE + Aqua_Orbit_Asc + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + true + 400 + true + + diff --git a/data/scene/earth/map_service_configs/GIBS/Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature.xml b/data/scene/earth/map_service_configs/GIBS/Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature.xml new file mode 100644 index 0000000000..d28ad2d84f --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Temporal_GHRSST_L4_MUR_Sea_Surface_Temperature.xml @@ -0,0 +1,28 @@ + + 2002-06-01 + + 1d + YYYY-MM-DD + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/GHRSST_L4_MUR_Sea_Surface_Temperature/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.png + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 4 + true + 400 + true + + diff --git a/data/scene/earth/map_service_configs/GIBS/Temporal_MODIS_Aqua_CorrectedReflectance_TrueColor.xml b/data/scene/earth/map_service_configs/GIBS/Temporal_MODIS_Aqua_CorrectedReflectance_TrueColor.xml new file mode 100644 index 0000000000..1637409c25 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Temporal_MODIS_Aqua_CorrectedReflectance_TrueColor.xml @@ -0,0 +1,28 @@ + + 2012-05-08 + + 1d + YYYY-MM-DD + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Aqua_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + true + 400 + true + + diff --git a/data/scene/earth/map_service_configs/GIBS/Temporal_MODIS_Terra_CorrectedReflectance_TrueColor.xml b/data/scene/earth/map_service_configs/GIBS/Temporal_MODIS_Terra_CorrectedReflectance_TrueColor.xml new file mode 100644 index 0000000000..fb8ffbf297 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Temporal_MODIS_Terra_CorrectedReflectance_TrueColor.xml @@ -0,0 +1,28 @@ + + 2012-05-08 + + 1d + YYYY-MM-DD + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/MODIS_Terra_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + true + 400 + true + + diff --git a/data/scene/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml b/data/scene/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml new file mode 100644 index 0000000000..7faaa1e7e6 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.xml @@ -0,0 +1,28 @@ + + 2015-11-24 + Yesterday + 1d + YYYY-MM-DD + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + true + 400 + true + + diff --git a/data/scene/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml b/data/scene/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml new file mode 100644 index 0000000000..d2e093a97c --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_DayNightBand_ENCC.xml @@ -0,0 +1,28 @@ + + 2012-05-08 + + 1d + YYYY-MM-DD + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_DayNightBand_ENCC/default/${OpenSpaceTimeId}/500m/${z}/${y}/${x}.png + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + true + 400 + true + + diff --git a/data/scene/earth/map_service_configs/GIBS/VIIRS_CityLights_2012.xml b/data/scene/earth/map_service_configs/GIBS/VIIRS_CityLights_2012.xml new file mode 100644 index 0000000000..5589007002 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/VIIRS_CityLights_2012.xml @@ -0,0 +1,23 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_CityLights_2012/default/2013-08-21/500m/${z}/${y}/${x}.jpg + + + -180.0 + 90 + 396.0 + -198 + 7 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 4 + 5 + true + 400 + true + diff --git a/data/scene/earth/map_service_configs/GIBS/VIIRS_SNPP_CorrectedReflectance_TrueColor.xml b/data/scene/earth/map_service_configs/GIBS/VIIRS_SNPP_CorrectedReflectance_TrueColor.xml new file mode 100644 index 0000000000..d0ff0f3985 --- /dev/null +++ b/data/scene/earth/map_service_configs/GIBS/VIIRS_SNPP_CorrectedReflectance_TrueColor.xml @@ -0,0 +1,23 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/2016-08-21/250m/${z}/${y}/${x}.jpg + + + -180.0 + 90 + 396.0 + -198 + 8 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 3 + 5 + true + 400 + true + \ No newline at end of file diff --git a/data/scene/earth/map_service_configs/Utah/Bmng.wms b/data/scene/earth/map_service_configs/Utah/Bmng.wms new file mode 100644 index 0000000000..3a82a1011b --- /dev/null +++ b/data/scene/earth/map_service_configs/Utah/Bmng.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Earth/Bmng/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 86400 + 43200 + 8 + top + + EPSG:4326 + 240 + 240 + 3 + 10 + \ No newline at end of file diff --git a/data/scene/earth/map_service_configs/Utah/Gebco.wms b/data/scene/earth/map_service_configs/Utah/Gebco.wms new file mode 100644 index 0000000000..98af78a869 --- /dev/null +++ b/data/scene/earth/map_service_configs/Utah/Gebco.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Earth/Gebco/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 43200 + 21600 + 6 + top + + EPSG:4326 + 360 + 360 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/earth/map_service_configs/other/ASTER_GDEM_Greyscale_Shaded_Relief.xml b/data/scene/earth/map_service_configs/other/ASTER_GDEM_Greyscale_Shaded_Relief.xml new file mode 100644 index 0000000000..8666bd37cc --- /dev/null +++ b/data/scene/earth/map_service_configs/other/ASTER_GDEM_Greyscale_Shaded_Relief.xml @@ -0,0 +1,19 @@ + + + http://map1.vis.earthdata.nasa.gov/wmts-geo/ASTER_GDEM_Greyscale_Shaded_Relief/default/2016-05-16/EPSG4326_31m/${z}/${y}/${x}.jpg + + + -180.0 + 90 + 396.0 + -198 + 12 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 1 + \ No newline at end of file diff --git a/data/scene/earth/map_service_configs/other/Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD_temporal.xml b/data/scene/earth/map_service_configs/other/Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD_temporal.xml new file mode 100644 index 0000000000..3dcf166656 --- /dev/null +++ b/data/scene/earth/map_service_configs/other/Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD_temporal.xml @@ -0,0 +1,10 @@ + + + https://gibs.earthdata.nasa.gov/wmts/epsg4326/std/wmts.cgi? + MODIS TERRA tileset + ${t} + Landsat_WELD_CorrectedReflectance_TrueColor_Global_Monthly_v3_STD + image/jpeg + + 20 + \ No newline at end of file diff --git a/data/scene/earth/map_service_configs/other/MLS_O3_46hPa_Day.xml b/data/scene/earth/map_service_configs/other/MLS_O3_46hPa_Day.xml new file mode 100644 index 0000000000..e0dd1d4b7e --- /dev/null +++ b/data/scene/earth/map_service_configs/other/MLS_O3_46hPa_Day.xml @@ -0,0 +1,19 @@ + + + http://map1.vis.earthdata.nasa.gov/wmts-geo/MLS_O3_46hPa_Day/default/2013-08-21/EPSG4326_2km/${z}/${y}/${x}.png + + + -180.0 + 90 + 396.0 + -198 + 5 + 2 + 1 + top + + EPSG:4326 + 512 + 512 + 4 + \ No newline at end of file diff --git a/data/scene/earth/map_service_configs/other/OpenStreetMap.xml b/data/scene/earth/map_service_configs/other/OpenStreetMap.xml new file mode 100644 index 0000000000..450aab0cd6 --- /dev/null +++ b/data/scene/earth/map_service_configs/other/OpenStreetMap.xml @@ -0,0 +1,20 @@ + + +http://tile.openstreetmap.org/${z}/${x}/${y}.png + + +-180 +90 +180 +-90 +18 +1 +1 +top + +EPSG:4326 +256 +256 +3 + + \ No newline at end of file diff --git a/data/scene/earth/map_service_configs/other/frmt_wms_virtualearth.xml b/data/scene/earth/map_service_configs/other/frmt_wms_virtualearth.xml new file mode 100644 index 0000000000..42946f0a2f --- /dev/null +++ b/data/scene/earth/map_service_configs/other/frmt_wms_virtualearth.xml @@ -0,0 +1,6 @@ + + + http://a${server_num}.ortho.tiles.virtualearth.net/tiles/a${quadkey}.jpeg?g=90 + + 4 + diff --git a/data/scene/earth/map_service_configs/other/noaa_rt.xml b/data/scene/earth/map_service_configs/other/noaa_rt.xml new file mode 100644 index 0000000000..717aab0070 --- /dev/null +++ b/data/scene/earth/map_service_configs/other/noaa_rt.xml @@ -0,0 +1,8 @@ + + 2016-11-28T05:00:00 + 2016-12-06T04:30:00 + 30m + YYYY-MM-DDThh_mm_ssZ + + D:/NOAA/rt/imergert_composite.${OpenSpaceTimeId}.png + diff --git a/data/scene/earth/map_service_configs/other/test.wms b/data/scene/earth/map_service_configs/other/test.wms new file mode 100644 index 0000000000..7ee62a7fc7 --- /dev/null +++ b/data/scene/earth/map_service_configs/other/test.wms @@ -0,0 +1,79 @@ + + + http://192.168.1.167/OnMars/wms.cgi? + CTX Mosaic + + + -180.0 + 90.0 + 180.0 + -90.0 + bottom + + 1 + + + + + \ No newline at end of file diff --git a/data/scene/grids/grids.mod b/data/scene/grids/grids.mod new file mode 100644 index 0000000000..04a9b783bf --- /dev/null +++ b/data/scene/grids/grids.mod @@ -0,0 +1,41 @@ +return { + -- SphericalGrid module + { + Name = "Ecliptic Grid", + Parent = "Root", + Renderable = { + Type = "RenderableSphericalGrid", + GridType = "ECLIPJ2000", + GridColor = { 0.75, 0.0, 0.0, 1.0}, + LineWidth = 2.0, + GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0, + -0.9938214 , -0.1109906, -0.0003515167, 0.0, + -0.09647644, 0.8622859, 0.4971472 , 0.0, + 0.0 , 0.0 , 0.0 , 1.0 } + } + }, + { + Name = "Equatorial Grid", + Parent = "Root", + Renderable = { + Type = "RenderableSphericalGrid", + GridType = "ICRF", + GridColor = { 0.0, 0.0, 0.75, 1.0}, + LineWidth = 2.0, + GridMatrix = { -0.05487554, 0.4941095, -0.8676661, 0.0, + -0.8734371 , -0.4448296, -0.1980764, 0.0, + -0.483835 , 0.7469823, 0.4559838, 0.0, + 0.0 , 0.0 , 0.0 , 1.0 } + } + }, + { + Name = "Galactic Grid", + Parent = "SolarSystem", + Renderable = { + Type = "RenderableSphericalGrid", + GridType = "GALACTIC", + LineWidth = 2.0, + GridColor = { 0.0, 0.75, 0.75, 1.0} + } + } +} diff --git a/data/scene/mars/map_service_configs/CTX_Mosaic.xml b/data/scene/mars/map_service_configs/CTX_Mosaic.xml new file mode 100644 index 0000000000..0491a66bd5 --- /dev/null +++ b/data/scene/mars/map_service_configs/CTX_Mosaic.xml @@ -0,0 +1,17 @@ + + + http://wms.itn.liu.se/OnMars/wms.cgi? + CTX Mosaic + TRUE + + + -180.0 + 90.0 + 180.0 + -90.0 + 256 + 256 + + 400,204,404 + true + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/MARS_Viking.xml b/data/scene/mars/map_service_configs/MARS_Viking.xml new file mode 100644 index 0000000000..7197faf38e --- /dev/null +++ b/data/scene/mars/map_service_configs/MARS_Viking.xml @@ -0,0 +1,10 @@ + + http://webgis3.wr.usgs.gov/arcgis/rest/services/Mars_color/MapServer/WMTS/1.0.0/WMTSCapabilities.xml + + -180.0 + 90 + 180.0 + -90 + + 3 + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/MARS_Viking_MDIM21.xml b/data/scene/mars/map_service_configs/MARS_Viking_MDIM21.xml new file mode 100644 index 0000000000..405fc03065 --- /dev/null +++ b/data/scene/mars/map_service_configs/MARS_Viking_MDIM21.xml @@ -0,0 +1,16 @@ + + + http://d1poygwgh8gv6r.cloudfront.net/catalog/Mars_Viking_MDIM21_ClrMosaic_global_232m/1.0.0//default/default028mm/${z}/${y}/${x}.jpg + image/jpg + + + 8 + 2 + 1 + top + + EPSG:4326 + 256 + 256 + 3 + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/MDIM21_color.xml b/data/scene/mars/map_service_configs/MDIM21_color.xml new file mode 100644 index 0000000000..caaa46437f --- /dev/null +++ b/data/scene/mars/map_service_configs/MDIM21_color.xml @@ -0,0 +1,22 @@ + + + 1.3.0 + http://planetarymaps.usgs.gov/cgi-bin/mapserv?map=/maps/mars/mars_simp_cyl.map + EPSG:4326 + image/png + MDIM21_color + TRUE + + + -180.0 + 90.0 + 180.0 + -90.0 + 2048 + 1024 + bottom + + + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/Mars_MGS_MOLA_DEM.xml b/data/scene/mars/map_service_configs/Mars_MGS_MOLA_DEM.xml new file mode 100644 index 0000000000..fbf695ecbd --- /dev/null +++ b/data/scene/mars/map_service_configs/Mars_MGS_MOLA_DEM.xml @@ -0,0 +1,17 @@ + + + http://d1poygwgh8gv6r.cloudfront.net/catalog/Mars_MGS_MOLA_DEM_mosaic_global_463m_8/1.0.0//default/default028mm/${z}/${y}/${x}.png + image/png + + + 5 + 2 + 1 + top + + Byte + EPSG:4326 + 256 + 256 + 2 + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/Mola_Elevation.xml b/data/scene/mars/map_service_configs/Mola_Elevation.xml new file mode 100644 index 0000000000..c003ebf07d --- /dev/null +++ b/data/scene/mars/map_service_configs/Mola_Elevation.xml @@ -0,0 +1,14 @@ + + + http://wms.itn.liu.se/OnMars/wms.cgi? + Mola Elevation + + + -180.0 + 90.0 + 180.0 + -90.0 + bottom + + false + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/Utah/CTX_Mosaic.xml b/data/scene/mars/map_service_configs/Utah/CTX_Mosaic.xml new file mode 100644 index 0000000000..164ab0eb2f --- /dev/null +++ b/data/scene/mars/map_service_configs/Utah/CTX_Mosaic.xml @@ -0,0 +1,22 @@ + + + http://asgard.sci.utah.edu/Mars/CTX/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 4194304 + 2097152 + 13 + top + + GEOGCS["Mars 2000", DATUM["D_Mars_2000", SPHEROID["MARS_2000_IAU_IAG",3396190.0,169.894447222361179]],PRIMEM["Greenwich"0],UNIT["Decimal_Degree",0.0174532925199433]] + 256 + 256 + 2 + 10 + 400,204,404 + true + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/Utah/Mdim.xml b/data/scene/mars/map_service_configs/Utah/Mdim.xml new file mode 100644 index 0000000000..acaaedae86 --- /dev/null +++ b/data/scene/mars/map_service_configs/Utah/Mdim.xml @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Mars/Mdim/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 92160 + 46080 + 7 + top + + GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 3 + 10 + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/Utah/MolaCTX_Elevation.xml b/data/scene/mars/map_service_configs/Utah/MolaCTX_Elevation.xml new file mode 100644 index 0000000000..baa437174c --- /dev/null +++ b/data/scene/mars/map_service_configs/Utah/MolaCTX_Elevation.xml @@ -0,0 +1,14 @@ + + + http://asgard.sci.utah.edu/MolaCTX/tile/${z}/${y}/${x} + Mola Elevation + + + -180.0 + 90.0 + 180.0 + -90.0 + bottom + + false + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/Utah/MolaPseudoColor.xml b/data/scene/mars/map_service_configs/Utah/MolaPseudoColor.xml new file mode 100644 index 0000000000..494d21c5e4 --- /dev/null +++ b/data/scene/mars/map_service_configs/Utah/MolaPseudoColor.xml @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Mars/MolaPseudoColor/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 46080 + 23040 + 6 + top + + GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 3 + 10 + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/Utah/Mola_Elevation.xml b/data/scene/mars/map_service_configs/Utah/Mola_Elevation.xml new file mode 100644 index 0000000000..79332d59c9 --- /dev/null +++ b/data/scene/mars/map_service_configs/Utah/Mola_Elevation.xml @@ -0,0 +1,21 @@ + + + http://asgard.sci.utah.edu/Mars/MolaElevation/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 46080 + 23040 + 6 + top + + Int16 + GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/Utah/ThemisIRDay.xml b/data/scene/mars/map_service_configs/Utah/ThemisIRDay.xml new file mode 100644 index 0000000000..3b7641214b --- /dev/null +++ b/data/scene/mars/map_service_configs/Utah/ThemisIRDay.xml @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Mars/ThemisIRDay/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 213390 + 106695 + 9 + top + + GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 256 + 256 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/mars/map_service_configs/Utah/ThemisIRNight.xml b/data/scene/mars/map_service_configs/Utah/ThemisIRNight.xml new file mode 100644 index 0000000000..3b7641214b --- /dev/null +++ b/data/scene/mars/map_service_configs/Utah/ThemisIRNight.xml @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Mars/ThemisIRDay/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 213390 + 106695 + 9 + top + + GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 256 + 256 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/mercury/map_service_configs/OnMercuryColor.xml b/data/scene/mercury/map_service_configs/OnMercuryColor.xml new file mode 100644 index 0000000000..4083bfbba8 --- /dev/null +++ b/data/scene/mercury/map_service_configs/OnMercuryColor.xml @@ -0,0 +1,31 @@ + + + http://192.168.1.167/OnMercury/wms.cgi? + Color 665m + + + + -180.0 + 90 + 180.0 + -90 + 20 + 2 + 1 + top + + 5 + 512 + 512 + \ No newline at end of file diff --git a/data/scene/mercury/map_service_configs/OnMercuryElevationGaskell.xml b/data/scene/mercury/map_service_configs/OnMercuryElevationGaskell.xml new file mode 100644 index 0000000000..0563b2d018 --- /dev/null +++ b/data/scene/mercury/map_service_configs/OnMercuryElevationGaskell.xml @@ -0,0 +1,24 @@ + + + http://192.168.1.167/OnMercury/wms.cgi? + + Elevation 16bit, Gaskell + + + -180.0 + 90 + 180.0 + -90 + 8 + 2 + 1 + top + + 512 + 512 + \ No newline at end of file diff --git a/data/scene/mercury/map_service_configs/OnMercuryImage.xml b/data/scene/mercury/map_service_configs/OnMercuryImage.xml new file mode 100644 index 0000000000..d50931e40e --- /dev/null +++ b/data/scene/mercury/map_service_configs/OnMercuryImage.xml @@ -0,0 +1,31 @@ + + + http://192.168.1.167/OnMercury/wms.cgi? + Mercury Image + + + + -180.0 + 90 + 180.0 + -90 + 20 + 2 + 1 + top + + 512 + 512 + \ No newline at end of file diff --git a/data/scene/mercury/map_service_configs/Utah/MessengerMdis.wms b/data/scene/mercury/map_service_configs/Utah/MessengerMdis.wms new file mode 100644 index 0000000000..5b5a765ef4 --- /dev/null +++ b/data/scene/mercury/map_service_configs/Utah/MessengerMdis.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Mercury/MessengerMdis/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 61324 + 30662 + 7 + top + + GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 256 + 256 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/mercury/map_service_configs/Utah/MessengerMosaic.wms b/data/scene/mercury/map_service_configs/Utah/MessengerMosaic.wms new file mode 100644 index 0000000000..9152deb1e0 --- /dev/null +++ b/data/scene/mercury/map_service_configs/Utah/MessengerMosaic.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Mercury/MessengerMosaic/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 23054 + 11527 + 6 + top + + GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 256 + 256 + 3 + 10 + \ No newline at end of file diff --git a/data/scene/moon/map_service_configs/OnMoonColor.xml b/data/scene/moon/map_service_configs/OnMoonColor.xml new file mode 100644 index 0000000000..458fdab892 --- /dev/null +++ b/data/scene/moon/map_service_configs/OnMoonColor.xml @@ -0,0 +1,68 @@ + + + http://onmoon.lmmp.nasa.gov/wms.cgi? + LRO WAC Mosaic, LMMP + + + + + + -180.0 + 90 + 180.0 + -90 + 20 + 2 + 1 + top + + 512 + 512 + true + 400 + true + \ No newline at end of file diff --git a/data/scene/moon/map_service_configs/OnMoonHeight.xml b/data/scene/moon/map_service_configs/OnMoonHeight.xml new file mode 100644 index 0000000000..3f0934091c --- /dev/null +++ b/data/scene/moon/map_service_configs/OnMoonHeight.xml @@ -0,0 +1,22 @@ + + + http://onmoon.lmmp.nasa.gov/raw/wms.cgi? + Lunar Elevation v2, half meters + + + + -180.0 + 90 + 180.0 + -90 + 24 + 2 + 1 + top + + true + 400 + true + \ No newline at end of file diff --git a/data/scene/moon/map_service_configs/Utah/ClemUvvis.wms b/data/scene/moon/map_service_configs/Utah/ClemUvvis.wms new file mode 100644 index 0000000000..3340bb4fe7 --- /dev/null +++ b/data/scene/moon/map_service_configs/Utah/ClemUvvis.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Moon/ClemUvvis/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 92160 + 46080 + 7 + top + + GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/moon/map_service_configs/Utah/Kaguya.wms b/data/scene/moon/map_service_configs/Utah/Kaguya.wms new file mode 100644 index 0000000000..2e64c499ef --- /dev/null +++ b/data/scene/moon/map_service_configs/Utah/Kaguya.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Moon/Kaguya/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 1474560 + 737280 + 11 + top + + GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/moon/map_service_configs/Utah/LolaClrShade.wms b/data/scene/moon/map_service_configs/Utah/LolaClrShade.wms new file mode 100644 index 0000000000..82f9289f36 --- /dev/null +++ b/data/scene/moon/map_service_configs/Utah/LolaClrShade.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Moon/LolaClrShade/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 92160 + 46080 + 7 + top + + GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 3 + 10 + \ No newline at end of file diff --git a/data/scene/moon/map_service_configs/Utah/LolaDem.wms b/data/scene/moon/map_service_configs/Utah/LolaDem.wms new file mode 100644 index 0000000000..9465278db8 --- /dev/null +++ b/data/scene/moon/map_service_configs/Utah/LolaDem.wms @@ -0,0 +1,21 @@ + + + http://asgard.sci.utah.edu/Moon/LolaDem/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 92160 + 46080 + 7 + top + + Int16 + GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/moon/map_service_configs/Utah/LolaShade.wms b/data/scene/moon/map_service_configs/Utah/LolaShade.wms new file mode 100644 index 0000000000..4d25cf262f --- /dev/null +++ b/data/scene/moon/map_service_configs/Utah/LolaShade.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Moon/LolaShade/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 92160 + 46080 + 7 + top + + GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/moon/map_service_configs/Utah/UvvisHybrid.wms b/data/scene/moon/map_service_configs/Utah/UvvisHybrid.wms new file mode 100644 index 0000000000..2b9a199ba6 --- /dev/null +++ b/data/scene/moon/map_service_configs/Utah/UvvisHybrid.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Moon/UvvisHybrid/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 184320 + 92160 + 8 + top + + GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 1 + 10 + \ No newline at end of file diff --git a/data/scene/moon/map_service_configs/Utah/Wac.wms b/data/scene/moon/map_service_configs/Utah/Wac.wms new file mode 100644 index 0000000000..1085bbda66 --- /dev/null +++ b/data/scene/moon/map_service_configs/Utah/Wac.wms @@ -0,0 +1,20 @@ + + + http://asgard.sci.utah.edu/Moon/Wac/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 109164 + 54582 + 8 + top + + GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 256 + 256 + 1 + 10 + \ No newline at end of file diff --git a/modules/base/rendering/renderableplane.cpp b/modules/base/rendering/renderableplane.cpp index 82e5d24653..875cf27f4c 100644 --- a/modules/base/rendering/renderableplane.cpp +++ b/modules/base/rendering/renderableplane.cpp @@ -187,7 +187,7 @@ bool RenderablePlane::initialize() { _shader = OsEng.renderEngine().buildRenderProgram("PlaneProgram", "${MODULE_BASE}/shaders/plane_vs.glsl", "${MODULE_BASE}/shaders/plane_fs.glsl" - ); + ); loadTexture(); diff --git a/modules/base/rendering/renderablesphericalgrid.cpp b/modules/base/rendering/renderablesphericalgrid.cpp index f960e02fa8..31d9894aa3 100644 --- a/modules/base/rendering/renderablesphericalgrid.cpp +++ b/modules/base/rendering/renderablesphericalgrid.cpp @@ -26,63 +26,152 @@ #include #include +#include #include #include +#include #include +#include #define _USE_MATH_DEFINES #include namespace { - static const char* _loggerCat = "RenderableSphericalGrid"; - const char* KeyGridType = "GridType"; - const char* KeyGridColor = "GridColor"; - const char* KeyGridMatrix = "GridMatrix"; - const char* KeyGridSegments = "GridSegments"; - const char* KeyGridRadius = "GridRadius"; - const char* KeyGridParentsRotation = "ParentsRotation"; - const glm::vec2 GridRadius = { 1.f, 20.f }; + static const openspace::properties::Property::PropertyInfo GridColorInfo = { + "GridColor", + "Grid Color", + "This value determines the color of the grid lines that are rendered." + }; + + static const openspace::properties::Property::PropertyInfo GridMatrixInfo = { + "GridMatrix", + "Grid Matrix", + "This value specifies the local transformation matrix that defines the " + "orientation of this grid relative to the parent's rotation." + }; + + static const openspace::properties::Property::PropertyInfo SegmentsInfo = { + "Segments", + "Number of Segments", + "This value specifies the number of segments that are used to render the " + "surrounding sphere." + }; + + static const openspace::properties::Property::PropertyInfo LineWidthInfo = { + "LineWidth", + "Line Width", + "This value specifies the line width of the spherical grid." + }; + + static const openspace::properties::Property::PropertyInfo RadiusInfo = { + "Radius", + "Radius", + "This value specifies the radius of the grid." + }; } // namespace namespace openspace { +documentation::Documentation RenderableSphericalGrid::Documentation() { + using namespace documentation; + return { + "RenderableSphericalGrid", + "base_renderable_sphericalgrid", + { + { + GridMatrixInfo.identifier, + new DoubleMatrix4x4Verifier, + Optional::No, + GridMatrixInfo.description + }, + { + GridColorInfo.identifier, + new DoubleVector4Verifier, + Optional::Yes, + GridColorInfo.description + }, + { + SegmentsInfo.identifier, + new IntVerifier, + Optional::Yes, + SegmentsInfo.description + }, + { + LineWidthInfo.identifier, + new DoubleVerifier, + Optional::Yes, + LineWidthInfo.description + }, + { + RadiusInfo.identifier, + new DoubleVerifier, + Optional::Yes, + RadiusInfo.description + } + } + }; +} + + RenderableSphericalGrid::RenderableSphericalGrid(const ghoul::Dictionary& dictionary) : Renderable(dictionary) , _gridProgram(nullptr) + , _gridMatrix(GridMatrixInfo, glm::mat4(1.f)) + , _gridColor( + GridColorInfo, + glm::vec4(0.5f, 0.5, 0.5f, 1.f), + glm::vec4(0.f), + glm::vec4(1.f) + ) + , _segments(SegmentsInfo, 36, 4, 10000) + , _lineWidth(LineWidthInfo, 0.5f, 0.f, 20.f) + , _radius(RadiusInfo, 1e20f, 1.f, 1e35f) , _vaoID(0) , _vBufferID(0) , _iBufferID(0) , _mode(GL_LINES) { - _gridMatrix = glm::mat4(1); - dictionary.getValue(KeyGridType, _gridType); - dictionary.getValue(KeyGridColor, _gridColor); + documentation::testSpecificationAndThrow( + Documentation(), + dictionary, + "RenderableSphericalGrid" + ); - staticGrid = dictionary.getValue(KeyGridMatrix, _gridMatrix); - if (!staticGrid){ - staticGrid = dictionary.getValue(KeyGridParentsRotation, _parentsRotation); + _gridMatrix = dictionary.value(GridMatrixInfo.identifier); + addProperty(_gridMatrix); + + if (dictionary.hasKey(GridColorInfo.identifier)) { + _gridColor = dictionary.value(GridColorInfo.identifier); } - - _segments = static_cast(dictionary.value(KeyGridSegments)); - //dictionary.getValue(KeyGridSegments, _segments); + _gridColor.setViewOption(properties::Property::ViewOptions::Color); + addProperty(_gridColor); + if (dictionary.hasKey(SegmentsInfo.identifier)) { + _segments = static_cast(dictionary.value(SegmentsInfo.identifier)); + } + //addProperty(_segments); - /*glm::vec2 radius; - dictionary.getValue(constants::renderablesphericalgrid::gridRadius, radius); - */ + if (dictionary.hasKey(LineWidthInfo.identifier)) { + _lineWidth = static_cast( + dictionary.value(LineWidthInfo.identifier) + ); + } + addProperty(_lineWidth); + + if (dictionary.hasKey(RadiusInfo.identifier)) { + _radius = static_cast( + dictionary.value(RadiusInfo.identifier) + ); + } _isize = int(6 * _segments * _segments); _vsize = int((_segments + 1) * (_segments + 1)); - _varray = new Vertex[_vsize]; - _iarray = new int[_isize]; - - static_assert(sizeof(Vertex) == 64, "The size of the Vertex needs to be 64 for performance"); + _varray.resize(_vsize); + _iarray.resize(_isize); int nr = 0; const float fsegments = static_cast(_segments); - const float r = static_cast(GridRadius[0]); - - //int nr2 = 0; + const float r = _radius; for (int nSegment = 0; nSegment <= _segments; ++nSegment) { // define an extra vertex around the y-axis due to texture mapping @@ -107,19 +196,13 @@ RenderableSphericalGrid::RenderableSphericalGrid(const ghoul::Dictionary& dictio //const float t1 = fj / fsegments; const float t2 = fi / fsegments; - // tex coord. not used, use to manip color - if (round(y) == 0.0f) _varray[nr].tex[0] = -2; - _varray[nr].tex[1] = t2; - - glm::vec4 tmp(x, y, z, 1); + glm::vec4 tmp (x, y, z, 1); glm::mat4 rot = glm::rotate(glm::mat4(1), static_cast(M_PI_2), glm::vec3(1, 0, 0)); - tmp = _gridMatrix*rot*tmp; + tmp = glm::vec4(_gridMatrix.value() * glm::dmat4(rot) * glm::dvec4(tmp)); for (int i = 0; i < 3; i++){ _varray[nr].location[i] = tmp[i]; - _varray[nr].normal[i] = normal[i]; } - _varray[nr].location[3] = static_cast(GridRadius[1]); ++nr; } } @@ -137,13 +220,7 @@ RenderableSphericalGrid::RenderableSphericalGrid(const ghoul::Dictionary& dictio } } -RenderableSphericalGrid::~RenderableSphericalGrid(){ - deinitialize(); - - // Delete not done in deinitialize because new is done in constructor - delete[] _varray; - delete[] _iarray; -} +RenderableSphericalGrid::~RenderableSphericalGrid() {} bool RenderableSphericalGrid::isReady() const { bool ready = true; @@ -151,7 +228,7 @@ bool RenderableSphericalGrid::isReady() const { return ready; } -bool RenderableSphericalGrid::deinitialize(){ +bool RenderableSphericalGrid::deinitialize() { glDeleteVertexArrays(1,&_vaoID); _vaoID = 0; @@ -164,10 +241,14 @@ bool RenderableSphericalGrid::deinitialize(){ return true; } -bool RenderableSphericalGrid::initialize(){ +bool RenderableSphericalGrid::initialize() { bool completeSuccess = true; - if (_gridProgram == nullptr) - completeSuccess &= OsEng.ref().configurationManager().getValue("GridProgram", _gridProgram); + + _gridProgram = OsEng.renderEngine().buildRenderProgram( + "GridProgram", + "${MODULE_BASE}/shaders/grid_vs.glsl", + "${MODULE_BASE}/shaders/grid_fs.glsl" + ); // Initialize and upload to graphics card glGenVertexArrays(1, &_vaoID); @@ -177,20 +258,14 @@ bool RenderableSphericalGrid::initialize(){ // First VAO setup glBindVertexArray(_vaoID); glBindBuffer(GL_ARRAY_BUFFER, _vBufferID); - glBufferData(GL_ARRAY_BUFFER, _vsize * sizeof(Vertex), _varray, GL_STATIC_DRAW); + glBufferData(GL_ARRAY_BUFFER, _vsize * sizeof(Vertex), _varray.data(), GL_STATIC_DRAW); glEnableVertexAttribArray(0); - glEnableVertexAttribArray(1); - glEnableVertexAttribArray(2); - glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(Vertex), + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(offsetof(Vertex, location))); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), - reinterpret_cast(offsetof(Vertex, tex))); - glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), - reinterpret_cast(offsetof(Vertex, normal))); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _iBufferID); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, _isize * sizeof(int), _iarray, GL_STATIC_DRAW); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, _isize * sizeof(int), _iarray.data(), GL_STATIC_DRAW); glBindVertexArray(0); @@ -200,29 +275,24 @@ bool RenderableSphericalGrid::initialize(){ void RenderableSphericalGrid::render(const RenderData& data, RendererTasks&){ _gridProgram->activate(); - glm::mat4 transform; - for (int i = 0; i < 3; i++){ - for (int j = 0; j < 3; j++){ - transform[i][j] = static_cast(_parentMatrix[i][j]); - } - } + glm::dmat4 modelTransform = + glm::translate(glm::dmat4(1.0), data.modelTransform.translation) * // Translation + glm::dmat4(data.modelTransform.rotation) * // Spice rotation + glm::dmat4(glm::scale(glm::dmat4(1.0), glm::dvec3(data.modelTransform.scale))); + glm::dmat4 modelViewTransform = data.camera.combinedViewMatrix() * modelTransform; - using IgnoreError = ghoul::opengl::ProgramObject::IgnoreError; + _gridProgram->setUniform("modelViewTransform", glm::mat4(modelViewTransform)); + _gridProgram->setUniform("projectionTransform", data.camera.projectionMatrix()); - // setup the data to the shader - _gridProgram->setIgnoreUniformLocationError(IgnoreError::Yes); - _gridProgram->setUniform("ViewProjection", data.camera.viewProjectionMatrix()); - _gridProgram->setUniform("ModelTransform", transform); - setPscUniforms(*_gridProgram, data.camera, data.position); _gridProgram->setUniform("gridColor", _gridColor); - glLineWidth(0.5f); + glLineWidth(_lineWidth); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); glEnable(GL_LINE_SMOOTH); - glBindVertexArray(_vaoID); // select first VAO + glBindVertexArray(_vaoID); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _iBufferID); glDrawElements(_mode, _isize, GL_UNSIGNED_INT, 0); glBindVertexArray(0); @@ -230,9 +300,4 @@ void RenderableSphericalGrid::render(const RenderData& data, RendererTasks&){ _gridProgram->deactivate(); } -void RenderableSphericalGrid::update(const UpdateData& data) { - _parentMatrix = SpiceManager::ref().positionTransformMatrix("IAU_JUPITER", "GALACTIC", data.time.j2000Seconds()); - -} - } // namespace openspace diff --git a/modules/base/rendering/renderablesphericalgrid.h b/modules/base/rendering/renderablesphericalgrid.h index 54673c86b5..c36fae8a78 100644 --- a/modules/base/rendering/renderablesphericalgrid.h +++ b/modules/base/rendering/renderablesphericalgrid.h @@ -26,10 +26,20 @@ #define __OPENSPACE_MODULE_BASE___RENDERABLESPHERICALGRID___H__ #include -#include -#include -#include +#include +#include +#include +#include +#include + +#include + +namespace ghoul::opengl { + class ProgramObject; +} // namespace ghoul::opengl + +namespace openspace::documentation { class Documentation; } namespace openspace { @@ -38,41 +48,37 @@ public: RenderableSphericalGrid(const ghoul::Dictionary& dictionary); ~RenderableSphericalGrid(); - bool initialize() override; + bool initialize() override; bool deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; - void update(const UpdateData& data) override; + + static documentation::Documentation Documentation(); protected: - typedef struct { - GLfloat location[4]; - GLfloat tex[2]; - GLfloat normal[3]; - GLubyte padding[28]; // Pads the struct out to 64 bytes for performance increase - } Vertex; + struct Vertex { + float location[3]; + }; - ghoul::opengl::ProgramObject* _gridProgram; - std::string _gridType; - glm::vec4 _gridColor; - glm::mat4 _gridMatrix; - int _segments; + std::unique_ptr _gridProgram; - bool staticGrid; - std::string _parentsRotation; - glm::dmat3 _parentMatrix; + properties::DMat4Property _gridMatrix; + properties::Vec4Property _gridColor; + properties::IntProperty _segments; + properties::FloatProperty _lineWidth; + properties::FloatProperty _radius; - GLuint _vaoID = 3; - GLuint _vBufferID = 4; - GLuint _iBufferID = 5; + GLuint _vaoID; + GLuint _vBufferID; + GLuint _iBufferID; GLenum _mode; unsigned int _isize; unsigned int _vsize; - Vertex* _varray; - int* _iarray; + std::vector _varray; + std::vector _iarray; }; }// namespace openspace diff --git a/modules/base/shaders/grid_fs.glsl b/modules/base/shaders/grid_fs.glsl new file mode 100644 index 0000000000..ae1a552211 --- /dev/null +++ b/modules/base/shaders/grid_fs.glsl @@ -0,0 +1,37 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014 - 2017 * + * * + * 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 "fragment.glsl" +#include "PowerScaling/powerScaling_fs.hglsl" + +in float vs_screenSpaceDepth; + +uniform vec4 gridColor; + +Fragment getFragment() { + Fragment frag; + frag.color = gridColor; + frag.depth = vs_screenSpaceDepth; + return frag; +} diff --git a/modules/base/shaders/grid_vs.glsl b/modules/base/shaders/grid_vs.glsl new file mode 100644 index 0000000000..6bbb6800e5 --- /dev/null +++ b/modules/base/shaders/grid_vs.glsl @@ -0,0 +1,42 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014 - 2017 * + * * + * 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. * + ****************************************************************************************/ + +#version __CONTEXT__ + +#include "PowerScaling/powerScaling_vs.hglsl" + +layout(location = 0) in vec3 in_position; + +out float vs_screenSpaceDepth; + +uniform mat4 modelViewTransform; +uniform mat4 projectionTransform; + +void main() { + const vec4 positionClipSpace = projectionTransform * modelViewTransform * vec4(in_position, 1.0); + const vec4 positionScreenSpace = z_normalization(positionClipSpace); + vs_screenSpaceDepth = positionScreenSpace.w; + + gl_Position = positionScreenSpace; +} From be6d34d5df9d78159821cba27ee2a993bfbb4e55 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Fri, 28 Jul 2017 13:41:03 -0400 Subject: [PATCH 17/51] Fix SphericalGrid --- data/scene/grids/grids.mod | 15 +- .../rendering/renderablesphericalgrid.cpp | 153 +++++++++--------- .../base/rendering/renderablesphericalgrid.h | 3 + 3 files changed, 90 insertions(+), 81 deletions(-) diff --git a/data/scene/grids/grids.mod b/data/scene/grids/grids.mod index 04a9b783bf..a9ec4af6a4 100644 --- a/data/scene/grids/grids.mod +++ b/data/scene/grids/grids.mod @@ -5,37 +5,34 @@ return { Parent = "Root", Renderable = { Type = "RenderableSphericalGrid", - GridType = "ECLIPJ2000", GridColor = { 0.75, 0.0, 0.0, 1.0}, - LineWidth = 2.0, + LineWidth = 0.75, GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0, -0.9938214 , -0.1109906, -0.0003515167, 0.0, -0.09647644, 0.8622859, 0.4971472 , 0.0, 0.0 , 0.0 , 0.0 , 1.0 } } }, - { + { Name = "Equatorial Grid", Parent = "Root", Renderable = { Type = "RenderableSphericalGrid", - GridType = "ICRF", GridColor = { 0.0, 0.0, 0.75, 1.0}, - LineWidth = 2.0, + LineWidth = 0.75, GridMatrix = { -0.05487554, 0.4941095, -0.8676661, 0.0, -0.8734371 , -0.4448296, -0.1980764, 0.0, -0.483835 , 0.7469823, 0.4559838, 0.0, 0.0 , 0.0 , 0.0 , 1.0 } } }, - { + { Name = "Galactic Grid", Parent = "SolarSystem", Renderable = { Type = "RenderableSphericalGrid", - GridType = "GALACTIC", - LineWidth = 2.0, + LineWidth = 0.75, GridColor = { 0.0, 0.75, 0.75, 1.0} } - } + } } diff --git a/modules/base/rendering/renderablesphericalgrid.cpp b/modules/base/rendering/renderablesphericalgrid.cpp index 31d9894aa3..041ef3a45c 100644 --- a/modules/base/rendering/renderablesphericalgrid.cpp +++ b/modules/base/rendering/renderablesphericalgrid.cpp @@ -81,7 +81,7 @@ documentation::Documentation RenderableSphericalGrid::Documentation() { { GridMatrixInfo.identifier, new DoubleMatrix4x4Verifier, - Optional::No, + Optional::Yes, GridMatrixInfo.description }, { @@ -123,9 +123,10 @@ RenderableSphericalGrid::RenderableSphericalGrid(const ghoul::Dictionary& dictio glm::vec4(0.f), glm::vec4(1.f) ) - , _segments(SegmentsInfo, 36, 4, 10000) + , _segments(SegmentsInfo, 36, 4, 200) , _lineWidth(LineWidthInfo, 0.5f, 0.f, 20.f) , _radius(RadiusInfo, 1e20f, 1.f, 1e35f) + , _gridIsDirty(true) , _vaoID(0) , _vBufferID(0) , _iBufferID(0) @@ -137,7 +138,9 @@ RenderableSphericalGrid::RenderableSphericalGrid(const ghoul::Dictionary& dictio "RenderableSphericalGrid" ); - _gridMatrix = dictionary.value(GridMatrixInfo.identifier); + if (dictionary.hasKey(GridMatrixInfo.identifier)) { + _gridMatrix = dictionary.value(GridMatrixInfo.identifier); + } addProperty(_gridMatrix); if (dictionary.hasKey(GridColorInfo.identifier)) { @@ -149,7 +152,8 @@ RenderableSphericalGrid::RenderableSphericalGrid(const ghoul::Dictionary& dictio if (dictionary.hasKey(SegmentsInfo.identifier)) { _segments = static_cast(dictionary.value(SegmentsInfo.identifier)); } - //addProperty(_segments); + _segments.onChange([&]() { _gridIsDirty = true; }); + addProperty(_segments); if (dictionary.hasKey(LineWidthInfo.identifier)) { _lineWidth = static_cast( @@ -163,61 +167,8 @@ RenderableSphericalGrid::RenderableSphericalGrid(const ghoul::Dictionary& dictio dictionary.value(RadiusInfo.identifier) ); } - - _isize = int(6 * _segments * _segments); - _vsize = int((_segments + 1) * (_segments + 1)); - _varray.resize(_vsize); - _iarray.resize(_isize); - - int nr = 0; - const float fsegments = static_cast(_segments); - const float r = _radius; - - for (int nSegment = 0; nSegment <= _segments; ++nSegment) { - // define an extra vertex around the y-axis due to texture mapping - for (int j = 0; j <= _segments; j++) { - const float fi = static_cast(nSegment); - const float fj = static_cast(j); - - // inclination angle (north to south) - const float theta = fi * float(M_PI) / fsegments*2.f; // 0 -> PI - - // azimuth angle (east to west) - const float phi = fj * float(M_PI) * 2.0f / fsegments; // 0 -> 2*PI - - const float x = r * sin(phi) * sin(theta); // - const float y = r * cos(theta); // up - const float z = r * cos(phi) * sin(theta); // - - glm::vec3 normal = glm::vec3(x, y, z); - if (!(x == 0.f && y == 0.f && z == 0.f)) - normal = glm::normalize(normal); - - //const float t1 = fj / fsegments; - const float t2 = fi / fsegments; - - glm::vec4 tmp (x, y, z, 1); - glm::mat4 rot = glm::rotate(glm::mat4(1), static_cast(M_PI_2), glm::vec3(1, 0, 0)); - tmp = glm::vec4(_gridMatrix.value() * glm::dmat4(rot) * glm::dvec4(tmp)); - - for (int i = 0; i < 3; i++){ - _varray[nr].location[i] = tmp[i]; - } - ++nr; - } - } - nr = 0; - // define indices for all triangles - for (int i = 1; i <= _segments; ++i) { - for (int j = 0; j < _segments; ++j) { - const int t = _segments + 1; - _iarray[nr] = t * (i - 1) + j + 0; ++nr; - _iarray[nr] = t * (i + 0) + j + 0; ++nr; - _iarray[nr] = t * (i + 0) + j + 1; ++nr; - _iarray[nr] = t * (i - 1) + j + 1; ++nr; - _iarray[nr] = t * (i - 1) + j + 0; ++nr; - } - } + _radius.onChange([&]() { _gridIsDirty = true; }); + addProperty(_radius); } RenderableSphericalGrid::~RenderableSphericalGrid() {} @@ -242,34 +193,23 @@ bool RenderableSphericalGrid::deinitialize() { } bool RenderableSphericalGrid::initialize() { - bool completeSuccess = true; - _gridProgram = OsEng.renderEngine().buildRenderProgram( "GridProgram", "${MODULE_BASE}/shaders/grid_vs.glsl", "${MODULE_BASE}/shaders/grid_fs.glsl" ); - // Initialize and upload to graphics card glGenVertexArrays(1, &_vaoID); glGenBuffers(1, &_vBufferID); glGenBuffers(1, &_iBufferID); - // First VAO setup glBindVertexArray(_vaoID); glBindBuffer(GL_ARRAY_BUFFER, _vBufferID); - glBufferData(GL_ARRAY_BUFFER, _vsize * sizeof(Vertex), _varray.data(), GL_STATIC_DRAW); - - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), - reinterpret_cast(offsetof(Vertex, location))); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _iBufferID); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, _isize * sizeof(int), _iarray.data(), GL_STATIC_DRAW); - + glEnableVertexAttribArray(0); glBindVertexArray(0); - return completeSuccess; + return true; } void RenderableSphericalGrid::render(const RenderData& data, RendererTasks&){ @@ -300,4 +240,73 @@ void RenderableSphericalGrid::render(const RenderData& data, RendererTasks&){ _gridProgram->deactivate(); } +void RenderableSphericalGrid::update(const UpdateData& data) { + if (_gridIsDirty) { + _isize = int(6 * _segments * _segments); + _vsize = int((_segments + 1) * (_segments + 1)); + _varray.resize(_vsize); + _iarray.resize(_isize); + + int nr = 0; + const float fsegments = static_cast(_segments); + const float r = _radius; + + for (int nSegment = 0; nSegment <= _segments; ++nSegment) { + // define an extra vertex around the y-axis due to texture mapping + for (int j = 0; j <= _segments; j++) { + const float fi = static_cast(nSegment); + const float fj = static_cast(j); + + // inclination angle (north to south) + const float theta = fi * float(M_PI) / fsegments*2.f; // 0 -> PI + + // azimuth angle (east to west) + const float phi = fj * float(M_PI) * 2.0f / fsegments; // 0 -> 2*PI + + const float x = r * sin(phi) * sin(theta); // + const float y = r * cos(theta); // up + const float z = r * cos(phi) * sin(theta); // + + glm::vec3 normal = glm::vec3(x, y, z); + if (!(x == 0.f && y == 0.f && z == 0.f)) + normal = glm::normalize(normal); + + //const float t1 = fj / fsegments; + const float t2 = fi / fsegments; + + glm::vec4 tmp(x, y, z, 1); + glm::mat4 rot = glm::rotate(glm::mat4(1), static_cast(M_PI_2), glm::vec3(1, 0, 0)); + tmp = glm::vec4(_gridMatrix.value() * glm::dmat4(rot) * glm::dvec4(tmp)); + + for (int i = 0; i < 3; i++) { + _varray[nr].location[i] = tmp[i]; + } + ++nr; + } + } + nr = 0; + // define indices for all triangles + for (int i = 1; i <= _segments; ++i) { + for (int j = 0; j < _segments; ++j) { + const int t = _segments + 1; + _iarray[nr] = t * (i - 1) + j + 0; ++nr; + _iarray[nr] = t * (i + 0) + j + 0; ++nr; + _iarray[nr] = t * (i + 0) + j + 1; ++nr; + _iarray[nr] = t * (i - 1) + j + 1; ++nr; + _iarray[nr] = t * (i - 1) + j + 0; ++nr; + } + } + + glBindVertexArray(_vaoID); + glBindBuffer(GL_ARRAY_BUFFER, _vBufferID); + glBufferData(GL_ARRAY_BUFFER, _vsize * sizeof(Vertex), _varray.data(), GL_STATIC_DRAW); + + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), + reinterpret_cast(offsetof(Vertex, location))); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _iBufferID); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, _isize * sizeof(int), _iarray.data(), GL_STATIC_DRAW); + } +} + } // namespace openspace diff --git a/modules/base/rendering/renderablesphericalgrid.h b/modules/base/rendering/renderablesphericalgrid.h index c36fae8a78..9d4c0ef789 100644 --- a/modules/base/rendering/renderablesphericalgrid.h +++ b/modules/base/rendering/renderablesphericalgrid.h @@ -54,6 +54,7 @@ public: bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; + void update(const UpdateData& data); static documentation::Documentation Documentation(); @@ -70,6 +71,8 @@ protected: properties::FloatProperty _lineWidth; properties::FloatProperty _radius; + bool _gridIsDirty; + GLuint _vaoID; GLuint _vBufferID; GLuint _iBufferID; From fc63e51ecef02795036892523e349064186717b9 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Fri, 28 Jul 2017 13:52:45 -0400 Subject: [PATCH 18/51] Sort milkyway and stars Remove keybinding scripts Remove satellites --- .gitignore | 16 +- data/scene/atmosphereearth.scene | 10 +- data/scene/dawn.scene | 6 +- data/scene/default.scene | 13 +- .../{ => deprecated}/iswa/cdf/fieldlines.json | 0 .../scene/{ => deprecated}/iswa/tfs/autumn.tf | 0 data/scene/{ => deprecated}/iswa/tfs/blue.jpg | Bin .../{ => deprecated}/iswa/tfs/ccmc-cdf.tf | 0 .../iswa/tfs/colormap_autumn.png | Bin .../iswa/tfs/colormap_hot.jpg | Bin .../iswa/tfs/colormap_hot.png | Bin .../iswa/tfs/colormap_parula.jpg | Bin .../iswa/tfs/colormap_parula.png | Bin .../{ => deprecated}/iswa/tfs/default.tf | 0 .../scene/{ => deprecated}/iswa/tfs/green.jpg | Bin data/scene/{ => deprecated}/iswa/tfs/hot.tf | 0 .../scene/{ => deprecated}/iswa/tfs/parula.tf | 0 data/scene/{ => deprecated}/iswa/tfs/red.jpg | Bin data/scene/{ => deprecated}/iswa/tfs/rgb.tf | 0 data/scene/fieldlines.scene | 8 +- data/scene/juno.scene | 6 +- .../digitaluniverse.data} | 0 .../digitaluniverse.mod} | 0 .../eso/eso.data} | 0 .../milkyway-eso.mod => milkyway/eso/eso.mod} | 0 data/scene/newhorizons.scene | 142 +++++++++++++++++- data/scene/osirisrex.scene | 69 ++++++++- data/scene/rosetta.scene | 72 ++++++++- data/scene/satellites.scene | 71 --------- .../denver/denver.data} | 0 .../denver/denver.mod} | 0 .../digitaluniverse.data} | 0 .../digitaluniverse.mod} | 0 scripts/bind_keys_newhorizons.lua | 135 ----------------- scripts/bind_keys_osirisrex.lua | 59 -------- scripts/bind_keys_rosetta.lua | 68 --------- scripts/bind_keys_satellites.lua | 23 --- 37 files changed, 302 insertions(+), 396 deletions(-) rename data/scene/{ => deprecated}/iswa/cdf/fieldlines.json (100%) rename data/scene/{ => deprecated}/iswa/tfs/autumn.tf (100%) rename data/scene/{ => deprecated}/iswa/tfs/blue.jpg (100%) rename data/scene/{ => deprecated}/iswa/tfs/ccmc-cdf.tf (100%) rename data/scene/{ => deprecated}/iswa/tfs/colormap_autumn.png (100%) rename data/scene/{ => deprecated}/iswa/tfs/colormap_hot.jpg (100%) rename data/scene/{ => deprecated}/iswa/tfs/colormap_hot.png (100%) rename data/scene/{ => deprecated}/iswa/tfs/colormap_parula.jpg (100%) rename data/scene/{ => deprecated}/iswa/tfs/colormap_parula.png (100%) rename data/scene/{ => deprecated}/iswa/tfs/default.tf (100%) rename data/scene/{ => deprecated}/iswa/tfs/green.jpg (100%) rename data/scene/{ => deprecated}/iswa/tfs/hot.tf (100%) rename data/scene/{ => deprecated}/iswa/tfs/parula.tf (100%) rename data/scene/{ => deprecated}/iswa/tfs/red.jpg (100%) rename data/scene/{ => deprecated}/iswa/tfs/rgb.tf (100%) rename data/scene/milkyway/{milkyway.data => digitaluniverse/digitaluniverse.data} (100%) rename data/scene/milkyway/{milkyway.mod => digitaluniverse/digitaluniverse.mod} (100%) rename data/scene/{milkyway-eso/milkyway-eso.data => milkyway/eso/eso.data} (100%) rename data/scene/{milkyway-eso/milkyway-eso.mod => milkyway/eso/eso.mod} (100%) delete mode 100644 data/scene/satellites.scene rename data/scene/{stars-denver/stars-denver.data => stars/denver/denver.data} (100%) rename data/scene/{stars-denver/stars-denver.mod => stars/denver/denver.mod} (100%) rename data/scene/stars/{stars.data => digitaluniverse/digitaluniverse.data} (100%) rename data/scene/stars/{stars.mod => digitaluniverse/digitaluniverse.mod} (100%) delete mode 100644 scripts/bind_keys_newhorizons.lua delete mode 100644 scripts/bind_keys_osirisrex.lua delete mode 100644 scripts/bind_keys_rosetta.lua delete mode 100644 scripts/bind_keys_satellites.lua diff --git a/.gitignore b/.gitignore index a39f0eb829..7b140e286b 100644 --- a/.gitignore +++ b/.gitignore @@ -55,8 +55,8 @@ data/scene/lodglobes/uranus/textures data/scene/lodglobes/venus/textures data/scene/mars/textures data/scene/mercury/textures -data/scene/milkyway/textures -data/scene/milkyway-eso/textures +data/scene/milkyway/digitaluniverse/textures +data/scene/milkyway/eso/textures data/scene/missions/dawn/ceres/textures data/scene/missions/dawn/dawn/obj data/scene/missions/dawn/dawn/textures @@ -98,12 +98,12 @@ data/scene/saturn/rhea/textures data/scene/saturn/saturn/textures data/scene/saturn/tethys/textures data/scene/saturn/titan/textures -data/scene/stars/colorbv.cmap -data/scene/stars/speck -data/scene/stars/textures -data/scene/stars-denver/denver_colorbv.cmap -data/scene/stars-denver/speck -data/scene/stars-denver/textures +data/scene/stars/digitaluniverse/colorbv.cmap +data/scene/stars/digitaluniverse/speck +data/scene/stars/digitaluniverse/textures +data/scene/stars/denver/denver_colorbv.cmap +data/scene/stars/denver/speck +data/scene/stars/denver/textures data/scene/sun/textures data/scene/uranus/textures data/scene/venus/textures diff --git a/data/scene/atmosphereearth.scene b/data/scene/atmosphereearth.scene index a129c1700c..bbfaf10dd1 100644 --- a/data/scene/atmosphereearth.scene +++ b/data/scene/atmosphereearth.scene @@ -42,14 +42,14 @@ return { Camera = { Focus = "Earth", Position = {1, 0, 0}, - Rotation = {0.250635, -0.028751, 0.879269, 0.404030}, + Rotation = {0.250635, -0.028751, 0.879269, 0.404030}, }, Modules = { "sun", "earth", - "stars", - --"stars-denver", - "milkyway", - -- "milkyway-eso", + "stars/digitaluniverse", + -- "stars/denver", + "milkyway/digitaluniverse", + --"milkyway/eso", } } diff --git a/data/scene/dawn.scene b/data/scene/dawn.scene index a18bf0c916..6dddbc93fd 100644 --- a/data/scene/dawn.scene +++ b/data/scene/dawn.scene @@ -51,8 +51,10 @@ return { "uranus", "neptune", "pluto", - "stars", - "milkyway", + "stars/digitaluniverse", + -- "stars/denver", + "milkyway/digitaluniverse", + --"milkyway/eso", "missions/dawn" } } diff --git a/data/scene/default.scene b/data/scene/default.scene index 468997791a..9e66923231 100644 --- a/data/scene/default.scene +++ b/data/scene/default.scene @@ -73,6 +73,10 @@ function postInitialization() openspace.setPropertyValue("Earth.RenderableGlobe.Atmosphere", true) openspace.setPropertyValue("Earth.RenderableGlobe.Debug.LevelByProjectedAreaElseDistance", false) + openspace.setPropertyValue("Ecliptic Grid.renderable.Enabled", false) + openspace.setPropertyValue("Equatorial Grid.renderable.Enabled", false) + openspace.setPropertyValue("Galactic Grid.renderable.Enabled", false) + openspace.globebrowsing.goToGeo(58.5877, 16.1924, 20000000) openspace.printInfo("Done setting default values") @@ -98,12 +102,13 @@ return { "saturn", "uranus", "neptune", - "stars", - -- "stars-denver", - "milkyway", - --"milkyway-eso", + "stars/digitaluniverse", + -- "stars/denver", + "milkyway/digitaluniverse", + --"milkyway/eso", -- "satellites" "constellationbounds", + "grids" } } diff --git a/data/scene/iswa/cdf/fieldlines.json b/data/scene/deprecated/iswa/cdf/fieldlines.json similarity index 100% rename from data/scene/iswa/cdf/fieldlines.json rename to data/scene/deprecated/iswa/cdf/fieldlines.json diff --git a/data/scene/iswa/tfs/autumn.tf b/data/scene/deprecated/iswa/tfs/autumn.tf similarity index 100% rename from data/scene/iswa/tfs/autumn.tf rename to data/scene/deprecated/iswa/tfs/autumn.tf diff --git a/data/scene/iswa/tfs/blue.jpg b/data/scene/deprecated/iswa/tfs/blue.jpg similarity index 100% rename from data/scene/iswa/tfs/blue.jpg rename to data/scene/deprecated/iswa/tfs/blue.jpg diff --git a/data/scene/iswa/tfs/ccmc-cdf.tf b/data/scene/deprecated/iswa/tfs/ccmc-cdf.tf similarity index 100% rename from data/scene/iswa/tfs/ccmc-cdf.tf rename to data/scene/deprecated/iswa/tfs/ccmc-cdf.tf diff --git a/data/scene/iswa/tfs/colormap_autumn.png b/data/scene/deprecated/iswa/tfs/colormap_autumn.png similarity index 100% rename from data/scene/iswa/tfs/colormap_autumn.png rename to data/scene/deprecated/iswa/tfs/colormap_autumn.png diff --git a/data/scene/iswa/tfs/colormap_hot.jpg b/data/scene/deprecated/iswa/tfs/colormap_hot.jpg similarity index 100% rename from data/scene/iswa/tfs/colormap_hot.jpg rename to data/scene/deprecated/iswa/tfs/colormap_hot.jpg diff --git a/data/scene/iswa/tfs/colormap_hot.png b/data/scene/deprecated/iswa/tfs/colormap_hot.png similarity index 100% rename from data/scene/iswa/tfs/colormap_hot.png rename to data/scene/deprecated/iswa/tfs/colormap_hot.png diff --git a/data/scene/iswa/tfs/colormap_parula.jpg b/data/scene/deprecated/iswa/tfs/colormap_parula.jpg similarity index 100% rename from data/scene/iswa/tfs/colormap_parula.jpg rename to data/scene/deprecated/iswa/tfs/colormap_parula.jpg diff --git a/data/scene/iswa/tfs/colormap_parula.png b/data/scene/deprecated/iswa/tfs/colormap_parula.png similarity index 100% rename from data/scene/iswa/tfs/colormap_parula.png rename to data/scene/deprecated/iswa/tfs/colormap_parula.png diff --git a/data/scene/iswa/tfs/default.tf b/data/scene/deprecated/iswa/tfs/default.tf similarity index 100% rename from data/scene/iswa/tfs/default.tf rename to data/scene/deprecated/iswa/tfs/default.tf diff --git a/data/scene/iswa/tfs/green.jpg b/data/scene/deprecated/iswa/tfs/green.jpg similarity index 100% rename from data/scene/iswa/tfs/green.jpg rename to data/scene/deprecated/iswa/tfs/green.jpg diff --git a/data/scene/iswa/tfs/hot.tf b/data/scene/deprecated/iswa/tfs/hot.tf similarity index 100% rename from data/scene/iswa/tfs/hot.tf rename to data/scene/deprecated/iswa/tfs/hot.tf diff --git a/data/scene/iswa/tfs/parula.tf b/data/scene/deprecated/iswa/tfs/parula.tf similarity index 100% rename from data/scene/iswa/tfs/parula.tf rename to data/scene/deprecated/iswa/tfs/parula.tf diff --git a/data/scene/iswa/tfs/red.jpg b/data/scene/deprecated/iswa/tfs/red.jpg similarity index 100% rename from data/scene/iswa/tfs/red.jpg rename to data/scene/deprecated/iswa/tfs/red.jpg diff --git a/data/scene/iswa/tfs/rgb.tf b/data/scene/deprecated/iswa/tfs/rgb.tf similarity index 100% rename from data/scene/iswa/tfs/rgb.tf rename to data/scene/deprecated/iswa/tfs/rgb.tf diff --git a/data/scene/fieldlines.scene b/data/scene/fieldlines.scene index b4936dc5d4..2a9da28b7c 100644 --- a/data/scene/fieldlines.scene +++ b/data/scene/fieldlines.scene @@ -49,11 +49,11 @@ return { "saturn", "uranus", "neptune", - "stars", "fieldlines", - -- "stars-denver", - "milkyway", - -- "milkyway-eso", + "stars/digitaluniverse", + -- "stars/denver", + "milkyway/digitaluniverse", + --"milkyway/eso", "constellationbounds", } } diff --git a/data/scene/juno.scene b/data/scene/juno.scene index f3fb214f73..69f68db08b 100755 --- a/data/scene/juno.scene +++ b/data/scene/juno.scene @@ -55,8 +55,10 @@ return { "saturn/saturn", "uranus", "neptune", - "stars", - "milkyway", + "stars/digitaluniverse", + -- "stars/denver", + "milkyway/digitaluniverse", + --"milkyway/eso", "missions/juno" } } diff --git a/data/scene/milkyway/milkyway.data b/data/scene/milkyway/digitaluniverse/digitaluniverse.data similarity index 100% rename from data/scene/milkyway/milkyway.data rename to data/scene/milkyway/digitaluniverse/digitaluniverse.data diff --git a/data/scene/milkyway/milkyway.mod b/data/scene/milkyway/digitaluniverse/digitaluniverse.mod similarity index 100% rename from data/scene/milkyway/milkyway.mod rename to data/scene/milkyway/digitaluniverse/digitaluniverse.mod diff --git a/data/scene/milkyway-eso/milkyway-eso.data b/data/scene/milkyway/eso/eso.data similarity index 100% rename from data/scene/milkyway-eso/milkyway-eso.data rename to data/scene/milkyway/eso/eso.data diff --git a/data/scene/milkyway-eso/milkyway-eso.mod b/data/scene/milkyway/eso/eso.mod similarity index 100% rename from data/scene/milkyway-eso/milkyway-eso.mod rename to data/scene/milkyway/eso/eso.mod diff --git a/data/scene/newhorizons.scene b/data/scene/newhorizons.scene index 7dc39df870..267a88e5d5 100644 --- a/data/scene/newhorizons.scene +++ b/data/scene/newhorizons.scene @@ -16,7 +16,139 @@ function preInitialization() openspace.time.setTime("2015-07-14T10:05:00.00") - dofile(openspace.absPath('${SCRIPTS}/bind_keys_newhorizons.lua')) + -- Load the common helper functions + dofile(openspace.absPath('${SCRIPTS}/common.lua')) + + openspace.clearKeys() + helper.setCommonKeys() + helper.setDeltaTimeKeys({ + 1, 5, 10, 20, 40, 60, 120, 360, 540, 1080, + 2160, 4320, 8640 + }) + + openspace.bindKey( + "a", + "openspace.setPropertyValue('Interaction.origin', 'NewHorizons')", + "Sets the focus of the camera on 'NewHorizons'." + ) + openspace.bindKey( + "s", + "openspace.setPropertyValue('Interaction.origin', 'Pluto')", + "Sets the focus of the camera on 'Pluto'" + ) + openspace.bindKey( + "d", + "openspace.setPropertyValue('Interaction.origin', 'Charon')", + "Sets the focus of the camera on 'Charon'." + ) + openspace.bindKey( + "z", + "openspace.setPropertyValue('Interaction.origin', 'JupiterProjection')", + "Sets the focus of the camera on 'Jupiter'." + ) + openspace.bindKey( + "x", + "openspace.setPropertyValue('Interaction.origin', 'Europa')", + "Sets the focus of the camera on 'Europa'." + ) + + openspace.bindKey( + "F8", + "openspace.setPropertyValue('Pluto.renderable.ProjectionComponent.clearAllProjections', true);" .. + "openspace.setPropertyValue('Charon.renderable.ProjectionComponent.clearAllProjections', true);", + "Removes all image projections from Pluto and Charon." + ) + + openspace.bindKey( + "F9", + "openspace.time.setTime('2015-07-14T09:00:00.00');" .. + "openspace.setPropertyValue('Pluto.renderable.clearAllProjections', true);" .. + "openspace.setPropertyValue('Charon.renderable.clearAllProjections', true);", + "Jumps to the 14th of July 2015 at 0900 UTC and clears all projections." + ) + + openspace.bindKey( + "KP_8", + helper.property.increment('Pluto.renderable.heightExaggeration', 0.1), + "Increases the height map exaggeration on Pluto." + ) + openspace.bindKey( + "KP_2", + helper.property.decrement('Pluto.renderable.heightExaggeration', 0.1), + "Decreases the height map exaggeration on Pluto." + ) + openspace.bindKey( + "KP_9", + helper.property.increment('Charon.renderable.heightExaggeration', 2), + "Increases the height map exaggeration on Charon." + ) + openspace.bindKey( + "KP_3", + helper.property.decrement('Charon.renderable.heightExaggeration', 2), + "Decreases the height map exaggeration on Charon." + ) + + openspace.bindKey( + "q", + helper.property.invert('SunMarker.renderable.enabled'), + "Toggles the visibility of the text marking the location of the Sun." + ) + openspace.bindKey( + "e", + helper.property.invert('EarthMarker.renderable.enabled'), + "Toggles the visibility of the text marking the location of the Earth." + ) + openspace.bindKey( + "o", + helper.property.invert('PlutoTrail.renderable.enabled'), + "Toggles the visibility of the trail behind Pluto." + ) + + openspace.bindKey( + "j", + helper.renderable.toggle('PlutoText') .. helper.renderable.toggle('CharonText') .. + helper.renderable.toggle('HydraText') .. helper.renderable.toggle('NixText') .. + helper.renderable.toggle('KerberosText') .. helper.renderable.toggle('StyxText'), + "Toggles the visibility of the text labels of Pluto, Charon, Hydra, Nix, Kerberos, and Styx." + ) + + openspace.bindKey( + "l", + helper.property.invert('Labels.renderable.performFading'), + "Toggles the visibility of the labels for the New Horizons instruments." + ) + + openspace.bindKey("m", + helper.property.invert('NH_LORRI.renderable.solidDraw') .. + helper.property.invert('NH_RALPH_LEISA.renderable.solidDraw') .. + helper.property.invert('NH_RALPH_MVIC_PAN1.renderable.solidDraw') .. + helper.property.invert('NH_RALPH_MVIC_PAN2.renderable.solidDraw') .. + helper.property.invert('NH_RALPH_MVIC_RED.renderable.solidDraw') .. + helper.property.invert('NH_RALPH_MVIC_BLUE.renderable.solidDraw') .. + helper.property.invert('NH_RALPH_MVIC_FT.renderable.solidDraw') .. + helper.property.invert('NH_RALPH_MVIC_METHANE.renderable.solidDraw') .. + helper.property.invert('NH_RALPH_MVIC_NIR.renderable.solidDraw') .. + helper.property.invert('NH_ALICE_AIRGLOW.renderable.solidDraw') .. + helper.property.invert('NH_ALICE_SOC.renderable.solidDraw'), + "Draws the instrument field of views in a solid color or as lines." + ) + + openspace.bindKey( + "t", + helper.renderable.toggle('PlutoShadow') .. helper.renderable.toggle('CharonShadow'), + "Toggles the visibility of the shadow visualization of Pluto and Charon." + ) + + openspace.bindKey("p", + helper.property.invert('JupiterProjection.renderable.performProjection') .. + helper.property.invert('Io.renderable.performProjection') .. + helper.property.invert('Ganymede.renderable.performProjection') .. + helper.property.invert('Europa.renderable.performProjection') .. + helper.property.invert('Callisto.renderable.performProjection') .. + helper.property.invert('Pluto.renderable.performProjection') .. + helper.property.invert('Charon.renderable.performProjection'), + "Enables or disables the image projection on the different available objects." + ) end function postInitialization() @@ -56,10 +188,10 @@ return { "saturn/saturn", "uranus", "neptune", - "stars", - -- "stars-denver", - "milkyway", - -- "milkyway-eso", + "stars/digitaluniverse", + -- "stars/denver", + "milkyway/digitaluniverse", + --"milkyway/eso", "missions/newhorizons/pluto", "missions/newhorizons/jupiter", "missions/newhorizons/newhorizons", diff --git a/data/scene/osirisrex.scene b/data/scene/osirisrex.scene index b869051f7b..0902c47df5 100644 --- a/data/scene/osirisrex.scene +++ b/data/scene/osirisrex.scene @@ -12,13 +12,68 @@ function preInitialization() openspace.spice.loadKernel("${SPICE}/naif0012.tls") openspace.spice.loadKernel("${SPICE}/pck00010.tpc") - dofile(openspace.absPath('${SCRIPTS}/bind_keys_osirisrex.lua')) - --local startTime = "2019 APR 16 12:03:00.00" openspace.time.setTime("2016 SEP 8 23:00:00.500") - openspace.scriptScheduler.loadFile("${OPENSPACE_DATA}/scene/missions/osirisrex/scheduled_scripts.lua") + -- Load the common helper functions + dofile(openspace.absPath('${SCRIPTS}/common.lua')) + dofile(openspace.absPath('${SCRIPTS}/bind_common_keys.lua')) + -- Set focuses + openspace.bindKey( + "a", + "openspace.setPropertyValue('Interaction.origin', 'OsirisRex')", + "Sets the focus of the camera on 'Osiris Rex'." + ) + openspace.bindKey( + "s", + "openspace.setPropertyValue('Interaction.origin', 'BennuBarycenter')", + "Sets the focus of the camera on 'Bennu'." + ) + + openspace.bindKey( + "F6" , + "openspace.printInfo('Set time: Launch');openspace.time.setTime('2016 SEP 08 23:05:00');", + "Sets the time to the launch." + ) + openspace.bindKey( + "F7", + "openspace.printInfo('Set time: Gravity Assist');openspace.time.setTime('2017 SEP 22 15:00:00');", + "Sets the time to the Earth gravity assist." + ) + openspace.bindKey( + "F8", + "openspace.printInfo('Set time: Approach');openspace.time.setTime('2018-SEP-11 21:31:01.183');", + "Sets the time to the approach at Bennu." + ) + openspace.bindKey( + "F9", + "openspace.printInfo('Set time: Preliminary Survey');openspace.time.setTime('2018-NOV-20 01:13:12.183');", + "Sets the time to the preliminary survey of Bennu." + ) + openspace.bindKey( + "F10", + "openspace.printInfo('Set time: Orbital B');openspace.time.setTime('2019-APR-08 10:35:27.186');", + "Sets the time to the orbital B event." + ) + openspace.bindKey( + "F11", + "openspace.printInfo('Set time: Recon');openspace.time.setTime('2019-MAY-25 03:50:31.195');", + "Sets the time to the recon event." + ) + + openspace.bindKey( + "q", + helper.property.invert('SunMarker.renderable.enabled'), + "Toggles the visibility of the text marking the location of the Sun." + ) + openspace.bindKey( + "e", + helper.property.invert('EarthMarker.renderable.enabled'), + "Toggles the visibility of the text marking the location of the Earth." + ) + + openspace.scriptScheduler.loadFile("${OPENSPACE_DATA}/scene/missions/osirisrex/scheduled_scripts.lua") end function postInitialization() @@ -68,10 +123,10 @@ return { "saturn", "uranus", "neptune", - "stars", - -- "stars-denver", - "milkyway", - -- "milkyway-eso", + "stars/digitaluniverse", + -- "stars/denver", + "milkyway/digitaluniverse", + --"milkyway/eso", "missions/osirisrex", } } diff --git a/data/scene/rosetta.scene b/data/scene/rosetta.scene index ce4c0213da..1c6727314c 100644 --- a/data/scene/rosetta.scene +++ b/data/scene/rosetta.scene @@ -18,7 +18,71 @@ function preInitialization() -- Shadow flyby -- openspace.time.setTime("2015-02-14T12:00:00.000") - dofile(openspace.absPath('${SCRIPTS}/bind_keys_rosetta.lua')) + -- Load the common helper functions + dofile(openspace.absPath('${SCRIPTS}/common.lua')) + + openspace.clearKeys() + helper.setCommonKeys() + + helper.setDeltaTimeKeys({ + 1, 5, 10, 20, 40, 90, 360, 720, 2880, 14400, + 28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600 + }) + + openspace.bindKey( + "a", + "openspace.setPropertyValue('Interaction.origin', '67P')", + "Sets the focus of the camera on '67P'." + ) + openspace.bindKey( + "s", + "openspace.setPropertyValue('Interaction.origin', 'Rosetta')", + "Sets the focus of the camera on 'Rosetta'." + ) + + openspace.bindKey( + "F5", + "openspace.time.setTime('2014-08-01T03:05:18.101')", + "Jumps to the time of initial approach of Rosetta to 67P." + ) + openspace.bindKey( + "F6", + "openspace.time.setTime('2014-11-12T08:20:00.00')", + "Jumps to the time when the Philae lander is released." + ) + openspace.bindKey( + "F8", + "openspace.setPropertyValue('67P.renderable.ProjectionComponent.clearAllProjections', true)", + "Removes all image projections from 67P." + ) + + openspace.bindKey( + "i", + helper.renderable.toggle('ImagePlaneRosetta'), + "Toggles the visibility of the free floating image plane." + ) + openspace.bindKey( + "q", + helper.renderable.toggle('SunMarker'), + "Toggles the visibility of the text marking the location of the Sun." + ) + openspace.bindKey( + "e", + helper.renderable.toggle('JupiterTrail') .. helper.renderable.toggle('SaturnTrail') .. + helper.renderable.toggle('UranusTrail') .. helper.renderable.toggle('NeptuneTrail'), + "Toggles the visibility of all trails further from the Sun than 67P." + ) + openspace.bindKey( + "f", + helper.renderable.toggle('PhilaeTrail'), + "Toggles the visibility of Philae's trail." + ) + + openspace.bindKey( + "p", + helper.property.invert('67P.renderable.ProjectionComponent.performProjection'), + "Enables or disables the image projection on 67P." + ) end function postInitialization() @@ -58,8 +122,10 @@ return { "saturn/saturn", "uranus", -- "neptune", - "stars", - "milkyway", + "stars/digitaluniverse", + -- "stars/denver", + "milkyway/digitaluniverse", + --"milkyway/eso", "missions/rosetta", } } diff --git a/data/scene/satellites.scene b/data/scene/satellites.scene deleted file mode 100644 index 46cf989799..0000000000 --- a/data/scene/satellites.scene +++ /dev/null @@ -1,71 +0,0 @@ -function preInitialization() - --[[ - The scripts in this function are executed after the scene is loaded but before the - scene elements have been initialized, thus they should be used to set the time at - which the scene should start and other settings that might determine initialization - critical objects. - ]]-- - - openspace.spice.loadKernel("${SPICE}/naif0011.tls") - openspace.spice.loadKernel("${SPICE}/pck00010.tpc") - -- openspace.spice.loadKernel("${OPENSPACE_DATA}/spice/de430_1850-2150.bsp") - - openspace.time.setTime(openspace.time.currentWallTime()) - - --Test for vernal equinox time 2017 - --openspace.time.setTime("2017 MAR 20 10:28:30.500") - - dofile(openspace.absPath('${SCRIPTS}/bind_keys_satellites.lua')) -end - -function postInitialization() - --[[ - The scripts in this function are executed after all objects in the scene have been - created and initialized, but before the first render call. This is the place to set - graphical settings for the renderables. - ]]-- - openspace.printInfo("Setting default values") - openspace.setPropertyValue("SunMarker.renderable.Enabled", false) - openspace.setPropertyValue("SunGlare.renderable.Enabled", false) - openspace.setPropertyValue("MilkyWay.renderable.Enabled", false) - openspace.setPropertyValue("EarthMarker.renderable.Enabled", false) - openspace.setPropertyValue("EarthTrail.renderable.Enabled", false) - openspace.setPropertyValue("Earth.renderable.PerformShading", false) - - openspace.navigation.resetCameraDirection() - - openspace.printInfo("Done setting default values") - - if openspace.modules.isLoaded("ISWA") then - - openspace.iswa.addCdfFiles("${OPENSPACE_DATA}/cdflist.json"); - - --openspace.iswa.addCygnet(7); - - --openspace.iswa.addCygnet(-4,"Data","Gm"); - --openspace.iswa.addCygnet(-5,"Data","Gm"); - --openspace.iswa.addCygnet(-6,"Data","Gm"); - --openspace.iswa.addCygnet(-7,"Data","Gm"); - --openspace.iswa.addCygnet(-8,"Data","Gm"); - --openspace.iswa.addCygnet(-9,"Data","Gm"); - end -end - -return { - ScenePath = ".", - CommonFolder = "common", - Camera = { - Focus = "Earth", - Position = {-54343425747.129051, -73298476295.934555, 116584089130.590012}, - Rotation = {-0.078983, 0.830093, 0.014241, -0.551819}, - }, - Modules = { - --"satellites/earth", - "sun", - "earth", - -- "stars", - -- "milkyway", - "satellites" - } -} - diff --git a/data/scene/stars-denver/stars-denver.data b/data/scene/stars/denver/denver.data similarity index 100% rename from data/scene/stars-denver/stars-denver.data rename to data/scene/stars/denver/denver.data diff --git a/data/scene/stars-denver/stars-denver.mod b/data/scene/stars/denver/denver.mod similarity index 100% rename from data/scene/stars-denver/stars-denver.mod rename to data/scene/stars/denver/denver.mod diff --git a/data/scene/stars/stars.data b/data/scene/stars/digitaluniverse/digitaluniverse.data similarity index 100% rename from data/scene/stars/stars.data rename to data/scene/stars/digitaluniverse/digitaluniverse.data diff --git a/data/scene/stars/stars.mod b/data/scene/stars/digitaluniverse/digitaluniverse.mod similarity index 100% rename from data/scene/stars/stars.mod rename to data/scene/stars/digitaluniverse/digitaluniverse.mod diff --git a/scripts/bind_keys_newhorizons.lua b/scripts/bind_keys_newhorizons.lua deleted file mode 100644 index f48117f86b..0000000000 --- a/scripts/bind_keys_newhorizons.lua +++ /dev/null @@ -1,135 +0,0 @@ ---[[ OpenSpace keybinding script loaded from the newhorizons.scene file ]]-- - --- Load the common helper functions -dofile(openspace.absPath('${SCRIPTS}/common.lua')) - -openspace.clearKeys() -helper.setCommonKeys() -helper.setDeltaTimeKeys({ - 1, 5, 10, 20, 40, 60, 120, 360, 540, 1080, - 2160, 4320, 8640 -}) - -openspace.bindKey( - "a", - "openspace.setPropertyValue('Interaction.origin', 'NewHorizons')", - "Sets the focus of the camera on 'NewHorizons'." -) -openspace.bindKey( - "s", - "openspace.setPropertyValue('Interaction.origin', 'Pluto')", - "Sets the focus of the camera on 'Pluto'" -) -openspace.bindKey( - "d", - "openspace.setPropertyValue('Interaction.origin', 'Charon')", - "Sets the focus of the camera on 'Charon'." -) -openspace.bindKey( - "z", - "openspace.setPropertyValue('Interaction.origin', 'JupiterProjection')", - "Sets the focus of the camera on 'Jupiter'." -) -openspace.bindKey( - "x", - "openspace.setPropertyValue('Interaction.origin', 'Europa')", - "Sets the focus of the camera on 'Europa'." -) - -openspace.bindKey( - "F8", - "openspace.setPropertyValue('Pluto.renderable.ProjectionComponent.clearAllProjections', true);" .. - "openspace.setPropertyValue('Charon.renderable.ProjectionComponent.clearAllProjections', true);", - "Removes all image projections from Pluto and Charon." -) - -openspace.bindKey( - "F9", - "openspace.time.setTime('2015-07-14T09:00:00.00');" .. - "openspace.setPropertyValue('Pluto.renderable.clearAllProjections', true);" .. - "openspace.setPropertyValue('Charon.renderable.clearAllProjections', true);", - "Jumps to the 14th of July 2015 at 0900 UTC and clears all projections." -) - -openspace.bindKey( - "KP_8", - helper.property.increment('Pluto.renderable.heightExaggeration', 0.1), - "Increases the height map exaggeration on Pluto." -) -openspace.bindKey( - "KP_2", - helper.property.decrement('Pluto.renderable.heightExaggeration', 0.1), - "Decreases the height map exaggeration on Pluto." -) -openspace.bindKey( - "KP_9", - helper.property.increment('Charon.renderable.heightExaggeration', 2), - "Increases the height map exaggeration on Charon." -) -openspace.bindKey( - "KP_3", - helper.property.decrement('Charon.renderable.heightExaggeration', 2), - "Decreases the height map exaggeration on Charon." -) - -openspace.bindKey( - "q", - helper.property.invert('SunMarker.renderable.enabled'), - "Toggles the visibility of the text marking the location of the Sun." -) -openspace.bindKey( - "e", - helper.property.invert('EarthMarker.renderable.enabled'), - "Toggles the visibility of the text marking the location of the Earth." -) -openspace.bindKey( - "o", - helper.property.invert('PlutoTrail.renderable.enabled'), - "Toggles the visibility of the trail behind Pluto." -) - -openspace.bindKey( - "j", - helper.renderable.toggle('PlutoText') .. helper.renderable.toggle('CharonText') .. - helper.renderable.toggle('HydraText') .. helper.renderable.toggle('NixText') .. - helper.renderable.toggle('KerberosText') .. helper.renderable.toggle('StyxText'), - "Toggles the visibility of the text labels of Pluto, Charon, Hydra, Nix, Kerberos, and Styx." -) - -openspace.bindKey( - "l", - helper.property.invert('Labels.renderable.performFading'), - "Toggles the visibility of the labels for the New Horizons instruments." -) - -openspace.bindKey("m", - helper.property.invert('NH_LORRI.renderable.solidDraw') .. - helper.property.invert('NH_RALPH_LEISA.renderable.solidDraw') .. - helper.property.invert('NH_RALPH_MVIC_PAN1.renderable.solidDraw') .. - helper.property.invert('NH_RALPH_MVIC_PAN2.renderable.solidDraw') .. - helper.property.invert('NH_RALPH_MVIC_RED.renderable.solidDraw') .. - helper.property.invert('NH_RALPH_MVIC_BLUE.renderable.solidDraw') .. - helper.property.invert('NH_RALPH_MVIC_FT.renderable.solidDraw') .. - helper.property.invert('NH_RALPH_MVIC_METHANE.renderable.solidDraw') .. - helper.property.invert('NH_RALPH_MVIC_NIR.renderable.solidDraw') .. - helper.property.invert('NH_ALICE_AIRGLOW.renderable.solidDraw') .. - helper.property.invert('NH_ALICE_SOC.renderable.solidDraw'), - "Draws the instrument field of views in a solid color or as lines." -) - -openspace.bindKey( - "t", - helper.renderable.toggle('PlutoShadow') .. helper.renderable.toggle('CharonShadow'), - "Toggles the visibility of the shadow visualization of Pluto and Charon." -) - -openspace.bindKey("p", - helper.property.invert('JupiterProjection.renderable.performProjection') .. - helper.property.invert('Io.renderable.performProjection') .. - helper.property.invert('Ganymede.renderable.performProjection') .. - helper.property.invert('Europa.renderable.performProjection') .. - helper.property.invert('Callisto.renderable.performProjection') .. - helper.property.invert('Pluto.renderable.performProjection') .. - helper.property.invert('Charon.renderable.performProjection'), - "Enables or disables the image projection on the different available objects." -) diff --git a/scripts/bind_keys_osirisrex.lua b/scripts/bind_keys_osirisrex.lua deleted file mode 100644 index 1963734dad..0000000000 --- a/scripts/bind_keys_osirisrex.lua +++ /dev/null @@ -1,59 +0,0 @@ ---[[ OpenSpace keybinding script loaded from the osirisrex.scene file ]]-- - --- Load the common helper functions -dofile(openspace.absPath('${SCRIPTS}/common.lua')) -dofile(openspace.absPath('${SCRIPTS}/bind_common_keys.lua')) - --- Set focuses -openspace.bindKey( - "a", - "openspace.setPropertyValue('Interaction.origin', 'OsirisRex')", - "Sets the focus of the camera on 'Osiris Rex'." -) -openspace.bindKey( - "s", - "openspace.setPropertyValue('Interaction.origin', 'BennuBarycenter')", - "Sets the focus of the camera on 'Bennu'." -) - -openspace.bindKey( - "F6" , - "openspace.printInfo('Set time: Launch');openspace.time.setTime('2016 SEP 08 23:05:00');", - "Sets the time to the launch." -) -openspace.bindKey( - "F7", - "openspace.printInfo('Set time: Gravity Assist');openspace.time.setTime('2017 SEP 22 15:00:00');", - "Sets the time to the Earth gravity assist." -) -openspace.bindKey( - "F8", - "openspace.printInfo('Set time: Approach');openspace.time.setTime('2018-SEP-11 21:31:01.183');", - "Sets the time to the approach at Bennu." -) -openspace.bindKey( - "F9", - "openspace.printInfo('Set time: Preliminary Survey');openspace.time.setTime('2018-NOV-20 01:13:12.183');", - "Sets the time to the preliminary survey of Bennu." -) -openspace.bindKey( - "F10", - "openspace.printInfo('Set time: Orbital B');openspace.time.setTime('2019-APR-08 10:35:27.186');", - "Sets the time to the orbital B event." -) -openspace.bindKey( - "F11", - "openspace.printInfo('Set time: Recon');openspace.time.setTime('2019-MAY-25 03:50:31.195');", - "Sets the time to the recon event." -) - -openspace.bindKey( - "q", - helper.property.invert('SunMarker.renderable.enabled'), - "Toggles the visibility of the text marking the location of the Sun." -) -openspace.bindKey( - "e", - helper.property.invert('EarthMarker.renderable.enabled'), - "Toggles the visibility of the text marking the location of the Earth." -) diff --git a/scripts/bind_keys_rosetta.lua b/scripts/bind_keys_rosetta.lua deleted file mode 100644 index 5683217018..0000000000 --- a/scripts/bind_keys_rosetta.lua +++ /dev/null @@ -1,68 +0,0 @@ ---[[ OpenSpace keybinding script loaded from the rosetta.scene file ]]-- --- This script sets the default keybindings and is executed at startup - --- Load the common helper functions -dofile(openspace.absPath('${SCRIPTS}/common.lua')) - -openspace.clearKeys() -helper.setCommonKeys() - -helper.setDeltaTimeKeys({ - 1, 5, 10, 20, 40, 90, 360, 720, 2880, 14400, - 28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600 -}) - -openspace.bindKey( - "a", - "openspace.setPropertyValue('Interaction.origin', '67P')", - "Sets the focus of the camera on '67P'." -) -openspace.bindKey( - "s", - "openspace.setPropertyValue('Interaction.origin', 'Rosetta')", - "Sets the focus of the camera on 'Rosetta'." -) - -openspace.bindKey( - "F5", - "openspace.time.setTime('2014-08-01T03:05:18.101')", - "Jumps to the time of initial approach of Rosetta to 67P." -) -openspace.bindKey( - "F6", - "openspace.time.setTime('2014-11-12T08:20:00.00')", - "Jumps to the time when the Philae lander is released." -) -openspace.bindKey( - "F8", - "openspace.setPropertyValue('67P.renderable.ProjectionComponent.clearAllProjections', true)", - "Removes all image projections from 67P." -) - -openspace.bindKey( - "i", - helper.renderable.toggle('ImagePlaneRosetta'), - "Toggles the visibility of the free floating image plane." -) -openspace.bindKey( - "q", - helper.renderable.toggle('SunMarker'), - "Toggles the visibility of the text marking the location of the Sun." -) -openspace.bindKey( - "e", - helper.renderable.toggle('JupiterTrail') .. helper.renderable.toggle('SaturnTrail') .. - helper.renderable.toggle('UranusTrail') .. helper.renderable.toggle('NeptuneTrail'), - "Toggles the visibility of all trails further from the Sun than 67P." -) -openspace.bindKey( - "f", - helper.renderable.toggle('PhilaeTrail'), - "Toggles the visibility of Philae's trail." -) - -openspace.bindKey( - "p", - helper.property.invert('67P.renderable.ProjectionComponent.performProjection'), - "Enables or disables the image projection on 67P." -) diff --git a/scripts/bind_keys_satellites.lua b/scripts/bind_keys_satellites.lua deleted file mode 100644 index c2d53dbd7c..0000000000 --- a/scripts/bind_keys_satellites.lua +++ /dev/null @@ -1,23 +0,0 @@ ---[[ OpenSpace keybinding script loaded from the satellites.scene file ]]-- - --- Load the common helper functions -dofile(openspace.absPath('${SCRIPTS}/common.lua')) -dofile(openspace.absPath('${SCRIPTS}/bind_common_keys.lua')) - --- Set focuses - -openspace.bindKey( - "p" , - "if gpsVis then gpsVis = false; else gpsVis = true; end; openspace.setPropertyValue('gps-ops*.renderable.enabled', not gpsVis)", - "Toggles visibility of gps satellites." -) -openspace.bindKey( - "s" , - "if stVis then stVis = false; else stVis = true; end; openspace.setPropertyValue('station*.renderable.enabled', not stVis)", - "Toggles visibility of stations." -) -openspace.bindKey( - "g" , - "if geoVis then geoVis = false; else geoVis = true; end; openspace.setPropertyValue('geo*.renderable.enabled', not geoVis)", - "Toggles visibility of geostationary." -) \ No newline at end of file From b9f0d60d8552b1d48df9da4d0afeb5eac13d2356 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Fri, 28 Jul 2017 14:49:08 -0400 Subject: [PATCH 19/51] Hide layergroups in RenderableGlobe that do not contain any layers Update Ghoul repository --- ext/ghoul | 2 +- modules/globebrowsing/globebrowsingmodule.cpp | 6 +++--- .../globebrowsing/rendering/layer/layergroup.cpp | 15 ++++++++++++--- .../globebrowsing/rendering/layer/layergroupid.h | 16 ++++++++-------- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/ext/ghoul b/ext/ghoul index 1fc3d1f78d..de8da4af5e 160000 --- a/ext/ghoul +++ b/ext/ghoul @@ -1 +1 @@ -Subproject commit 1fc3d1f78dfd9227ee0068f388f96ea6b1b7bf9f +Subproject commit de8da4af5e21f2c7ca8e8a520e6ac98e522be42f diff --git a/modules/globebrowsing/globebrowsingmodule.cpp b/modules/globebrowsing/globebrowsingmodule.cpp index 404348d26a..51fb67cd22 100644 --- a/modules/globebrowsing/globebrowsingmodule.cpp +++ b/modules/globebrowsing/globebrowsingmodule.cpp @@ -345,12 +345,12 @@ std::string GlobeBrowsingModule::layerGroupNamesList() { } std::string GlobeBrowsingModule::layerTypeNamesList() { - std::string listLayerTypes(""); + std::string listLayerTypes; for (int i = 0; i < globebrowsing::layergroupid::NUM_LAYER_TYPES - 1; ++i) { - listLayerTypes += globebrowsing::layergroupid::LAYER_TYPE_NAMES[i] + ", "; + listLayerTypes += std::string(globebrowsing::layergroupid::LAYER_TYPE_NAMES[i]) + ", "; } listLayerTypes += - " and " + globebrowsing::layergroupid::LAYER_TYPE_NAMES[globebrowsing::layergroupid::NUM_LAYER_TYPES - 1]; + " and " + std::string(globebrowsing::layergroupid::LAYER_TYPE_NAMES[globebrowsing::layergroupid::NUM_LAYER_TYPES - 1]); return listLayerTypes; } diff --git a/modules/globebrowsing/rendering/layer/layergroup.cpp b/modules/globebrowsing/rendering/layer/layergroup.cpp index 917c5d7793..3d7fa7627a 100644 --- a/modules/globebrowsing/rendering/layer/layergroup.cpp +++ b/modules/globebrowsing/rendering/layer/layergroup.cpp @@ -34,7 +34,8 @@ namespace { "Blend between levels", "If this value is enabled, images between different levels are interpolated, " "rather than switching between levels abruptly. This makes transitions smoother " - "and more visually pleasing." + "and more visually pleasing.", + openspace::properties::Property::Visibility::Hidden }; } // namespace @@ -90,11 +91,13 @@ void LayerGroup::addLayer(const ghoul::Dictionary& layerDict) { else { _layers.push_back(layer); update(); - if(_onChangeCallback) { + if (_onChangeCallback) { _onChangeCallback(); } addPropertySubOwner(layer.get()); } + + _levelBlendingEnabled.setVisibility(properties::Property::Visibility::User); } void LayerGroup::deleteLayer(const std::string& layerName) { @@ -103,10 +106,16 @@ void LayerGroup::deleteLayer(const std::string& layerName) { removePropertySubOwner(it->get()); _layers.erase(it); update(); - if(_onChangeCallback) { + if (_onChangeCallback) { _onChangeCallback(); } LINFO("Deleted layer " + layerName); + + if (_layers.empty()) { + _levelBlendingEnabled.setVisibility( + properties::Property::Visibility::Hidden + ); + } return; } } diff --git a/modules/globebrowsing/rendering/layer/layergroupid.h b/modules/globebrowsing/rendering/layer/layergroupid.h index c015a999c1..70eced37a8 100644 --- a/modules/globebrowsing/rendering/layer/layergroupid.h +++ b/modules/globebrowsing/rendering/layer/layergroupid.h @@ -29,8 +29,8 @@ namespace openspace::globebrowsing::layergroupid { -static const int NUM_LAYER_GROUPS = 5; -static const std::string LAYER_GROUP_NAMES[NUM_LAYER_GROUPS] = { +static constexpr int NUM_LAYER_GROUPS = 5; +static constexpr const char* LAYER_GROUP_NAMES[NUM_LAYER_GROUPS] = { "HeightLayers", "ColorLayers", "Overlays", @@ -47,8 +47,8 @@ enum GroupID { Unknown, }; -static const int NUM_LAYER_TYPES = 8; -static const std::string LAYER_TYPE_NAMES[NUM_LAYER_TYPES] = { +static constexpr int NUM_LAYER_TYPES = 8; +static constexpr const char* LAYER_TYPE_NAMES[NUM_LAYER_TYPES] = { "DefaultTileLayer", "SingleImageTileLayer", "SizeReferenceTileLayer", @@ -74,8 +74,8 @@ enum class TypeID { SolidColor = 7, }; -static const int NUM_ADJUSTMENT_TYPES = 3; -static const std::string ADJUSTMENT_TYPE_NAMES[NUM_ADJUSTMENT_TYPES] = { +static constexpr int NUM_ADJUSTMENT_TYPES = 3; +static constexpr const char* ADJUSTMENT_TYPE_NAMES[NUM_ADJUSTMENT_TYPES] = { "None", "ChromaKey", "TransferFunction", @@ -90,8 +90,8 @@ enum class AdjustmentTypeID { TransferFunction = 2, }; -static const int NUM_BLEND_MODES = 5; -static const std::string BLEND_MODE_NAMES[NUM_BLEND_MODES] = { +static constexpr int NUM_BLEND_MODES = 5; +static constexpr const char* BLEND_MODE_NAMES[NUM_BLEND_MODES] = { "Normal", "Multiply", "Add", From acd95b05aba2389d97d0dfbc75242ab8317136a9 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Fri, 28 Jul 2017 14:59:10 -0400 Subject: [PATCH 20/51] Fix display of origin in ImGui --- modules/onscreengui/src/guiorigincomponent.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/onscreengui/src/guiorigincomponent.cpp b/modules/onscreengui/src/guiorigincomponent.cpp index 0e093f7eaf..eed136c37a 100644 --- a/modules/onscreengui/src/guiorigincomponent.cpp +++ b/modules/onscreengui/src/guiorigincomponent.cpp @@ -64,7 +64,7 @@ void GuiOriginComponent::render() { // only then it would be a real error ghoul_assert(iCurrentFocus != nodes.end(), "Focus node not found"); } - int currentPosition = static_cast(std::distance(iCurrentFocus, nodes.begin())); + int currentPosition = static_cast(std::distance(nodes.begin(), iCurrentFocus)); bool hasChanged = ImGui::Combo("Origin", ¤tPosition, nodeNames.c_str()); if (hasChanged) { From 31377466ba4549a48cdec9cfed9456f962df153f Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Fri, 28 Jul 2017 17:51:25 -0400 Subject: [PATCH 21/51] Remove return values from initialize and deinitialize functions --- data/scene/missions/rosetta/67P/67P.mod | 5 +- include/openspace/rendering/renderable.h | 4 +- include/openspace/scene/scenegraphnode.h | 4 +- modules/base/rendering/renderablemodel.cpp | 11 +--- modules/base/rendering/renderablemodel.h | 4 +- modules/base/rendering/renderableplane.cpp | 8 +-- modules/base/rendering/renderableplane.h | 4 +- modules/base/rendering/renderablesphere.cpp | 8 +-- modules/base/rendering/renderablesphere.h | 4 +- .../rendering/renderablesphericalgrid.cpp | 8 +-- .../base/rendering/renderablesphericalgrid.h | 4 +- modules/base/rendering/renderabletrail.cpp | 7 +-- modules/base/rendering/renderabletrail.h | 4 +- .../base/rendering/renderabletrailorbit.cpp | 10 ++- modules/base/rendering/renderabletrailorbit.h | 4 +- .../rendering/renderabletrailtrajectory.cpp | 10 ++- .../rendering/renderabletrailtrajectory.h | 4 +- .../rendering/renderabledebugplane.cpp | 8 +-- .../rendering/renderabledebugplane.h | 4 +- .../rendering/renderablefieldlines.cpp | 18 ++---- .../rendering/renderablefieldlines.h | 4 +- modules/galaxy/rendering/renderablegalaxy.cpp | 9 +-- modules/galaxy/rendering/renderablegalaxy.h | 4 +- .../globebrowsing/globes/chunkedlodglobe.cpp | 8 --- .../globebrowsing/globes/chunkedlodglobe.h | 2 - modules/globebrowsing/globes/pointglobe.cpp | 9 ++- modules/globebrowsing/globes/pointglobe.h | 4 +- .../globebrowsing/globes/renderableglobe.cpp | 8 +-- .../globebrowsing/globes/renderableglobe.h | 4 +- modules/iswa/rendering/dataplane.cpp | 12 ++-- modules/iswa/rendering/dataplane.h | 2 +- modules/iswa/rendering/datasphere.cpp | 12 ++-- modules/iswa/rendering/datasphere.h | 2 +- modules/iswa/rendering/iswacygnet.cpp | 17 +++-- modules/iswa/rendering/iswacygnet.h | 4 +- modules/iswa/rendering/kameleonplane.cpp | 10 +-- modules/iswa/rendering/kameleonplane.h | 4 +- .../rendering/renderablekameleonvolume.cpp | 6 +- .../rendering/renderablekameleonvolume.h | 4 +- .../rendering/renderablemultiresvolume.cpp | 11 ++-- .../rendering/renderablemultiresvolume.h | 4 +- .../rendering/renderablecrawlingline.cpp | 8 +-- .../rendering/renderablecrawlingline.h | 4 +- .../newhorizons/rendering/renderablefov.cpp | 14 ++--- modules/newhorizons/rendering/renderablefov.h | 4 +- .../rendering/renderablemodelprojection.cpp | 16 ++--- .../rendering/renderablemodelprojection.h | 4 +- .../rendering/renderableplaneprojection.cpp | 23 +++---- .../rendering/renderableplaneprojection.h | 4 +- .../rendering/renderableplanetprojection.cpp | 63 +++++++++---------- .../rendering/renderableplanetprojection.h | 4 +- .../rendering/renderableshadowcylinder.cpp | 8 +-- .../rendering/renderableshadowcylinder.h | 4 +- .../renderableconstellationbounds.cpp | 8 +-- .../rendering/renderableconstellationbounds.h | 4 +- modules/space/rendering/renderableplanet.cpp | 8 +-- modules/space/rendering/renderableplanet.h | 4 +- modules/space/rendering/renderablerings.cpp | 8 +-- modules/space/rendering/renderablerings.h | 4 +- modules/space/rendering/renderablestars.cpp | 16 ++--- modules/space/rendering/renderablestars.h | 4 +- .../rendering/renderabletoyvolume.cpp | 9 +-- .../toyvolume/rendering/renderabletoyvolume.h | 4 +- src/rendering/renderable.cpp | 4 ++ src/scene/scene.cpp | 7 +-- src/scene/scenegraphnode.cpp | 9 +-- 66 files changed, 198 insertions(+), 320 deletions(-) diff --git a/data/scene/missions/rosetta/67P/67P.mod b/data/scene/missions/rosetta/67P/67P.mod index 91c3ac13ba..ca06b45f03 100644 --- a/data/scene/missions/rosetta/67P/67P.mod +++ b/data/scene/missions/rosetta/67P/67P.mod @@ -22,10 +22,7 @@ return { GeometryFile = "obj/67P_rotated_5_130.obj", Magnification = 0, }, - Textures = { - Color = "textures/gray.jpg", - -- Color = "textures/may9_map.jpg", - }, + ColorTexture = "textures/gray.jpg", Projection = { Sequence = "rosettaimages", SequenceType = "image-sequence", diff --git a/include/openspace/rendering/renderable.h b/include/openspace/rendering/renderable.h index 623535fc81..9feffdb280 100644 --- a/include/openspace/rendering/renderable.h +++ b/include/openspace/rendering/renderable.h @@ -64,8 +64,8 @@ public: Renderable(const ghoul::Dictionary& dictionary); virtual ~Renderable(); - virtual bool initialize() = 0; - virtual bool deinitialize() = 0; + virtual void initialize(); + virtual void deinitialize(); virtual bool isReady() const = 0; bool isEnabled() const; diff --git a/include/openspace/scene/scenegraphnode.h b/include/openspace/scene/scenegraphnode.h index 7f940aafc7..0c4a95e9fa 100644 --- a/include/openspace/scene/scenegraphnode.h +++ b/include/openspace/scene/scenegraphnode.h @@ -75,8 +75,8 @@ public: static std::unique_ptr createFromDictionary(const ghoul::Dictionary& dictionary); - bool initialize(); - bool deinitialize(); + void initialize(); + void deinitialize(); void traversePreOrder(std::function fn); void traversePostOrder(std::function fn); diff --git a/modules/base/rendering/renderablemodel.cpp b/modules/base/rendering/renderablemodel.cpp index 3fce045e87..f096f547fa 100644 --- a/modules/base/rendering/renderablemodel.cpp +++ b/modules/base/rendering/renderablemodel.cpp @@ -156,7 +156,7 @@ bool RenderableModel::isReady() const { return _programObject && _texture; } -bool RenderableModel::initialize() { +void RenderableModel::initialize() { _programObject = OsEng.renderEngine().buildRenderProgram( "ModelProgram", "${MODULE_BASE}/shaders/model_vs.glsl", @@ -165,13 +165,10 @@ bool RenderableModel::initialize() { loadTexture(); - bool completeSuccess = true; - completeSuccess &= (_texture != nullptr); - completeSuccess &= _geometry->initialize(this); - return completeSuccess; + _geometry->initialize(this); } -bool RenderableModel::deinitialize() { +void RenderableModel::deinitialize() { if (_geometry) { _geometry->deinitialize(); _geometry = nullptr; @@ -182,8 +179,6 @@ bool RenderableModel::deinitialize() { OsEng.renderEngine().removeRenderProgram(_programObject); _programObject = nullptr; } - - return true; } void RenderableModel::render(const RenderData& data, RendererTasks&) { diff --git a/modules/base/rendering/renderablemodel.h b/modules/base/rendering/renderablemodel.h index 57a7f600b8..86b8d1c35f 100644 --- a/modules/base/rendering/renderablemodel.h +++ b/modules/base/rendering/renderablemodel.h @@ -51,8 +51,8 @@ class RenderableModel : public Renderable { public: RenderableModel(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderableplane.cpp b/modules/base/rendering/renderableplane.cpp index 875cf27f4c..432c898e3a 100644 --- a/modules/base/rendering/renderableplane.cpp +++ b/modules/base/rendering/renderableplane.cpp @@ -179,7 +179,7 @@ bool RenderablePlane::isReady() const { return _shader && _texture; } -bool RenderablePlane::initialize() { +void RenderablePlane::initialize() { glGenVertexArrays(1, &_quad); // generate array glGenBuffers(1, &_vertexPositionBuffer); // generate buffer createPlane(); @@ -190,11 +190,9 @@ bool RenderablePlane::initialize() { ); loadTexture(); - - return isReady(); } -bool RenderablePlane::deinitialize() { +void RenderablePlane::deinitialize() { glDeleteVertexArrays(1, &_quad); _quad = 0; @@ -208,8 +206,6 @@ bool RenderablePlane::deinitialize() { renderEngine.removeRenderProgram(_shader); _shader = nullptr; } - - return true; } void RenderablePlane::render(const RenderData& data, RendererTasks&) { diff --git a/modules/base/rendering/renderableplane.h b/modules/base/rendering/renderableplane.h index 143a004cae..a18659d6b1 100644 --- a/modules/base/rendering/renderableplane.h +++ b/modules/base/rendering/renderableplane.h @@ -54,8 +54,8 @@ class RenderablePlane : public Renderable { public: RenderablePlane(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderablesphere.cpp b/modules/base/rendering/renderablesphere.cpp index 3276b08098..9ea2204c79 100644 --- a/modules/base/rendering/renderablesphere.cpp +++ b/modules/base/rendering/renderablesphere.cpp @@ -202,7 +202,7 @@ bool RenderableSphere::isReady() const { return _shader && _texture; } -bool RenderableSphere::initialize() { +void RenderableSphere::initialize() { _sphere = std::make_unique( PowerScaledScalar::CreatePSS(_size), _segments ); @@ -214,19 +214,15 @@ bool RenderableSphere::initialize() { "${MODULE_BASE}/shaders/sphere_fs.glsl"); loadTexture(); - - return isReady(); } -bool RenderableSphere::deinitialize() { +void RenderableSphere::deinitialize() { _texture = nullptr; if (_shader) { OsEng.renderEngine().removeRenderProgram(_shader); _shader = nullptr; } - - return true; } void RenderableSphere::render(const RenderData& data, RendererTasks&) { diff --git a/modules/base/rendering/renderablesphere.h b/modules/base/rendering/renderablesphere.h index 12417125d2..2e7a223b31 100644 --- a/modules/base/rendering/renderablesphere.h +++ b/modules/base/rendering/renderablesphere.h @@ -49,8 +49,8 @@ class RenderableSphere : public Renderable { public: RenderableSphere(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderablesphericalgrid.cpp b/modules/base/rendering/renderablesphericalgrid.cpp index 041ef3a45c..bd6b558a55 100644 --- a/modules/base/rendering/renderablesphericalgrid.cpp +++ b/modules/base/rendering/renderablesphericalgrid.cpp @@ -179,7 +179,7 @@ bool RenderableSphericalGrid::isReady() const { return ready; } -bool RenderableSphericalGrid::deinitialize() { +void RenderableSphericalGrid::deinitialize() { glDeleteVertexArrays(1,&_vaoID); _vaoID = 0; @@ -188,11 +188,9 @@ bool RenderableSphericalGrid::deinitialize() { glDeleteBuffers(1,&_iBufferID); _iBufferID = 0; - - return true; } -bool RenderableSphericalGrid::initialize() { +void RenderableSphericalGrid::initialize() { _gridProgram = OsEng.renderEngine().buildRenderProgram( "GridProgram", "${MODULE_BASE}/shaders/grid_vs.glsl", @@ -208,8 +206,6 @@ bool RenderableSphericalGrid::initialize() { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _iBufferID); glEnableVertexAttribArray(0); glBindVertexArray(0); - - return true; } void RenderableSphericalGrid::render(const RenderData& data, RendererTasks&){ diff --git a/modules/base/rendering/renderablesphericalgrid.h b/modules/base/rendering/renderablesphericalgrid.h index 9d4c0ef789..7774c8d7d7 100644 --- a/modules/base/rendering/renderablesphericalgrid.h +++ b/modules/base/rendering/renderablesphericalgrid.h @@ -48,8 +48,8 @@ public: RenderableSphericalGrid(const ghoul::Dictionary& dictionary); ~RenderableSphericalGrid(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderabletrail.cpp b/modules/base/rendering/renderabletrail.cpp index 89725e32d3..cd88928123 100644 --- a/modules/base/rendering/renderabletrail.cpp +++ b/modules/base/rendering/renderabletrail.cpp @@ -217,7 +217,7 @@ RenderableTrail::RenderableTrail(const ghoul::Dictionary& dictionary) addProperty(_renderingModes); } -bool RenderableTrail::initialize() { +void RenderableTrail::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _programObject = renderEngine.buildRenderProgram( "EphemerisProgram", @@ -226,17 +226,14 @@ bool RenderableTrail::initialize() { ); setRenderBin(Renderable::RenderBin::Overlay); - - return true; } -bool RenderableTrail::deinitialize() { +void RenderableTrail::deinitialize() { RenderEngine& renderEngine = OsEng.renderEngine(); if (_programObject) { renderEngine.removeRenderProgram(_programObject); _programObject = nullptr; } - return true; } bool RenderableTrail::isReady() const { diff --git a/modules/base/rendering/renderabletrail.h b/modules/base/rendering/renderabletrail.h index 962bdf5245..ed721582a9 100644 --- a/modules/base/rendering/renderabletrail.h +++ b/modules/base/rendering/renderabletrail.h @@ -73,8 +73,8 @@ class RenderableTrail : public Renderable { public: ~RenderableTrail() = default; - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderabletrailorbit.cpp b/modules/base/rendering/renderabletrailorbit.cpp index 6bb29dacf3..2877e31777 100644 --- a/modules/base/rendering/renderabletrailorbit.cpp +++ b/modules/base/rendering/renderabletrailorbit.cpp @@ -169,22 +169,20 @@ RenderableTrailOrbit::RenderableTrailOrbit(const ghoul::Dictionary& dictionary) _primaryRenderInformation.sorting = RenderInformation::VertexSorting::NewestFirst; } -bool RenderableTrailOrbit::initialize() { - bool res = RenderableTrail::initialize(); +void RenderableTrailOrbit::initialize() { + RenderableTrail::initialize(); glGenVertexArrays(1, &_primaryRenderInformation._vaoID); glGenBuffers(1, &_primaryRenderInformation._vBufferID); glGenBuffers(1, &_primaryRenderInformation._iBufferID); - - return res; } -bool RenderableTrailOrbit::deinitialize() { +void RenderableTrailOrbit::deinitialize() { glDeleteVertexArrays(1, &_primaryRenderInformation._vaoID); glDeleteBuffers(1, &_primaryRenderInformation._vBufferID); glDeleteBuffers(1, &_primaryRenderInformation._iBufferID); - return RenderableTrail::deinitialize(); + RenderableTrail::deinitialize(); } void RenderableTrailOrbit::update(const UpdateData& data) { diff --git a/modules/base/rendering/renderabletrailorbit.h b/modules/base/rendering/renderabletrailorbit.h index a37ce098ce..325f195f7d 100644 --- a/modules/base/rendering/renderabletrailorbit.h +++ b/modules/base/rendering/renderabletrailorbit.h @@ -48,8 +48,8 @@ class RenderableTrailOrbit : public RenderableTrail { public: explicit RenderableTrailOrbit(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; void update(const UpdateData& data) override; diff --git a/modules/base/rendering/renderabletrailtrajectory.cpp b/modules/base/rendering/renderabletrailtrajectory.cpp index 8129dc8dc9..5aa6f2161e 100644 --- a/modules/base/rendering/renderabletrailtrajectory.cpp +++ b/modules/base/rendering/renderabletrailtrajectory.cpp @@ -189,8 +189,8 @@ RenderableTrailTrajectory::RenderableTrailTrajectory(const ghoul::Dictionary& di _primaryRenderInformation.sorting = RenderInformation::VertexSorting::OldestFirst; } -bool RenderableTrailTrajectory::initialize() { - bool res = RenderableTrail::initialize(); +void RenderableTrailTrajectory::initialize() { + RenderableTrail::initialize(); // We don't need an index buffer, so we keep it at the default value of 0 glGenVertexArrays(1, &_primaryRenderInformation._vaoID); @@ -201,18 +201,16 @@ bool RenderableTrailTrajectory::initialize() { glGenVertexArrays(1, &_floatingRenderInformation._vaoID); glGenBuffers(1, &_floatingRenderInformation._vBufferID); _floatingRenderInformation.sorting = RenderInformation::VertexSorting::OldestFirst; - - return res; } -bool RenderableTrailTrajectory::deinitialize() { +void RenderableTrailTrajectory::deinitialize() { glDeleteVertexArrays(1, &_primaryRenderInformation._vaoID); glDeleteBuffers(1, &_primaryRenderInformation._vBufferID); glDeleteVertexArrays(1, &_floatingRenderInformation._vaoID); glDeleteBuffers(1, &_floatingRenderInformation._vBufferID); - return RenderableTrail::deinitialize(); + RenderableTrail::deinitialize(); } void RenderableTrailTrajectory::update(const UpdateData& data) { diff --git a/modules/base/rendering/renderabletrailtrajectory.h b/modules/base/rendering/renderabletrailtrajectory.h index 62f600d5a4..93d0367c9d 100644 --- a/modules/base/rendering/renderabletrailtrajectory.h +++ b/modules/base/rendering/renderabletrailtrajectory.h @@ -53,8 +53,8 @@ class RenderableTrailTrajectory : public RenderableTrail { public: explicit RenderableTrailTrajectory(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; void update(const UpdateData& data) override; diff --git a/modules/debugging/rendering/renderabledebugplane.cpp b/modules/debugging/rendering/renderabledebugplane.cpp index ce185c2052..1234c3474f 100644 --- a/modules/debugging/rendering/renderabledebugplane.cpp +++ b/modules/debugging/rendering/renderabledebugplane.cpp @@ -190,7 +190,7 @@ bool RenderableDebugPlane::isReady() const { return ready; } -bool RenderableDebugPlane::initialize() { +void RenderableDebugPlane::initialize() { glGenVertexArrays(1, &_quad); // generate array glGenBuffers(1, &_vertexPositionBuffer); // generate buffer createPlane(); @@ -202,11 +202,9 @@ bool RenderableDebugPlane::initialize() { "${MODULE_BASE}/shaders/plane_fs.glsl" ); } - - return isReady(); } -bool RenderableDebugPlane::deinitialize() { +void RenderableDebugPlane::deinitialize() { glDeleteVertexArrays(1, &_quad); _quad = 0; @@ -218,8 +216,6 @@ bool RenderableDebugPlane::deinitialize() { renderEngine.removeRenderProgram(_shader); _shader = nullptr; } - - return true; } void RenderableDebugPlane::render(const RenderData& data, RendererTasks&) { diff --git a/modules/debugging/rendering/renderabledebugplane.h b/modules/debugging/rendering/renderabledebugplane.h index 6ea0db8819..91fa8914b2 100644 --- a/modules/debugging/rendering/renderabledebugplane.h +++ b/modules/debugging/rendering/renderabledebugplane.h @@ -49,8 +49,8 @@ public: RenderableDebugPlane(const ghoul::Dictionary& dictionary); ~RenderableDebugPlane(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/fieldlines/rendering/renderablefieldlines.cpp b/modules/fieldlines/rendering/renderablefieldlines.cpp index 0813f76ae1..24aaba8404 100644 --- a/modules/fieldlines/rendering/renderablefieldlines.cpp +++ b/modules/fieldlines/rendering/renderablefieldlines.cpp @@ -232,12 +232,9 @@ bool RenderableFieldlines::isReady() const { return programReady && vectorFieldReady && fieldlineReady && seedPointsReady; } -bool RenderableFieldlines::initialize() { - if (_vectorFieldInfo.empty() || - _fieldlineInfo.empty() || - _seedPointsInfo.empty()) - { - return false; +void RenderableFieldlines::initialize() { + if (_vectorFieldInfo.empty() || _fieldlineInfo.empty() || _seedPointsInfo.empty()) { + throw ghoul::RuntimeError("Error initializing"); } _program = OsEng.renderEngine().buildRenderProgram( @@ -246,14 +243,9 @@ bool RenderableFieldlines::initialize() { "${MODULE_FIELDLINES}/shaders/fieldline_fs.glsl", "${MODULE_FIELDLINES}/shaders/fieldline_gs.glsl" ); - - if (!_program) - return false; - - return true; } -bool RenderableFieldlines::deinitialize() { +void RenderableFieldlines::deinitialize() { glDeleteVertexArrays(1, &_fieldlineVAO); _fieldlineVAO = 0; glDeleteBuffers(1, &_vertexPositionBuffer); @@ -264,8 +256,6 @@ bool RenderableFieldlines::deinitialize() { renderEngine.removeRenderProgram(_program); _program = nullptr; } - - return true; } void RenderableFieldlines::render(const RenderData& data, RendererTasks&) { diff --git a/modules/fieldlines/rendering/renderablefieldlines.h b/modules/fieldlines/rendering/renderablefieldlines.h index 1827b83353..10d9d92b63 100644 --- a/modules/fieldlines/rendering/renderablefieldlines.h +++ b/modules/fieldlines/rendering/renderablefieldlines.h @@ -45,8 +45,8 @@ class RenderableFieldlines : public Renderable { public: RenderableFieldlines(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/galaxy/rendering/renderablegalaxy.cpp b/modules/galaxy/rendering/renderablegalaxy.cpp index 94b86c6671..f01aff865c 100644 --- a/modules/galaxy/rendering/renderablegalaxy.cpp +++ b/modules/galaxy/rendering/renderablegalaxy.cpp @@ -153,7 +153,7 @@ namespace openspace { RenderableGalaxy::~RenderableGalaxy() {} -bool RenderableGalaxy::initialize() { +void RenderableGalaxy::initialize() { // Aspect is currently hardcoded to cubic voxels. _aspect = static_cast(_volumeDimensions); _aspect = _aspect / std::max(std::max(_aspect.x, _aspect.y), _aspect.z); @@ -178,7 +178,7 @@ bool RenderableGalaxy::initialize() { OsEng.renderEngine().raycasterManager().attachRaycaster(*_raycaster.get()); - std::function onChange = [&](bool enabled) { + auto onChange = [&](bool enabled) { if (enabled) { OsEng.renderEngine().raycasterManager().attachRaycaster(*_raycaster.get()); } @@ -273,16 +273,13 @@ bool RenderableGalaxy::initialize() { glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); - - return true; } -bool RenderableGalaxy::deinitialize() { +void RenderableGalaxy::deinitialize() { if (_raycaster) { OsEng.renderEngine().raycasterManager().detachRaycaster(*_raycaster.get()); _raycaster = nullptr; } - return true; } bool RenderableGalaxy::isReady() const { diff --git a/modules/galaxy/rendering/renderablegalaxy.h b/modules/galaxy/rendering/renderablegalaxy.h index 77c5608a0a..cb398be19c 100644 --- a/modules/galaxy/rendering/renderablegalaxy.h +++ b/modules/galaxy/rendering/renderablegalaxy.h @@ -41,8 +41,8 @@ public: RenderableGalaxy(const ghoul::Dictionary& dictionary); ~RenderableGalaxy(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& tasks) override; void update(const UpdateData& data) override; diff --git a/modules/globebrowsing/globes/chunkedlodglobe.cpp b/modules/globebrowsing/globes/chunkedlodglobe.cpp index 7317939c2e..0ded2257ea 100644 --- a/modules/globebrowsing/globes/chunkedlodglobe.cpp +++ b/modules/globebrowsing/globes/chunkedlodglobe.cpp @@ -94,14 +94,6 @@ ChunkedLodGlobe::ChunkedLodGlobe(const RenderableGlobe& owner, size_t segmentsPe // with a forward declaration ChunkedLodGlobe::~ChunkedLodGlobe() {} -bool ChunkedLodGlobe::initialize() { - return true; -} - -bool ChunkedLodGlobe::deinitialize() { - return true; -} - bool ChunkedLodGlobe::isReady() const { return true; } diff --git a/modules/globebrowsing/globes/chunkedlodglobe.h b/modules/globebrowsing/globes/chunkedlodglobe.h index 15f9ea3091..530e6470cf 100644 --- a/modules/globebrowsing/globes/chunkedlodglobe.h +++ b/modules/globebrowsing/globes/chunkedlodglobe.h @@ -52,8 +52,6 @@ public: std::shared_ptr layerManager); ~ChunkedLodGlobe(); - bool initialize() override; - bool deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/globebrowsing/globes/pointglobe.cpp b/modules/globebrowsing/globes/pointglobe.cpp index 3514648d18..52e99b35c2 100644 --- a/modules/globebrowsing/globes/pointglobe.cpp +++ b/modules/globebrowsing/globes/pointglobe.cpp @@ -64,7 +64,7 @@ PointGlobe::~PointGlobe() { glDeleteVertexArrays(1, &_vaoID); } -bool PointGlobe::initialize() { +void PointGlobe::initialize() { _programObject = OsEng.renderEngine().buildRenderProgram( "PointGlobe", "${MODULE_GLOBEBROWSING}/shaders/pointglobe_vs.glsl", @@ -98,12 +98,11 @@ bool PointGlobe::initialize() { glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(glm::vec2), 0); glBindVertexArray(0); - - return isReady(); } -bool PointGlobe::deinitialize() { - return true; +void PointGlobe::deinitialize() { + glDeleteVertexArrays(1, &_vaoID); + glDeleteBuffers(1, &_vertexBufferID); } bool PointGlobe::isReady() const { diff --git a/modules/globebrowsing/globes/pointglobe.h b/modules/globebrowsing/globes/pointglobe.h index 59cd91fdee..213122efb2 100644 --- a/modules/globebrowsing/globes/pointglobe.h +++ b/modules/globebrowsing/globes/pointglobe.h @@ -41,8 +41,8 @@ public: PointGlobe(const RenderableGlobe& owner); virtual ~PointGlobe(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/globebrowsing/globes/renderableglobe.cpp b/modules/globebrowsing/globes/renderableglobe.cpp index 71e3c0fa57..39d8998de0 100644 --- a/modules/globebrowsing/globes/renderableglobe.cpp +++ b/modules/globebrowsing/globes/renderableglobe.cpp @@ -260,12 +260,12 @@ RenderableGlobe::RenderableGlobe(const ghoul::Dictionary& dictionary) //addPropertySubOwner(_pointGlobe.get()); } -bool RenderableGlobe::initialize() { - return _distanceSwitch.initialize(); +void RenderableGlobe::initialize() { + _distanceSwitch.initialize(); } -bool RenderableGlobe::deinitialize() { - return _distanceSwitch.deinitialize(); +void RenderableGlobe::deinitialize() { + _distanceSwitch.deinitialize(); } bool RenderableGlobe::isReady() const { diff --git a/modules/globebrowsing/globes/renderableglobe.h b/modules/globebrowsing/globes/renderableglobe.h index 54a4ecde10..b43111dfaf 100644 --- a/modules/globebrowsing/globes/renderableglobe.h +++ b/modules/globebrowsing/globes/renderableglobe.h @@ -81,8 +81,8 @@ public: RenderableGlobe(const ghoul::Dictionary& dictionary); ~RenderableGlobe() = default; - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/iswa/rendering/dataplane.cpp b/modules/iswa/rendering/dataplane.cpp index 10823897e0..51848ae93b 100644 --- a/modules/iswa/rendering/dataplane.cpp +++ b/modules/iswa/rendering/dataplane.cpp @@ -43,20 +43,20 @@ DataPlane::DataPlane(const ghoul::Dictionary& dictionary) DataPlane::~DataPlane(){} -bool DataPlane::initialize(){ +void DataPlane::initialize() { IswaCygnet::initialize(); - if(_group){ + if (_group) { _dataProcessor = _group->dataProcessor(); subscribeToGroup(); - }else{ + } else { _dataProcessor = std::make_shared(); //If autofiler is on, background values property should be hidden - _autoFilter.onChange([this](){ + _autoFilter.onChange([this]() { // If autofiler is selected, use _dataProcessor to set backgroundValues // and unregister backgroundvalues property. - if(_autoFilter.value()){ + if (_autoFilter.value()) { _backgroundValues.setValue(_dataProcessor->filterValues()); _backgroundValues.setVisibility(properties::Property::Visibility::Hidden); //_backgroundValues.setVisible(false); @@ -73,8 +73,6 @@ bool DataPlane::initialize(){ setPropertyCallbacks(); _autoFilter.setValue(true); - - return true; } bool DataPlane::createGeometry() { diff --git a/modules/iswa/rendering/dataplane.h b/modules/iswa/rendering/dataplane.h index 149ba8f2d2..960d0db7b4 100644 --- a/modules/iswa/rendering/dataplane.h +++ b/modules/iswa/rendering/dataplane.h @@ -40,7 +40,7 @@ public: DataPlane(const ghoul::Dictionary& dictionary); ~DataPlane(); - bool initialize() override; + void initialize() override; private: diff --git a/modules/iswa/rendering/datasphere.cpp b/modules/iswa/rendering/datasphere.cpp index 652fbfa566..527e191674 100644 --- a/modules/iswa/rendering/datasphere.cpp +++ b/modules/iswa/rendering/datasphere.cpp @@ -54,22 +54,22 @@ DataSphere::DataSphere(const ghoul::Dictionary& dictionary) DataSphere::~DataSphere() {} -bool DataSphere::initialize() { +void DataSphere::initialize() { IswaCygnet::initialize(); //rotate 90 degrees because of the texture coordinates in PowerScaledSphere _rotation = glm::rotate(_rotation, (float)M_PI_2, glm::vec3(1.0, 0.0, 0.0)); - if(_group){ + if (_group) { _dataProcessor = _group->dataProcessor(); subscribeToGroup(); - }else{ + } else { _dataProcessor = std::make_shared(); //If autofiler is on, background values property should be hidden - _autoFilter.onChange([this](){ + _autoFilter.onChange([this]() { // If autofiler is selected, use _dataProcessor to set backgroundValues // and unregister backgroundvalues property. - if(_autoFilter.value()){ + if (_autoFilter.value()) { _backgroundValues.setValue(_dataProcessor->filterValues()); _backgroundValues.setVisibility(properties::Property::Visibility::Hidden); //_backgroundValues.setVisible(false); @@ -86,8 +86,6 @@ bool DataSphere::initialize() { setPropertyCallbacks(); _useHistogram.setValue(true); _autoFilter.setValue(true); - - return true; } bool DataSphere::createGeometry() { diff --git a/modules/iswa/rendering/datasphere.h b/modules/iswa/rendering/datasphere.h index 7387df9d01..dff23ca92e 100644 --- a/modules/iswa/rendering/datasphere.h +++ b/modules/iswa/rendering/datasphere.h @@ -41,7 +41,7 @@ public: DataSphere(const ghoul::Dictionary& dictionary); ~DataSphere(); - bool initialize() override; + void initialize() override; protected: /** diff --git a/modules/iswa/rendering/iswacygnet.cpp b/modules/iswa/rendering/iswacygnet.cpp index 4ad94a72e4..9b31573fd5 100644 --- a/modules/iswa/rendering/iswacygnet.cpp +++ b/modules/iswa/rendering/iswacygnet.cpp @@ -116,13 +116,13 @@ IswaCygnet::IswaCygnet(const ghoul::Dictionary& dictionary) IswaCygnet::~IswaCygnet(){} -bool IswaCygnet::initialize(){ +void IswaCygnet::initialize() { _textures.push_back(nullptr); - if(!_data->groupName.empty()){ + if (!_data->groupName.empty()) { initializeGroup(); - }else{ - _delete.onChange([this](){ + } else { + _delete.onChange([this]() { deinitialize(); OsEng.scriptEngine().queueScript( "openspace.removeSceneGraphNode('" + name() + "')", @@ -135,19 +135,16 @@ bool IswaCygnet::initialize(){ createGeometry(); createShader(); downloadTextureResource(); - - return true; } -bool IswaCygnet::deinitialize(){ - if(!_data->groupName.empty()) +void IswaCygnet::deinitialize() { + if (!_data->groupName.empty()) { _group->groupEvent()->unsubscribe(name()); + } unregisterProperties(); destroyGeometry(); destroyShader(); - - return true; } bool IswaCygnet::isReady() const{ diff --git a/modules/iswa/rendering/iswacygnet.h b/modules/iswa/rendering/iswacygnet.h index edbc4a1b5b..581e50855e 100644 --- a/modules/iswa/rendering/iswacygnet.h +++ b/modules/iswa/rendering/iswacygnet.h @@ -70,8 +70,8 @@ public: IswaCygnet(const ghoul::Dictionary& dictionary); ~IswaCygnet(); - virtual bool initialize(); - virtual bool deinitialize(); + void initialize() override; + void deinitialize() override; virtual bool isReady() const; void render(const RenderData& data, RendererTasks& rendererTask); void update(const UpdateData& data); diff --git a/modules/iswa/rendering/kameleonplane.cpp b/modules/iswa/rendering/kameleonplane.cpp index 03d25aea2b..03e8d4d2dd 100644 --- a/modules/iswa/rendering/kameleonplane.cpp +++ b/modules/iswa/rendering/kameleonplane.cpp @@ -100,15 +100,13 @@ KameleonPlane::KameleonPlane(const ghoul::Dictionary& dictionary) KameleonPlane::~KameleonPlane() {} -bool KameleonPlane::deinitialize() { +void KameleonPlane::deinitialize() { IswaCygnet::deinitialize(); _fieldlines.set(std::vector()); - return true; } -bool KameleonPlane::initialize(){ - - if(!_data->groupName.empty()){ +void KameleonPlane::initialize() { + if (!_data->groupName.empty()) { initializeGroup(); } @@ -174,8 +172,6 @@ bool KameleonPlane::initialize(){ _group->updateGroup(); } updateTextureResource(); - - return true; } bool KameleonPlane::createGeometry() { diff --git a/modules/iswa/rendering/kameleonplane.h b/modules/iswa/rendering/kameleonplane.h index 4b6be6c4c3..30f50f1bba 100644 --- a/modules/iswa/rendering/kameleonplane.h +++ b/modules/iswa/rendering/kameleonplane.h @@ -43,8 +43,8 @@ public: KameleonPlane(const ghoul::Dictionary& dictionary); ~KameleonPlane(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; private: diff --git a/modules/kameleonvolume/rendering/renderablekameleonvolume.cpp b/modules/kameleonvolume/rendering/renderablekameleonvolume.cpp index 9b0a27c389..f5dfc49ae6 100644 --- a/modules/kameleonvolume/rendering/renderablekameleonvolume.cpp +++ b/modules/kameleonvolume/rendering/renderablekameleonvolume.cpp @@ -250,7 +250,7 @@ RenderableKameleonVolume::RenderableKameleonVolume(const ghoul::Dictionary& dict RenderableKameleonVolume::~RenderableKameleonVolume() {} -bool RenderableKameleonVolume::initialize() { +void RenderableKameleonVolume::initialize() { load(); _volumeTexture->uploadTexture(); @@ -305,7 +305,6 @@ bool RenderableKameleonVolume::initialize() { addProperty(_gridType); addProperty(_cache); addPropertySubOwner(_clipPlanes.get()); - return true; } void RenderableKameleonVolume::updateRaycasterModelTransform() { @@ -443,12 +442,11 @@ void RenderableKameleonVolume::storeRaw(const std::string& path) { writer.write(*_rawVolume); } -bool RenderableKameleonVolume::deinitialize() { +void RenderableKameleonVolume::deinitialize() { if (_raycaster) { OsEng.renderEngine().raycasterManager().detachRaycaster(*_raycaster.get()); _raycaster = nullptr; } - return true; } bool RenderableKameleonVolume::isReady() const { diff --git a/modules/kameleonvolume/rendering/renderablekameleonvolume.h b/modules/kameleonvolume/rendering/renderablekameleonvolume.h index bb49de9f6b..35b0f512ec 100644 --- a/modules/kameleonvolume/rendering/renderablekameleonvolume.h +++ b/modules/kameleonvolume/rendering/renderablekameleonvolume.h @@ -49,8 +49,8 @@ public: RenderableKameleonVolume(const ghoul::Dictionary& dictionary); ~RenderableKameleonVolume(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& tasks) override; void update(const UpdateData& data) override; diff --git a/modules/multiresvolume/rendering/renderablemultiresvolume.cpp b/modules/multiresvolume/rendering/renderablemultiresvolume.cpp index 090e5c4b70..98cb29d764 100644 --- a/modules/multiresvolume/rendering/renderablemultiresvolume.cpp +++ b/modules/multiresvolume/rendering/renderablemultiresvolume.cpp @@ -419,8 +419,7 @@ bool RenderableMultiresVolume::setSelectorType(Selector selector) { return false; } -bool RenderableMultiresVolume::initialize() { - +void RenderableMultiresVolume::initialize() { bool success = _tsp && _tsp->load(); unsigned int maxNumBricks = _tsp->header().xNumBricks_ * _tsp->header().yNumBricks_ * _tsp->header().zNumBricks_; @@ -477,20 +476,20 @@ bool RenderableMultiresVolume::initialize() { onEnabledChange(onChange); - return success; + if (!success) { + throw ghoul::RuntimeError("Error during initialization"); + } } -bool RenderableMultiresVolume::deinitialize() { +void RenderableMultiresVolume::deinitialize() { _tsp = nullptr; _transferFunction = nullptr; - return true; } bool RenderableMultiresVolume::isReady() const { return true; } - bool RenderableMultiresVolume::initializeSelector() { int nHistograms = 50; bool success = true; diff --git a/modules/multiresvolume/rendering/renderablemultiresvolume.h b/modules/multiresvolume/rendering/renderablemultiresvolume.h index fc86c139ee..0127002d47 100644 --- a/modules/multiresvolume/rendering/renderablemultiresvolume.h +++ b/modules/multiresvolume/rendering/renderablemultiresvolume.h @@ -68,8 +68,8 @@ public: bool setSelectorType(Selector selector); bool initializeSelector(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderablecrawlingline.cpp b/modules/newhorizons/rendering/renderablecrawlingline.cpp index 21703e96f4..b1767b3c5b 100644 --- a/modules/newhorizons/rendering/renderablecrawlingline.cpp +++ b/modules/newhorizons/rendering/renderablecrawlingline.cpp @@ -135,7 +135,7 @@ bool RenderableCrawlingLine::isReady() const { return (_program != nullptr); } -bool RenderableCrawlingLine::initialize() { +void RenderableCrawlingLine::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _program = renderEngine.buildRenderProgram( "RenderableCrawlingLine", @@ -164,11 +164,9 @@ bool RenderableCrawlingLine::initialize() { ); glBindVertexArray(0); - - return true; } -bool RenderableCrawlingLine::deinitialize(){ +void RenderableCrawlingLine::deinitialize(){ glDeleteVertexArrays(1, &_vao); _vao = 0; glDeleteBuffers(1, &_vbo); @@ -179,8 +177,6 @@ bool RenderableCrawlingLine::deinitialize(){ renderEngine.removeRenderProgram(_program); _program = nullptr; } - - return true; } void RenderableCrawlingLine::render(const RenderData& data, RendererTasks&) { diff --git a/modules/newhorizons/rendering/renderablecrawlingline.h b/modules/newhorizons/rendering/renderablecrawlingline.h index c34129f26a..0700f8098a 100644 --- a/modules/newhorizons/rendering/renderablecrawlingline.h +++ b/modules/newhorizons/rendering/renderablecrawlingline.h @@ -38,8 +38,8 @@ class RenderableCrawlingLine : public Renderable { public: RenderableCrawlingLine(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderablefov.cpp b/modules/newhorizons/rendering/renderablefov.cpp index 6c02e1736c..34f29bd58c 100644 --- a/modules/newhorizons/rendering/renderablefov.cpp +++ b/modules/newhorizons/rendering/renderablefov.cpp @@ -297,7 +297,7 @@ RenderableFov::RenderableFov(const ghoul::Dictionary& dictionary) addProperty(_colors.square); } -bool RenderableFov::initialize() { +void RenderableFov::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _programObject = renderEngine.buildRenderProgram( "FovProgram", @@ -314,8 +314,10 @@ bool RenderableFov::initialize() { res.shape == SpiceManager::FieldOfViewResult::Shape::Polygon || res.shape == SpiceManager::FieldOfViewResult::Shape::Rectangle; if (!supportedShape) { - LWARNINGC("RenderableFov", "'" << _instrument.name << "' has unsupported shape"); - return false; + throw ghoul::RuntimeError( + "'" + _instrument.name + "' has unsupported shape", + "RenderableFov" + ); } _instrument.bounds = std::move(res.bounds); @@ -405,11 +407,9 @@ bool RenderableFov::initialize() { ); glBindVertexArray(0); - - return true; } -bool RenderableFov::deinitialize() { +void RenderableFov::deinitialize() { OsEng.renderEngine().removeRenderProgram(_programObject); _programObject = nullptr; @@ -418,8 +418,6 @@ bool RenderableFov::deinitialize() { glDeleteBuffers(1, &_fieldOfViewBounds.vbo); glDeleteVertexArrays(1, &_fieldOfViewBounds.vao); - - return true; } bool RenderableFov::isReady() const { diff --git a/modules/newhorizons/rendering/renderablefov.h b/modules/newhorizons/rendering/renderablefov.h index 4694f0f7c0..6c09c02deb 100644 --- a/modules/newhorizons/rendering/renderablefov.h +++ b/modules/newhorizons/rendering/renderablefov.h @@ -49,8 +49,8 @@ class RenderableFov : public Renderable { public: RenderableFov(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderablemodelprojection.cpp b/modules/newhorizons/rendering/renderablemodelprojection.cpp index 18b7f76c10..9a36d22876 100644 --- a/modules/newhorizons/rendering/renderablemodelprojection.cpp +++ b/modules/newhorizons/rendering/renderablemodelprojection.cpp @@ -182,9 +182,7 @@ bool RenderableModelProjection::isReady() const { return ready; } -bool RenderableModelProjection::initialize() { - bool completeSuccess = true; - +void RenderableModelProjection::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _programObject = renderEngine.buildRenderProgram("ModelShader", "${MODULE_NEWHORIZONS}/shaders/renderableModel_vs.glsl", @@ -203,17 +201,15 @@ bool RenderableModelProjection::initialize() { "${MODULE_NEWHORIZONS}/shaders/renderableModelDepth_fs.glsl"); - completeSuccess &= loadTextures(); - completeSuccess &= _projectionComponent.initializeGL(); + loadTextures(); + _projectionComponent.initializeGL(); float bs = boundingSphere(); - completeSuccess &= _geometry->initialize(this); + _geometry->initialize(this); setBoundingSphere(bs); // ignore bounding sphere set by geometry. - - return completeSuccess; } -bool RenderableModelProjection::deinitialize() { +void RenderableModelProjection::deinitialize() { if (_geometry) { _geometry->deinitialize(); } @@ -225,8 +221,6 @@ bool RenderableModelProjection::deinitialize() { OsEng.renderEngine().removeRenderProgram(_programObject); _programObject = nullptr; - - return true; } ghoul::opengl::Texture& RenderableModelProjection::baseTexture() const { diff --git a/modules/newhorizons/rendering/renderablemodelprojection.h b/modules/newhorizons/rendering/renderablemodelprojection.h index 42cd0a9fc4..a0bff0abd3 100644 --- a/modules/newhorizons/rendering/renderablemodelprojection.h +++ b/modules/newhorizons/rendering/renderablemodelprojection.h @@ -55,8 +55,8 @@ public: RenderableModelProjection(const ghoul::Dictionary& dictionary); ~RenderableModelProjection(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderableplaneprojection.cpp b/modules/newhorizons/rendering/renderableplaneprojection.cpp index 7ac1dbb430..4a69268517 100644 --- a/modules/newhorizons/rendering/renderableplaneprojection.cpp +++ b/modules/newhorizons/rendering/renderableplaneprojection.cpp @@ -94,27 +94,23 @@ bool RenderablePlaneProjection::isReady() const { return _shader && _texture; } -bool RenderablePlaneProjection::initialize() { +void RenderablePlaneProjection::initialize() { glGenVertexArrays(1, &_quad); // generate array glGenBuffers(1, &_vertexPositionBuffer); // generate buffer - // Plane program - if (_shader == nullptr) { - // Image Plane Program - RenderEngine& renderEngine = OsEng.renderEngine(); - _shader = renderEngine.buildRenderProgram("Image Plane", - "${MODULE_BASE}/shaders/imageplane_vs.glsl", - "${MODULE_BASE}/shaders/imageplane_fs.glsl"); - if (!_shader) - return false; - } + // Image Plane Program + RenderEngine& renderEngine = OsEng.renderEngine(); + _shader = renderEngine.buildRenderProgram( + "Image Plane", + "${MODULE_BASE}/shaders/imageplane_vs.glsl", + "${MODULE_BASE}/shaders/imageplane_fs.glsl" + ); setTarget(_defaultTarget); loadTexture(); - return isReady(); } -bool RenderablePlaneProjection::deinitialize() { +void RenderablePlaneProjection::deinitialize() { RenderEngine& renderEngine = OsEng.renderEngine(); if (_shader) { renderEngine.removeRenderProgram(_shader); @@ -126,7 +122,6 @@ bool RenderablePlaneProjection::deinitialize() { glDeleteBuffers(1, &_vertexPositionBuffer); _vertexPositionBuffer = 0; _texture = nullptr; - return true; } void RenderablePlaneProjection::render(const RenderData& data, RendererTasks&) { diff --git a/modules/newhorizons/rendering/renderableplaneprojection.h b/modules/newhorizons/rendering/renderableplaneprojection.h index c4f7af8557..9cb259e93b 100644 --- a/modules/newhorizons/rendering/renderableplaneprojection.h +++ b/modules/newhorizons/rendering/renderableplaneprojection.h @@ -55,8 +55,8 @@ public: RenderablePlaneProjection(const ghoul::Dictionary& dictionary); ~RenderablePlaneProjection(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderableplanetprojection.cpp b/modules/newhorizons/rendering/renderableplanetprojection.cpp index b3f257db9d..9aab0e6bc9 100644 --- a/modules/newhorizons/rendering/renderableplanetprojection.cpp +++ b/modules/newhorizons/rendering/renderableplanetprojection.cpp @@ -203,9 +203,7 @@ RenderablePlanetProjection::RenderablePlanetProjection(const ghoul::Dictionary& RenderablePlanetProjection::~RenderablePlanetProjection() {} -bool RenderablePlanetProjection::initialize() { - bool completeSuccess = true; - +void RenderablePlanetProjection::initialize() { _programObject = OsEng.renderEngine().buildRenderProgram( "projectiveProgram", "${MODULE_NEWHORIZONS}/shaders/renderablePlanet_vs.glsl", @@ -218,41 +216,37 @@ bool RenderablePlanetProjection::initialize() { "${MODULE_NEWHORIZONS}/shaders/renderablePlanetProjection_fs.glsl" ); - completeSuccess &= loadTextures(); - completeSuccess &= _projectionComponent.initializeGL(); - completeSuccess &= _geometry->initialize(this); + loadTextures(); + _projectionComponent.initializeGL(); + _geometry->initialize(this); - if (completeSuccess) { - //completeSuccess &= auxiliaryRendertarget(); - // SCREEN-QUAD - const GLfloat size = 1.f; - const GLfloat w = 1.f; - const GLfloat vertex_data[] = { - -size, -size, 0.f, w, 0.f, 0.f, - size, size, 0.f, w, 1.f, 1.f, - -size, size, 0.f, w, 0.f, 1.f, - -size, -size, 0.f, w, 0.f, 0.f, - size, -size, 0.f, w, 1.f, 0.f, - size, size, 0.f, w, 1.f, 1.f, - }; + //completeSuccess &= auxiliaryRendertarget(); + // SCREEN-QUAD + const GLfloat size = 1.f; + const GLfloat w = 1.f; + const GLfloat vertex_data[] = { + -size, -size, 0.f, w, 0.f, 0.f, + size, size, 0.f, w, 1.f, 1.f, + -size, size, 0.f, w, 0.f, 1.f, + -size, -size, 0.f, w, 0.f, 0.f, + size, -size, 0.f, w, 1.f, 0.f, + size, size, 0.f, w, 1.f, 1.f, + }; - glGenVertexArrays(1, &_quad); - glBindVertexArray(_quad); - glGenBuffers(1, &_vertexPositionBuffer); - glBindBuffer(GL_ARRAY_BUFFER, _vertexPositionBuffer); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertex_data), vertex_data, GL_STATIC_DRAW); - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 6, reinterpret_cast(0)); - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 6, reinterpret_cast(sizeof(GLfloat) * 4)); + glGenVertexArrays(1, &_quad); + glBindVertexArray(_quad); + glGenBuffers(1, &_vertexPositionBuffer); + glBindBuffer(GL_ARRAY_BUFFER, _vertexPositionBuffer); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertex_data), vertex_data, GL_STATIC_DRAW); + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 6, reinterpret_cast(0)); + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 6, reinterpret_cast(sizeof(GLfloat) * 4)); - glBindVertexArray(0); - } - - return completeSuccess; + glBindVertexArray(0); } -bool RenderablePlanetProjection::deinitialize() { +void RenderablePlanetProjection::deinitialize() { _projectionComponent.deinitialize(); _baseTexture = nullptr; _geometry = nullptr; @@ -264,9 +258,8 @@ bool RenderablePlanetProjection::deinitialize() { _programObject = nullptr; _fboProgramObject = nullptr; - - return true; } + bool RenderablePlanetProjection::isReady() const { return _geometry && _programObject && _baseTexture && _projectionComponent.isReady(); } diff --git a/modules/newhorizons/rendering/renderableplanetprojection.h b/modules/newhorizons/rendering/renderableplanetprojection.h index 8723a024e0..eaafec317a 100644 --- a/modules/newhorizons/rendering/renderableplanetprojection.h +++ b/modules/newhorizons/rendering/renderableplanetprojection.h @@ -44,8 +44,8 @@ public: RenderablePlanetProjection(const ghoul::Dictionary& dictionary); ~RenderablePlanetProjection(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/newhorizons/rendering/renderableshadowcylinder.cpp b/modules/newhorizons/rendering/renderableshadowcylinder.cpp index b6b5c8fd99..b3568588db 100644 --- a/modules/newhorizons/rendering/renderableshadowcylinder.cpp +++ b/modules/newhorizons/rendering/renderableshadowcylinder.cpp @@ -260,7 +260,7 @@ RenderableShadowCylinder::RenderableShadowCylinder(const ghoul::Dictionary& dict _aberration = static_cast(aberration.type); } -bool RenderableShadowCylinder::initialize() { +void RenderableShadowCylinder::initialize() { glGenVertexArrays(1, &_vao); glGenBuffers(1, &_vbo); @@ -270,11 +270,9 @@ bool RenderableShadowCylinder::initialize() { "${MODULE_NEWHORIZONS}/shaders/terminatorshadow_vs.glsl", "${MODULE_NEWHORIZONS}/shaders/terminatorshadow_fs.glsl" ); - - return true; } -bool RenderableShadowCylinder::deinitialize() { +void RenderableShadowCylinder::deinitialize() { RenderEngine& renderEngine = OsEng.renderEngine(); if (_shader) { renderEngine.removeRenderProgram(_shader); @@ -285,8 +283,6 @@ bool RenderableShadowCylinder::deinitialize() { _vao = 0; glDeleteBuffers(1, &_vbo); _vbo = 0; - - return true; } bool RenderableShadowCylinder::isReady() const { diff --git a/modules/newhorizons/rendering/renderableshadowcylinder.h b/modules/newhorizons/rendering/renderableshadowcylinder.h index 72382b9f6c..fd43474039 100644 --- a/modules/newhorizons/rendering/renderableshadowcylinder.h +++ b/modules/newhorizons/rendering/renderableshadowcylinder.h @@ -50,8 +50,8 @@ class RenderableShadowCylinder : public Renderable { public: RenderableShadowCylinder(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/space/rendering/renderableconstellationbounds.cpp b/modules/space/rendering/renderableconstellationbounds.cpp index dc2f316475..15f5d2d25e 100644 --- a/modules/space/rendering/renderableconstellationbounds.cpp +++ b/modules/space/rendering/renderableconstellationbounds.cpp @@ -164,7 +164,7 @@ RenderableConstellationBounds::RenderableConstellationBounds( ); } -bool RenderableConstellationBounds::initialize() { +void RenderableConstellationBounds::initialize() { _program = OsEng.renderEngine().buildRenderProgram( "ConstellationBounds", "${MODULE_SPACE}/shaders/constellationbounds_vs.glsl", @@ -189,11 +189,9 @@ bool RenderableConstellationBounds::initialize() { glVertexAttribPointer(positionAttrib, 3, GL_FLOAT, GL_FALSE, 0, 0); glBindVertexArray(0); - - return true; } -bool RenderableConstellationBounds::deinitialize() { +void RenderableConstellationBounds::deinitialize() { glDeleteBuffers(1, &_vbo); _vbo = 0; glDeleteVertexArrays(1, &_vao); @@ -203,8 +201,6 @@ bool RenderableConstellationBounds::deinitialize() { OsEng.renderEngine().removeRenderProgram(_program); _program = nullptr; } - - return true; } bool RenderableConstellationBounds::isReady() const { diff --git a/modules/space/rendering/renderableconstellationbounds.h b/modules/space/rendering/renderableconstellationbounds.h index 200e2d8359..b1d7cdc566 100644 --- a/modules/space/rendering/renderableconstellationbounds.h +++ b/modules/space/rendering/renderableconstellationbounds.h @@ -50,8 +50,8 @@ class RenderableConstellationBounds : public Renderable { public: RenderableConstellationBounds(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/space/rendering/renderableplanet.cpp b/modules/space/rendering/renderableplanet.cpp index 7dd725773a..7b75071c89 100644 --- a/modules/space/rendering/renderableplanet.cpp +++ b/modules/space/rendering/renderableplanet.cpp @@ -339,7 +339,7 @@ RenderablePlanet::RenderablePlanet(const ghoul::Dictionary& dictionary) } } -bool RenderablePlanet::initialize() { +void RenderablePlanet::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); if (_programObject == nullptr && _shadowEnabled && _hasNightTexture) { @@ -379,11 +379,9 @@ bool RenderablePlanet::initialize() { _programObject->deactivate(); loadTexture(); - - return isReady(); } -bool RenderablePlanet::deinitialize() { +void RenderablePlanet::deinitialize() { if (_geometry) { _geometry->deinitialize(); _geometry = nullptr; @@ -398,8 +396,6 @@ bool RenderablePlanet::deinitialize() { _geometry = nullptr; _texture = nullptr; _nightTexture = nullptr; - - return true; } bool RenderablePlanet::isReady() const { diff --git a/modules/space/rendering/renderableplanet.h b/modules/space/rendering/renderableplanet.h index bd037b6292..1fb3603f5d 100644 --- a/modules/space/rendering/renderableplanet.h +++ b/modules/space/rendering/renderableplanet.h @@ -68,8 +68,8 @@ public: public: RenderablePlanet(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/space/rendering/renderablerings.cpp b/modules/space/rendering/renderablerings.cpp index 9ba7e61b87..3368d051aa 100644 --- a/modules/space/rendering/renderablerings.cpp +++ b/modules/space/rendering/renderablerings.cpp @@ -184,7 +184,7 @@ bool RenderableRings::isReady() const { return _shader && _texture; } -bool RenderableRings::initialize() { +void RenderableRings::initialize() { if (!_shader) { RenderEngine& renderEngine = OsEng.renderEngine(); _shader = renderEngine.buildRenderProgram("RingProgram", @@ -200,11 +200,9 @@ bool RenderableRings::initialize() { glGenBuffers(1, &_vertexPositionBuffer); createPlane(); loadTexture(); - - return isReady(); } -bool RenderableRings::deinitialize() { +void RenderableRings::deinitialize() { glDeleteVertexArrays(1, &_quad); _quad = 0; @@ -216,8 +214,6 @@ bool RenderableRings::deinitialize() { OsEng.renderEngine().removeRenderProgram(_shader); _shader = nullptr; - - return true; } void RenderableRings::render(const RenderData& data, RendererTasks&) { diff --git a/modules/space/rendering/renderablerings.h b/modules/space/rendering/renderablerings.h index 446ec280dd..3d39feb896 100644 --- a/modules/space/rendering/renderablerings.h +++ b/modules/space/rendering/renderablerings.h @@ -46,8 +46,8 @@ class RenderableRings : public Renderable { public: RenderableRings(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/space/rendering/renderablestars.cpp b/modules/space/rendering/renderablestars.cpp index c5972a83cf..c0a277f83a 100644 --- a/modules/space/rendering/renderablestars.cpp +++ b/modules/space/rendering/renderablestars.cpp @@ -288,25 +288,20 @@ bool RenderableStars::isReady() const { return (_program != nullptr) && (!_fullData.empty()); } -bool RenderableStars::initialize() { - bool completeSuccess = true; - +void RenderableStars::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _program = renderEngine.buildRenderProgram("Star", "${MODULE_SPACE}/shaders/star_vs.glsl", "${MODULE_SPACE}/shaders/star_fs.glsl", "${MODULE_SPACE}/shaders/star_ge.glsl"); - if (!_program) { - return false; + bool success = loadData(); + if (!success) { + throw ghoul::RuntimeError("Error loading data"); } - completeSuccess &= loadData(); - completeSuccess &= (_pointSpreadFunctionTexture != nullptr); - - return completeSuccess; } -bool RenderableStars::deinitialize() { +void RenderableStars::deinitialize() { glDeleteBuffers(1, &_vbo); _vbo = 0; glDeleteVertexArrays(1, &_vao); @@ -320,7 +315,6 @@ bool RenderableStars::deinitialize() { renderEngine.removeRenderProgram(_program); _program = nullptr; } - return true; } void RenderableStars::render(const RenderData& data, RendererTasks&) { diff --git a/modules/space/rendering/renderablestars.h b/modules/space/rendering/renderablestars.h index c346eac3e8..346a4dbd02 100644 --- a/modules/space/rendering/renderablestars.h +++ b/modules/space/rendering/renderablestars.h @@ -48,8 +48,8 @@ public: explicit RenderableStars(const ghoul::Dictionary& dictionary); ~RenderableStars(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/toyvolume/rendering/renderabletoyvolume.cpp b/modules/toyvolume/rendering/renderabletoyvolume.cpp index cf862861a7..5ea3fa67bb 100644 --- a/modules/toyvolume/rendering/renderabletoyvolume.cpp +++ b/modules/toyvolume/rendering/renderabletoyvolume.cpp @@ -70,7 +70,7 @@ RenderableToyVolume::RenderableToyVolume(const ghoul::Dictionary& dictionary) RenderableToyVolume::~RenderableToyVolume() {} -bool RenderableToyVolume::initialize() { +void RenderableToyVolume::initialize() { _raycaster = std::make_unique(_color); _raycaster->initialize(); @@ -93,25 +93,22 @@ bool RenderableToyVolume::initialize() { addProperty(_translation); addProperty(_rotation); addProperty(_color); - - return true; } -bool RenderableToyVolume::deinitialize() { +void RenderableToyVolume::deinitialize() { if (_raycaster) { OsEng.renderEngine().raycasterManager().detachRaycaster(*_raycaster.get()); _raycaster = nullptr; } - return true; } bool RenderableToyVolume::isReady() const { + // @TODO isReady function needs to be filled return true; } void RenderableToyVolume::update(const UpdateData& data) { if (_raycaster) { - glm::mat4 transform = glm::translate(glm::mat4(1.0), static_cast(_translation) * std::pow(10.0f, static_cast(_scalingExponent))); glm::vec3 eulerRotation = static_cast(_rotation); transform = glm::rotate(transform, eulerRotation.x, glm::vec3(1, 0, 0)); diff --git a/modules/toyvolume/rendering/renderabletoyvolume.h b/modules/toyvolume/rendering/renderabletoyvolume.h index b5e1390ffc..5655cbf9c0 100644 --- a/modules/toyvolume/rendering/renderabletoyvolume.h +++ b/modules/toyvolume/rendering/renderabletoyvolume.h @@ -44,8 +44,8 @@ public: RenderableToyVolume(const ghoul::Dictionary& dictionary); ~RenderableToyVolume(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& tasks) override; void update(const UpdateData& data) override; diff --git a/src/rendering/renderable.cpp b/src/rendering/renderable.cpp index f8fb604e6b..fc5e410b84 100644 --- a/src/rendering/renderable.cpp +++ b/src/rendering/renderable.cpp @@ -139,6 +139,10 @@ Renderable::Renderable(const ghoul::Dictionary& dictionary) Renderable::~Renderable() {} +void Renderable::initialize() {} + +void Renderable::deinitialize() {} + void Renderable::setBoundingSphere(float boundingSphere) { _boundingSphere = boundingSphere; } diff --git a/src/scene/scene.cpp b/src/scene/scene.cpp index 547c1e6627..0321bac716 100644 --- a/src/scene/scene.cpp +++ b/src/scene/scene.cpp @@ -212,13 +212,10 @@ void Scene::sortTopologically() { void Scene::initialize() { for (SceneGraphNode* node : _topologicallySortedNodes) { try { - bool success = node->initialize(); - if (success) - LDEBUG(node->name() << " initialized successfully!"); - else - LWARNING(node->name() << " not initialized."); + node->initialize(); } catch (const ghoul::RuntimeError& e) { + LERROR(node->name() << " not initialized."); LERRORC(std::string(_loggerCat) + "(" + e.component + ")", e.what()); } } diff --git a/src/scene/scenegraphnode.cpp b/src/scene/scenegraphnode.cpp index 4f65fa39fd..0d752411bd 100644 --- a/src/scene/scenegraphnode.cpp +++ b/src/scene/scenegraphnode.cpp @@ -182,7 +182,7 @@ SceneGraphNode::~SceneGraphNode() { deinitialize(); } -bool SceneGraphNode::initialize() { +void SceneGraphNode::initialize() { if (_renderable) { _renderable->initialize(); } @@ -197,11 +197,9 @@ bool SceneGraphNode::initialize() { if (_transform.scale) { _transform.scale->initialize(); } - - return true; } -bool SceneGraphNode::deinitialize() { +void SceneGraphNode::deinitialize() { LDEBUG("Deinitialize: " << name()); if (_renderable) { @@ -210,10 +208,7 @@ bool SceneGraphNode::deinitialize() { } _children.clear(); - // reset variables _parent = nullptr; - - return true; } void SceneGraphNode::traversePreOrder(std::function fn) { From e0dc60f218a94d5534eb3bfb1a19b38b809658d2 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Fri, 28 Jul 2017 17:55:58 -0400 Subject: [PATCH 22/51] Remove duplicate specification of property in OrbitalNagivator --- src/interaction/orbitalnavigator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/interaction/orbitalnavigator.cpp b/src/interaction/orbitalnavigator.cpp index df19529c41..52b0c2fe13 100644 --- a/src/interaction/orbitalnavigator.cpp +++ b/src/interaction/orbitalnavigator.cpp @@ -96,7 +96,7 @@ OrbitalNavigator::OrbitalNavigator() , _rotationalFriction(RotationalFrictionInfo, true) , _zoomFriction(ZoomFrictionInfo, true) , _followFocusNodeRotationDistance(FollowFocusNodeInfo, 2.0f, 0.0f, 10.f) - , _minimumAllowedDistance(FollowFocusNodeInfo, 10.0f, 0.0f, 10000.f) + , _minimumAllowedDistance(MinimumDistanceInfo, 10.0f, 0.0f, 10000.f) , _sensitivity(SensitivityInfo, 20.0f, 1.0f, 50.f) , _motionLag(FrictionInfo, 0.5f, 0.f, 1.f) , _mouseStates(_sensitivity * pow(10.0,-4), 1 / (_motionLag + 0.0000001)) From ad5ca816a9d8815e20f3023e6ad2ff5c404d4cca Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Sat, 29 Jul 2017 01:33:22 -0400 Subject: [PATCH 23/51] Move friction properties into common subowner --- .../openspace/interaction/orbitalnavigator.h | 14 ++-- .../base/rendering/renderablesphericalgrid.h | 2 +- scripts/common.lua | 6 +- src/interaction/orbitalnavigator.cpp | 68 +++++++++---------- 4 files changed, 48 insertions(+), 42 deletions(-) diff --git a/include/openspace/interaction/orbitalnavigator.h b/include/openspace/interaction/orbitalnavigator.h index eaf3c6277c..24a86b1a44 100644 --- a/include/openspace/interaction/orbitalnavigator.h +++ b/include/openspace/interaction/orbitalnavigator.h @@ -64,10 +64,16 @@ private: glm::dquat globalRotation; }; - // Properties - properties::BoolProperty _rollFriction; - properties::BoolProperty _rotationalFriction; - properties::BoolProperty _zoomFriction; + struct Friction : public properties::PropertyOwner { + Friction(); + + properties::BoolProperty roll; + properties::BoolProperty rotational; + properties::BoolProperty zoom; + }; + + Friction _friction; + properties::FloatProperty _followFocusNodeRotationDistance; properties::FloatProperty _minimumAllowedDistance; properties::FloatProperty _sensitivity; diff --git a/modules/base/rendering/renderablesphericalgrid.h b/modules/base/rendering/renderablesphericalgrid.h index 7774c8d7d7..ee5d829885 100644 --- a/modules/base/rendering/renderablesphericalgrid.h +++ b/modules/base/rendering/renderablesphericalgrid.h @@ -39,7 +39,7 @@ namespace ghoul::opengl { class ProgramObject; } // namespace ghoul::opengl -namespace openspace::documentation { class Documentation; } +namespace openspace::documentation { struct Documentation; } namespace openspace { diff --git a/scripts/common.lua b/scripts/common.lua index b80c4fdc1a..2a69962d24 100644 --- a/scripts/common.lua +++ b/scripts/common.lua @@ -52,18 +52,18 @@ helper.setCommonKeys = function() openspace.bindKey( "f", - helper.property.invert('NavigationHandler.OrbitalNavigator.RotationalFriction'), + helper.property.invert('NavigationHandler.OrbitalNavigator.Friction.RotationalFriction'), "Toggles the rotational friction of the camera. If it is disabled, the camera rotates around the focus object indefinitely." ) openspace.bindKey( "Shift+f", - helper.property.invert('NavigationHandler.OrbitalNavigator.ZoomFriction'), + helper.property.invert('NavigationHandler.OrbitalNavigator.Friction.ZoomFriction'), "Toggles the zoom friction of the camera. If it is disabled, the camera rises up from or closes in towards the focus object indefinitely." ) openspace.bindKey( "Ctrl+f", - helper.property.invert('NavigationHandler.OrbitalNavigator.RollFriction'), + helper.property.invert('NavigationHandler.OrbitalNavigator.Friction.RollFriction'), "Toggles the roll friction of the camera. If it is disabled, the camera rolls around its own axis indefinitely." ) diff --git a/src/interaction/orbitalnavigator.cpp b/src/interaction/orbitalnavigator.cpp index 52b0c2fe13..3c5a139a13 100644 --- a/src/interaction/orbitalnavigator.cpp +++ b/src/interaction/orbitalnavigator.cpp @@ -90,16 +90,24 @@ namespace { namespace openspace::interaction { +OrbitalNavigator::Friction::Friction() + : properties::PropertyOwner("Friction") + , roll(RollFrictionInfo, true) + , rotational(RotationalFrictionInfo, true) + , zoom(ZoomFrictionInfo, true) +{ + addProperty(roll); + addProperty(rotational); + addProperty(zoom); +} + OrbitalNavigator::OrbitalNavigator() : properties::PropertyOwner("OrbitalNavigator") - , _rollFriction(RollFrictionInfo, true) - , _rotationalFriction(RotationalFrictionInfo, true) - , _zoomFriction(ZoomFrictionInfo, true) , _followFocusNodeRotationDistance(FollowFocusNodeInfo, 2.0f, 0.0f, 10.f) , _minimumAllowedDistance(MinimumDistanceInfo, 10.0f, 0.0f, 10000.f) , _sensitivity(SensitivityInfo, 20.0f, 1.0f, 50.f) , _motionLag(FrictionInfo, 0.5f, 0.f, 1.f) - , _mouseStates(_sensitivity * pow(10.0,-4), 1 / (_motionLag + 0.0000001)) + , _mouseStates(_sensitivity * pow(10.0, -4), 1 / (_motionLag + 0.0000001)) { auto smoothStep = [](double t) { @@ -123,21 +131,20 @@ OrbitalNavigator::OrbitalNavigator() // As an example f_orig(t) = 1 - t yields f(t) = 1 / (1 - t) which results in a linear // interpolation from 1 to 0. - auto smoothStepDerivedTranferFunction = - [](double t) { - return (6 * (t + t*t) / (1 - 3 * t*t + 2 * t*t*t)); - }; + auto smoothStepDerivedTranferFunction = [](double t) { + return (6 * (t + t*t) / (1 - 3 * t*t + 2 * t*t*t)); + }; _rotateToFocusNodeInterpolator.setTransferFunction(smoothStepDerivedTranferFunction); // Define callback functions for changed properties - _rollFriction.onChange([&]() { - _mouseStates.setRotationalFriction(_rollFriction); + _friction.roll.onChange([&]() { + _mouseStates.setRotationalFriction(_friction.roll); }); - _rotationalFriction.onChange([&]() { - _mouseStates.setHorizontalFriction(_rotationalFriction); + _friction.rotational.onChange([&]() { + _mouseStates.setHorizontalFriction(_friction.rotational); }); - _zoomFriction.onChange([&]() { - _mouseStates.setVerticalFriction(_zoomFriction); + _friction.zoom.onChange([&]() { + _mouseStates.setVerticalFriction(_friction.zoom); }); _sensitivity.onChange([&]() { _mouseStates.setSensitivity(_sensitivity * pow(10.0,-4)); @@ -146,18 +153,15 @@ OrbitalNavigator::OrbitalNavigator() _mouseStates.setVelocityScaleFactor(1 / (_motionLag + 0.0000001)); }); - // Add the properties - addProperty(_rollFriction); - addProperty(_rotationalFriction); - addProperty(_zoomFriction); + addPropertySubOwner(_friction); + addProperty(_followFocusNodeRotationDistance); addProperty(_minimumAllowedDistance); addProperty(_sensitivity); addProperty(_motionLag); } -OrbitalNavigator::~OrbitalNavigator() -{ } +OrbitalNavigator::~OrbitalNavigator() {} void OrbitalNavigator::updateMouseStatesFromInput(const InputState& inputState, double deltaTime) @@ -165,9 +169,7 @@ void OrbitalNavigator::updateMouseStatesFromInput(const InputState& inputState, _mouseStates.updateMouseStatesFromInput(inputState, deltaTime); } -void OrbitalNavigator::updateCameraStateFromMouseStates(Camera& camera, - double deltaTime) -{ +void OrbitalNavigator::updateCameraStateFromMouseStates(Camera& camera, double deltaTime){ if (_focusNode) { // Read the current state of the camera glm::dvec3 camPos = camera.positionVec3(); @@ -332,7 +334,7 @@ OrbitalNavigator::CameraRotationDecomposition } glm::dquat OrbitalNavigator::roll(double deltaTime, - const glm::dquat& localCameraRotation) const + const glm::dquat& localCameraRotation) const { glm::dquat rollQuat = glm::angleAxis( _mouseStates.localRollMouseVelocity().x * deltaTime, @@ -353,9 +355,8 @@ glm::dquat OrbitalNavigator::rotateLocally(double deltaTime, return localCameraRotation * rotationDiff; } -glm::dquat OrbitalNavigator::interpolateLocalRotation( - double deltaTime, - const glm::dquat& localCameraRotation) +glm::dquat OrbitalNavigator::interpolateLocalRotation(double deltaTime, + const glm::dquat& localCameraRotation) { if (_rotateToFocusNodeInterpolator.isInterpolating()) { double t = _rotateToFocusNodeInterpolator.value(); @@ -375,13 +376,12 @@ glm::dquat OrbitalNavigator::interpolateLocalRotation( } } -glm::dvec3 OrbitalNavigator::translateHorizontally( - double deltaTime, - const glm::dvec3& cameraPosition, - const glm::dvec3& objectPosition, - const glm::dquat& /*focusNodeRotationDiff*/, - const glm::dquat& globalCameraRotation, - const SurfacePositionHandle& positionHandle) const +glm::dvec3 OrbitalNavigator::translateHorizontally(double deltaTime, + const glm::dvec3& cameraPosition, + const glm::dvec3& objectPosition, + const glm::dquat& /*focusNodeRotationDiff*/, + const glm::dquat& globalCameraRotation, + const SurfacePositionHandle& positionHandle) const { glm::dmat4 modelTransform = _focusNode->modelTransform(); From c04b37952053cdcee800a2783615eb36b7259a15 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Sat, 29 Jul 2017 01:57:16 -0400 Subject: [PATCH 24/51] Enable the selection of constellation bounds through the mod file --- .../constellationbounds.mod | 8 +++- .../openspace/properties/selectionproperty.h | 5 +++ .../renderableconstellationbounds.cpp | 43 +++++++++++++++++-- 3 files changed, 52 insertions(+), 4 deletions(-) diff --git a/data/scene/constellationbounds/constellationbounds.mod b/data/scene/constellationbounds/constellationbounds.mod index beb1295d26..fe5e3b2122 100644 --- a/data/scene/constellationbounds/constellationbounds.mod +++ b/data/scene/constellationbounds/constellationbounds.mod @@ -1,3 +1,8 @@ +local zodiacs = { + "Cancer", "Taurus", "Pisces", "Aries", "Libra", "Aquarius", "Capricornus", "Scorpius", + "Virgo", "Sagittarius", "Gemini", "Leo" +} + return { -- Stars module { @@ -6,7 +11,8 @@ return { Renderable = { Type = "RenderableConstellationBounds", File = "${OPENSPACE_DATA}/scene/constellationbounds/data/bound_20.dat", - ConstellationFile = "${OPENSPACE_DATA}/scene/constellationbounds/data/constellations.dat" + ConstellationFile = "${OPENSPACE_DATA}/scene/constellationbounds/data/constellations.dat", + -- ConstellationSelection = zodiacs }, Transform = { Rotation = { diff --git a/include/openspace/properties/selectionproperty.h b/include/openspace/properties/selectionproperty.h index ea59ad2d4d..84300f43b7 100644 --- a/include/openspace/properties/selectionproperty.h +++ b/include/openspace/properties/selectionproperty.h @@ -44,6 +44,11 @@ public: void removeOptions(); const std::vector