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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmBendVolume::SmBendVolume | SmBendVolume.h:346 | 2 | [BendVolume] |
SmBendVolume::~SmBendVolume | SmBendVolume.h:360 | 1 | Drop (implicit) |
SmBendVolume::GetLegalMinU | SmBendVolume.h:393 | 1 | [BendVolume::legal_min_u] |
SmBendVolume::GetBendOrigin | SmBendVolume.h:397 | 1 | [Volume::bend_origin], [Volume::bend_axis], [Volume::bend_mid_dir], [Volume::bend_binormal] |
SmBendVolume::GetBendAxis | SmBendVolume.h:398 | 1 | [Volume::bend_origin], [Volume::bend_axis], [Volume::bend_mid_dir], [Volume::bend_binormal] |
SmBendVolume::GetBendMidDir | SmBendVolume.h:399 | 1 | [Volume::bend_origin], [Volume::bend_axis], [Volume::bend_mid_dir], [Volume::bend_binormal] |
SmBendVolume::GetBendBinormal | SmBendVolume.h:400 | 1 | [Volume::bend_origin], [Volume::bend_axis], [Volume::bend_mid_dir], [Volume::bend_binormal] |
SmBendVolume::GetClassString | SmBendVolume.h:731 | 1 | [BEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends |
SmBendVolume::GetType | SmBendVolume.h:731 | 1 | [BEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends |
SmBendVolume::GetTypeString | SmBendVolume.h:731 | 1 | [BEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends |
SmBendVolume::SmBendVolume | SmBendVolume.cpp:130 | 10 | [BendVolume] |
SmBendVolume::Copy | SmBendVolume.cpp:168 | 12 | [Volume::copy] (bend arm) |
SmBendVolume::operator== | SmBendVolume.cpp:187 | 29 | [Volume::approx_eq] (bend arm), [BendVolume::members_eq] |
SmBendVolume::GetNaturalParamDomain | SmBendVolume.cpp:365 | 15 | [BendVolume::natural_param_domain] |
SmBendVolume::Evaluate | SmBendVolume.cpp:1057 | 141 | [BendVolume::evaluate] |
SmBendVolume::EvaluateSimple | SmBendVolume.cpp:1261 | 124 | [BendVolume::evaluate_simple] |
SmBendVolume::EvaluateBoundingBoxSimple | SmBendVolume.cpp:1405 | 286 | [BendVolume::evaluate_bounding_box_simple] |
SmBendVolume::TrimParamBoundingBoxSimple | SmBendVolume.cpp:2147 | 43 | [BendVolume::trim_param_bounding_box_simple] |
SmBendVolume::InvEvaluateGuessPointSimple | SmBendVolume.cpp:2713 | 36 | [BendVolume::inv_evaluate_guess_point_simple] |
SmBendVolume::GlobalPointSolveSimple | SmBendVolume.cpp:2756 | 58 | [BendVolume::global_point_solve_simple] |
SmBendVolume::LocalPointSolveSimple | SmBendVolume.cpp:2821 | 46 | [BendVolume::local_point_solve_simple] |
SmBendVolume::IsBoundedSimple | SmBendVolume.cpp:2875 | 6 | [BendVolume::is_bounded_simple] |
SmBendVolume::IsPointInParamDomainSimple | SmBendVolume.cpp:3026 | 14 | [BendVolume::is_point_in_param_domain_simple] |
SmBendVolume::IsLineInParamDomainSimple | SmBendVolume.cpp:3086 | 14 | [BendVolume::is_line_in_param_domain_simple] |
SmBendVolume::IsCurveInParamDomainSimple | SmBendVolume.cpp:3113 | 24 | [BendVolume::is_curve_in_param_domain_simple] |
SmBendVolume::ReadFromDB | SmBendVolume.cpp:3291 | 72 | [BendVolume::read_from_db] |
SmBendVolume::IsKindOf | SmBendVolume.cpp:3782 | 4 | [BEND_VOLUME_TYPE], [is_kind_of], [Volume::type_code] and friends |
Module file-header table (23 rows)
| Rust | Upstream |
|---|---|
[BendVolume] | SmBendVolume (members m_dBendNeutralDist, m_dSingularityTol) |
[BendVolume::new], Default | SmBendVolume(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 friends | GetType, 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