From f737b2f8af7cf89084c00130766fc2e603fed323 Mon Sep 17 00:00:00 2001 From: Nathan Date: Tue, 12 Nov 2024 12:49:23 -0800 Subject: [PATCH] compiles --- src/mbgl/map/transform_state.cpp | 10 +++++++--- src/mbgl/util/camera.cpp | 10 +++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp index d6bea67ca21..2eaf0e6f3b4 100644 --- a/src/mbgl/map/transform_state.cpp +++ b/src/mbgl/map/transform_state.cpp @@ -293,10 +293,14 @@ bool TransformState::setCameraOrientation(const Quaternion& orientation_) { return false; } - Quaternion updatedOrientation = util::Camera::orientationFromFrame(forward, up); + std::optional updatedOrientation = util::Camera::orientationFromFrame(forward, up); - camera.setOrientation(updatedOrientation); - return true; + if (updatedOrientation) { + camera.setOrientation(*updatedOrientation); + return true; + } + + return false; } void TransformState::setFreeCameraOptions(const FreeCameraOptions& options) { diff --git a/src/mbgl/util/camera.cpp b/src/mbgl/util/camera.cpp index c27874e38ef..ea808bffdac 100644 --- a/src/mbgl/util/camera.cpp +++ b/src/mbgl/util/camera.cpp @@ -15,7 +15,7 @@ using namespace std::numbers; namespace mbgl { namespace { -double vec2Len(const vec2& v) noexcept { +/*double vec2Len(const vec2& v) noexcept { return std::sqrt(v[0] * v[0] + v[1] * v[1]); }; @@ -25,8 +25,8 @@ double vec2Dot(const vec2& a, const vec2& b) noexcept { vec2 vec2Scale(const vec2& v, double s) noexcept { return vec2{{v[0] * s, v[1] * s}}; -}; -} // namespace*/ +};*/ +} // namespace namespace util { @@ -191,7 +191,7 @@ void Camera::setPosition(const vec3& position) noexcept { updateTransform(transform, position); } -Quaternion Camera::orientationFromFrame(const vec3& forward, const vec3& up) noexcept { +std::optional Camera::orientationFromFrame(const vec3& forward, const vec3& up) noexcept { const vec3 right = vec3Cross(up, forward); const double bearing = std::atan2(-right[1], right[0]); @@ -238,7 +238,7 @@ void FreeCameraOptions::lookAtPoint(const LatLng& location, const std::optional< // Flip z-component of the up vector if it's pointing downwards up[2] = std::abs(up[2]); - orientation = util::Camera::orientationFromFrame(forward, up).m; + orientation = util::Camera::orientationFromFrame(forward, up)->m; } void FreeCameraOptions::setPitchBearing(double pitch, double bearing, double twist) noexcept {