Update field of view when scale of target is changed

This commit is contained in:
sylvass
2021-12-14 11:38:33 -05:00
parent e95287399c
commit ad997e64e6
2 changed files with 12 additions and 0 deletions

View File

@@ -36,6 +36,7 @@ namespace openspace {
// Setters
void setScaleFromVfov(float verticalFov);
void setFovFromScale();
void setDimensions(glm::vec2 dimensions);
void setColor(glm::ivec3 color);
void setOpacity(float opacity);

View File

@@ -108,6 +108,7 @@ namespace openspace {
skybrowser::ScreenSpaceZ };
_cartesianPosition.setValue(startPos);
}
ScreenSpaceSkyTarget::~ScreenSpaceSkyTarget() {
@@ -258,6 +259,12 @@ namespace openspace {
_scale = std::max(heightRatio, smallestHeightRatio);
}
void ScreenSpaceSkyTarget::setFovFromScale()
{
glm::dvec2 fovs = skybrowser::fovWindow();
_verticalFov = _scale * fovs.y;
}
bool ScreenSpaceSkyTarget::isLocked() const {
return _isLocked;
}
@@ -357,5 +364,9 @@ namespace openspace {
_enabled.onChange([this]() {
_browser->setEnabled(_enabled);
});
_scale.onChange([&]() {
setFovFromScale();
_browser->setVerticalFov(_verticalFov);
});
}
}