From 889545bd45c2da0499d43102e712a95db6c83151 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Fri, 14 Apr 2017 18:06:46 -0400 Subject: [PATCH] Compile fixes for PresentationSlideProvider --- .../presentationslideprovider.cpp | 108 +++++++++--------- .../tileprovider/presentationslideprovider.h | 44 ++++--- .../tile/tileprovider/tileprovider.cpp | 15 +-- 3 files changed, 79 insertions(+), 88 deletions(-) diff --git a/modules/globebrowsing/tile/tileprovider/presentationslideprovider.cpp b/modules/globebrowsing/tile/tileprovider/presentationslideprovider.cpp index e4cbaff471..bc38a37fff 100644 --- a/modules/globebrowsing/tile/tileprovider/presentationslideprovider.cpp +++ b/modules/globebrowsing/tile/tileprovider/presentationslideprovider.cpp @@ -43,74 +43,74 @@ namespace { namespace openspace { namespace globebrowsing { +namespace tileprovider { - PresentationSlideProvider::PresentationSlideProvider(const ghoul::Dictionary& dictionary) { - setName("SlideProvider"); - ghoul::Dictionary defaultProviderDict = dictionary.value(KeyDefaultProvider); - TileProvider* defaultProvider = TileProvider::createFromDictionary(defaultProviderDict); - _defaultProvider = std::unique_ptr(defaultProvider); +PresentationSlideProvider::PresentationSlideProvider(const ghoul::Dictionary& dictionary) + : _slideIndex("slideIndex", "slideIndex", 0, 0, _slideProviders.size() - 1) +{ + setName("SlideProvider"); + ghoul::Dictionary defaultProviderDict = dictionary.value(KeyDefaultProvider); + _defaultProvider = TileProvider::createFromDictionary(defaultProviderDict); - ghoul::Dictionary tileIndexDict = dictionary.value(KeyTileIndex); - _tileIndex = TileIndex(tileIndexDict); + ghoul::Dictionary tileIndexDict = dictionary.value(KeyTileIndex); + _tileIndex = TileIndex(tileIndexDict); - ghoul::Dictionary slideProvidersDict = dictionary.value(KeySlideProviders); - _slideProviders.resize(slideProvidersDict.size()); - for (size_t i = 0; i < slideProvidersDict.size(); i++) { - std::string dictKey = std::to_string(i + 1); - ghoul::Dictionary providerDict = slideProvidersDict.value(dictKey); - TileProvider* tileProvider = TileProvider::createFromDictionary(providerDict); - _slideProviders[i].reset(tileProvider); - } + ghoul::Dictionary slideProvidersDict = dictionary.value(KeySlideProviders); + _slideProviders.resize(slideProvidersDict.size()); + for (size_t i = 0; i < slideProvidersDict.size(); i++) { + std::string dictKey = std::to_string(i + 1); + ghoul::Dictionary providerDict = slideProvidersDict.value(dictKey); + _slideProviders[i] = TileProvider::createFromDictionary(providerDict); + } + _slideIndex.setMaxValue(_slideProviders.size() - 1); + addProperty(_slideIndex); +} + +Tile PresentationSlideProvider::getTile(const TileIndex& tileIndex) { + if(tileIndex == _tileIndex){ + return slideProvider()->getTile(tileIndex); + } + return Tile::TileUnavailable; - _slideIndex = std::make_unique("slideIndex", "slideIndex", 0, 0, _slideProviders.size()-1); - addProperty(_slideIndex.get()); - } +} - Tile PresentationSlideProvider::getTile(const TileIndex& tileIndex) { - if(tileIndex == _tileIndex){ - return slideProvider()->getTile(tileIndex); - } - return Tile::TileUnavailable; - - } +Tile PresentationSlideProvider::getDefaultTile() { + return _defaultProvider->getDefaultTile(); +} - Tile PresentationSlideProvider::getDefaultTile() { - return _defaultProvider->getDefaultTile(); +Tile::Status PresentationSlideProvider::getTileStatus(const TileIndex& tileIndex) { + if(tileIndex == _tileIndex){ + return slideProvider()->getTileStatus(tileIndex); } + return Tile::Status::Unavailable; +} - Tile::Status PresentationSlideProvider::getTileStatus(const TileIndex& tileIndex) { - if(tileIndex == _tileIndex){ - return slideProvider()->getTileStatus(tileIndex); - } - return Tile::Status::Unavailable; - } +TileDepthTransform PresentationSlideProvider::depthTransform() { + return slideProvider()->depthTransform(); +} - TileDepthTransform PresentationSlideProvider::depthTransform() { - slideProvider()->depthTransform(); - } +void PresentationSlideProvider::update() { + slideProvider()->update(); + _defaultProvider->update(); +} - void PresentationSlideProvider::update() { - slideProvider()->update(); - _defaultProvider->update(); +void PresentationSlideProvider::reset() { + for(auto& tp : _slideProviders){ + tp->reset(); } + _defaultProvider->reset(); +} - void PresentationSlideProvider::reset() { - for(auto& tp : _slideProviders){ - tp->reset(); - } - _defaultProvider->reset(); - } +int PresentationSlideProvider::maxLevel() { + return _defaultProvider->maxLevel(); +} - int PresentationSlideProvider::maxLevel() { - return _defaultProvider->maxLevel(); - } - - TileProvider* PresentationSlideProvider::slideProvider(){ - int maxIndex = (int)_slideProviders.size() - 1; - return _slideProviders[std::max(0, std::min(_slideIndex->value(), maxIndex))].get(); - } +TileProvider* PresentationSlideProvider::slideProvider(){ + int maxIndex = (int)_slideProviders.size() - 1; + return _slideProviders[std::max(0, std::min(_slideIndex.value(), maxIndex))].get(); +} - +} // namespace tileprovider } // namespace globebrowsing } // namespace openspace diff --git a/modules/globebrowsing/tile/tileprovider/presentationslideprovider.h b/modules/globebrowsing/tile/tileprovider/presentationslideprovider.h index 1d159b3689..0695501839 100644 --- a/modules/globebrowsing/tile/tileprovider/presentationslideprovider.h +++ b/modules/globebrowsing/tile/tileprovider/presentationslideprovider.h @@ -38,34 +38,32 @@ namespace openspace { namespace globebrowsing { +namespace tileprovider { - using namespace ghoul::opengl; +class PresentationSlideProvider : public TileProvider { +public: + PresentationSlideProvider(const ghoul::Dictionary& dictionary); + PresentationSlideProvider(const std::string& imagePath); + virtual ~PresentationSlideProvider() { } - class PresentationSlideProvider : public TileProvider { - public: - - PresentationSlideProvider(const ghoul::Dictionary& dictionary); - PresentationSlideProvider(const std::string& imagePath); - virtual ~PresentationSlideProvider() { } + virtual Tile getTile(const TileIndex& tileIndex); + virtual Tile getDefaultTile(); + virtual Tile::Status getTileStatus(const TileIndex& index); + virtual TileDepthTransform depthTransform(); + virtual void update(); + virtual void reset(); + virtual int maxLevel(); - virtual Tile getTile(const TileIndex& tileIndex); - virtual Tile getDefaultTile(); - virtual Tile::Status getTileStatus(const TileIndex& index); - virtual TileDepthTransform depthTransform(); - virtual void update(); - virtual void reset(); - virtual int maxLevel(); +private: + TileProvider* slideProvider(); - private: - TileProvider* slideProvider(); - - - TileIndex _tileIndex; - std::unique_ptr _slideIndex; - std::vector> _slideProviders; - std::unique_ptr _defaultProvider; - }; + TileIndex _tileIndex; + properties::IntProperty _slideIndex; + std::vector> _slideProviders; + std::unique_ptr _defaultProvider; +}; +} // namespace tileprovider } // namespace globebrowsing } // namespace openspace diff --git a/modules/globebrowsing/tile/tileprovider/tileprovider.cpp b/modules/globebrowsing/tile/tileprovider/tileprovider.cpp index 42e1fd9455..272b8ec93a 100644 --- a/modules/globebrowsing/tile/tileprovider/tileprovider.cpp +++ b/modules/globebrowsing/tile/tileprovider/tileprovider.cpp @@ -34,8 +34,6 @@ #include namespace { - const std::string _loggerCat = "TileProvider"; - const char* KeyType = "Type"; } @@ -50,18 +48,13 @@ std::unique_ptr TileProvider::createFromDictionary(const ghoul::Di dictionary.getValue(KeyType, type); auto factory = FactoryManager::ref().factory(); std::unique_ptr result = factory->create(type, dictionary); - - if (result == nullptr) { - LERROR("Failed creating TileProvider of type '" << type << "'"); - return nullptr; - } - return result; } -TileProvider::TileProvider() : - properties::PropertyOwner("tileProvider"), - _initialized(false) { +TileProvider::TileProvider() + : properties::PropertyOwner("tileProvider") + , _initialized(false) +{ initialize(); }