forked from 1b-agent/opencadstudio-upstream
refactor: retire the solid3d feature — the web build gets solids too
The feature existed for one reason: truck's mesh and boolean crates reach `vtkio → xz2 → lzma-sys`, a C library that cannot cross-compile to wasm32. So the web build dropped it, and with it the Model tab, solid tessellation and ACIS import — all of which quietly did nothing in the browser. cadkernel is pure Rust and has no C dependency, so none of that holds any more. The feature gated exactly two things by the end, `acis_export` and the save-path sync that calls it, and both are as portable as everything around them. Removing it means the web build makes primitives, runs booleans, draws ACIS solids read from a file, and writes them back out as exact geometry — the same as the desktop build. Verified against all three: native, `--no-default-features`, and an actual `wasm32-unknown-unknown` check rather than an assumption about one. The docs claimed otherwise in four places and are corrected. `tessellation.md` in particular was organised around whether an entity "goes through truck", which is no longer a question anything can be asked — the three paths are now a kernel B-rep mesh, a curve sampled through `entities::curve`, or geometry emitted directly, and the per-entity table is updated to match. `index.html` no longer passes `data-cargo-no-default-features`; there are no features left to turn off. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
1 parent
f14ef54528
commit
273f482aee
8 files changed
+68
-73
No files matched your search
@@ -224,9 +224,8 @@ impl OpenCADStudio {
|
||||
/// geometry (EXTRUDE/REVOLVE/SWEEP/LOFT/boolean results) an exact modeler
|
||||
/// body derived from its B-rep, so the written DWG/DXF carries real
|
||||
/// 3-D geometry other CAD apps can open instead of an empty data stream.
|
||||
/// Curved solids that the exact planar path can't yet express are left
|
||||
/// untouched (handled by the NURBS path).
|
||||
#[cfg(feature = "solid3d")]
|
||||
/// A body holding something the kernel has no ACIS record form for is
|
||||
/// left untouched rather than written out half-complete.
|
||||
fn sync_solid_models_to_acis(&mut self, i: usize) {
|
||||
use acadrust::EntityType;
|
||||
let scene = &mut self.tabs[i].scene;
|
||||
@@ -256,9 +255,6 @@ impl OpenCADStudio {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "solid3d"))]
|
||||
fn sync_solid_models_to_acis(&mut self, _i: usize) {}
|
||||
|
||||
/// Snapshot the persisted UI preferences from live state.
|
||||
pub(in crate::app) fn current_settings(&self) -> crate::app::settings::UserSettings {
|
||||
crate::app::settings::UserSettings {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
pub mod acad_to_render;
|
||||
#[cfg(feature = "solid3d")]
|
||||
pub mod acis_export;
|
||||
pub mod acis_kernel;
|
||||
pub mod dgn_linestyle;
|
||||
|
||||
Reference in new issue
Block a user