Units / surface
surface.volume_p2 partial
- Layer
- 25
- Upstream lines
- 1,490
- Functions
- 18
- Rust module
surface::volume::p2
Source: crates/solidcore/src/surface/volume/p2.rs
Upstream: source/SMLib/src/SmVolume.cpp
Notes
difftest partial: 11220 cases (9220 fixtures incl. 5014 bend and 2290 unbend cases + 2000 generated), 10922 pass, 298 deferred (intersect.curve_class_p4 162: bend IsCurveInParamDomainSimple -> SmCurve::IsOnPositiveSideOfPlanes; surface.surface_p8 136: unbend IsCurveInParamDomainSimple -> SmCurve::HasPlaneCrossings), max_rel_err 0; 100k-seed run clean; --perturb SENSITIVE; after surface.bend_volume (PR #22): bend overrides (EvaluateBoundingBoxSimple, GlobalPointSolveSimple, LocalPointSolveSimple, ReadFromDB) dispatched, SmBendVolume::ReadFromDB reads the base data (removes the bend unit's deferred read_db case), shim builds default and component bends (kinds 6, 7); the bend and unbend ReadDb FFI guards reuse this unit's strict text grammar; after surface.unbend_volume (PR #20): its CO-PORTED SmVolume::EvaluatePoint / IsPointInParamDomain replaced by this unit's, unbend overrides and SmUnbendVolume::ReadFromDB wired (shim builds component unbends); wired UNPORTED(surface.volume_p2) in geom.transform, surface.twist_volume, curve.crv_in_volume, geom.tol, intersect.point_class (volume branch; not exercised) (geom.transform and surface.twist_volume promoted to green). 18 fns; largest: SmVolume::EvaluateBoundingBoxSimple, SmVolume::EvaluateBoundingBox, SmVolume::EvaluatePseudoBoxSimple, SmVolume::InvMapPoint; unit-SCC #22 (220 units); 317 upstream test entry points reach this unit Re-run (PR #118, GlobalCurveIntersect wired; HasPlaneCrossings ignores its status): 11220 cases, 11058 pass, 162 deferred (intersect.curve_class_p4), 0 failed.
Difftest
- Cases
- 11,220
- Passed
- 11,058
- Deferred
- 162
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
intersect.curve_class_p4 claimed | 162 |
Report JSON (per-case results)
Dependencies
Depends on: geom.extent1d green geom.extent3d green geom.local_solve_nd green geom.pseudo_box green geom.solution_array partial geom.vector3d green surface.volume_p1 green topology.database_io green
Soft dependencies: geom.transform green surface.b_spline_volume green surface.bend_volume green surface.twist_volume green surface.unbend_volume green
Dependents: surface.srf_in_volume partial
Soft dependents: intersect.curve_class_p8 partial intersect.point_class partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmVolume::IsPointInParamDomain | SmVolume.cpp:919 | 25 | [Volume::is_point_in_param_domain] |
SmVolume::IsLineInInSpaceDomain | SmVolume.cpp:1097 | 39 | [Volume::is_line_in_in_space_domain] |
SmVolume::IsBoxInParamDomain | SmVolume.cpp:1183 | 30 | [Volume::is_box_in_param_domain] |
SmVolume::IsPseudoBoxInInSpaceDomain | SmVolume.cpp:1388 | 53 | [Volume::is_pseudo_box_in_in_space_domain] |
SmVolume::EvaluateBoundingBox | SmVolume.cpp:1692 | 176 | [Volume::evaluate_bounding_box] |
SmVolume::MapPseudoBox | SmVolume.cpp:2058 | 103 | [Volume::map_pseudo_box] |
SmVolume::EvaluatePoint | SmVolume.cpp:3263 | 13 | [Volume::evaluate_point] |
SmVolume::Evaluate1stDerivatives | SmVolume.cpp:3283 | 31 | [Volume::evaluate_1st_derivatives] |
SmVolume::InvEvaluatePoint | SmVolume.cpp:3411 | 99 | [Volume::inv_evaluate_point] |
SmVolume::InvMapPoint | SmVolume.cpp:3907 | 132 | [Volume::inv_map_point] |
SmVolume::GlobalPointSolve | SmVolume.cpp:4512 | 95 | [Volume::global_point_solve] |
SmVolume::HasDiscontinuities | SmVolume.cpp:5220 | 54 | [Volume::has_discontinuities] |
SmVolume::EvaluateBoundingBoxSimple | SmVolume.cpp:5865 | 180 | [Volume::evaluate_bounding_box_simple] |
SmVolume::EvaluatePseudoBoxSimple | SmVolume.cpp:6057 | 159 | [Volume::evaluate_pseudo_box_simple] |
SmVolume::InvEvaluatePointSimple | SmVolume.cpp:6665 | 59 | [Volume::inv_evaluate_point_simple] |
SmVolume::GlobalPointSolveSimple | SmVolume.cpp:6788 | 45 | [Volume::global_point_solve_simple] |
SmVolume::LocalPointSolveSimple | SmVolume.cpp:6857 | 108 | [Volume::local_point_solve_simple] |
SmVolume::ReadFromDB | SmVolume.cpp:8104 | 89 | [Volume::read_from_db] |
Module file-header table (19 rows)
| Rust | Upstream |
|---|---|
[Volume::is_point_in_param_domain] | IsPointInParamDomain |
[Volume::is_line_in_in_space_domain] | IsLineInInSpaceDomain |
[Volume::is_box_in_param_domain] | IsBoxInParamDomain |
[Volume::is_pseudo_box_in_in_space_domain] | IsPseudoBoxInInSpaceDomain |
[Volume::evaluate_bounding_box] | EvaluateBoundingBox |
[Volume::map_pseudo_box] | MapPseudoBox |
[Volume::evaluate_point] | EvaluatePoint |
[Volume::evaluate_1st_derivatives] | Evaluate1stDerivatives |
[Volume::inv_evaluate_point] | InvEvaluatePoint |
[Volume::inv_map_point] | InvMapPoint |
[Volume::global_point_solve] | GlobalPointSolve |
[Volume::has_discontinuities] | HasDiscontinuities |
[Volume::evaluate_bounding_box_simple] | EvaluateBoundingBoxSimple (virtual) |
[Volume::evaluate_pseudo_box_simple] | EvaluatePseudoBoxSimple |
[Volume::inv_evaluate_point_simple] | InvEvaluatePointSimple |
[Volume::global_point_solve_simple] | GlobalPointSolveSimple (virtual) |
[Volume::local_point_solve_simple] | LocalPointSolveSimple (virtual) |
[Volume::read_from_db] | ReadFromDB (static, by type) |
[Volume::read_base_from_db] | ReadFromDB(SmVolume_TYPE, ..) (base data of an existing volume) |
Upstream tests reaching this unit
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, SM_API_test:TestSmCreateRectangle, SM_API_test:TestSmCreateRegularPolygon