Improve TileProvider interface by removing getAsyncReader()

This commit is contained in:
Erik Broberg
2016-06-29 11:31:50 -04:00
parent 3dd88786ad
commit fd95871825
5 changed files with 10 additions and 10 deletions

View File

@@ -141,13 +141,13 @@ namespace openspace {
_currentTileProvider->update();
}
std::shared_ptr<AsyncTileDataProvider> TemporalTileProvider::getAsyncTileReader() {
int TemporalTileProvider::maxLevel() {
if (_currentTileProvider == nullptr) {
LDEBUG("Warning: had to call update from getAsyncTileReader()");
update();
}
return _currentTileProvider->getAsyncTileReader();
return _currentTileProvider->maxLevel();
}

View File

@@ -124,7 +124,7 @@ namespace openspace {
virtual Tile::Status getTileStatus(const ChunkIndex& chunkIndex);
virtual TileDepthTransform depthTransform();
virtual void update();
virtual std::shared_ptr<AsyncTileDataProvider> getAsyncTileReader();
virtual int maxLevel();

View File

@@ -75,15 +75,15 @@ namespace openspace {
}
}
std::shared_ptr<AsyncTileDataProvider> CachingTileProvider::getAsyncTileReader() {
return _asyncTextureDataProvider;
int CachingTileProvider::maxLevel() {
return _asyncTextureDataProvider->getTextureDataProvider()->getMaximumLevel();
}
Tile CachingTileProvider::getTile(const ChunkIndex& chunkIndex) {
Tile tile = Tile::TileUnavailable;
auto tileDataset = _asyncTextureDataProvider->getTextureDataProvider();
if (chunkIndex.level > tileDataset->getMaximumLevel()) {
if (chunkIndex.level > maxLevel()) {
tile.status = Tile::Status::OutOfRange;
return tile;
}

View File

@@ -71,7 +71,7 @@ namespace openspace {
virtual Tile::Status getTileStatus(const ChunkIndex& index) = 0;
virtual TileDepthTransform depthTransform() = 0;
virtual void update() = 0;
virtual std::shared_ptr<AsyncTileDataProvider> getAsyncTileReader() = 0;
virtual int maxLevel() = 0;
};
@@ -97,7 +97,7 @@ namespace openspace {
virtual Tile::Status getTileStatus(const ChunkIndex& index);
virtual TileDepthTransform depthTransform();
virtual void update();
virtual std::shared_ptr<AsyncTileDataProvider> getAsyncTileReader();
virtual int maxLevel();
private:

View File

@@ -52,7 +52,7 @@ namespace openspace {
// Step 2. Traverse 0 or more parents up the chunkTree to make sure we're inside
// the range of defined data.
int maximumLevel = tileProvider->getAsyncTileReader()->getTextureDataProvider()->getMaximumLevel();
int maximumLevel = tileProvider->maxLevel();
while(chunkIndex.level > maximumLevel){
ascendToParent(chunkIndex, uvTransform);
}