solidcore

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 unitDeferred cases
intersect.surface_drop_lib_p3 claimed129
intersect.surface_drop_curve partial1

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 functionDefined atLinesRust (from the file header)
SmPlane::SmPlaneSmPlane.h:751[Plane]
SmPlane::~SmPlaneSmPlane.h:811Drop (implicit)
SmPlane::EvaluateSimpleSmPlane.h:18913[Plane::evaluate], [Plane::evaluate_simple]
SmPlane::IsPlanarSmPlane.h:33914[Plane::is_planar], [Plane::is_on_seam], [Plane::is_closed]
SmPlane::IsOnSeamSmPlane.h:35414[Plane::is_planar], [Plane::is_on_seam], [Plane::is_closed]
SmPlane::IsClosedSmPlane.h:43211[Plane::is_planar], [Plane::is_on_seam], [Plane::is_closed]
SmPlane::GetClassStringSmPlane.h:5841[Plane::is_kind_of], [Plane::TYPE], [Plane::type_string], [Plane::class_string]
SmPlane::GetTypeSmPlane.h:5841[Plane::is_kind_of], [Plane::TYPE], [Plane::type_string], [Plane::class_string]
SmPlane::GetTypeStringSmPlane.h:5841[Plane::is_kind_of], [Plane::TYPE], [Plane::type_string], [Plane::class_string]
SmPlane::SmPlaneSmPlane.cpp:5517[Plane]
SmPlane::SmPlaneSmPlane.cpp:8321[Plane]
SmPlane::SmPlaneSmPlane.cpp:1119[Plane]
SmPlane::operator==SmPlane.cpp:12725[Plane::approx_eq]
SmPlane::AdjustSTEPUVDomainSmPlane.cpp:16118[Plane::adjust_step_uv_domain]
SmPlane::CopySmPlane.cpp:18511Clone, [Plane::copy]
SmPlane::CopySmPlane.cpp:20211Clone, [Plane::copy]
SmPlane::CreateCanonicalSmPlane.cpp:21920[Plane::create_canonical]
SmPlane::CoincidenceCheckSmPlane.cpp:315505[Plane::coincidence_check], [Coincidence]
SmPlane::CreateIsoParametricCurveSmPlane.cpp:83670[Plane::create_iso_parametric_curve], [PlaneIsoCurve]
SmPlane::DropCurveSmPlane.cpp:981368[Plane::drop_curve], [PlaneDropCurve]
SmPlane::DropPointFastSmPlane.cpp:136092[Plane::drop_point_fast]
SmPlane::EvaluatePointSmPlane.cpp:145822[Plane::evaluate_point], [Plane::evaluate_point_fast]
SmPlane::EvaluateSmPlane.cpp:148676[Plane::evaluate], [Plane::evaluate_simple]
SmPlane::EvaluateNormalSmPlane.cpp:157115[Plane::evaluate_normal]
SmPlane::GlobalLineIntersectSmPlane.cpp:1601247[Plane::global_line_intersect], [Plane::global_line_intersect_in]
SmPlane::TrimPlaneLineToPlaneDomainSmPlane.cpp:238658[Plane::trim_plane_line_to_plane_domain]
sm_IsGrazingIntersectionSmPlane.cpp:245124[is_grazing_intersection]
SmPlane::IsBoundedSmPlane.cpp:27415[Plane::is_bounded]
SmPlane::IsSingularitySmPlane.cpp:294814[Plane::is_singularity], [Plane::is_singularity_with_poles]
SmPlane::IsSingularitySmPlane.cpp:296317[Plane::is_singularity], [Plane::is_singularity_with_poles]
SmPlane::MakeNurbSmPlane.cpp:299344[Plane::make_nurb]
SmPlane::ProjectPointToUVDomainSmPlane.cpp:304415[Plane::project_point_to_uv_domain]
SmPlane::ReparameterizeSmPlane.cpp:306568[Plane::reparameterize]
SmPlane::ToggleSwapUVBitSmPlane.cpp:313935[Plane::toggle_swap_uv_bit]
SmPlane::IsKindOfSmPlane.cpp:36734[Plane::is_kind_of], [Plane::TYPE], [Plane::type_string], [Plane::class_string]
SmPlane::RebuildSTEPFromNURBParametersSmPlane.cpp:428545[Plane::rebuild_step_from_nurb_parameters]
SmPlane::GetSTEPUVDomainSmPlane.cpp:43365[Plane::step_uv_domain], [Plane::position], [Plane::uv_scale]
SmPlane::GetPositionSmPlane.cpp:43585[Plane::step_uv_domain], [Plane::position], [Plane::uv_scale]
SmPlane::EvaluatePointFastSmPlane.cpp:437111[Plane::evaluate_point], [Plane::evaluate_point_fast]
Module file-header table (31 rows)
RustUpstream
[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