Feature/globebrowsing (#281)

* Solve bug related to corrupted texture tiles for certain sizes.

* Regard layer settings when sampling height map.

* Make Tile in to a class instead of a struct.

* Memory aware lru cache. Needs cleanup.

* Clean up and comment.

* Clean up and comment.

* Clean up

* Clean up and comment.

* Fix compilation error on Windows.

* Specify data type explicitly in GDAL xml config files for Utah height maps. Closes #242

* Update the key type for the memory aware lru cache and use a unordered map instead of a map.

* Solve pixel row size bug.

* Solve initialization bug.

* Add cache size as property of the globe browsing module.

* Use memory aware tile cache for text tile provider.

* Log GDAL errors as GHOUL messages

* Add the ability to toggle tile level limiting by available data

* Add ability to toggle GDAL logging

* Add lock guard to memory aware tile cache

* create base class rawtiledatareader that can be extended with different implementations than GDAL.

* Let GdalWrapper take care of global GDAL settings.

* Move iodescription to separate file

* Move some functionality from gdalrawtiledatareader to rawtiledatareader

* Move functionality from gdalrawtiledatareader to rawtiledatareader.

* GDAL is no longer a necessary dependency for the globebrowsing module. However to read tiles, the SimpleRawTileDataReader needs to be implemented. Otherwise GDAL is needed.

* Add ifdef check for GLOBEBROWSING_USE_GDAL

* Implement SimpleRawTileDataReader. Currently can only read pow 2 textures.

* Change ints to unsigned long longs

* Limit number of texture creations per tile provider per frame

* Solve linker error on windows

* Fix Windows build errors

* Fix crash in reading local patches

* Update lodglobe descriptions

* Abstract away overviews in gdal raw tile data reader

* Update Mars and Moon configs.

* Update screenshot script

* Update ghoul version

* Remove use of interaction depth below ellipsoid

* Normalize direction vector

* Use scale for distance swotch

* Go back to use of interaction depth below ellipsoid

* Fix comments on pull request.

* TileProviderByLevel error does not propagate up.

* Comment on mars and moon mod file

* Add model space cut off level as a property

* Update ChunkTile struct

* Minor clean up

* Go back tu constructor for ChunkTile
This commit is contained in:
Kalle Bladin
2017-04-13 10:14:47 +02:00
committed by GitHub
parent 53e2aedd81
commit 8a617ee254
88 changed files with 3895 additions and 1490 deletions
+14 -7
View File
@@ -119,10 +119,12 @@ void PixelRegion::scale(double s) {
void PixelRegion::downscalePow2(int exponent, PixelCoordinate wrt) {
start += wrt;
start.x >>= exponent;
start.y >>= exponent;
numPixels.x >>= exponent;
numPixels.y >>= exponent;
start.x = ceil(start.x / static_cast<float>(pow(2, exponent)));// >>= exponent;
start.y = ceil(start.y / static_cast<float>(pow(2, exponent)));// >>= exponent;
numPixels.x =
ceil(numPixels.x / static_cast<float>(pow(2, exponent)));// >>= exponent;
numPixels.y =
ceil(numPixels.y / static_cast<float>(pow(2, exponent)));// >>= exponent;
start -= wrt;
}
@@ -170,15 +172,20 @@ void PixelRegion::forceNumPixelToDifferByNearestMultipleOf(unsigned int multiple
numPixels.y += sizeDiff % multiple;
}
else {
numPixels.x += static_cast<int>(std::abs(static_cast<double>(sizeDiff))) % multiple;
numPixels.x += static_cast<int>(
std::abs(static_cast<double>(sizeDiff))) % multiple;
}
}
}
void PixelRegion::roundUpNumPixelToNearestMultipleOf(unsigned int multiple) {
ghoul_assert(multiple > 0, "multiple must be 1 or larger");
numPixels.x += numPixels.x % multiple;
numPixels.y += numPixels.y % multiple;
numPixels.x += (numPixels.x % multiple == 0) ? 0 :
(multiple - (numPixels.x % multiple));
numPixels.y += (numPixels.y % multiple == 0) ? 0 :
(multiple - (numPixels.y % multiple));
ghoul_assert((numPixels.x % multiple) == 0, "Round to nearest multiple failed");
ghoul_assert((numPixels.y % multiple) == 0, "Round to nearest multiple failed");
}
void PixelRegion::roundDownToQuadratic() {