solidcore

Units / query

query.loop green

Layer
42
Upstream lines
830
Functions
1
Rust module
query::loop

Source: crates/solidcore/src/query/loop.rs

Upstream: source/SMLib/src/SmLoop.cpp

Notes

GREEN (SmSurface::GetSingularities wired to surface.surface_p3 in PR #52): 3040/3040 pass bit-identical, 0 deferred. Earlier PARTIAL (PR #63): difftest 3040 cases (40 fixture re-expressing the TestSmCreateRectangle / TestSmCreateRegularPolygon loops (CCW, CW, mixed edge use orientations, far-centre thin rectangle, tiny and large tolerances) and smTopoTest my_test_single_periodic_vertexuse (a seamless circle loop on a cylinder) + 3000 generated over real SmPlane / SmBSplineSurface / SmSurfOfRevolution (cylinder, cone, sphere, torus-like) faces with SmLine / SmCircle / SmBSplineCurve edges and 2D B-spline UV trims (lines, collinear polylines, rational arcs, wiggly and cusp-like curves, extended trims with sub-interval edges), seam edges used twice, open and star (winding 2) loops, vertex loops, 1e-3/1e3 scales, points on and near edges, vertices and domain sides), 2780 pass bit-identical, 260 deferred (surface.surface_p3 260: SmSurface::GetSingularities for a point and a loop end on a side of the natural domain), max_rel_err 0; 20k-seed run clean; --perturb SENSITIVE. The loop is passed as a borrowed FaceLoop view (query::r#loop::{FaceLoop, LoopEdgeuse, LoopFace}) since the arena topology binds no geometry yet; an edge use without UV trim curve is UNPORTED(topology.edgeuse_p3) GetOrCreateUVTrimCurve. 1 fns; largest: SmLoop::ContainsUVPoint; unit-SCC #22 (220 units); 317 upstream test entry points reach this unit

Difftest

Cases
3,040
Passed
3,040
Deferred
0
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Nothing: no deferred cases.

Report JSON (per-case results)

Dependencies

Depends on: curve.curve_p2 green geom.extent1d green geom.extent2d green geom.tol green geom.vector3d green topology.loopuse partial

Soft dependencies: curve.curve_p3 green curve.curve_p5 partial curve.curve_p6 green geom.geom_utility_p1 green geom.solution_array partial surface.surface_p2 partial surface.surface_p3 green topology.edge partial topology.edgeuse_p1 partial topology.edgeuse_p3 claimed topology.face_p2 partial

Dependents: none

Soft dependents: query.face_p2 partial query.face_p3 claimed

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmLoop::ContainsUVPointSmLoop.cpp:509830[contains_uv_point]
Module file-header table (6 rows)
RustUpstream
[contains_uv_point]SmLoop::ContainsUVPoint
[UvContainment]its return value and out-params
[FaceLoop], [LoopEdgeuse]the SmLoop / SmLoopuse / SmEdgeuse / SmEdge / SmFace data it reads (see Deviations)
[uv_corner_boundaries]SmLoop::GetUVCornerBoundaries (CO-PORTED from topology.loopuse)
[UvCornerBoundaries]its return value and out-params
calc_quad_num (private)sm_CalcQuadNum (file static, unit topology.loopuse)

Upstream tests reaching this unit

prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point, prog_test:my_test_matrix, prog_test:my_test_reversed_line_join, SM_API_test:TestSmCreateRectangle, SM_API_test:TestSmCreateRegularPolygon