solidcore

Units / nurbs

nlib.geom green

Layer
1
Upstream lines
1,244
Functions
64
Rust module
nurbs::geom

Source: crates/solidcore/src/nurbs/geom.rs

Upstream: source/SMLib/src/NL_FrameBasic.cpp, source/SMLib/src/NL_Geom.cpp

Notes

green: 3173 difftest cases (173 fixture + 3000 generated), 0 deferred, max_rel_err 0 (bit-identical). No UNPORTED(nlib.geom) stubs existed to wire. 64 fns; largest: N_CreateTransformMatrixFromAxes, N_IsectLineLine, N_IsectLinePlane, N_CreateRotationMatrixAboutAxis; unit-SCC #2 (3 units); 317 upstream test entry points reach this unit

Difftest

Cases
3,173
Passed
3,173
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: nlib.math green

Soft dependencies: none

Dependents: nlib.bezier green nlib.crv_adv_p1 green nlib.crv_approx green nlib.crv_basic green nlib.crv_common green nlib.crv_fit_p3 green nlib.crv_geom green nlib.crv_nurb green nlib.crv_offset green nlib.srf_adv_p1 green nlib.srf_adv_p2 green nlib.srf_adv_p3 green nlib.srf_adv_p4 green nlib.srf_adv_p5 green nlib.srf_adv_p6 green nlib.srf_basic green nlib.srf_common green nlib.srf_nurb green nlib.srf_offset green nurbs.b_spline_surface_n_lib_p1 green

