mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-03 09:20:26 -05:00
Only use padding for height layers
This commit is contained in:
@@ -24,7 +24,9 @@
|
||||
|
||||
#include <modules/globebrowsing/rendering/layer/layer.h>
|
||||
|
||||
#include <modules/globebrowsing/rendering/layer/layermanager.h>
|
||||
#include <modules/globebrowsing/tile/tileprovider/tileprovider.h>
|
||||
#include <modules/globebrowsing/tile/tiletextureinitdata.h>
|
||||
|
||||
namespace openspace::globebrowsing {
|
||||
|
||||
@@ -102,6 +104,10 @@ Layer::Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict)
|
||||
layerDict.getValue(keyEnabled, enabled);
|
||||
_enabled.setValue(enabled);
|
||||
|
||||
TileTextureInitData initData = LayerManager::getTileTextureInitData(_layerGroupId);
|
||||
_padTilePixelStartOffset = initData.tilePixelStartOffset();
|
||||
_padTilePixelSizeDifference = initData.tilePixelSizeDifference();
|
||||
|
||||
// Initialize settings
|
||||
ghoul::Dictionary settingsDict;
|
||||
if (layerDict.getValue(keySettings, settingsDict)) {
|
||||
@@ -261,6 +267,36 @@ void Layer::update() {
|
||||
}
|
||||
}
|
||||
|
||||
glm::ivec2 Layer::tilePixelStartOffset() const {
|
||||
return _padTilePixelStartOffset;
|
||||
}
|
||||
|
||||
glm::ivec2 Layer::tilePixelSizeDifference() const {
|
||||
return _padTilePixelSizeDifference;
|
||||
}
|
||||
|
||||
glm::vec2 Layer::compensateSourceTextureSampling(glm::vec2 startOffset, glm::vec2 sizeDiff,
|
||||
glm::uvec2 resolution, glm::vec2 tileUV)
|
||||
{
|
||||
glm::vec2 sourceSize = glm::vec2(resolution) + sizeDiff;
|
||||
glm::vec2 currentSize = glm::vec2(resolution);
|
||||
glm::vec2 sourceToCurrentSize = currentSize / sourceSize;
|
||||
tileUV = sourceToCurrentSize * (tileUV - startOffset / sourceSize);
|
||||
return tileUV;
|
||||
}
|
||||
|
||||
glm::vec2 Layer::TileUvToTextureSamplePosition(const TileUvTransform& uvTransform,
|
||||
glm::vec2 tileUV, glm::uvec2 resolution)
|
||||
{
|
||||
glm::vec2 uv = uvTransform.uvOffset + uvTransform.uvScale * tileUV;
|
||||
uv = compensateSourceTextureSampling(
|
||||
tilePixelStartOffset(),
|
||||
tilePixelSizeDifference(),
|
||||
resolution,
|
||||
uv);
|
||||
return uv;
|
||||
}
|
||||
|
||||
layergroupid::TypeID Layer::parseTypeIdFromDictionary(
|
||||
const ghoul::Dictionary& initDict) const
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user