solidcore

Units / surface

surface.torus green

Layer
24
Upstream lines
1,180
Functions
21
Rust module
surface::torus

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

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

Notes

GREEN (merge of PR #29): 563 cases, 563 pass bit-identical, 0 deferred (SmSurfOfRevolution::Transform / ::ReadFromDB wired to surface.surf_of_revolution_p3; Surface::read_from_db still cannot hold a torus: DISPATCH GAP, no SurfaceKind variant). Was PARTIAL (PR #23): difftest 563 cases (63 fixture: TestSmGeneral torus STEP derivatives, smSurfaceTest analytic torus, smTopoTest torus, SmApiCreateTorus radii, swap/inside-out/partial-domain/explicit-generator edges; + 500 generated) over CreateCanonical, EvaluateSTEP(Point), ConvertUVFromSTEPToNURBS/NURBSToSTEP, CreateIsoParametricCurve, CreateOffsetSurface (+rebuild), RebuildSTEPFromNURBParameters, Transform, operator==, Copy; 545 pass bit-identical, 18 deferred (surface.surf_of_revolution_p3: SmSurfOfRevolution::Transform). ReadFromDB is ported up to SmSurfOfRevolution::ReadFromDB (unported; unit test only). SurfOfRevolution::make_nurb_with_sweep_params_using / rebuild_polar_converter take the iso-curve maker so the torus override is used (upstream virtual CreateIsoParametricCurve). 21 fns; cycle back-edges: surface.surf_of_revolution_p3(2), surface.surf_of_revolution_p2(1)

Difftest

Cases
563
Passed
563
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: curve.ellipse_p1 green curve.ellipse_p2 green geom.axis2_placement green geom.extent1d green geom.extent2d green geom.object 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 nurbs.b_spline_surface_p2 partial surface.surf_of_revolution_p1 green surface.surface_p2 partial topology.database_io green

Soft dependencies: curve.curve_p2 green geom.geom_utility_p1 green nurbs.b_spline_curve_p2 green

Dependents: none

Soft dependents: primitive.api_primitives claimed primitive.primitive_creation_p1 claimed surface.surface_p1 partial

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmTorus::SmTorusSmTorus.h:1171[Torus], [Torus::new], [TorusOptions]
SmTorus::~SmTorusSmTorus.h:1411Drop (implicit)
SmTorus::GetMaxAnalyticDomainSmTorus.h:2634[Torus::max_analytic_domain]
SmTorus::GetClassStringSmTorus.h:3281[Torus::is_kind_of], [Torus::TYPE], [Torus::type_code], [Torus::type_string], [Torus::class_string]
SmTorus::GetTypeSmTorus.h:3281[Torus::is_kind_of], [Torus::TYPE], [Torus::type_code], [Torus::type_string], [Torus::class_string]
SmTorus::GetTypeStringSmTorus.h:3281[Torus::is_kind_of], [Torus::TYPE], [Torus::type_code], [Torus::type_string], [Torus::class_string]
SmTorus::SmTorusSmTorus.cpp:3172[Torus], [Torus::new], [TorusOptions]
SmTorus::SmTorusSmTorus.cpp:1098[Torus], [Torus::new], [TorusOptions]
SmTorus::operator==SmTorus.cpp:12425[Torus::approx_eq]
SmTorus::CopySmTorus.cpp:15511Clone, [Torus::copy]
SmTorus::CreateCanonicalSmTorus.cpp:17253[Torus::create_canonical]
SmTorus::CreateOffsetSurfaceSmTorus.cpp:240198[Torus::create_offset_surface]
SmTorus::ConvertUVFromSTEPToNURBSSmTorus.cpp:445106[Torus::convert_uv_from_step_to_nurbs]
SmTorus::ConvertUVFromNURBSToSTEPSmTorus.cpp:55844[Torus::convert_uv_from_nurbs_to_step]
SmTorus::EvaluateSTEPSmTorus.cpp:618135[Torus::evaluate_step], [Torus::evaluate_step_point]
SmTorus::EvaluateSTEPPointSmTorus.cpp:7699[Torus::evaluate_step], [Torus::evaluate_step_point]
SmTorus::CreateIsoParametricCurveSmTorus.cpp:794171[Torus::create_iso_parametric_curve]
SmTorus::RebuildSTEPFromNURBParametersSmTorus.cpp:1270249[Torus::rebuild_step_from_nurb_parameters]
SmTorus::TransformSmTorus.cpp:155542[Torus::transform]
SmTorus::ReadFromDBSmTorus.cpp:184344[Torus::read_from_db]
SmTorus::IsKindOfSmTorus.cpp:18924[Torus::is_kind_of], [Torus::TYPE], [Torus::type_code], [Torus::type_string], [Torus::class_string]
Module file-header table (18 rows)
RustUpstream
[Torus], [Torus::new], [TorusOptions]SmTorus, SmTorus(crOrigin, crXAxis, crYAxis, crAnalUVDomain, ..)
[Torus::empty]SmTorus()
Clone, [Torus::copy]SmTorus(const SmTorus&), Copy
Drop (implicit)~SmTorus
[Torus::approx_eq]operator==
[Torus::create_canonical]CreateCanonical
[Torus::make_nurb]SmSurfOfRevolution::MakeNurb on a torus (virtual iso curves)
[Torus::create_offset_surface]CreateOffsetSurface
[Torus::convert_uv_from_step_to_nurbs]ConvertUVFromSTEPToNURBS
[Torus::convert_uv_from_nurbs_to_step]ConvertUVFromNURBSToSTEP
[Torus::evaluate_step], [Torus::evaluate_step_point]EvaluateSTEP, EvaluateSTEPPoint
[Torus::create_iso_parametric_curve]CreateIsoParametricCurve
[Torus::rebuild_step_from_nurb_parameters]RebuildSTEPFromNURBParameters
[Torus::transform]Transform
[Torus::read_from_db]ReadFromDB
[Torus::max_analytic_domain]GetMaxAnalyticDomain
[Torus::is_kind_of], [Torus::TYPE], [Torus::type_code], [Torus::type_string], [Torus::class_string]IsKindOf, GetType, GetTypeString, GetClassString (SM_COMMON)
[Torus::inside_out], [Torus::major_radius], [Torus::minor_radius]GetInsideOut, GetMajorRadius, GetMinorRadius (inline)

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