solidcore

Units / surface

surface.unbend_volume green

Layer
24
Upstream lines
920
Functions
29
Rust module
surface::unbend_volume

Source: crates/solidcore/src/surface/unbend_volume.rs

Upstream: source/SMLib/inc/SmUnbendVolume.h, source/SMLib/src/SmUnbendVolume.cpp

Notes

PARTIAL: difftest 1874 cases (374 fixture + 1500 generated), 1808 pass bit-identical, 66 deferred (surface.surface_p8 66: IsCurveInParamDomainSimple -> SmCurve::HasPlaneCrossings -> SmSurface::GlobalCurveIntersect; ReadFromDB base read wired by surface.volume_p2), max_rel_err 0; 30k-seed run clean (30374 cases); --perturb SENSITIVE; co-ports of SmVolume::EvaluatePoint and SmVolume::IsPointInParamDomain replaced by surface.volume_p2's (PR #26); wired: surface.volume_p1 (deferred 39 -> 2), curve.crv_in_volume (its SmVolume::EvaluatePoint stub now calls the co-port: surface.volume_p2 deferred 33 -> 1); component constructor ported as UnbendVolume::create; 29 fns; largest: SmUnbendVolume::Evaluate, SmUnbendVolume::EvaluateSimple, SmUnbendVolume::EvaluateBoundingBoxSimple, SmUnbendVolume::ReadFromDB; cycle back-edges (call into later units; stub or co-port): surface.volume_p2(2); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit Re-run after wiring PR #118 (surface.surface_p8 and its back-edges, GlobalPointSolve_0 included): 1874 cases, 1874 pass, 0 deferred, 0 failed, max_rel_err 0; green.

Difftest

Cases
1,874
Passed
1,874
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: geom.extent1d green geom.extent3d green geom.object partial geom.pseudo_box green geom.solution_array partial geom.tol green geom.vector3d green surface.volume_p1 green topology.database_io green

Soft dependencies: curve.crv_in_volume partial curve.curve_p4 partial curve.curve_p6 green curve.line green geom.context green geom.extent2d green geom.geom_utility_p1 green geom.vector2d green surface.plane_p1 partial

Dependents: none

