forked from 1b-agent/opencadstudio-upstream
feat: Solid3D (3DSOLID) ACIS tessellation
Parse SAT geometry directly into GPU MeshModel without going through
the truck B-rep pipeline:
• plane-surface faces → fan-triangulate the coedge-loop polygon
• cone-surface faces → parametric grid (handles cylinders and cones)
• sphere-surface faces → UV sphere grid (GRID_U × GRID_V)
• torus-surface faces → UV torus grid
Scene integration:
• add_entity(): tessellates Solid3D on insert, stores in scene.meshes
• erase_entities(): removes mesh from scene.meshes on delete
• populate_meshes_from_document(): rebuilds all meshes on file load
and undo/redo (called alongside populate_hatches/images)
ROADMAP updated: Solid3D tessellation marked ✅ in sections 2.12, 14.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
1 parent
5a682a365a
commit
a99115bda5
5 files changed
+592
-10
No files matched your search
+1
-1
@@ -36,8 +36,8 @@ impl H7CAD {
|
||||
.collect::<HashSet<_>>();
|
||||
self.tabs[i].scene.populate_hatches_from_document();
|
||||
self.tabs[i].scene.populate_images_from_document();
|
||||
self.tabs[i].scene.populate_meshes_from_document();
|
||||
self.tabs[i].scene.clear_preview_wire();
|
||||
self.tabs[i].scene.meshes.clear();
|
||||
self.tabs[i].scene.images.clear();
|
||||
self.tabs[i].active_cmd = None;
|
||||
self.tabs[i].snap_result = None;
|
||||
|
||||
@@ -50,6 +50,7 @@ impl H7CAD {
|
||||
self.tabs[i].scene.document = doc;
|
||||
self.tabs[i].scene.populate_hatches_from_document();
|
||||
self.tabs[i].scene.populate_images_from_document();
|
||||
self.tabs[i].scene.populate_meshes_from_document();
|
||||
self.tabs[i].scene.selected = std::collections::HashSet::new();
|
||||
self.tabs[i].scene.preview_wires = vec![];
|
||||
self.tabs[i].scene.current_layout = "Model".to_string();
|
||||
|
||||
Reference in new issue
Block a user