Units / surface
surface.surf_of_revolution_p2 partial
- Layer
- 25
- Upstream lines
- 1,369
- Functions
- 8
- Rust module
surface::surf_of_revolution::p2
Source: crates/solidcore/src/surface/surf_of_revolution/p2.rs
Upstream: source/SMLib/src/SmSurfOfRevolution.cpp
Notes
PARTIAL: difftest 1167 cases (267 fixture + 900 generated), 1099 passed, 0 failed, 68 deferred: intersect.surface_intersector_p5 51 (GlobalSurfaceIntersect falling back to SmSurface::GlobalSurfaceIntersect, whose SmAdvSurfaceIntersector is built and then needs SmSurfaceIntersector::DoIntersection; base body in surface::surface::p2::base_global_surface_intersect; the plane cases reach it since surface.plane_p2 merged), surface.surface_p4 15 and surface.surface_p5 2 (SmSurface::GlobalPointSolve / LocalPointSolve of STEPInversion for a non-planar generator and of the conversions without exact polar conversion). Perturbation: 1099/1099 detected. Back-edges wired: SmSurfOfRevolution::STEPInversion/AdjustSTEPUVDomain/TrimWithDomain/GlobalSurfaceIntersect in surface::surface::p2 and in surface::cone::p1 (Cone::adjust_step_uv_domain takes a kernel; Cone::rev_step_inversion now calls SurfOfRevolution::step_inversion_with_outputs, replacing the CO-PORTED copy) (Surface::step_inversion, adjust_step_uv_domain, trim_with_domain and global_surface_intersect now take the kernel). Also fixed in nurbs.b_spline_surface_p2: BSplineSurface::create_surf_of_revolution now implements the given-sweep-circle branch (copy, scale, move the circle) that CreateOffsetSurface needs; it takes a kernel. Not covered by the difftest: IsNurbSurfaceSurfOfRevolution of a plane or sphere/cone (not ported), CreateOffsetSurface of a non-B-spline generator (unreachable). CO-PORTED in surface.surf_of_revolution_p1 (PR #15): SmSurfOfRevolution::CreateCanonical and ::MakeNurb live in surface::surf_of_revolution::p1 (SurfOfRevolution::create_canonical / make_nurb), covered by the p1 difftest runner. Do not re-port; move or extend them there. 8 fns; largest: SmSurfOfRevolution::CreateOffsetSurface, SmSurfOfRevolution::IsNurbSurfaceSurfOfRevolution, SmSurfOfRevolution::TrimWithDomain, SmSurfOfRevolution::STEPInversion; unit-SCC #22 (220 units); 317 upstream test entry points reach this unit intersect.surface_intersector_p5 wired (PR #82): base_global_surface_intersect runs DoIntersection, whose surface caches defer at SmSurface::CalculateContinuities (surface.surface_p6); now 1167 cases, 1099 pass, 68 deferred (surface.surface_p6 51, surface.surface_p4 15, surface.surface_p5 2). [surface.surface_p6 wired (PR #92): 1167 cases, 1110 pass, 57 deferred (surface.surface_cache_p1 30, surface.surface_p11 10, surface.surface_p4 15, surface.surface_p5 2)] surface.surface_p11 (PR #120, after merging main with surface.surface_p3): cases=1167 passed=1134 failed=0 deferred=33 (intersect.surface_intersector_p2 3, surface.surface_cache_p1 30); --perturb SENSITIVE.
Difftest
- Cases
- 1,167
- Passed
- 1,134
- Deferred
- 33
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
surface.surface_cache_p1 green | 30 |
intersect.surface_intersector_p2 partial | 3 |
Report JSON (per-case results)
Dependencies
Depends on: geom.axis2_placement green geom.extent1d green geom.extent2d green geom.object partial geom.solution_array partial geom.vector2d green geom.vector3d green nurbs.b_spline_curve_p1 green nurbs.b_spline_curve_p2 green nurbs.b_spline_surface_n_lib_p1 green nurbs.b_spline_surface_p1 green nurbs.b_spline_surface_p2 partial surface.surf_of_revolution_p1 green surface.surf_of_revolution_p3 partial surface.surface_p2 partial
Soft dependencies: curve.composite_curve_p1 green curve.composite_curve_p2 green curve.curve_p2 green curve.curve_p4 partial curve.curve_p5 partial curve.curve_p6 green curve.curve_p8 green curve.line green geom.extent3d green geom.geom_utility_p1 green geom.tol green nurbs.b_spline_curve_n_lib green
Dependents: surface.sphere green
Soft dependents: blend.fillet_solver_p2 todo blend.fillet_solver_p5 claimed primitive.primitive_creation_p3 todo
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmSurfOfRevolution::AdjustSTEPUVDomain | SmSurfOfRevolution.cpp:300 | 79 | [SurfOfRevolution::adjust_step_uv_domain] |
SmSurfOfRevolution::STEPInversion | SmSurfOfRevolution.cpp:484 | 144 | [SurfOfRevolution::step_inversion] |
SmSurfOfRevolution::CreateCanonical | SmSurfOfRevolution.cpp:639 | 77 | [SurfOfRevolution::create_canonical] |
SmSurfOfRevolution::MakeNurb | SmSurfOfRevolution.cpp:940 | 6 | [SurfOfRevolution::make_nurb] |
SmSurfOfRevolution::CreateOffsetSurface | SmSurfOfRevolution.cpp:1244 | 334 | [SurfOfRevolution::create_offset_surface] |
SmSurfOfRevolution::GlobalSurfaceIntersect | SmSurfOfRevolution.cpp:3020 | 109 | [SurfOfRevolution::global_surface_intersect] |
SmSurfOfRevolution::IsNurbSurfaceSurfOfRevolution | SmSurfOfRevolution.cpp:4594 | 315 | [SurfOfRevolution::is_nurb_surface_surf_of_revolution] |
SmSurfOfRevolution::TrimWithDomain | SmSurfOfRevolution.cpp:5443 | 305 | [SurfOfRevolution::trim_with_domain] |
Module file-header table (8 rows)
| Rust | Upstream |
|---|---|
[SurfOfRevolution::adjust_step_uv_domain] | AdjustSTEPUVDomain |
[SurfOfRevolution::step_inversion] | STEPInversion |
[SurfOfRevolution::create_canonical] | CreateCanonical (co-ported in p1) |
[SurfOfRevolution::make_nurb] | MakeNurb (co-ported in p1) |
[SurfOfRevolution::create_offset_surface] | CreateOffsetSurface |
[SurfOfRevolution::global_surface_intersect] | GlobalSurfaceIntersect |
[SurfOfRevolution::is_nurb_surface_surf_of_revolution] | IsNurbSurfaceSurfOfRevolution |
[SurfOfRevolution::trim_with_domain] | TrimWithDomain |
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