Skip to content

Improves testing for quest::STEPReader for surface orientation#1818

Merged
jcs15c merged 16 commits intodevelopfrom
feature/spainhour/rigorous_step_orientation
Apr 2, 2026
Merged

Improves testing for quest::STEPReader for surface orientation#1818
jcs15c merged 16 commits intodevelopfrom
feature/spainhour/rigorous_step_orientation

Conversation

@jcs15c
Copy link
Copy Markdown
Contributor

@jcs15c jcs15c commented Mar 16, 2026

Summary

  • This PR is a slight refactoring of the quest::STEPReader to handle additional edge cases stemming from different canonical representations of OpenCascade STEP files and primal's trimmed NURBS primitives. In general, OCC stores surface orientation through both an internal flag and the orientation of loops of trimming curves, while primal encodes orientation information only through patch control points and requires CCW trimming curve loops.

An issue was identified and partially fixed in the closed PR #1765, but since then additional edge cases have popped up. To better test for these issues as the reader is exposed to more in-the-wild meshes, a dedicated test has been added to quest. This test is supported by additional STEP files added to Axom's data repo.

Below is a table which shows which tested files fail for each configuration of the STEP reader. Files marked with * are new to axom_data.

Filename Pre #1765 develop current PR
tet
sliced_cylinder
nut
bearings
boxed_sphere
plate*
bolt_clip*

Additionally, this PR addresses an incorrect overload in winding_number.hpp for 2D NURBS curves.

@jcs15c jcs15c self-assigned this Mar 16, 2026
@jcs15c jcs15c changed the base branch from develop to feature/spainhour/fast_gwn_triangles March 16, 2026 20:52
@jcs15c jcs15c force-pushed the feature/spainhour/rigorous_step_orientation branch from d3046a8 to 947c562 Compare March 16, 2026 21:16
@jcs15c jcs15c added the Quest Issues related to Axom's 'quest' component label Mar 23, 2026
@jcs15c jcs15c marked this pull request as ready for review March 23, 2026 18:08
Base automatically changed from feature/spainhour/fast_gwn_triangles to develop March 23, 2026 19:44
Copy link
Copy Markdown
Member

@kennyweiss kennyweiss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @jcs15c

Comment on lines +889 to +890
BRepTools_WireExplorer edgeExp(wire, TopoDS::Face(faceExp.Current()));
for(; edgeExp.More(); edgeExp.Next(), ++edgeIndex)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion variable name (minor):

Since this is a WireExplorer, should the variable be wireExp instead of edgeExp?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe, but wireExp is already defined above as an object of type TopExp_Explorer since that iterates over the topology, producing wires. Then the object of type BRepTools_WireExplorer iterates over the wires, producing edges. It's a little complicated, but I think there is logic to it. Wire explorers explore wires, and edge explorers explore edges.

@jcs15c jcs15c force-pushed the feature/spainhour/rigorous_step_orientation branch from 7d23c50 to 58f664d Compare March 31, 2026 17:14
Copy link
Copy Markdown
Contributor

@Arlie-Capps Arlie-Capps left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @jcs15c !

Copy link
Copy Markdown
Member

@rhornung67 rhornung67 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One minor request to use Axom macro for unused method args.

@jcs15c jcs15c force-pushed the feature/spainhour/rigorous_step_orientation branch from 13097be to 39a5d3e Compare April 1, 2026 23:04
@jcs15c jcs15c merged commit b1844e9 into develop Apr 2, 2026
15 checks passed
@jcs15c jcs15c deleted the feature/spainhour/rigorous_step_orientation branch April 2, 2026 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Quest Issues related to Axom's 'quest' component

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants