feat: add OLE2Frame interactivity + fix Shape rotation from DXF

OLE2Frame: full TruckConvertible/Grippable/PropertyEditable/Transformable
impls in src/entities/ole2frame.rs — grips on corners + center, properties
panel, translate/scale transforms.

Shape: rotation (DXF code 50) now converted degrees→radians on load in
fix_dxf_dimension_rotations(), matching Dimension and Attribute behaviour.

All ❌ gaps resolved. Remaining: Viewport GPU scissor, LWPolyline plinegen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Sonnet 4.6 committed 2026-05-05 20:12:44 +03:00
1 parent de520199ac
commit f000a8acfb
5 files changed
+169 -5

No files matched your search

+5 -5
View File
@@ -43,7 +43,7 @@ Legend: ✅ Done · ⚠️ Partial · ❌ Not done
| Status | Entity | Notes |
|---|---|---|
| ✅ | **Face3D** | Full tessellation, grips, properties panel — `src/entities/mesh.rs` |
| ❌ | **OLE2Frame** | Bounding box + X mark only; no interactivity |
| ✅ | **OLE2Frame** | Bounding box + X mark with grips, properties panel, transform — `src/entities/ole2frame.rs` |
### Wire Fallback Only (no full mesh)
@@ -189,7 +189,7 @@ These are fixed in our post-load `fix_dxf_dimension_rotations()` in `src/io/mod.
| ✅ | **Dimension (all)** | `text_rotation` | 53 | `src/scene/tessellate.rs::dimension_text_natural_rotation()` |
| ✅ | **AttributeEntity** | `rotation` | 50 | `src/io/mod.rs:224` |
| ✅ | **AttributeDefinition** | `rotation` | 50 | `src/io/mod.rs:219` |
| ❌ | **Shape** | `rotation` | 50 | Shape not currently rendered — low priority |
| ✅ | **Shape** | `rotation` | 50 | Fixed in `fix_dxf_dimension_rotations()` — `src/io/mod.rs` |
---
@@ -207,13 +207,13 @@ These are fixed in our post-load `fix_dxf_dimension_rotations()` in `src/io/mod.
| Status | Count |
|---|---|
| ✅ Done | 44 |
| ✅ Done | 46 |
| ⚠️ Partial | 3 |
| ❌ Not done | 2 |
| ❌ Not done | 0 |
| **Total** | **49** |
### Remaining gaps by priority
**Medium:** Viewport GPU scissor rect (pixel-level boundary clipping for overlapping viewports)
**Low:** LWPolyline plinegen (GPU shader change needed) · OLE2Frame improvement · Shape rotation
**Low:** LWPolyline plinegen (GPU shader change needed)