Remove TileProviderFactory and instantiate TileProviders using FactoryManager instead

This commit is contained in:
Erik Broberg
2016-08-30 23:52:53 -04:00
parent b56eeade88
commit 8d17ad7e34
16 changed files with 182 additions and 242 deletions

View File

@@ -30,8 +30,15 @@
#include <openspace/rendering/renderable.h>
#include <openspace/util/factorymanager.h>
#include <ghoul/misc/templatefactory.h>
#include <ghoul/misc/assert.h>
#include <modules/globebrowsing/tile/tileprovider/tileprovider.h>
#include <modules/globebrowsing/tile/tileprovider/cachingtileprovider.h>
#include <modules/globebrowsing/tile/tileprovider/singleimageprovider.h>
#include <modules/globebrowsing/tile/tileprovider/temporaltileprovider.h>
#include <modules/globebrowsing/tile/tileprovider/texttileprovider.h>
namespace openspace {
@@ -40,28 +47,23 @@ namespace openspace {
{}
void GlobeBrowsingModule::internalInitialize() {
/*
auto fRenderable = FactoryManager::ref().factory<Renderable>();
ghoul_assert(fRenderable, "Renderable factory was not created");
fRenderable->registerClass<Planet>("Planet");
fRenderable->registerClass<RenderableTestPlanet>("RenderableTestPlanet");
//fRenderable->registerClass<planettestgeometry::PlanetTestGeometry>("PlanetTestGeometry");
auto fPlanetGeometry = FactoryManager::ref().factory<planettestgeometry::PlanetTestGeometry>();
ghoul_assert(fPlanetGeometry, "Planet test geometry factory was not created");
fPlanetGeometry->registerClass<planettestgeometry::SimpleSphereTestGeometry>("SimpleSphereTest");
*/
auto fRenderable = FactoryManager::ref().factory<Renderable>();
ghoul_assert(fRenderable, "Renderable factory was not created");
fRenderable->registerClass<RenderableGlobe>("RenderableGlobe");
void addFactory(std::unique_ptr<ghoul::TemplateFactoryBase> factory);
// add Tile Provider factory
FactoryManager::ref().addFactory(
std::make_unique<ghoul::TemplateFactory<TileProvider>>());
auto fTileProvider = FactoryManager::ref().factory<TileProvider>();
fTileProvider->registerClass<CachingTileProvider>("LRUCaching");
fTileProvider->registerClass<SingleImageProvider>("SingleImage");
fTileProvider->registerClass<TemporalTileProvider>("Temporal");
fTileProvider->registerClass<ChunkIndexTileProvider>("ChunkIndex");
}
} // namespace openspace