refactor: Extract snapping logic into dedicated Snapping class

Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
2026-02-17 11:19:29 -07:00
parent e86a775b46
commit d708ab9827
4 changed files with 241 additions and 169 deletions

View File

@@ -21,6 +21,7 @@ class FeatureBrowser;
class SketchFeature;
class Camera;
class SketchTool;
class Snapping;
class ViewportWidget : public QOpenGLWidget, protected QOpenGLFunctions
{
@@ -45,11 +46,13 @@ public:
QOpenGLBuffer& vbo() { return m_vbo; }
int colorLoc() const { return m_colorLoc; }
Camera* camera() const { return m_camera; }
Document* document() const { return m_document; }
SketchPlane currentPlane() const { return m_currentPlane; }
const QPoint& currentMousePos() const { return m_currentMousePos; }
bool isSnappingOrigin() const { return m_isSnappingOrigin; }
bool isSnappingVertex() const { return m_isSnappingVertex; }
const gp_Pnt& snapVertex() const { return m_snapVertex; }
bool isSnappingOrigin() const;
bool isSnappingVertex() const;
const gp_Pnt& snapVertex() const;
int activeTool() const { return m_activeTool; }
bool isSnappingHorizontal() const { return m_isSnappingHorizontal; }
bool isSnappingVertical() const { return m_isSnappingVertical; }
void setSnappingHorizontal(bool snapping);
@@ -111,9 +114,7 @@ private:
SketchTool* m_activeSketchTool = nullptr;
QMap<int, SketchTool*> m_sketchTools;
QPoint m_currentMousePos;
bool m_isSnappingOrigin = false;
bool m_isSnappingVertex = false;
gp_Pnt m_snapVertex;
Snapping* m_snapping = nullptr;
bool m_isSnappingHorizontal = false;
bool m_isSnappingVertical = false;