mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-04 02:55:54 +00:00
smlib: pin the fork's SSI fixes (1499681); the corpus passes 111 of 119
SMLIB_REV moves to tangency-labs/smlib capi-solidcraft 1499681, eight SMLib commits for surface/surface intersection: an empty curve is no longer reverse-traced (SM_ERR_NULL_POINTER), tangent curves are traced once, curves split at singular crossings, interior tangential contact points, tangential curves and branches through tangent nodes, small loops above tolerance, and high-order contact curves covered across their band. The corpus test's pass list grows from 81 to 111 cases; the 8 still failing are all below SMLib's 1e-5 zone tolerance (angles 1e-6..1e-8, offsets 1e-7, loops of 2e-6 or less). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1 +1 @@
|
||||
70e1bf5a8e75d7576e1e2971d28295a55c80bfcc
|
||||
14996818bedacc057cf35f296b29876df022faa7
|
||||
|
||||
@@ -388,14 +388,24 @@ const GSI_1E6_PASS: &[&str] = &[
|
||||
"c2_cyl_on_plane",
|
||||
"c2_sphere_in_cyl",
|
||||
"c2_sphere_in_torus",
|
||||
"c2n_cylN_on_planeN",
|
||||
"c2n_parabcyl_plane",
|
||||
"c2n_quartic_circle",
|
||||
"c2n_quartic_contact_parabola",
|
||||
"c2n_sphereN_in_cyl",
|
||||
"c3_sphere_on_plane",
|
||||
"c3_sphere_torus_outer",
|
||||
"c3_spheres_external",
|
||||
"c3_spheres_internal",
|
||||
"c3n_four_points",
|
||||
"c3n_parab_apex",
|
||||
"c3n_parab_parab_apex",
|
||||
"c4_cone_apex_plane",
|
||||
"c4_steinmetz",
|
||||
"c4_viviani_figure8",
|
||||
"c4n_cusp",
|
||||
"c4n_saddle_tangent_plane",
|
||||
"c4n_viviani_nurbs",
|
||||
"c5_corner_to_corner",
|
||||
"c5_curve_on_edge",
|
||||
"c5_cyl_end_circle",
|
||||
@@ -422,6 +432,11 @@ const GSI_1E6_PASS: &[&str] = &[
|
||||
"c7_sunk_cyl_1e-4",
|
||||
"c7_sunk_cyl_1e-5",
|
||||
"c7_sunk_cyl_1e-6",
|
||||
"c7_tiny_loop_parab_1e-4",
|
||||
"c7_tiny_loop_parab_1e-5",
|
||||
"c7_tiny_loop_sphere_1e-4",
|
||||
"c7_tiny_loop_sphere_1e-5",
|
||||
"c7_tiny_loop_sphere_1e-6",
|
||||
"c8_cone_plane_seam",
|
||||
"c8_cyl_plane_seam_line",
|
||||
"c8_sphere_cyl_through_poles",
|
||||
@@ -441,15 +456,30 @@ const GSI_1E6_PASS: &[&str] = &[
|
||||
"c9n_rational_deg5_sphere_arc",
|
||||
"c9n_refined_torus_sphere",
|
||||
"y23_appendix_ex2",
|
||||
"y23_fig1a_two_loops_cross",
|
||||
"y23_fig1b_two_arcs_and_point",
|
||||
"y23_fig1c_boundary_triangle",
|
||||
"y23_fig1d_two_quads",
|
||||
"y23_fig1e_loops_touching",
|
||||
"y23_fig1f_high_order_contact",
|
||||
"y23_fig1g_three_points",
|
||||
"y23_t2_ex1_tangent_line",
|
||||
"y23_t2_ex2_tangential_curve",
|
||||
"y23_t2_ex3_loop_two_curves",
|
||||
"y23_t2_ex4_tangential_curve_saddle",
|
||||
"y23_t2_ex5_two_loops",
|
||||
"y23_t2_ex6_loop_and_point",
|
||||
"y23_t3_ex1_torus_ellipsoid",
|
||||
"y23_t3_ex2_torus_ellipsoid",
|
||||
"y23_t3_ex3_torus_ellipsoid",
|
||||
"y23_t3_ex4_torus_ellipsoid",
|
||||
"y23_t3_ex5_torus_ellipsoid",
|
||||
"y23_t6_ex1_tangent_line",
|
||||
"y23_t6_ex2_tangential_arc",
|
||||
"y23_t6_ex3_two_crossing_curves",
|
||||
"y23_t6_ex4_tangential_point",
|
||||
"y23_t6_ex5_four_boundary_curves",
|
||||
"y23_t6_ex6_four_boundary_curves",
|
||||
];
|
||||
|
||||
/// The corpus runner's samples per curve.
|
||||
@@ -606,5 +636,5 @@ fn smlib_global_intersect_at_1e_6() {
|
||||
let newly: Vec<_> = passed.difference(&listed).collect();
|
||||
let lost: Vec<_> = listed.difference(&passed).collect();
|
||||
assert!(newly.is_empty() && lost.is_empty(), "now pass (add to GSI_1E6_PASS): {newly:?}; no longer pass: {lost:?}");
|
||||
assert_eq!(passed.len(), 81);
|
||||
assert_eq!(passed.len(), 111);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user