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:
Hakan SevenandClaude Opus 5 committed 2026-08-10 01:28:25 +03:00
1 parent f14ef54528
commit 273f482aee
8 files changed
+68 -73

No files matched your search

+2 -6
View File
@@ -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
View File
@@ -1,5 +1,4 @@
pub mod acad_to_render;
#[cfg(feature = "solid3d")]
pub mod acis_export;
pub mod acis_kernel;
pub mod dgn_linestyle;