Units / surface
surface.plane_p1 partial
- Layer
- 23
- Upstream lines
- 1,934
- Functions
- 39
- Rust module
surface::plane::p1
Source: crates/solidcore/src/surface/plane/p1.rs
Upstream: source/SMLib/inc/SmPlane.h, source/SMLib/src/SmPlane.cpp
Notes
partial: difftest 2705 cases (1205 fixture: 18 upstream-derived, 1179 adversarial, 8 extension; 1500 generated): 2538 passed, 167 deferred (intersect.surface_drop_lib_p3 125, surface.surface_p1 40: IsPlanar of a B-spline reaches SmSurface::GetFace through owner_zone_tolerance once surface.surface_p7 wired IsPlanar (PR #24), surface.surface_p8 2), max_rel_err 0, perturb 2538/2538 detected; private Evaluate1st/2ndDerivatives copies now call surface::surface::p7 (PR #24); CreateExtendedSurface re-dispatched to the plane overrides; surface cache plane paths are UNPORTED(surface.plane_p1) (iso curve needs Curve storage in the cache, CalculateBoundingBox not re-dispatched); 39 fns; largest: SmPlane::CoincidenceCheck, SmPlane::DropCurve, SmPlane::GlobalLineIntersect, SmPlane::DropPointFast; cycle back-edges (call into later units; stub or co-port): surface.surface_p1(2), surface.surface_p7(2), intersect.surface_drop_lib_p3(1), surface.surface_p5(1), surface.surface_p6(1), surface.surface_p8(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit; FOLLOW-UP (difftest --ssi-corpus, PR #84): model the NURB cache of upstream const queries (GetNaturalUVDomain makes and keeps m_pNurb through GetOrCreateGwNurbPointer; the port makes it on a copy), which IntersectWithPlane's parallel branch (SmPlane.cpp:2183) depends on; see plan/findings.md surface.plane_p1 [surface.surface_p6 wired (PR #92): 2705 cases, 2570 pass, 135 deferred (intersect.surface_drop_lib_p3 129, surface.surface_p5 4, surface.surface_p8 2)] Review PR #106 recertification: 2705 cases, 2574 pass, 131 deferred, 0 failed, max_rel_err=0.0; deferred: intersect.surface_drop_lib_p3 129, surface.surface_p8 2.
Difftest
- Cases
- 2,705
- Passed
- 2,575
- Deferred
- 130
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
intersect.surface_drop_lib_p3 claimed | 129 |
intersect.surface_drop_curve partial | 1 |
Report JSON (per-case results)
Dependencies
Depends on: curve.curve_p2 green curve.iso_curve green curve.line green geom.a_object partial geom.axis2_placement green geom.extent1d green geom.extent2d green geom.geom_utility_p1 green geom.object partial geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green nurbs.b_spline_curve_p1 green nurbs.b_spline_surface_n_lib_p1 green nurbs.b_spline_surface_p1 green surface.surface_p2 partial
Soft dependencies: curve.curve_p4 partial curve.curve_p5 partial curve.curve_p8 green nlib.srf_basic green nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p2 green
Dependents: offset.offset_executive_p1 claimed primitive.api_primitives claimed primitive.primitive_creation_p1 claimed surface.plane_p2 partial surface.surf_of_extrusion_p2 partial
Soft dependents: blend.fillet_corner_p1 todo blend.fillet_geom_p2 todo blend.fillet_geom_p4 todo blend.fillet_geom_p5 todo blend.fillet_solver_p2 todo intersect.curve_class_p8 partial surface.cone_p3 partial surface.sphere green surface.surface_p1 partial surface.surface_p11 partial surface.surface_p3 green surface.surface_p4 green surface.unbend_volume green topology.brep_p2 claimed
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmPlane::SmPlane | SmPlane.h:75 | 1 | [Plane] |
SmPlane::~SmPlane | SmPlane.h:81 | 1 | Drop (implicit) |
SmPlane::EvaluateSimple | SmPlane.h:189 | 13 | [Plane::evaluate], [Plane::evaluate_simple] |
SmPlane::IsPlanar | SmPlane.h:339 | 14 | [Plane::is_planar], [Plane::is_on_seam], [Plane::is_closed] |
SmPlane::IsOnSeam | SmPlane.h:354 | 14 | [Plane::is_planar], [Plane::is_on_seam], [Plane::is_closed] |
SmPlane::IsClosed | SmPlane.h:432 | 11 | [Plane::is_planar], [Plane::is_on_seam], [Plane::is_closed] |
SmPlane::GetClassString | SmPlane.h:584 | 1 | [Plane::is_kind_of], [Plane::TYPE], [Plane::type_string], [Plane::class_string] |
SmPlane::GetType | SmPlane.h:584 | 1 | [Plane::is_kind_of], [Plane::TYPE], [Plane::type_string], [Plane::class_string] |
SmPlane::GetTypeString | SmPlane.h:584 | 1 | [Plane::is_kind_of], [Plane::TYPE], [Plane::type_string], [Plane::class_string] |
SmPlane::SmPlane | SmPlane.cpp:55 | 17 | [Plane] |
SmPlane::SmPlane | SmPlane.cpp:83 | 21 | [Plane] |
SmPlane::SmPlane | SmPlane.cpp:111 | 9 | [Plane] |
SmPlane::operator== | SmPlane.cpp:127 | 25 | [Plane::approx_eq] |
SmPlane::AdjustSTEPUVDomain | SmPlane.cpp:161 | 18 | [Plane::adjust_step_uv_domain] |
SmPlane::Copy | SmPlane.cpp:185 | 11 | Clone, [Plane::copy] |
SmPlane::Copy | SmPlane.cpp:202 | 11 | Clone, [Plane::copy] |
SmPlane::CreateCanonical | SmPlane.cpp:219 | 20 | [Plane::create_canonical] |
SmPlane::CoincidenceCheck | SmPlane.cpp:315 | 505 | [Plane::coincidence_check], [Coincidence] |
SmPlane::CreateIsoParametricCurve | SmPlane.cpp:836 | 70 | [Plane::create_iso_parametric_curve], [PlaneIsoCurve] |
SmPlane::DropCurve | SmPlane.cpp:981 | 368 | [Plane::drop_curve], [PlaneDropCurve] |
SmPlane::DropPointFast | SmPlane.cpp:1360 | 92 | [Plane::drop_point_fast] |
SmPlane::EvaluatePoint | SmPlane.cpp:1458 | 22 | [Plane::evaluate_point], [Plane::evaluate_point_fast] |
SmPlane::Evaluate | SmPlane.cpp:1486 | 76 | [Plane::evaluate], [Plane::evaluate_simple] |
SmPlane::EvaluateNormal | SmPlane.cpp:1571 | 15 | [Plane::evaluate_normal] |
SmPlane::GlobalLineIntersect | SmPlane.cpp:1601 | 247 | [Plane::global_line_intersect], [Plane::global_line_intersect_in] |
SmPlane::TrimPlaneLineToPlaneDomain | SmPlane.cpp:2386 | 58 | [Plane::trim_plane_line_to_plane_domain] |
sm_IsGrazingIntersection | SmPlane.cpp:2451 | 24 | [is_grazing_intersection] |
SmPlane::IsBounded | SmPlane.cpp:2741 | 5 | [Plane::is_bounded] |
SmPlane::IsSingularity | SmPlane.cpp:2948 | 14 | [Plane::is_singularity], [Plane::is_singularity_with_poles] |
SmPlane::IsSingularity | SmPlane.cpp:2963 | 17 | [Plane::is_singularity], [Plane::is_singularity_with_poles] |
SmPlane::MakeNurb | SmPlane.cpp:2993 | 44 | [Plane::make_nurb] |
SmPlane::ProjectPointToUVDomain | SmPlane.cpp:3044 | 15 | [Plane::project_point_to_uv_domain] |
SmPlane::Reparameterize | SmPlane.cpp:3065 | 68 | [Plane::reparameterize] |
SmPlane::ToggleSwapUVBit | SmPlane.cpp:3139 | 35 | [Plane::toggle_swap_uv_bit] |
SmPlane::IsKindOf | SmPlane.cpp:3673 | 4 | [Plane::is_kind_of], [Plane::TYPE], [Plane::type_string], [Plane::class_string] |
SmPlane::RebuildSTEPFromNURBParameters | SmPlane.cpp:4285 | 45 | [Plane::rebuild_step_from_nurb_parameters] |
SmPlane::GetSTEPUVDomain | SmPlane.cpp:4336 | 5 | [Plane::step_uv_domain], [Plane::position], [Plane::uv_scale] |
SmPlane::GetPosition | SmPlane.cpp:4358 | 5 | [Plane::step_uv_domain], [Plane::position], [Plane::uv_scale] |
SmPlane::EvaluatePointFast | SmPlane.cpp:4371 | 11 | [Plane::evaluate_point], [Plane::evaluate_point_fast] |
Module file-header table (31 rows)
| Rust | Upstream |
|---|---|
[Plane] | SmPlane |
[Plane::new] | SmPlane(Origin, XAxis, YAxis, UVScale, UVDomain, cpContext) |
[Plane::from_normal] | SmPlane(Origin, PlaneNormal, cpContext) |
[Plane::create_canonical] | CreateCanonical |
Clone, [Plane::copy] | copy constructor, Copy (both overloads) |
Drop (implicit) | ~SmPlane |
[Plane::approx_eq] | operator== |
[Plane::adjust_step_uv_domain] | AdjustSTEPUVDomain |
[Plane::coincidence_check], [Coincidence] | CoincidenceCheck |
[Plane::create_iso_parametric_curve], [PlaneIsoCurve] | CreateIsoParametricCurve |
[Plane::drop_curve], [PlaneDropCurve] | DropCurve |
[Plane::drop_point_fast] | DropPointFast |
[Plane::evaluate_point], [Plane::evaluate_point_fast] | EvaluatePoint, EvaluatePointFast |
[Plane::evaluate], [Plane::evaluate_simple] | Evaluate, EvaluateSimple (inline) |
[Plane::evaluate_normal] | EvaluateNormal |
[Plane::global_line_intersect], [Plane::global_line_intersect_in] | GlobalLineIntersect |
[Plane::trim_plane_line_to_plane_domain] | TrimPlaneLineToPlaneDomain |
[is_grazing_intersection] | sm_IsGrazingIntersection (static) |
[Plane::is_bounded] | IsBounded |
[Plane::is_singularity], [Plane::is_singularity_with_poles] | IsSingularity (both overloads) |
[Plane::is_planar], [Plane::is_on_seam], [Plane::is_closed] | IsPlanar, IsOnSeam, IsClosed (inline) |
[Plane::make_nurb] | MakeNurb |
[Plane::project_point_to_uv_domain] | ProjectPointToUVDomain |
[Plane::reparameterize] | Reparameterize |
[Plane::toggle_swap_uv_bit] | ToggleSwapUVBit |
[Plane::rebuild_step_from_nurb_parameters] | RebuildSTEPFromNURBParameters |
[Plane::step_uv_domain], [Plane::position], [Plane::uv_scale] | GetSTEPUVDomain, GetPosition, GetUVScale |
[Plane::is_kind_of], [Plane::TYPE], [Plane::type_string], [Plane::class_string] | IsKindOf, GetType, GetTypeString, GetClassString (SM_COMMON) |
[Plane::base], [Plane::base_with_nurb], [Plane::natural_uv_domain] | the SmBSplineSurface part, GetOrCreateGwNurbPointer, GetNaturalUVDomain (inherited) |
[Plane::max_analytic_domain], [Plane::is_parallel_to_vector], [Plane::reverse], [Plane::swap_uv] | SmBSplineSurface::GetMaxAnalyticDomain, IsParallelToVector, Reverse, SwapUV (inherited, re-dispatched) |
[Plane::create_extended_surface], [Plane::create_extended_surface_dir] | SmBSplineSurface::CreateExtendedSurface (both overloads; inherited, re-dispatched to the IsSingularity / IsClosed overrides) |
Upstream tests reaching this unit
prog_test:my_test_extent3d, prog_test:my_test_vector2d, 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