mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-03-13 00:38:33 -05:00
Make TileProviderManager manage abstract TileProviders
This commit is contained in:
@@ -127,7 +127,7 @@ namespace openspace {
|
||||
std::shared_ptr<AsyncTileDataProvider> tileReader = std::shared_ptr<AsyncTileDataProvider>(
|
||||
new AsyncTileDataProvider(tileDataset, threadPool));
|
||||
|
||||
std::shared_ptr<CachingTileProvider> colorTextureProvider = std::shared_ptr<CachingTileProvider>(
|
||||
std::shared_ptr<TileProvider> colorTextureProvider = std::shared_ptr<TileProvider>(
|
||||
new CachingTileProvider(tileReader, cacheSize, frameUntilFlushRequestQueue));
|
||||
|
||||
_tileProviderManager->addColorTexture(name, colorTextureProvider, true);
|
||||
@@ -159,7 +159,7 @@ namespace openspace {
|
||||
std::shared_ptr<AsyncTileDataProvider> tileReader = std::shared_ptr<AsyncTileDataProvider>(
|
||||
new AsyncTileDataProvider(tileDataset, threadPool));
|
||||
|
||||
std::shared_ptr<CachingTileProvider> heightMapProvider = std::shared_ptr<CachingTileProvider>(
|
||||
std::shared_ptr<TileProvider> heightMapProvider = std::shared_ptr<TileProvider>(
|
||||
new CachingTileProvider(tileReader, cacheSize, frameUntilFlushRequestQueue));
|
||||
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace openspace {
|
||||
|
||||
void TileProviderManager::addHeightMap(
|
||||
std::string name,
|
||||
std::shared_ptr<CachingTileProvider> tileProvider,
|
||||
std::shared_ptr<TileProvider> tileProvider,
|
||||
bool isActive)
|
||||
{
|
||||
_heightMapProviders.push_back({ name , tileProvider, isActive});
|
||||
@@ -52,7 +52,7 @@ namespace openspace {
|
||||
|
||||
void TileProviderManager::addColorTexture(
|
||||
std::string name,
|
||||
std::shared_ptr<CachingTileProvider> tileProvider,
|
||||
std::shared_ptr<TileProvider> tileProvider,
|
||||
bool isActive)
|
||||
{
|
||||
_colorTextureProviders.push_back({ name , tileProvider, isActive });
|
||||
@@ -70,10 +70,10 @@ namespace openspace {
|
||||
return _colorTextureProviders;
|
||||
}
|
||||
|
||||
const std::vector<std::shared_ptr<CachingTileProvider> >
|
||||
const std::vector<std::shared_ptr<TileProvider> >
|
||||
TileProviderManager::getActiveHeightMapProviders()
|
||||
{
|
||||
std::vector<std::shared_ptr<CachingTileProvider> > tileProviders;
|
||||
std::vector<std::shared_ptr<TileProvider> > tileProviders;
|
||||
for (auto it = _heightMapProviders.begin(); it != _heightMapProviders.end(); it++)
|
||||
{
|
||||
if (it->isActive) {
|
||||
@@ -83,10 +83,10 @@ namespace openspace {
|
||||
return tileProviders;
|
||||
}
|
||||
|
||||
const std::vector<std::shared_ptr<CachingTileProvider> >
|
||||
const std::vector<std::shared_ptr<TileProvider> >
|
||||
TileProviderManager::getActiveColorTextureProviders()
|
||||
{
|
||||
std::vector<std::shared_ptr<CachingTileProvider> > tileProviders;
|
||||
std::vector<std::shared_ptr<TileProvider> > tileProviders;
|
||||
for (auto it = _colorTextureProviders.begin(); it != _colorTextureProviders.end(); it++)
|
||||
{
|
||||
if (it->isActive) {
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace openspace {
|
||||
public:
|
||||
struct TileProviderWithName {
|
||||
std::string name;
|
||||
std::shared_ptr<CachingTileProvider> tileProvider;
|
||||
std::shared_ptr<TileProvider> tileProvider;
|
||||
bool isActive;
|
||||
};
|
||||
|
||||
@@ -50,18 +50,18 @@ namespace openspace {
|
||||
|
||||
void addHeightMap(
|
||||
std::string name,
|
||||
std::shared_ptr<CachingTileProvider> tileProvider,
|
||||
std::shared_ptr<TileProvider> tileProvider,
|
||||
bool isActive);
|
||||
void addColorTexture(
|
||||
std::string name,
|
||||
std::shared_ptr<CachingTileProvider> tileProvider,
|
||||
std::shared_ptr<TileProvider> tileProvider,
|
||||
bool isActive);
|
||||
/*
|
||||
std::shared_ptr<CachingTileProvider> getHeightMap(std::string name);
|
||||
std::shared_ptr<CachingTileProvider> getColorTexture(std::string name);
|
||||
*/
|
||||
const std::vector<std::shared_ptr<CachingTileProvider> > getActiveHeightMapProviders();
|
||||
const std::vector<std::shared_ptr<CachingTileProvider> > getActiveColorTextureProviders();
|
||||
const std::vector<std::shared_ptr<TileProvider> > getActiveHeightMapProviders();
|
||||
const std::vector<std::shared_ptr<TileProvider> > getActiveColorTextureProviders();
|
||||
|
||||
std::vector<TileProviderWithName>& heightMapProviders();
|
||||
std::vector<TileProviderWithName>& colorTextureProviders();
|
||||
|
||||
@@ -65,26 +65,33 @@ namespace openspace {
|
||||
|
||||
|
||||
|
||||
class TileProvider {
|
||||
public:
|
||||
virtual ~TileProvider() { }
|
||||
|
||||
virtual Tile getHighestResolutionTile(ChunkIndex chunkIndex, int parents = 0) = 0;
|
||||
virtual TileDepthTransform depthTransform() = 0;
|
||||
virtual void prerender() = 0;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Provides tiles through GDAL datasets which can be defined with xml files
|
||||
for example for wms.
|
||||
*/
|
||||
class CachingTileProvider {
|
||||
class CachingTileProvider : public TileProvider {
|
||||
public:
|
||||
|
||||
CachingTileProvider(std::shared_ptr<AsyncTileDataProvider> tileReader, int tileCacheSize,
|
||||
int framesUntilFlushRequestQueue);
|
||||
|
||||
~CachingTileProvider();
|
||||
|
||||
virtual ~CachingTileProvider();
|
||||
|
||||
Tile getHighestResolutionTile(ChunkIndex chunkIndex, int parents = 0);
|
||||
|
||||
TileDepthTransform depthTransform();
|
||||
|
||||
void prerender();
|
||||
virtual Tile getHighestResolutionTile(ChunkIndex chunkIndex, int parents = 0);
|
||||
virtual TileDepthTransform depthTransform();
|
||||
virtual void prerender();
|
||||
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user