Add meshseal cross-platform mesh-repair backend
**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 条评论