Soft dependents: nlib.basis_adv green nlib.basis_basic green nlib.crv_adv_p2 green nlib.crv_fit_p1 green nlib.crv_tool_p1 green nlib.crv_tool_p2 green nlib.iges green nlib.srf_fit green nlib.srf_tool_p2 green nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p2 green nurbs.b_spline_curve_p3 partial nurbs.nurbs_crv green primitive.primitive_creation_p1 claimed

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
N_CPolygonGetCPtsNL_FrameBasic.cpp:2365&[Vec3] / &[CPoint] slices
N_CPolygonFromCPtsNL_FrameBasic.cpp:2765&[Vec3] / &[CPoint] slices
N_PolygonGetBBoxNL_FrameBasic.cpp:79541[polygon_bbox]
N_EPolygonFromPtsNL_FrameBasic.cpp:9645&[Vec3] / &[CPoint] slices
N_EPolygonGetPtsNL_FrameBasic.cpp:10025&[Vec3] / &[CPoint] slices
N_CNetFromCPtsNL_FrameBasic.cpp:19366&[Vec<Vec3>] / &[Vec<CPoint>]
N_ENetFromPtsNL_FrameBasic.cpp:20826&[Vec<Vec3>] / &[Vec<CPoint>]
N_ENetGetBBoxNL_FrameBasic.cpp:211748[net_bbox]
N_ENetGetPtsNL_FrameBasic.cpp:21966&[Vec<Vec3>] / &[Vec<CPoint>]
N_VectorDotNL_Geom.cpp:514[Vec3::dot]
N_VectorDotRefNL_Geom.cpp:844[Vec3::dot]
N_VectorCrossNL_Geom.cpp:1166[Vec3::cross]
N_VectorCrossRefNL_Geom.cpp:1516[Vec3::cross]
N_VectorScaleNL_Geom.cpp:1886alpha * v / v * alpha
N_VectorReverseNL_Geom.cpp:2226-v
N_VectorReverseInPlaceNL_Geom.cpp:2566-v
N_VectorScaleRefNL_Geom.cpp:3756alpha * v / v * alpha
N_VectorSumNL_Geom.cpp:4106a + b
N_VectorCombineNL_Geom.cpp:4486[combine2_pts]
N_VectorDiffNL_Geom.cpp:4839a - b / pe - ps
N_VectorDiffCPtsNL_Geom.cpp:52413[vector_diff_cpts]
N_VectorDirNL_Geom.cpp:5669a - b / pe - ps
N_VectorCreateNL_Geom.cpp:6046[Vec3::new], Copy
N_VectorCopyNL_Geom.cpp:6396[Vec3::new], Copy
N_VectorMagnitudeNL_Geom.cpp:7147[Vec3::length]
N_VectorMagnitudeRefNL_Geom.cpp:7528[Vec3::length]
N_VectorNormalizeNL_Geom.cpp:79126[normalize]
N_VectorNormalizeRefNL_Geom.cpp:84322[normalize]
N_VectorPtAlongVectorNL_Geom.cpp:94010[pt_along_vector]
N_VectorsCosAngleNL_Geom.cpp:102128[vectors_cos_angle]
N_VectorsAngleNL_Geom.cpp:107729[vectors_angle]
N_IsectLineLineNL_Geom.cpp:121599[isect_line_line], [LineLineIsect]
N_IsectLinePlaneNL_Geom.cpp:155273[isect_line_plane], [LinePlaneIsect]
N_ProjectPtLineNL_Geom.cpp:175718[project_pt_line]
N_ProjectPtPlaneNL_Geom.cpp:192223[project_pt_plane]
N_DistPtPtNL_Geom.cpp:26788[dist_pt_pt] / [dist_sq_pt_pt]
N_DistSqPtPtNL_Geom.cpp:27564[dist_pt_pt] / [dist_sq_pt_pt]
N_PtsAreEqualNL_Geom.cpp:282311== on [Vec3]
N_DistPtLineSegNL_Geom.cpp:286862[dist_pt_line_seg], [dist_pt_line_seg_tol]
N_DistPerpPtLineSegNL_Geom.cpp:296356[dist_perp_pt_line_seg], [dist_perp_pt_line_seg_tol]
N_DistPolygonNL_Geom.cpp:305014[dist_polygon] / [dist_cpolygon]
N_DistCPolygonNL_Geom.cpp:309414[dist_polygon] / [dist_cpolygon]
N_DistCptCptNL_Geom.cpp:313813[dist_cpt_cpt] / [dist_cpt_cpt_homo]
N_DistCptCptHomoNL_Geom.cpp:318113[dist_cpt_cpt] / [dist_cpt_cpt_homo]
N_DistPtInfLineNL_Geom.cpp:322725[dist_pt_inf_line]
N_DistSignedPtPlaneNL_Geom.cpp:334010[dist_signed_pt_plane]
N_LineSetBoundingFlagNL_Geom.cpp:34514field [LineSeg::bounded]
N_LineGetDataNL_Geom.cpp:35236fields of [LineSeg]
N_BBoxGetDiagonalNL_Geom.cpp:364416[MinMaxBox::diagonal]
N_CreateLineStartDirVectorNL_Geom.cpp:38756[LineSeg::new]
N_CreatePlanePtNormalNL_Geom.cpp:39128[Plane], [Plane::new]
N_CreateIntervalNL_Geom.cpp:39515[Interval], [Interval::new]
N_IntervalGetDataNL_Geom.cpp:39875fields of [Interval]
N_CreateRectangleNL_Geom.cpp:40257[Rectangle], [Rectangle::new]
N_RectangleGetDataNL_Geom.cpp:40657fields of [Rectangle]
N_GetBBoxDataNL_Geom.cpp:41039fields of [MinMaxBox]
N_BBoxDefineNL_Geom.cpp:41439[MinMaxBox], [MinMaxBox::new]
N_PlaneGetDataNL_Geom.cpp:41835fields of [Plane]
N_PlaneGetNormalNL_Geom.cpp:42174fields of [Plane]
N_CreateRotationMatrixAboutAxisNL_Geom.cpp:426567[rotation_matrix_about_axis]
N_CreateTransformMatrixFromAxesNL_Geom.cpp:4387152[transform_matrix_from_axes], [Frame]
N_CptReflectNL_Geom.cpp:598350[cpt_reflect]
N_CPtsAreColinearNL_Geom.cpp:606861[cpts_are_colinear], [cpts_are_colinear_tol], [ColinearDim]
N_PlanePtNormalToImplicitNL_Geom.cpp:639824[plane_pt_normal_to_implicit]
Module file-header table (49 rows)
RustUpstream
[LineSeg]NL_LINESEG
[LineSeg::new]N_CreateLineStartDirVector
field [LineSeg::bounded]N_LineSetBoundingFlag
fields of [LineSeg]N_LineGetData
[Plane], [Plane::new]NL_PLANE, N_CreatePlanePtNormal
fields of [Plane]N_PlaneGetData, N_PlaneGetNormal
[MinMaxBox], [MinMaxBox::new]NL_MINMAXBOX, N_BBoxDefine
fields of [MinMaxBox]N_GetBBoxData
[MinMaxBox::diagonal]N_BBoxGetDiagonal
[Interval], [Interval::new]NL_INTERVAL, N_CreateInterval
fields of [Interval]N_IntervalGetData
[Rectangle], [Rectangle::new]NL_RECTANGLE, N_CreateRectangle
fields of [Rectangle]N_RectangleGetData
&[Vec3] / &[CPoint] slicesNL_EPOLYGON / NL_CPOLYGON, N_EPolygonFromPts, N_EPolygonGetPts, N_CPolygonFromCPts, N_CPolygonGetCPts
&[Vec<Vec3>] / &[Vec<CPoint>]NL_ENET / NL_CNET, N_ENetFromPts, N_ENetGetPts, N_CNetFromCPts
[polygon_bbox]N_PolygonGetBBox
[net_bbox]N_ENetGetBBox
[Vec3::dot]N_VectorDot, N_VectorDotRef
[Vec3::cross]N_VectorCross, N_VectorCrossRef
alpha * v / v * alphaN_VectorScale, N_VectorScaleRef
-vN_VectorReverse, N_VectorReverseInPlace
a + bN_VectorSum
[combine2_pts]N_VectorCombine
a - b / pe - psN_VectorDiff / N_VectorDir
[vector_diff_cpts]N_VectorDiffCPts
[Vec3::new], CopyN_VectorCreate, N_VectorCopy
[Vec3::length]N_VectorMagnitude, N_VectorMagnitudeRef
[normalize]N_VectorNormalize, N_VectorNormalizeRef
[pt_along_vector]N_VectorPtAlongVector
[vectors_cos_angle]N_VectorsCosAngle
[vectors_angle]N_VectorsAngle
[isect_line_line], [LineLineIsect]N_IsectLineLine
[isect_line_plane], [LinePlaneIsect]N_IsectLinePlane
[project_pt_line]N_ProjectPtLine
[project_pt_plane]N_ProjectPtPlane
[dist_pt_pt] / [dist_sq_pt_pt]N_DistPtPt / N_DistSqPtPt
== on [Vec3]N_PtsAreEqual
[dist_pt_line_seg], [dist_pt_line_seg_tol]N_DistPtLineSeg
[dist_perp_pt_line_seg], [dist_perp_pt_line_seg_tol]N_DistPerpPtLineSeg
[dist_polygon] / [dist_cpolygon]N_DistPolygon / N_DistCPolygon
[dist_cpt_cpt] / [dist_cpt_cpt_homo]N_DistCptCpt / N_DistCptCptHomo
[dist_pt_inf_line]N_DistPtInfLine
[dist_signed_pt_plane]N_DistSignedPtPlane
[rotation_matrix_about_axis]N_CreateRotationMatrixAboutAxis
[transform_matrix_from_axes], [Frame]N_CreateTransformMatrixFromAxes
[cpt_reflect]N_CptReflect
[cpts_are_colinear], [cpts_are_colinear_tol], [ColinearDim]N_CPtsAreColinear (NL_THREED / NL_FOURD)
[plane_pt_normal_to_implicit]N_PlanePtNormalToImplicit
[PI], [LINE_TOL]NL_PI, NL_LTOL

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