Commit Graph
100 Commits
Author SHA1 Message Date
tannerandaider 1779725d53 feat: Implement dynamic sketch grid based on camera zoom
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 12:32:02 -07:00
tanner b056ccbfec style: Refine sketch grid line appearance 2026-02-17 12:31:59 -07:00
tannerandaider 3a7cd78fb2 style: Lighten major grid lines and rename line vectors
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 12:25:08 -07:00
tannerandaider d274b4f59f refactor: Move axis label drawing logic from ViewportWidget to SketchGrid
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 12:19:46 -07:00
tannerandaider a0dbc537cf fix: Increase far clip plane for greater draw distance
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 12:19:46 -07:00
tannerandaider ddf6f6fd85 feat: Implement pixel-perfect camera panning
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 12:19:39 -07:00
tannerandaider f3a1f73f45 fix: Scale pan speed with zoom level for consistent movement
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:53:07 -07:00
tannerandaider 3bb8d65fd4 feat: Adjust zoom speed based on distance for consistent feel
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:48:29 -07:00
tannerandaider 6721caca9f fix: Update Qt API usage for QWheelEvent and QMatrix4x4
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:37:42 -07:00
tannerandaider 38e931bc79 feat: Implement mouse wheel zoom to cursor position
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:36:44 -07:00
tannerandaider a66dc50daf refactor: Move camera mouse event handling to Camera class
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:34:25 -07:00
tannerandaider 2e2f99f2c2 refactor: Move camera restore state animation to Camera
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:27:36 -07:00
tannerandaider f29f40277d refactor: Move sketch mode camera animations to Camera class
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:26:41 -07:00
tannerandaider a5e8257eb4 build: Automate source file discovery for C++ sources in src/
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:22:08 -07:00
tanner ec63a23247 feat: Add sketch, line, rectangle tools and snapping 2026-02-17 11:22:07 -07:00
tannerandaider d708ab9827 refactor: Extract snapping logic into dedicated Snapping class
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:19:29 -07:00
tanner e86a775b46 feat: Add snapping functionality 2026-02-17 11:19:27 -07:00
tannerandaider 9334508b67 fix: Ensure viewport updates and consistent key handling in drawing tools
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:09:42 -07:00
tannerandaider b93f6158ef fix: Enable line tool functionality
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 11:02:54 -07:00
tannerandaider 35cad74367 fix: Move line tool specific logic from ViewportWidget to LineTool
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 10:57:02 -07:00
tannerandaider 2394727724 refactor: Move rectangle tool logic to RectangleTool class
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 10:53:02 -07:00
tannerandaider 95a651b6b0 refactor: Move LineTool event handling to LineTool and add tool APIs
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 10:44:56 -07:00
tannerandaider d015d171ec refactor: Move LineTool paintGL and paint2D logic to LineTool
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 10:38:51 -07:00
tanner 1584bfd5a0 fix: Deactivate active tool on Escape key press 2026-02-17 10:38:47 -07:00
tannerandaider 3e2f464de9 refactor: Introduce SketchTool base class and derived tool skeletons
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 10:18:36 -07:00
tannerandaider e64755ea0c feat: Make rectangle corners snappable
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 10:01:00 -07:00
tannerandaider b144efbe05 feat: Allow editable rectangle dimensions and fix Tab crash
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 09:57:36 -07:00
tannerandaider 966ab037b5 fix: Connect rectangleAdded signal to ApplicationController
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-17 09:52:11 -07:00
tannerandaider 246372b847 refactor: Implement Rectangle tool with snapping and dimensions
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 20:45:39 -07:00
tannerandaider 2b455f57d4 fix: Set YZ plane line angle reference to horizontal
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 20:37:08 -07:00
tannerandaider ed88730edb fix: Correctly place dimension labels based on angle difference
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 20:32:23 -07:00
tannerandaider 7f304bf1f3 fix: Position linear dimension opposite angle to avoid overlap
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 20:28:17 -07:00
tannerandaider f5c7f6d326 fix: Normalize angle for dimension text to align with arc
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 20:23:39 -07:00
tannerandaider c43330fe5e fix: Adjust chained line angle ref dir for free drawing
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 20:13:21 -07:00
tannerandaider 9cacbf4e0e fix: Correctly position angle dimension text in all quadrants
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 19:53:48 -07:00
tannerandaider 8febc50fec fix: Correct dimensioning arc direction and align text angle snapping
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 19:50:09 -07:00
tannerandaider c9c1b38f45 fix: Redefine angle dimension quadrant snapping
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 19:47:03 -07:00
tannerandaider c117ff3a8a fix: Adjust angle dimension arc direction on quadrant snap
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 19:31:23 -07:00
tannerandaider 34cecc38d5 fix: Apply typed dimensions/angles on mouse click for lines
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 19:26:58 -07:00
tannerandaider 2f7d2a4189 fix: Ensure angle dimension arrows always point outward
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 19:24:01 -07:00
tannerandaider 1fb211cc34 feat: Highlight active dimension input blue by default
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 19:21:12 -07:00
tanner b2d5cd19d4 feat: Prevent Tab key from moving focus outside active viewport tools 2026-02-16 18:51:57 -07:00
tannerandaider d89b7e42bc fix: Resolve variable redeclaration and font metrics scope in paintGL
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 17:45:05 -07:00
tannerandaider 9d72fe2155 feat: Add editable angle dimensions to line drawing
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 17:42:05 -07:00
tannerandaider 93282fce52 feat: Implement interactive dimension input for line drawing
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 17:23:35 -07:00
tanner a18435bb15 style: Reduce radius of unattached sketch vertices 2026-02-16 17:04:13 -07:00
tannerandaider ec75ab41c5 style: Render unattached sketch vertices as filled circles with outline
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:51:11 -07:00
tannerandaider aaaf9a44ff feat: Billboard unattached sketch vertices
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:48:31 -07:00
tannerandaider bc2e84a537 fix: Replace qPi() with M_PI to resolve build error
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:45:59 -07:00
tannerandaider f842555582 style: Render unattached sketch vertices as unfilled circles
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:45:22 -07:00
tannerandaider a980ad52be fix: Replace QMap with std::map for custom comparator support
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:41:59 -07:00
tannerandaider 1ebe10dcee feat: Render unattached sketch vertices as circles
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:40:22 -07:00
tannerandaider 97bb3466f8 fix: Add and emit toolDeactivated signal in ViewportWidget
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:29:41 -07:00
tannerandaider ba4f63a994 feat: Connect toolDeactivated signal to reset active tool
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:28:51 -07:00
tannerandaider 8231ab49c2 fix: Use QOpenGLExtraFunctions for glBindVertexArray
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:16:33 -07:00
tannerandaider 7010c60b34 fix: Restore OpenGL VAO binding after drawing sketch grid
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-16 16:14:18 -07:00
tanner 0ed62153b0 Project settings 2026-02-15 13:42:44 -07:00
tannerandaider 63447fff90 fix: Destroy OpenGL resources before context cleanup
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 13:17:24 -07:00
tannerandaider 3959fad6c2 fix: Consolidate shader resources into main QRC file
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 13:15:01 -07:00
tannerandaider e155c9551c refactor: Migrate ViewCube to shader-based rendering
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 13:11:14 -07:00
tannerandaider 6843a85135 feat: Update SketchGrid to use shaders and re-enable drawing
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 13:08:21 -07:00
tannerandaider 0f43715c6b refactor: Migrate ViewportWidget to shader-based OpenGL rendering (FFP disabled)
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 13:03:37 -07:00
tannerandaider af121ce6eb refactor: Extract camera logic to Camera class
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 12:03:41 -07:00
tannerandaider 58d154b4ff feat: Display sketch grid preview on plane highlight
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 11:21:22 -07:00
tannerandaider 5be7c25a0d fix: Allow selection planes to be picked from both sides
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 11:19:50 -07:00
tannerandaider 921cf117a7 style: Make sketch plane selection squares yellow
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 11:17:29 -07:00
tannerandaider 49bfbab95b fix: Wire up plane selection mode signals and slots
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 11:12:49 -07:00
tannerandaider b11b345235 fix: Prevent sketch overlap and improve plane selection visibility
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 11:11:39 -07:00
tannerandaider 8424097127 feat: Implement in-viewport sketch plane selection
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 11:09:28 -07:00
tannerandaider d2fe4226ea fix: Always allow camera rotation regardless of sketch plane activity
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 10:30:12 -07:00
tannerandaider 91d1a60343 feat: Set initial camera to an isometric view
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 10:27:10 -07:00
tannerandaider 4f08770fa2 feat: Show XY (Top) grid by default and when sketch ends
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 10:25:48 -07:00
tannerandaider c5df9f9d47 refactor: Align sketch plane dialog names with Z-up views
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 10:23:43 -07:00
tannerandaider 2e9cf84ec2 fix: Correct snap rectangle orientation for XY and XZ sketch planes
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 10:18:13 -07:00
tannerandaider 7c86e77591 fix: Correct XY and YZ sketch plane view orientations
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 10:13:21 -07:00
tannerandaider 245d2bd0b3 feat: Reorient sketch planes to match Fusion 360 views
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 10:08:56 -07:00
tannerandaider 7785f5be1a feat: Implement Z-up axis orientation for ViewCube
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-15 10:01:35 -07:00
tannerandaider 1bda9bd16d fix: Prevent snapping indicators when no sketch tool is active
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 22:28:59 -07:00
tannerandaider 6e5a819c42 feat: Add horizontal/vertical line snapping with visual indicator
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 22:26:38 -07:00
tannerandaider 6e64856f23 feat: Add vertex snapping and draw line endpoints
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 22:16:14 -07:00
tannerandaider 78ac60926d feat: Make snap origin indicator 50% transparent and region rectangular
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 22:12:36 -07:00
tannerandaider 886a8a72d6 feat: Refine snap origin indicator to outlined and zoom-independent
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 22:09:30 -07:00
tannerandaider d3cb5e36f9 feat: Add origin snap for sketch points and preview
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 22:04:21 -07:00
tannerandaider 2d3df3097b fix: Enable key events in viewport by setting focus policy
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 21:59:25 -07:00
tannerandaider 0030908d6d feat: Implement chained line drawing with Esc key exit
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 21:57:55 -07:00
tanner f30eac7c06 Fix cursor 2026-02-14 21:50:54 -07:00
tannerandaider 91f1a0e02a refactor: Use SVG for cursor rendering
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 21:35:09 -07:00
tannerandaider dc7f3642b8 feat: Render composite arrow and tool icon for active tool cursor
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 21:21:51 -07:00
tannerandaider 0250287ba0 fix: Eliminate tool icon lag with custom QCursor
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 21:19:08 -07:00
tannerandaider 25e3604336 fix: Enlarge and invert tool icon color for visibility
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 21:16:26 -07:00
tannerandaider 8f814c8710 fix: Disable GL depth and cull face for 2D icon rendering
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 21:14:13 -07:00
tannerandaider c87979c602 build: Add Qt6 Svg module to CMake build
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 21:05:31 -07:00
tannerandaider 94d04c7002 feat: Render active sketch tool icon at cursor position
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 20:50:25 -07:00
tannerandaider 0b664e813c feat: Connect UI and application logic for tool and line drawing
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 19:21:03 -07:00
tannerandaider 8e1ab54cb5 feat: Add interactive sketch line drawing to viewport
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 19:19:13 -07:00
tannerandaider a1cfbc2e3f feat: Implement sketch object base class and line geometry
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-14 19:12:59 -07:00
tanner f46590219a Integrade OpenCASCADE 2026-02-13 20:59:06 -07:00
tanner 3543604e79 build: Add ApplicationController.cpp to CMake build 2026-02-13 18:16:26 -07:00
tanner 5a49e2ac46 Add icons 2026-02-13 18:11:48 -07:00
tannerandaider 2a51808303 docs: Describe MVC architecture in CONTEXT.md
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-13 18:11:48 -07:00