From e73656b1d9314acb6331c886b7c44e5c8cae24fc Mon Sep 17 00:00:00 2001 From: Ylva Selling Date: Fri, 7 May 2021 10:52:45 +0200 Subject: [PATCH] Rotate camera if selected image is outside of screen --- modules/skybrowser/skybrowsermodule_lua.inl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/skybrowser/skybrowsermodule_lua.inl b/modules/skybrowser/skybrowsermodule_lua.inl index 9f822b936c..9891bae7f8 100644 --- a/modules/skybrowser/skybrowsermodule_lua.inl +++ b/modules/skybrowser/skybrowsermodule_lua.inl @@ -60,6 +60,15 @@ namespace openspace::skybrowser::luascriptfunctions { if (browser->getSkyTarget()) { browser->getSkyTarget()->unlock(); browser->getSkyTarget()->startAnimation(resultImage.celestCoords, resultImage.zoomLevel / 6); + glm::dvec3 imgCoordsOnScreen = J2000SphericalToScreenSpace(resultImage.celestCoords); + glm::vec2 windowRatio = global::windowDelegate->currentWindowSize(); + float r = windowRatio.x / windowRatio.y; + // Check if image coordinate is within current FOV + if (!(abs(imgCoordsOnScreen.x) < r && abs(imgCoordsOnScreen.y) < 1.f && imgCoordsOnScreen.z < 0) + || imgCoordsOnScreen.z > 0) { + module->startRotation(resultImage.celestCoords); + } + } } return 0;