ITADN

Add meshseal cross-platform mesh-repair backend

#15435Pull Requestjkavalik 创建于 2026-05-29
J
jkavalikcommented
**Add meshseal: a cross-platform mesh-repair backend** Adds an optional second repair backend that works on **Windows, Linux, and macOS** — unlike the existing "Fix by Windows repair algorithm", which is Windows-only. Exposed as a right-click **"Fix by meshseal"** menu item; the existing Windows path is untouched. meshseal ([[jkavalik/meshseal](https://github.com/jkavalik/meshseal)](https://github.com/jkavalik/meshseal)) is an MIT-licensed C++17 mesh-repair library (compatible with PrusaSlicer's AGPL). It reads the volume's mesh in memory and returns a watertight 2-manifold solid, prioritising preservation of the original geometry. **Build integration** - `CMakeLists.txt`: `SLIC3R_MESHSEAL` option (default ON). FetchContent pulls a pinned tag + SHA (`v0.1.3`) and builds meshseal **static**, linked into `libslic3r_gui`. Declared after `bundled_deps` so meshseal yields to PrusaSlicer's bundled `miniz` instead of colliding. No new system dependencies. - `HAS_MESHSEAL` gates all new code, so `-DSLIC3R_MESHSEAL=OFF` compiles cleanly to no-op stubs. **Code** - `src/slic3r/Utils/FixModelByMeshseal.{hpp,cpp}` — worker-thread wrapper bridging meshseal's progress/cancel callback to the GUI progress dialog. In-memory `indexed_triangle_set` ↔ `meshseal::Mesh` conversion (no temp-3MF round-trip). - `Plater`, `GUI_ObjectList`, `GUI_Factories` — `can_fix_through_meshseal()`, `fix_through_meshseal()`, and `append_menu_item_fix_through_meshseal()` wired at the 5 menu sites parallel to the Windows path. - `deps/+Meshseal/Meshseal.cmake` — placeholder documenting a future migration to the `deps/` flow. **Scope / follow-ups** - The two auto-fix call sites (`GLGizmoCut`, `GUI_ObjectManipulation`) remain Windows-SDK-only for now; they can route through meshseal in a follow-up once the menu path has had wider exposure. **Validation** - Builds + links on Linux (GCC, WSLg); "Fix by meshseal" exercised interactively across a defective-model corpus. meshseal itself ships cross-platform CI (Windows/Linux/macOS) and a 670-assertion test suite. **Disclosure:** meshseal is AI-authored ("vibe coded") — human-directed and validated empirically against its test corpus and real-world batches rather than hand-audited line by line. Noted here for transparency to maintainers.
合并状态:未合并 1 条评论