Soft dependents: surface.volume_p2 partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmUnbendVolume::SmUnbendVolumeSmUnbendVolume.h:27410[UnbendVolume]
SmUnbendVolume::SmUnbendVolumeSmUnbendVolume.h:2864[UnbendVolume]
SmUnbendVolume::~SmUnbendVolumeSmUnbendVolume.h:3041Drop (implicit)
SmUnbendVolume::GetNaturalParamDomainSmUnbendVolume.h:3444[UnbendVolume::natural_param_domain]
SmUnbendVolume::GetLegalMinUSmUnbendVolume.h:3571[UnbendVolume::legal_min_u]
SmUnbendVolume::GetUnbendOriginSmUnbendVolume.h:3611[Volume::unbend_origin], [Volume::unbend_axis], [Volume::unbend_mid_dir], [Volume::unbend_binormal]
SmUnbendVolume::GetUnbendAxisSmUnbendVolume.h:3621[Volume::unbend_origin], [Volume::unbend_axis], [Volume::unbend_mid_dir], [Volume::unbend_binormal]
SmUnbendVolume::GetUnbendMidDirSmUnbendVolume.h:3631[Volume::unbend_origin], [Volume::unbend_axis], [Volume::unbend_mid_dir], [Volume::unbend_binormal]
SmUnbendVolume::GetUnbendBinormalSmUnbendVolume.h:3641[Volume::unbend_origin], [Volume::unbend_axis], [Volume::unbend_mid_dir], [Volume::unbend_binormal]
SmUnbendVolume::GetUnbendNeutralDistSmUnbendVolume.h:3651[UnbendVolume::unbend_neutral_dist], [UnbendVolume::singularity_tol]
SmUnbendVolume::IsPointInParamDomainSimpleSmUnbendVolume.h:6848[UnbendVolume::is_point_in_param_domain_simple]
SmUnbendVolume::GetClassStringSmUnbendVolume.h:7531[UNBEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends
SmUnbendVolume::GetTypeSmUnbendVolume.h:7531[UNBEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends
SmUnbendVolume::GetTypeStringSmUnbendVolume.h:7531[UNBEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends
SmUnbendVolume::CopySmUnbendVolume.cpp:13612[Volume::copy] (unbend arm)
SmUnbendVolume::operator==SmUnbendVolume.cpp:17729[Volume::approx_eq] (unbend arm), [UnbendVolume::members_eq]
SmUnbendVolume::EvaluateSmUnbendVolume.cpp:1029186[UnbendVolume::evaluate]
SmUnbendVolume::EvaluateSimpleSmUnbendVolume.cpp:1314160[UnbendVolume::evaluate_simple]
SmUnbendVolume::EvaluateBoundingBoxSimpleSmUnbendVolume.cpp:1496112[UnbendVolume::evaluate_bounding_box_simple]
SmUnbendVolume::TrimParamBoundingBoxSimpleSmUnbendVolume.cpp:182566[UnbendVolume::trim_param_bounding_box_simple]
SmUnbendVolume::InvEvaluateGuessPointSimpleSmUnbendVolume.cpp:206625[UnbendVolume::inv_evaluate_guess_point_simple]
SmUnbendVolume::GlobalPointSolveSimpleSmUnbendVolume.cpp:210058[UnbendVolume::global_point_solve_simple]
SmUnbendVolume::LocalPointSolveSimpleSmUnbendVolume.cpp:216529[UnbendVolume::local_point_solve_simple]
SmUnbendVolume::IsBoundedSimpleSmUnbendVolume.cpp:22106[UnbendVolume::is_bounded_simple]
SmUnbendVolume::IsOnBoundarySimpleSmUnbendVolume.cpp:236025[UnbendVolume::is_on_boundary_simple]
SmUnbendVolume::IsLineInParamDomainSimpleSmUnbendVolume.cpp:239762[UnbendVolume::is_line_in_param_domain_simple]
SmUnbendVolume::IsCurveInParamDomainSimpleSmUnbendVolume.cpp:246738[UnbendVolume::is_curve_in_param_domain_simple]
SmUnbendVolume::ReadFromDBSmUnbendVolume.cpp:261472[UnbendVolume::read_from_db]
SmUnbendVolume::IsKindOfSmUnbendVolume.cpp:31024[UNBEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends
Module file-header table (24 rows)
RustUpstream
[UnbendVolume]SmUnbendVolume (members m_dUnbendNeutralDist, m_dSingularityTol)
[UnbendVolume::new], DefaultSmUnbendVolume(const SmContext*)
[UnbendVolume::create]SmUnbendVolume(crContext, Center, Axis, MidDir, NeutralDist, SingularityTol)
[Volume::copy] (unbend arm)SmUnbendVolume(const SmUnbendVolume&, SmBoolean), Copy
Drop (implicit)~SmUnbendVolume
[Volume::approx_eq] (unbend arm), [UnbendVolume::members_eq]operator==
[UnbendVolume::natural_param_domain]GetNaturalParamDomain
[UnbendVolume::legal_min_u]GetLegalMinU
[Volume::unbend_origin], [Volume::unbend_axis], [Volume::unbend_mid_dir], [Volume::unbend_binormal]GetUnbendOrigin, GetUnbendAxis, GetUnbendMidDir, GetUnbendBinormal
[UnbendVolume::unbend_neutral_dist], [UnbendVolume::singularity_tol]GetUnbendNeutralDist, m_dSingularityTol (GetSingularityTol)
[UnbendVolume::evaluate]Evaluate
[UnbendVolume::evaluate_simple]EvaluateSimple
[UnbendVolume::evaluate_bounding_box_simple]EvaluateBoundingBoxSimple
[UnbendVolume::trim_param_bounding_box_simple]TrimParamBoundingBoxSimple
[UnbendVolume::inv_evaluate_guess_point_simple]InvEvaluateGuessPointSimple
[UnbendVolume::global_point_solve_simple]GlobalPointSolveSimple
[UnbendVolume::local_point_solve_simple]LocalPointSolveSimple
[UnbendVolume::is_bounded_simple]IsBoundedSimple
[UnbendVolume::is_on_boundary_simple]IsOnBoundarySimple
[UnbendVolume::is_point_in_param_domain_simple]IsPointInParamDomainSimple
[UnbendVolume::is_line_in_param_domain_simple]IsLineInParamDomainSimple
[UnbendVolume::is_curve_in_param_domain_simple]IsCurveInParamDomainSimple
[UnbendVolume::read_from_db]ReadFromDB
[UNBEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friendsGetType, GetTypeString, GetClassString (SM_COMMON), IsKindOf

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