QoL: Add auto perspective (#8312)

* ImGuizmo: Comment out unused code

* 3DNav: Avoid gimbal lock by using polar coordinates

* 3DNav: Make sure top and bottom are oriented correctly

* Add auto perspective

* Add options

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
Noisyfox
2025-03-09 14:04:46 +08:00
committed by GitHub
parent 1558edf827
commit 345ab82f91
7 changed files with 173 additions and 87 deletions

View File

@@ -38,6 +38,7 @@ struct Camera
int requires_zoom_to_plate{ REQUIRES_ZOOM_TO_PLATE_IDLE };
private:
bool m_prevent_auto_type = true;
EType m_type{ EType::Perspective };
bool m_update_config_on_type_change_enabled{ false };
Vec3d m_target{ Vec3d::Zero() };
@@ -65,6 +66,7 @@ public:
// valid values for type: "false" -> ortho, "true" -> perspective
void set_type(const std::string& type) { set_type((type == "true") ? EType::Perspective : EType::Ortho); }
void select_next_type();
void auto_type(EType preferred_type);
void enable_update_config_on_type_change(bool enable) { m_update_config_on_type_change_enabled = enable; }