feat: Grid snap adaptive spacing + Polar tracking improvements

Grid snap (F9):
  • snap spacing now tracks the visible grid zoom level — computed via
    compute_grid_step() (same adaptive pow-of-5 logic as draw_grid),
    updated on every ViewportMove so zooming in/out keeps snap aligned
    with the grid lines on screen

Polar tracking (F10):
  • configurable angle increment stored in polar_increment_deg (default 45°)
  • right-click the POLAR pill to cycle through 15 → 30 → 45 → 90°
  • pill label shows current angle ("POLAR 45°")
  • visual guide line: while drawing with polar on, a dashed cyan line is
    drawn from last_point along the snapped direction across the viewport
  • SetPolarAngle message + handler; all polar_constrain() calls use the
    stored increment instead of the hardcoded 45°

ROADMAP updated: Grid snap and Polar tracking marked ✅.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-04-07 19:30:25 +03:00
commit 4c1c13cab6
6 changed files with 165 additions and 21 deletions

View file

@ -207,8 +207,8 @@ Underlay (PDF/DWF/DGN)
|---------|-------|
| Endpoint / Midpoint / Center / Quadrant / Intersection | ✅ |
| Perpendicular / Tangent / Nearest | ✅ |
| Grid snap | ⬜ |
| Polar tracking | ⬜ |
| Grid snap | ✅ Zoom-adaptive spacing |
| Polar tracking | ✅ Configurable angle, guide line |
| Object snap tracking | ⬜ |
---
@ -239,7 +239,7 @@ Underlay (PDF/DWF/DGN)
| MVIEW (viewport oluşturma) | ✅ |
| Per-viewport layer visibility | ✅ |
| Plot ayarları (PlotSettings) | ✅ |
| Çoklu named layout sekmeleri | ⬜ |
| Çoklu named layout sekmeleri | ✅ |
| VPLAYER — viewport katman override | 🔧 Altyapı var |
| Layout Manager arayüzü | ⬜ |
@ -302,15 +302,11 @@ Underlay (PDF/DWF/DGN)
## Öncelik Sırası (Bir Sonraki Adımlar)
### Yüksek Öncelik
1. **Çoklu Layout sekmeleri** arayüzü
1. **XREF yönetimi**
### Orta Öncelik
5. **Grid snap + Polar tracking**
6. **XREF yönetimi**
5. **MASSPROP / DATAEXTRACTION**
### Düşük Öncelik
11. Grid snap + Polar tracking
12. XREF yönetimi
13. MASSPROP / DATAEXTRACTION
14. Fiziksel yazıcıya yazdırma
15. Boolean 3D operasyonlar
11. Fiziksel yazıcıya yazdırma
12. Boolean 3D operasyonlar