Skip to content

wire: lazy UV trims for brep ray fires, BrepQuery::classify, the topology intersector and api_queries - #619

Draft
erlis wants to merge 1 commit into
tangency-labs:mainfrom
erlis:wire/lazy-uv-trims
Draft

erlis wants to merge 1 commit into
tangency-labs:mainfrom
erlis:wire/lazy-uv-trims

Conversation

@erlis

@erlis erlis commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Claim. Since #541, the topology solver classifies points on faces read-only. Where a visited edge use has no UV trim, it stops with Unported { "SmEdgeuse::GetOrCreateUVTrimCurve (unprepared read-only topology)" }; the C++ creates that trim lazily inside SmLoop::ContainsUVPoint. #613 makes shell::ray_fire request the trim and retry. This PR extends the same mechanism (RayPreparation, QueryTopology::Requested) to the other entry points that reach the refusal:

entry units (cases on main 10a9297)
brep::p2::ray_fire topology.brep_p7 (3), topology.brep_p6
BrepQuery::classify boundary solve query.brep (2)
topology intersector brep_curve_solve sites (IntersectorBrep gets a way to create the trim) boolean.topology_intersector_p2 (1)
query::api_queries (read-only &dyn TopologyObjects; the caller retries) query.api_queries (26)

Prototype measurements against the C++ (pinned c9c5979, 1e-9 unchanged): every one of these cases passes or moves to an unrelated unported symbol, with 0 failures, once #618's harness owner fix is in.

Depends on #613 (built on its branch, coordinated in #613 (comment)) and #618.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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