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 function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
N_CPolygonGetCPts | NL_FrameBasic.cpp:236 | 5 | &[Vec3] / &[CPoint] slices |
N_CPolygonFromCPts | NL_FrameBasic.cpp:276 | 5 | &[Vec3] / &[CPoint] slices |
N_PolygonGetBBox | NL_FrameBasic.cpp:795 | 41 | [polygon_bbox] |
N_EPolygonFromPts | NL_FrameBasic.cpp:964 | 5 | &[Vec3] / &[CPoint] slices |
N_EPolygonGetPts | NL_FrameBasic.cpp:1002 | 5 | &[Vec3] / &[CPoint] slices |
N_CNetFromCPts | NL_FrameBasic.cpp:1936 | 6 | &[Vec<Vec3>] / &[Vec<CPoint>] |
N_ENetFromPts | NL_FrameBasic.cpp:2082 | 6 | &[Vec<Vec3>] / &[Vec<CPoint>] |
N_ENetGetBBox | NL_FrameBasic.cpp:2117 | 48 | [net_bbox] |
N_ENetGetPts | NL_FrameBasic.cpp:2196 | 6 | &[Vec<Vec3>] / &[Vec<CPoint>] |
N_VectorDot | NL_Geom.cpp:51 | 4 | [Vec3::dot] |
N_VectorDotRef | NL_Geom.cpp:84 | 4 | [Vec3::dot] |
N_VectorCross | NL_Geom.cpp:116 | 6 | [Vec3::cross] |
N_VectorCrossRef | NL_Geom.cpp:151 | 6 | [Vec3::cross] |
N_VectorScale | NL_Geom.cpp:188 | 6 | alpha * v / v * alpha |
N_VectorReverse | NL_Geom.cpp:222 | 6 | -v |
N_VectorReverseInPlace | NL_Geom.cpp:256 | 6 | -v |
N_VectorScaleRef | NL_Geom.cpp:375 | 6 | alpha * v / v * alpha |
N_VectorSum | NL_Geom.cpp:410 | 6 | a + b |
N_VectorCombine | NL_Geom.cpp:448 | 6 | [combine2_pts] |
N_VectorDiff | NL_Geom.cpp:483 | 9 | a - b / pe - ps |
N_VectorDiffCPts | NL_Geom.cpp:524 | 13 | [vector_diff_cpts] |
N_VectorDir | NL_Geom.cpp:566 | 9 | a - b / pe - ps |
N_VectorCreate | NL_Geom.cpp:604 | 6 | [Vec3::new], Copy |
N_VectorCopy | NL_Geom.cpp:639 | 6 | [Vec3::new], Copy |
N_VectorMagnitude | NL_Geom.cpp:714 | 7 | [Vec3::length] |
N_VectorMagnitudeRef | NL_Geom.cpp:752 | 8 | [Vec3::length] |
N_VectorNormalize | NL_Geom.cpp:791 | 26 | [normalize] |
N_VectorNormalizeRef | NL_Geom.cpp:843 | 22 | [normalize] |
N_VectorPtAlongVector | NL_Geom.cpp:940 | 10 | [pt_along_vector] |
N_VectorsCosAngle | NL_Geom.cpp:1021 | 28 | [vectors_cos_angle] |
N_VectorsAngle | NL_Geom.cpp:1077 | 29 | [vectors_angle] |
N_IsectLineLine | NL_Geom.cpp:1215 | 99 | [isect_line_line], [LineLineIsect] |
N_IsectLinePlane | NL_Geom.cpp:1552 | 73 | [isect_line_plane], [LinePlaneIsect] |
N_ProjectPtLine | NL_Geom.cpp:1757 | 18 | [project_pt_line] |
N_ProjectPtPlane | NL_Geom.cpp:1922 | 23 | [project_pt_plane] |
N_DistPtPt | NL_Geom.cpp:2678 | 8 | [dist_pt_pt] / [dist_sq_pt_pt] |
N_DistSqPtPt | NL_Geom.cpp:2756 | 4 | [dist_pt_pt] / [dist_sq_pt_pt] |
N_PtsAreEqual | NL_Geom.cpp:2823 | 11 | == on [Vec3] |
N_DistPtLineSeg | NL_Geom.cpp:2868 | 62 | [dist_pt_line_seg], [dist_pt_line_seg_tol] |
N_DistPerpPtLineSeg | NL_Geom.cpp:2963 | 56 | [dist_perp_pt_line_seg], [dist_perp_pt_line_seg_tol] |
N_DistPolygon | NL_Geom.cpp:3050 | 14 | [dist_polygon] / [dist_cpolygon] |
N_DistCPolygon | NL_Geom.cpp:3094 | 14 | [dist_polygon] / [dist_cpolygon] |
N_DistCptCpt | NL_Geom.cpp:3138 | 13 | [dist_cpt_cpt] / [dist_cpt_cpt_homo] |
N_DistCptCptHomo | NL_Geom.cpp:3181 | 13 | [dist_cpt_cpt] / [dist_cpt_cpt_homo] |
N_DistPtInfLine | NL_Geom.cpp:3227 | 25 | [dist_pt_inf_line] |
N_DistSignedPtPlane | NL_Geom.cpp:3340 | 10 | [dist_signed_pt_plane] |
N_LineSetBoundingFlag | NL_Geom.cpp:3451 | 4 | field [LineSeg::bounded] |
N_LineGetData | NL_Geom.cpp:3523 | 6 | fields of [LineSeg] |
N_BBoxGetDiagonal | NL_Geom.cpp:3644 | 16 | [MinMaxBox::diagonal] |
N_CreateLineStartDirVector | NL_Geom.cpp:3875 | 6 | [LineSeg::new] |
N_CreatePlanePtNormal | NL_Geom.cpp:3912 | 8 | [Plane], [Plane::new] |
N_CreateInterval | NL_Geom.cpp:3951 | 5 | [Interval], [Interval::new] |
N_IntervalGetData | NL_Geom.cpp:3987 | 5 | fields of [Interval] |
N_CreateRectangle | NL_Geom.cpp:4025 | 7 | [Rectangle], [Rectangle::new] |
N_RectangleGetData | NL_Geom.cpp:4065 | 7 | fields of [Rectangle] |
N_GetBBoxData | NL_Geom.cpp:4103 | 9 | fields of [MinMaxBox] |
N_BBoxDefine | NL_Geom.cpp:4143 | 9 | [MinMaxBox], [MinMaxBox::new] |
N_PlaneGetData | NL_Geom.cpp:4183 | 5 | fields of [Plane] |
N_PlaneGetNormal | NL_Geom.cpp:4217 | 4 | fields of [Plane] |
N_CreateRotationMatrixAboutAxis | NL_Geom.cpp:4265 | 67 | [rotation_matrix_about_axis] |
N_CreateTransformMatrixFromAxes | NL_Geom.cpp:4387 | 152 | [transform_matrix_from_axes], [Frame] |
N_CptReflect | NL_Geom.cpp:5983 | 50 | [cpt_reflect] |
N_CPtsAreColinear | NL_Geom.cpp:6068 | 61 | [cpts_are_colinear], [cpts_are_colinear_tol], [ColinearDim] |
N_PlanePtNormalToImplicit | NL_Geom.cpp:6398 | 24 | [plane_pt_normal_to_implicit] |
Module file-header table (49 rows)
| Rust | Upstream |
|---|---|
[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] slices | NL_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 * alpha | N_VectorScale, N_VectorScaleRef |
-v | N_VectorReverse, N_VectorReverseInPlace |
a + b | N_VectorSum |
[combine2_pts] | N_VectorCombine |
a - b / pe - ps | N_VectorDiff / N_VectorDir |
[vector_diff_cpts] | N_VectorDiffCPts |
[Vec3::new], Copy | N_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