solidcore

Units / surface

surface.bend_volume green

Layer
24
Upstream lines
945
Functions
27
Rust module
surface::bend_volume

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

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

Notes

GREEN after curve.curve_p9 (PR #13): IsCurveInParamDomainSimple now calls Curve::is_on_positive_side_of_planes (takes &Kernel); difftest 2347 cases, 2347 pass bit-identical (max_rel_err 0), 0 deferred (the 74 curve.curve_p9 deferrals are gone), --perturb SENSITIVE 2347/2347. The older PARTIAL text below is superseded. PARTIAL: difftest 2347 cases (847 fixture + 1500 generated), 2273 pass bit-identical, 74 deferred (curve.curve_p9 74: IsCurveInParamDomainSimple -> SmCurve::IsOnPositiveSideOfPlanes), max_rel_err 0 (ReadFromDB base read wired by surface.volume_p2); 30k-seed run clean (30847 cases); --perturb SENSITIVE; wired into surface.volume_p1 dispatch (VolumeKind::Bend now carries BendVolume; no UNPORTED(surface.bend_volume) stubs remain); component constructor ported as BendVolume::create; 27 fns; largest: SmBendVolume::EvaluateBoundingBoxSimple, SmBendVolume::Evaluate, SmBendVolume::EvaluateSimple, SmBendVolume::ReadFromDB; cycle back-edges (call into later units; stub or co-port): surface.volume_p2(1); unit-SCC #22 (220 units); 319 upstream test entry points reach this unit

Difftest

Cases
2,347
Passed
2,347
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.extent3d green geom.object partial geom.solution_array partial geom.tol green geom.vector3d green surface.volume_p1 green topology.database_io green

Soft dependencies: curve.curve_p9 green geom.extent1d green geom.pseudo_box green

Dependents: none

Soft dependents: surface.volume_p2 partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmBendVolume::SmBendVolumeSmBendVolume.h:3462[BendVolume]
SmBendVolume::~SmBendVolumeSmBendVolume.h:3601Drop (implicit)
SmBendVolume::GetLegalMinUSmBendVolume.h:3931[BendVolume::legal_min_u]
SmBendVolume::GetBendOriginSmBendVolume.h:3971[Volume::bend_origin], [Volume::bend_axis], [Volume::bend_mid_dir], [Volume::bend_binormal]
SmBendVolume::GetBendAxisSmBendVolume.h:3981[Volume::bend_origin], [Volume::bend_axis], [Volume::bend_mid_dir], [Volume::bend_binormal]
SmBendVolume::GetBendMidDirSmBendVolume.h:3991[Volume::bend_origin], [Volume::bend_axis], [Volume::bend_mid_dir], [Volume::bend_binormal]
SmBendVolume::GetBendBinormalSmBendVolume.h:4001[Volume::bend_origin], [Volume::bend_axis], [Volume::bend_mid_dir], [Volume::bend_binormal]
SmBendVolume::GetClassStringSmBendVolume.h:7311[BEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends
SmBendVolume::GetTypeSmBendVolume.h:7311[BEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends
SmBendVolume::GetTypeStringSmBendVolume.h:7311[BEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends
SmBendVolume::SmBendVolumeSmBendVolume.cpp:13010[BendVolume]
SmBendVolume::CopySmBendVolume.cpp:16812[Volume::copy] (bend arm)
SmBendVolume::operator==SmBendVolume.cpp:18729[Volume::approx_eq] (bend arm), [BendVolume::members_eq]
SmBendVolume::GetNaturalParamDomainSmBendVolume.cpp:36515[BendVolume::natural_param_domain]
SmBendVolume::EvaluateSmBendVolume.cpp:1057141[BendVolume::evaluate]
SmBendVolume::EvaluateSimpleSmBendVolume.cpp:1261124[BendVolume::evaluate_simple]
SmBendVolume::EvaluateBoundingBoxSimpleSmBendVolume.cpp:1405286[BendVolume::evaluate_bounding_box_simple]
SmBendVolume::TrimParamBoundingBoxSimpleSmBendVolume.cpp:214743[BendVolume::trim_param_bounding_box_simple]
SmBendVolume::InvEvaluateGuessPointSimpleSmBendVolume.cpp:271336[BendVolume::inv_evaluate_guess_point_simple]
SmBendVolume::GlobalPointSolveSimpleSmBendVolume.cpp:275658[BendVolume::global_point_solve_simple]
SmBendVolume::LocalPointSolveSimpleSmBendVolume.cpp:282146[BendVolume::local_point_solve_simple]
SmBendVolume::IsBoundedSimpleSmBendVolume.cpp:28756[BendVolume::is_bounded_simple]
SmBendVolume::IsPointInParamDomainSimpleSmBendVolume.cpp:302614[BendVolume::is_point_in_param_domain_simple]
SmBendVolume::IsLineInParamDomainSimpleSmBendVolume.cpp:308614[BendVolume::is_line_in_param_domain_simple]
SmBendVolume::IsCurveInParamDomainSimpleSmBendVolume.cpp:311324[BendVolume::is_curve_in_param_domain_simple]
SmBendVolume::ReadFromDBSmBendVolume.cpp:329172[BendVolume::read_from_db]
SmBendVolume::IsKindOfSmBendVolume.cpp:37824[BEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends
Module file-header table (23 rows)
RustUpstream
[BendVolume]SmBendVolume (members m_dBendNeutralDist, m_dSingularityTol)
[BendVolume::new], DefaultSmBendVolume(const SmContext*)
[BendVolume::create]SmBendVolume(crContext, Center, Axis, MidDir, NeutralDist, SingularityTol)
[Volume::copy] (bend arm)SmBendVolume(const SmBendVolume&, SmBoolean), Copy
Drop (implicit)~SmBendVolume
[Volume::approx_eq] (bend arm), [BendVolume::members_eq]operator==
[BendVolume::natural_param_domain]GetNaturalParamDomain
[BendVolume::legal_min_u]GetLegalMinU
[Volume::bend_origin], [Volume::bend_axis], [Volume::bend_mid_dir], [Volume::bend_binormal]GetBendOrigin, GetBendAxis, GetBendMidDir, GetBendBinormal
[BendVolume::bend_neutral_dist], [BendVolume::singularity_tol]GetBendNeutralDist, GetSingularityTol
[BendVolume::evaluate]Evaluate
[BendVolume::evaluate_simple]EvaluateSimple
[BendVolume::evaluate_bounding_box_simple]EvaluateBoundingBoxSimple
[BendVolume::trim_param_bounding_box_simple]TrimParamBoundingBoxSimple
[BendVolume::inv_evaluate_guess_point_simple]InvEvaluateGuessPointSimple
[BendVolume::global_point_solve_simple]GlobalPointSolveSimple
[BendVolume::local_point_solve_simple]LocalPointSolveSimple
[BendVolume::is_bounded_simple]IsBoundedSimple
[BendVolume::is_point_in_param_domain_simple]IsPointInParamDomainSimple
[BendVolume::is_line_in_param_domain_simple]IsLineInParamDomainSimple
[BendVolume::is_curve_in_param_domain_simple]IsCurveInParamDomainSimple
[BendVolume::read_from_db]ReadFromDB
[BEND_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