feat: Animate camera transitions for sketch mode

Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
2026-02-09 18:11:36 -07:00
parent eea8099bd2
commit 7955af77be
2 changed files with 170 additions and 12 deletions

View File

@@ -17,6 +17,12 @@ class ViewportWidget : public QOpenGLWidget, protected QOpenGLFunctions
{
Q_OBJECT
Q_PROPERTY(float xRotation READ xRotation WRITE setXRotation)
Q_PROPERTY(float yRotation READ yRotation WRITE setYRotation)
Q_PROPERTY(float zoom READ zoom WRITE setZoom)
Q_PROPERTY(float panX READ panX WRITE setPanX)
Q_PROPERTY(float panY READ panY WRITE setPanY)
public:
enum class SketchPlane {
NONE,
@@ -32,6 +38,21 @@ public:
void saveSketch();
void setDocument(Document* document);
float xRotation() const;
void setXRotation(float angle);
float yRotation() const;
void setYRotation(float angle);
float zoom() const;
void setZoom(float value);
float panX() const;
void setPanX(float value);
float panY() const;
void setPanY(float value);
protected:
void initializeGL() override;
void paintGL() override;
@@ -57,6 +78,12 @@ private:
float panX = 0;
float panY = 0;
QPoint lastPos;
float m_savedXRot = 0;
float m_savedYRot = 0;
float m_savedZoom = -5.0f;
float m_savedPanX = 0;
float m_savedPanY = 0;
};
#endif // VIEWPORTWIDGET_H