Skip to content

refactor(geometry): fold round-window deseam into extend_opening_mesh_through_host#1336

Merged
louistrue merged 1 commit into
mainfrom
refactor/fold-deseam-extend
Jun 24, 2026
Merged

refactor(geometry): fold round-window deseam into extend_opening_mesh_through_host#1336
louistrue merged 1 commit into
mainfrom
refactor/fold-deseam-extend

Conversation

@louistrue

@louistrue louistrue commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #1330.

Why

remove_internal_membrane (the two-extrusion round-window deseam) was called explicitly before each of the 3 extend_opening_mesh_through_host call sites. A future void path, or the currently-dead voids_2d fast path if it were revived, could route an opening cutter through extend without deseaming and silently regress the round-window cut. The fix relied on reviewer vigilance at every call site.

What

Move the deseam to the top of extend_opening_mesh_through_host, the single helper every void subtract funnels through, so no call site can forget it. The 3 call sites now pass the raw opening_mesh.

Pure refactor, behaviour identical: extend already received the same depth_dir the explicit deseam used, and it stays a no-op for ordinary single-solid openings.

remove_internal_membrane is now called from exactly one place; extend_opening_mesh_through_host still has exactly its 3 callers.

Verification

Summary by CodeRabbit

  • Refactor
    • Centralized cleanup of opening geometry before extension, making subtract/trim operations more consistent.
    • Improved consistency across batched and sequential workflows so openings are processed the same way in all paths.
    • Reduced the chance of missed preprocessing steps that could cause uneven results.

…_through_host

Follow-up to #1330. remove_internal_membrane was called explicitly before each of
the 3 extend_opening_mesh_through_host call sites; a future void path (or the dead
voids_2d fast path, if revived) could route an opening cutter through extend
without deseaming and silently regress the two-extrusion round-window cut.

Move the deseam to the top of extend_opening_mesh_through_host, the single helper
every void subtract funnels through, so it can't be forgotten. Pure refactor: the
3 call sites now pass the raw opening_mesh, behaviour is identical (the helper
already received the same depth_dir the explicit deseam used).

Verified: round window still cuts clean (120 interior hole cells, unchanged);
issue_635 11/11 + wall_opening_cut_regression + voids_production/submesh +
issue_964/1167/1007/960 + door_window_calibration + engulfing_solid_void all green.
@vercel

vercel Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ifc-lite Ready Ready Preview, Comment Jun 24, 2026 5:00am
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
ifc-lite-dev Ignored Ignored Jun 24, 2026 5:00am
ifc-lite-viewer-embed Ignored Ignored Jun 24, 2026 5:00am

@coderabbitai

coderabbitai Bot commented Jun 24, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 28240079-e4f0-4218-9610-ca7d8d1fc7e1

📥 Commits

Reviewing files that changed from the base of the PR and between 5193fdb and 281c737.

📒 Files selected for processing (1)
  • rust/geometry/src/router/voids.rs

📝 Walkthrough

Walkthrough

remove_internal_membrane (deseaming) is moved from three call sites—disjoint-batching candidate prep, batched-group re-extension, and the sequential exact-subtract loop—into the body of extend_opening_mesh_through_host, which now deseams the provided opening mesh as its first step before running the extension algorithm.

Changes

Deseaming Centralization

Layer / File(s) Summary
Centralize deseaming into helper + remove call sites
rust/geometry/src/router/voids.rs
extend_opening_mesh_through_host now calls remove_internal_membrane internally at line 3828–3836. The three former call sites (lines 2494–2498, 2609–2616, 2763–2770) drop their own remove_internal_membrane invocations and pass the original opening_mesh directly to the helper.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • LTplus-AG/ifc-lite#1330: Directly overlapping changes in voids.rs that introduce remove_internal_membrane in the exact-cutter loop at the same mesh-processing points this PR consolidates into the helper.

Poem

🐇 A membrane once scattered in sites three,
Now lives where it always belonged — set free!
The helper calls deseam at the very start,
No call site forgets, no cutter falls apart.
One rabbit, one truth, one tidy little art. 🌿

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately reflects the main refactor of moving deseam logic into extend_opening_mesh_through_host.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/fold-deseam-extend

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@louistrue louistrue merged commit e91a443 into main Jun 24, 2026
24 checks passed
@louistrue louistrue deleted the refactor/fold-deseam-extend branch June 24, 2026 06:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant