libclang call graph over SMLib/SM_API with conservative (CHA) virtual resolution and dead-debug-branch pruning; closure from in-scope SM_API entry points plus the native .smb reader used by test fixtures. plan/closure.md: files, unused code, hazards, threading. plan/modules.toml + plan/order.md: units, deps, layers, critical path. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
78 KiB
In-scope closure of SMLib for solidcore
Generated by harness/callgraph/write_closure.py (pipeline: extract.py -> build_graph.py ->
plan_units.py -> write_closure.py; see harness/callgraph/README.md). Upstream commit c9c5979.
Summary
| quantity | value |
|---|---|
| upstream SMLib + SM_API lines (src + inc) | 979541 |
| lines inside function bodies (all) | 667368 |
| in-scope function lines (CHA closure) | 392766 |
| in-scope function lines under RTA (informational) | 386862 |
| in-scope functions (CHA) | 6068 |
| idiom-mapped lines (containers/memory/error stacks -> Rust std, not ported as units) | 4863 |
| lines assigned to port units | 387903 |
| port units / layers | 260 / 65 |
| in-scope files (>=1 reachable function) | 327 |
| files with no reachable function | 163 |
Method
- AST source. libclang 21 (Python bindings) over
bin/cpp/compile_commands.json, i.e. the exact flags of the reference C++ build (-DNDEBUG -DNOMINMAX -DSM_GRAPHICS_CALLBACKS=1 -std=c++17, soSM_DEBUG_CODE,SM_USE_TBB,SM_USE_GLOBAL_CACHEare off;SM_GFX_CODEis on). All 224 SMLib + 13 SM_API TUs (plus the SM_API_test / prog_test TUs for test attribution) parse with zero errors. - Edges. Every
CALL_EXPR, function/method reference (DECL_REF_EXPR/MEMBER_REF_EXPR, which also captures function pointers and callbacks),new-> constructor,delete-> destructor of the static type (and of all derived classes), and constructor -> own destructor. Template members map to their primary template by qualified name. - Virtual calls (conservative). An unqualified call to a virtual method reaches the method and
every override in every (transitively) derived class (class-hierarchy analysis, CHA). Qualified
calls (
Base::f()) are non-virtual. The piplibclangbindings lackclang_getOverriddenCursors, so overrides are matched by USR method signature along the class hierarchy. RTA (dispatch only to classes whose constructor is reachable) is reported for information only; the CHA set is the plan. - Dead debug branches.
ifstatements whose condition is provably false in this build are not followed: never-written locals/file statics initialised toFALSE/0(the ubiquitousSmBoolean bDebugMe = FALSE; if (bDebugMe) {...}pattern),*Debug*flags andDebugLevel()comparisons against non-negative literals, combined with!/&&/||. 1135 such branches were pruned; they only draw/dump/print (Draw,smgfx_*,Dump, file I/O of debug snapshots). - Roots. The SM_API entry points listed below plus
SmBrep::ReadFromFile(the native .smb/.brp reader that every prog_test and pt_TestFiles fixture goes through; needed to feed difftests).
Entry points
- context (2):
SmApiCreateContext,SmApiGetOrCreateContext - primitive (27):
SmApiCreateArc,SmApiCreateBlendPrimitive,SmApiCreateBox,SmApiCreateCanonicalCurve,SmApiCreateCircle,SmApiCreateCone,SmApiCreateConeEllipticEnds,SmApiCreateCurve,SmApiCreateCylinder,SmApiCreateCylindricalBox,SmApiCreateEllipse,SmApiCreateHelix,SmApiCreateLine,SmApiCreateLineSegment,SmApiCreatePartialCone,SmApiCreatePartialCylinder,SmApiCreatePartialSphere,SmApiCreatePartialTorus,SmApiCreatePlanarCircle,SmApiCreatePlane,SmApiCreatePyramid,SmApiCreateRectangle,SmApiCreateRegularPolygon,SmApiCreateSphere,SmApiCreateSphereNoPole,SmApiCreateSwungPrimitive,SmApiCreateTorus - boolean (9):
SmApiBoolean,SmApiBooleanDifference,SmApiBooleanIntersection,SmApiBooleanLists,SmApiBooleanMerge,SmApiBooleanTrees,SmApiBooleanUnion,SmApiBooleanWithOptions,SmApiMergeBreps - fillet (7):
SmApiChamferFillet,SmApiCircularFillet,SmApiFilletEdges,SmApiFilletEdgesPerEdge,SmApiSetBevelCorners,SmApiSurfaceSurfaceFillet,SmApiVariableRadiusFillet - offset (2):
SmApiOffsetBrepFull,SmApiShellBrepFull - sweep (18):
SmApiCreateCurveSweep,SmApiCreateCurveSweepFromEdges,SmApiCreateCurveSweepFromFaces,SmApiCreateDraftSweep,SmApiCreateExtrude,SmApiCreateLinearSweep,SmApiCreateLinearSweepWithRepetitions,SmApiCreatePipeSweep,SmApiCreateRotationalSweep,SmApiCreateRotationalSweepWithRepetitions,SmApiCreateRuledSurface,SmApiCreateSkin,SmApiCreateSkinFromFaces,SmApiCreateSkinPrimitive,SmApiCreateSurfaceRevolution,SmApiCreateSweep,SmApiCreateSweepAlongPlanarPath,SmApiCreateTaperExtrude - heal (7):
SmApiHealBrep,SmApiSimpleFaceStitch,SmApiStitch,SmApiStitchAdvanced,SmApiStitchIntoShell,SmApiStitchIntoSolid,SmApiUnifyNormals - mass (6):
SmApiBrepComputeArea,SmApiBrepComputeMassProperties,SmApiBrepComputeVolume,SmApiEdgeComputeLength,SmApiFaceComputeArea,SmApiFaceComputeCentroid - query (29):
SmApiBrepBoundingBox,SmApiBrepClosestPoint,SmApiBrepClosestPointAll,SmApiBrepDistance,SmApiBrepIsManifoldSolid,SmApiBrepRelationship,SmApiCurveClosestPoint,SmApiCurveClosestPointAll,SmApiEdgeBoundingBox,SmApiEdgeClassifyParameter,SmApiEdgeClosestPoint,SmApiEdgeParameterRange,SmApiEdgeTangent,SmApiEvaluateCurve,SmApiEvaluateSurfaceDerivatives,SmApiEvaluateSurfaceNormal,SmApiEvaluateSurfacePoint,SmApiFaceBoundingBox,SmApiFaceClassifyUV,SmApiFaceClosestPoint,SmApiFaceGetBoundaryLoops,SmApiFaceInternalPoint,SmApiFindEdge,SmApiFindFaces,SmApiGetClosestPoint,SmApiGetEdges,SmApiGetFaces,SmApiSurfaceClosestPoint,SmApiVertexGetPoint - copy_transform (6):
SmApiBrepCopy,SmApiRotate,SmApiScale,SmApiScaleByPt,SmApiTransform,SmApiTranslate - fixture_io (1):
SmBrep::ReadFromFile
Out of scope (not roots; reachable code is only included if an in-scope root also reaches it):
SmApiTessellate, SmApiTessellateBoundaries, SmApiPoly*, SmApiDraw, SmApiReadBrepFromFile, SmApiReadPartFromFile, SmApiWriteBrepToFile, SmApiBoolean2d, SmApiBooleanWithCurves, SmApiNonManifoldBoolean, SmApiPiecewiseMerge, SmApiNonManifoldSweep, SmApiNonManifoldRotationalSweep, SmApiFilletPreview, SmApiRemoveFillet, SmApiCut, SmApiProjectAndTrim, SmApiProjectBrepOntoPlane, SmApiProjectCurve, SmApiCreateSilhouetteCurves, SmApiTurnToNurbs, SmApiCreateOffsetProfile, SmApiBrepMaterialCensus, SmApiIntersect*, SmApiCreateSurface*, SmApiCreateOffsetSurface, SmApiCreateCurveApproxPoints, SmApiCreateCurveInterpPoints, SmApiConvertToLinesAndArcs, SmApiDropCurveToSrf, SmApiLiftUVCurveFromSrf, SmApiMakeCurvesCompatible, SmApiOffsetCurve, SmApiOrderCurves, SmApiRemoveCurveKnots, SmApiEvaluateContinuity, SmApiCreatePlanarFaces, SmApiTrimProjectParallel, SmApiTrimSurfaceWith3dCurves.
Per-group closures (CHA, function lines; groups overlap heavily):
| group | in-scope function lines |
|---|---|
| fillet | 322805 |
| offset | 306040 |
| sweep | 302841 |
| primitive | 293742 |
| boolean | 276678 |
| heal | 265327 |
| fixture_io | 218614 |
| copy_transform | 183399 |
| query | 169925 |
| mass | 168589 |
| context | 65 |
Note on tessellation: SmTess/NL_Tessellate are not needed by mass properties or any other
in-scope operation (mass properties integrate exactly over faces, SmBrep::ComputePreciseProperties).
The only reachable SmTess.cpp/SmPoly*.cpp code is CHA residue: SmAttribute::Copy dispatching
to polygon/decimation attribute types, SmBrepCache::BuildTrees dispatching CalculateBoundingBox
to SmCPolyFace, and SmApiTransform accepting a SmPolyBrep. Those units (query.poly,
query.tess) are flagged low priority in plan/modules.toml.
Rust module totals
| module | units | est. lines |
|---|---|---|
| nurbs | 48 | 70508 |
| surface | 40 | 65449 |
| topology | 31 | 52301 |
| intersect | 25 | 41781 |
| blend | 22 | 37752 |
| curve | 25 | 35409 |
| geom | 29 | 26571 |
| boolean | 9 | 14122 |
| heal | 7 | 11877 |
| query | 10 | 10816 |
| primitive | 5 | 7956 |
| offset | 3 | 6605 |
| sweep | 5 | 5725 |
| mass | 1 | 1031 |
Smallest NLib leaf: nlib.knots (nurbs::knots, 768 lines, no dependencies): N_BasisEval, N_BasisFindSpan, N_BasisFindSpanAndMult, N_BasisGetSpanCount, N_BasisIDerivs, N_BasisIEval, N_KnotVectorFromRealArray, N_KnotVectorGetKnots, N_KnotVectorIsEndParam, N_KnotVectorIsParamOutOfBounds, N_KnotVectorIsValid, N_SetKnotIndex.
In-scope files
file lines = physical lines; fn lines = lines inside function definitions; in-scope = CHA-reachable
function lines; RTA = informational. Inline header functions are counted in the header.
| file | file lines | fn lines | in-scope | RTA | groups |
|---|---|---|---|---|---|
source/SMLib/src/SmSurface.cpp |
35380 | 30144 | 22923 | 22850 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmBrep.cpp |
38863 | 34485 | 22307 | 22307 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCurve.cpp |
27725 | 21397 | 18500 | 18246 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCurveClass.cpp |
20761 | 18760 | 17541 | 17541 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmFace.cpp |
21752 | 17593 | 12314 | 12314 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_SrfAdv.cpp |
23322 | 15729 | 11930 | 11930 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmFilletGeom.cpp |
13875 | 11986 | 10987 | 10987 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSurfaceIntersector.cpp |
8698 | 7941 | 7580 | 7580 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmMerge.cpp |
7862 | 7172 | 7164 | 7164 | boolean,fillet,heal,offset,primitive,sweep |
source/SMLib/src/SmFilletSolver.cpp |
9252 | 8288 | 7047 | 7047 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTopologyIntersector.cpp |
9367 | 8445 | 6518 | 6518 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmPrimitiveCreation.cpp |
8127 | 7412 | 6408 | 6408 | boolean,offset,primitive,sweep |
source/SMLib/src/SmProtoTopology.cpp |
8181 | 6815 | 5831 | 5831 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmFilletCorner.cpp |
8872 | 7993 | 5524 | 5524 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_SrfTool.cpp |
13297 | 8306 | 5518 | 5518 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCone.cpp |
6103 | 5619 | 5280 | 5280 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmBSplineCurve.cpp |
8242 | 6659 | 4936 | 4936 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSurfacePointSolve.cpp |
5968 | 5043 | 4935 | 4935 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSurfaceCache.cpp |
7092 | 5807 | 4846 | 4846 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSurfaceDropLib.cpp |
6943 | 5526 | 4620 | 4620 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_CrvFit.cpp |
20046 | 9189 | 4527 | 4527 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmHealData.cpp |
7528 | 6579 | 4505 | 4505 | fixture_io,heal |
source/SMLib/src/SmSurfOfRevolution.cpp |
6817 | 5405 | 4496 | 4496 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmFilletExecutive.cpp |
6172 | 5524 | 4316 | 4316 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmFilletStandardSolver.cpp |
4900 | 4328 | 4296 | 3933 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmBSplineSurfaceNLib.cpp |
8991 | 7715 | 3965 | 3965 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmOffsetExecutive.cpp |
4405 | 4106 | 3826 | 3826 | offset |
source/SMLib/src/SmGeomUtility.cpp |
7165 | 5695 | 3795 | 3795 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmEdgeuse.cpp |
6692 | 5610 | 3773 | 3773 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmStitch.cpp |
4190 | 3902 | 3754 | 3754 | boolean,fillet,fixture_io,heal,offset,primitive,sweep |
source/SMLib/src/NL_CrvAdv.cpp |
13997 | 5723 | 3753 | 3753 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmEllipse.cpp |
4415 | 3851 | 3521 | 3521 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmPlane.cpp |
4382 | 3863 | 3504 | 3504 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmVolume.cpp |
10500 | 8410 | 3357 | 3357 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmEdge.cpp |
8227 | 6480 | 3289 | 3289 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSurfOfExtrusion.cpp |
4728 | 3956 | 3274 | 3274 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_CrvTool.cpp |
5583 | 3850 | 3119 | 3119 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmBSplineSurface.cpp |
6530 | 5519 | 3115 | 3115 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTopologySolver.cpp |
3467 | 3087 | 3023 | 2970 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCompositeCurve.cpp |
4448 | 3803 | 2970 | 2966 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSphere.cpp |
3959 | 3453 | 2854 | 2854 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTrimmingTools.cpp |
4718 | 3853 | 2854 | 2854 | boolean,copy_transform,fillet,mass,offset,primitive,sweep |
source/SMLib/src/SmBSplineCurveNLib.cpp |
4907 | 4097 | 2794 | 2794 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmOffsetGeometryCreation.cpp |
2796 | 2681 | 2640 | 2565 | offset |
source/SMLib/src/NL_SrfNurb.cpp |
6026 | 3111 | 2556 | 2556 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_Math.cpp |
11885 | 6593 | 2421 | 2421 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTopologySweep.cpp |
2727 | 2457 | 2340 | 2340 | boolean,fillet,fixture_io,heal,offset,primitive,sweep |
source/SMLib/src/SmNurbsCrv.cpp |
3061 | 2511 | 2200 | 2200 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSurfaceDropCurve.cpp |
2246 | 2033 | 2013 | 2013 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_Util.cpp |
8860 | 5792 | 1982 | 1982 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmPoly.cpp |
27402 | 23619 | 1907 | 1631 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSurfaceTracer.cpp |
2204 | 1965 | 1880 | 1880 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_CrvNurb.cpp |
7087 | 3593 | 1879 | 1879 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmHCR.cpp |
2305 | 2052 | 1873 | 1873 | primitive,sweep |
source/SMLib/src/SmLine.cpp |
2666 | 2051 | 1858 | 1858 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmOffsetSurface.cpp |
2382 | 2059 | 1773 | 1773 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmGlobalSolver.cpp |
1961 | 1777 | 1764 | 1764 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_BasisBasic.cpp |
3742 | 2423 | 1728 | 1728 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmFilletIntersector.cpp |
1864 | 1725 | 1705 | 1705 | boolean,fillet,heal,offset,primitive,sweep |
source/SMLib/src/NL_CrvBasic.cpp |
6464 | 3648 | 1698 | 1698 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCrvOnSurf.cpp |
2455 | 2064 | 1696 | 1696 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_FuncsAdv.cpp |
9913 | 4088 | 1676 | 1676 | boolean,fillet,heal,offset,primitive,sweep |
source/SMLib/src/SmAdvSurfaceIntersector.cpp |
1836 | 1665 | 1645 | 1645 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmRotationalSweepGeometry.cpp |
1742 | 1556 | 1541 | 1541 | primitive,sweep |
source/SMLib/src/SmPseudoBox.cpp |
2562 | 2005 | 1499 | 1463 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmBrepData.cpp |
6560 | 5251 | 1464 | 1464 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SM_API/src/SmApiBrep.cpp |
2633 | 2201 | 1454 | 1454 | boolean,fillet,heal,offset,sweep |
source/SMLib/src/SmCurveCache.cpp |
2140 | 1775 | 1453 | 1453 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmVertexuse.cpp |
3347 | 2704 | 1405 | 1405 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_SrfFit.cpp |
19183 | 12468 | 1359 | 1359 | boolean,copy_transform,fillet,heal,offset,primitive,sweep |
source/SMLib/src/NL_SrfBasic.cpp |
6513 | 3887 | 1288 | 1288 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSolutionArray.cpp |
2236 | 1812 | 1265 | 1265 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmRayTracer.cpp |
2042 | 1751 | 1244 | 1244 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmLocalSolve1d.cpp |
1322 | 1243 | 1243 | 1243 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmFilletCustomSolver.cpp |
1399 | 1258 | 1233 | 0 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmBSplineVolume.cpp |
3864 | 3048 | 1220 | 201 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmGap.cpp |
5776 | 3425 | 1219 | 808 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTree.cpp |
3937 | 2261 | 1214 | 1214 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmNurbsSrf.cpp |
2399 | 2076 | 1188 | 1188 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTorus.cpp |
1925 | 1666 | 1171 | 1171 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_Bezier.cpp |
5923 | 3800 | 1154 | 1154 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_Geom.cpp |
11093 | 6913 | 1117 | 1117 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmFaceProps.cpp |
2916 | 2434 | 1103 | 1103 | fillet,fixture_io,heal |
source/SMLib/src/SmLoop.cpp |
1885 | 1627 | 1099 | 1099 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SM_API/src/SmApiQueries.cpp |
1513 | 1134 | 1095 | 1095 | copy_transform,mass,query |
source/SMLib/src/SmExtent3d.cpp |
2081 | 1630 | 1082 | 1063 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SM_API/src/SmApiPrimitives.cpp |
1373 | 1139 | 1060 | 1060 | primitive,sweep |
source/SMLib/src/NL_Iges.cpp |
4406 | 2317 | 1055 | 1055 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSurfaceSilhouette.cpp |
1128 | 1011 | 978 | 912 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmPolarBox.cpp |
1663 | 1421 | 971 | 971 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTArray.h |
2400 | 1255 | 965 | 965 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTrimSrfCache.cpp |
1150 | 991 | 964 | 964 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmBendVolume.cpp |
3854 | 2886 | 934 | 934 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCrvInVolume.cpp |
1691 | 1397 | 932 | 932 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_CrvApprox.cpp |
5488 | 2811 | 908 | 908 | boolean,fillet,heal,offset,primitive,sweep |
source/SMLib/src/SmUnbendVolume.cpp |
3179 | 2497 | 884 | 884 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_FuncsBasic.cpp |
3774 | 1644 | 859 | 859 | boolean,fillet,heal,offset,primitive,sweep |
source/SMLib/src/SmPointClass.cpp |
1594 | 1276 | 839 | 839 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmGrid.cpp |
1490 | 1209 | 833 | 833 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmConic.cpp |
990 | 873 | 825 | 825 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTess.cpp |
14830 | 12594 | 822 | 7 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmExtent1d.cpp |
1330 | 924 | 819 | 819 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTransSweepGeometry.cpp |
978 | 829 | 816 | 816 | primitive,sweep |
source/SMLib/src/SmLocalSolveNd.cpp |
1416 | 812 | 812 | 812 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_CrvCommon.cpp |
2233 | 1005 | 803 | 803 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmVertex.cpp |
3634 | 2806 | 801 | 801 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTopologyTraverser.cpp |
2181 | 1857 | 782 | 782 | boolean,fillet,fixture_io,heal,offset,primitive,sweep |
source/SMLib/src/SmMatrix.cpp |
2548 | 2274 | 775 | 775 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmAttribute.cpp |
1954 | 1522 | 767 | 657 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSrfInVolume.cpp |
1737 | 1343 | 762 | 762 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmExtent2d.cpp |
1859 | 1339 | 735 | 735 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_CrvGeom.cpp |
2470 | 2024 | 729 | 729 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmVector3d.h |
1350 | 787 | 712 | 712 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SM_API/src/SmApiCurves.cpp |
1415 | 1153 | 681 | 681 | primitive,query |
source/SMLib/src/SmPointSet.cpp |
2559 | 2163 | 678 | 639 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmShell.cpp |
2144 | 1720 | 674 | 674 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_SrfCommon.cpp |
2236 | 661 | 661 | 661 | boolean,copy_transform,fillet,heal,offset,primitive,sweep |
source/SMLib/src/SmAObject.cpp |
1090 | 815 | 635 | 635 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTol.cpp |
1861 | 849 | 635 | 635 | boolean,context,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTwistVolume.cpp |
2622 | 2121 | 633 | 633 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_SrfOffset.cpp |
1290 | 613 | 613 | 613 | boolean,copy_transform,fillet,offset,primitive,sweep |
source/SMLib/src/SmTransform.cpp |
2363 | 1871 | 603 | 603 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmHashTable.h |
2838 | 1766 | 593 | 593 | fixture_io,heal |
source/SMLib/src/SmLoopuse.cpp |
1900 | 1595 | 569 | 569 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmProjectedCurve.cpp |
1019 | 777 | 562 | 562 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmOffsetCurve.cpp |
737 | 592 | 477 | 477 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmHyperbola.cpp |
813 | 628 | 459 | 459 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmAxis2Placement.cpp |
1038 | 769 | 450 | 450 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmParabola.cpp |
777 | 598 | 432 | 432 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmVector3d.cpp |
965 | 745 | 405 | 405 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmPeriodicExtent1d.cpp |
1412 | 1107 | 399 | 399 | fillet,fixture_io,heal |
source/SMLib/src/SmPolynomial.cpp |
451 | 386 | 386 | 386 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmBrepCache.cpp |
661 | 547 | 384 | 142 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmAssertArray.cpp |
2590 | 1985 | 368 | 368 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_BasisAdv.cpp |
1696 | 498 | 361 | 361 | boolean,copy_transform,fillet,heal,offset,primitive,sweep |
source/SMLib/src/NL_CrvOffset.cpp |
1591 | 346 | 346 | 346 | boolean,copy_transform,fillet,offset,primitive,sweep |
source/SMLib/src/SmDatabaseIO.cpp |
682 | 602 | 346 | 346 | fixture_io |
source/SMLib/src/NL_FrameBasic.cpp |
2458 | 387 | 336 | 336 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmHermiteCurve.cpp |
823 | 623 | 330 | 330 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTools.cpp |
429 | 326 | 326 | 326 | boolean,fillet,fixture_io,heal,offset,primitive,query,sweep |
source/SMLib/src/SmIntegrator.cpp |
889 | 727 | 325 | 325 | boolean,fillet,fixture_io,heal,mass,offset,primitive,sweep |
source/SMLib/src/SmTangentField.cpp |
599 | 471 | 315 | 315 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmBSplineVolumeNLib.cpp |
2247 | 566 | 310 | 0 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmIsoCurve.cpp |
457 | 350 | 304 | 304 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_SrfPoly.cpp |
525 | 383 | 293 | 293 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmShape.cpp |
387 | 321 | 291 | 291 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCircle.cpp |
567 | 390 | 290 | 290 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SM_API/src/SmApiSurfaces.cpp |
734 | 520 | 284 | 284 | query,sweep |
source/SMLib/inc/SmSurface.h |
2849 | 384 | 263 | 261 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmEdgeProps.cpp |
839 | 715 | 260 | 260 | fixture_io,heal |
source/SMLib/inc/SmGap.h |
2170 | 875 | 256 | 210 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmLoopProps.cpp |
1131 | 915 | 253 | 253 | fillet,fixture_io,heal |
source/SMLib/inc/SmVector2d.h |
614 | 311 | 244 | 244 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmOwningTopology.h |
470 | 308 | 236 | 236 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmMessages.cpp |
801 | 465 | 223 | 223 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmFaceuse.cpp |
518 | 354 | 220 | 220 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SM_API/src/SmApiGeneral.cpp |
741 | 570 | 214 | 214 | boolean,context,copy_transform,fillet,heal,offset,primitive,sweep |
source/SMLib/src/NL_Spiral.cpp |
499 | 324 | 209 | 209 | primitive |
source/SMLib/inc/SmTopologySolver.h |
731 | 228 | 206 | 206 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmObject.cpp |
1015 | 706 | 203 | 203 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSTEPSurface.cpp |
363 | 262 | 192 | 192 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmContext.cpp |
612 | 285 | 185 | 185 | boolean,context,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTopology.cpp |
648 | 436 | 184 | 184 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmNurbsVol.cpp |
1338 | 1231 | 183 | 0 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmMemBlockMgr.h |
468 | 230 | 176 | 176 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTList.h |
437 | 272 | 175 | 175 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCurveBoundedSurface.cpp |
835 | 599 | 170 | 170 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPoly.h |
3365 | 529 | 169 | 133 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTol.h |
1047 | 198 | 156 | 156 | boolean,context,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCurveBoundedSurface.h |
301 | 163 | 154 | 154 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmVertexProps.cpp |
596 | 476 | 154 | 154 | fixture_io,heal |
source/SMLib/inc/SmAttribute.h |
1436 | 312 | 153 | 120 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmVolume.h |
2994 | 299 | 147 | 146 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmTrackTopologyChanges.cpp |
737 | 626 | 146 | 146 | fixture_io,heal |
source/SMLib/src/SmThreadLocalStorage.cpp |
1044 | 805 | 145 | 145 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCurve.h |
1408 | 242 | 142 | 142 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmContext.h |
649 | 159 | 141 | 141 | boolean,context,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SM_API/src/SmApiFillets.cpp |
246 | 192 | 140 | 140 | fillet |
source/SMLib/src/SmCylinder.cpp |
645 | 461 | 133 | 133 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmRelation.h |
381 | 212 | 132 | 132 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFilletExecutive.h |
901 | 151 | 127 | 127 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmProtoTopology.h |
957 | 148 | 125 | 125 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_SrfSymbol.cpp |
5295 | 1214 | 122 | 122 | boolean,fillet,heal,offset,primitive,sweep |
source/SMLib/src/SmRegion.cpp |
645 | 452 | 121 | 121 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFilletSolver.h |
768 | 146 | 117 | 117 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSAGObject.cpp |
335 | 194 | 117 | 63 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCacheMgr.cpp |
1374 | 119 | 114 | 114 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmHealProbArray.h |
959 | 398 | 113 | 113 | fixture_io,heal |
source/SMLib/src/SmVector2d.cpp |
349 | 235 | 95 | 95 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSweepGeometryCreation.h |
195 | 115 | 90 | 90 | primitive,sweep |
source/SMLib/inc/SmMapPtrToPtr.h |
476 | 339 | 85 | 78 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/NL_SrfGeom.cpp |
2940 | 2186 | 85 | 85 | boolean,copy_transform,fillet,offset,primitive,sweep |
source/SMLib/inc/SmCurveClass.h |
893 | 111 | 80 | 80 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmExtentNd.cpp |
122 | 96 | 80 | 80 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTransform.h |
915 | 188 | 78 | 78 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCompositeCurve.h |
550 | 120 | 75 | 72 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFilletGeom.h |
769 | 101 | 74 | 74 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmMath.cpp |
163 | 93 | 71 | 71 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmMemory.cpp |
300 | 127 | 61 | 61 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPlane.h |
588 | 100 | 57 | 57 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSolutionArray.h |
448 | 60 | 54 | 54 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmHermiteCurve.h |
232 | 69 | 53 | 53 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmExtentNd.h |
140 | 52 | 51 | 51 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmLocalSolve1d.h |
329 | 80 | 51 | 51 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/NLI_Math.h |
79 | 48 | 48 | 48 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmLocalSolveNd.h |
378 | 54 | 48 | 48 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSurfaceCache.h |
1049 | 78 | 46 | 46 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTrackTopologyChanges.h |
416 | 128 | 46 | 46 | fixture_io,heal |
source/SMLib/inc/SmTree.h |
1102 | 244 | 45 | 44 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmMemory.h |
270 | 102 | 44 | 44 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPolyDecimate.h |
518 | 87 | 44 | 10 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmCopyBrepMap.cpp |
110 | 72 | 44 | 44 | boolean,copy_transform,fillet,offset,primitive,sweep |
source/SMLib/inc/SmGrid.h |
529 | 70 | 43 | 43 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmMatrix.h |
296 | 101 | 41 | 41 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPointClass.h |
252 | 50 | 41 | 41 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmExtent3d.h |
218 | 52 | 40 | 40 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmPolyDecimate.cpp |
4302 | 3624 | 38 | 0 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmMapTypeToType.h |
1666 | 1146 | 37 | 29 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSurfaceIntersector.h |
662 | 45 | 37 | 37 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFilletCorner.h |
620 | 68 | 36 | 36 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmUnbendVolume.h |
784 | 60 | 36 | 36 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmBrep.h |
1648 | 73 | 34 | 34 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmConic.h |
197 | 50 | 34 | 34 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCrvOnSurf.h |
372 | 43 | 32 | 32 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmExtent2d.h |
264 | 49 | 31 | 31 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFaceProps.h |
447 | 43 | 30 | 30 | fixture_io,heal |
source/SMLib/inc/SmAxis2Placement.h |
258 | 42 | 29 | 29 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFilletStandardSolver.h |
397 | 65 | 29 | 27 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmLoopuse.h |
162 | 33 | 29 | 29 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmObject.h |
339 | 48 | 29 | 29 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmRegion.h |
186 | 31 | 29 | 29 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmEllipse.h |
524 | 37 | 27 | 27 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmLine.h |
429 | 30 | 26 | 26 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmLoop.h |
162 | 30 | 25 | 25 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTopologySweep.h |
312 | 46 | 25 | 25 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmEdgeuse.h |
408 | 36 | 24 | 24 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmExtent1d.h |
177 | 29 | 24 | 24 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmLoopProps.h |
351 | 64 | 24 | 24 | fixture_io,heal |
source/SMLib/inc/SmTrimmingTools.h |
542 | 29 | 24 | 24 | fillet |
source/SMLib/inc/SmVertexuse.h |
318 | 41 | 24 | 24 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmVertex.h |
359 | 33 | 23 | 23 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmStitch.h |
247 | 22 | 22 | 22 | boolean,fillet,fixture_io,heal,offset,primitive,sweep |
source/SMLib/src/SmOwningTopology.cpp |
293 | 190 | 22 | 22 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCurveCache.h |
294 | 25 | 21 | 21 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmPolyBrepData.cpp |
1398 | 1235 | 21 | 21 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmEdge.h |
590 | 31 | 20 | 20 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSurfaceTracer.h |
277 | 27 | 20 | 20 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmOffsetExecutive.h |
282 | 21 | 19 | 19 | offset |
source/SMLib/inc/SmBSplineCurve.h |
962 | 58 | 17 | 17 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCrvInVolume.h |
247 | 23 | 17 | 17 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmDatabaseIO.h |
232 | 74 | 17 | 17 | fixture_io |
source/SMLib/inc/SmSrfInVolume.h |
306 | 27 | 17 | 17 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmString.h |
166 | 17 | 17 | 17 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTopologyIntersector.h |
538 | 23 | 17 | 17 | boolean,fillet,heal,offset,primitive,sweep |
source/SMLib/src/SmAssembly.cpp |
829 | 623 | 17 | 13 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmBucketSort.h |
269 | 128 | 16 | 14 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPointSet.h |
568 | 108 | 16 | 14 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTess.h |
926 | 114 | 16 | 1 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTwistVolume.h |
792 | 25 | 16 | 16 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmOffsetCurve.h |
162 | 35 | 15 | 15 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSurfOfRevolution.h |
556 | 30 | 15 | 15 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTypes.h |
1247 | 69 | 15 | 15 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmAssemblyInstance.cpp |
325 | 209 | 15 | 11 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmOffsetSurface.h |
354 | 27 | 14 | 14 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPrimitiveCreation.h |
556 | 23 | 14 | 14 | offset,primitive,sweep |
source/SMLib/inc/SmBSplineSurface.h |
1476 | 89 | 13 | 13 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFaceuse.h |
101 | 19 | 13 | 13 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmMerge.h |
512 | 52 | 13 | 13 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTopoTypes.h |
326 | 13 | 13 | 13 | mass |
source/SMLib/inc/SmTopology.h |
265 | 51 | 13 | 11 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SM_API/src/SmApiHeal.cpp |
40 | 13 | 13 | 13 | heal |
source/SMLib/inc/SmOffsetGeometryCreation.h |
197 | 25 | 12 | 12 | offset |
source/SMLib/src/SmMapTypeToType.cpp |
60 | 30 | 12 | 12 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmAObject.h |
154 | 15 | 11 | 11 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmBendVolume.h |
760 | 17 | 11 | 11 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCone.h |
598 | 23 | 11 | 11 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFace.h |
1011 | 18 | 11 | 11 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmGlobalSolver.h |
179 | 19 | 11 | 11 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmIntegrator.h |
236 | 15 | 11 | 11 | boolean,fillet,fixture_io,heal,mass,offset,primitive,sweep |
source/SMLib/inc/SmSurfOfExtrusion.h |
501 | 24 | 11 | 11 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmAssembly.h |
190 | 29 | 10 | 7 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmHyperbola.h |
162 | 11 | 9 | 9 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmParabola.h |
147 | 11 | 9 | 9 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPseudoBox.h |
230 | 22 | 9 | 9 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTorus.h |
335 | 14 | 9 | 9 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCircle.h |
188 | 9 | 8 | 8 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPolarBox.h |
261 | 13 | 8 | 8 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSpaceBend.h |
402 | 114 | 8 | 6 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSpaceUnbend.h |
392 | 103 | 8 | 6 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCacheMgr.h |
514 | 11 | 7 | 7 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmGraphicsExtern.h |
1575 | 341 | 7 | 7 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPeriodicExtent1d.h |
184 | 21 | 7 | 7 | fillet,fixture_io,heal |
source/SMLib/inc/SmProjectedCurve.h |
184 | 23 | 7 | 7 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSphere.h |
523 | 12 | 7 | 7 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmBSplineVolume.h |
802 | 36 | 6 | 0 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCylinder.h |
236 | 9 | 6 | 6 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmIsoCurve.h |
141 | 22 | 6 | 6 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSTEPSurface.h |
139 | 9 | 6 | 6 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmAssertArray.h |
986 | 72 | 5 | 5 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmBrepCache.h |
77 | 9 | 5 | 3 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmShape.h |
102 | 17 | 5 | 5 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmLineSegClass.cpp |
2628 | 2349 | 5 | 5 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/NL_Nurbsdef.h |
438 | 8 | 4 | 4 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmAssemblyInstance.h |
138 | 17 | 4 | 1 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmCopyBrepMap.h |
52 | 10 | 4 | 4 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTangentField.h |
167 | 6 | 4 | 4 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSpaceBend.cpp |
2640 | 2371 | 4 | 0 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/src/SmSpaceUnbend.cpp |
2471 | 2191 | 4 | 0 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFilletCustomSolver.h |
150 | 8 | 3 | 3 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmFilletIntersector.h |
117 | 12 | 3 | 3 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSAGObject.h |
115 | 11 | 3 | 0 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmShell.h |
150 | 5 | 3 | 3 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmBrepData.h |
1128 | 161 | 2 | 2 | fixture_io |
source/SMLib/inc/SmEdgeProps.h |
160 | 11 | 2 | 2 | fixture_io,heal |
source/SMLib/inc/SmHCR.h |
213 | 11 | 2 | 2 | primitive,sweep |
source/SMLib/inc/SmMath.h |
203 | 2 | 2 | 2 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmRayTracer.h |
279 | 15 | 2 | 2 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTopologyTraverser.h |
204 | 2 | 2 | 2 | boolean,fillet,fixture_io,heal,offset,primitive,sweep |
source/SMLib/inc/SmTrimSrfCache.h |
157 | 5 | 2 | 2 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmVertexProps.h |
119 | 12 | 2 | 2 | fixture_io,heal |
source/SMLib/inc/SmAdvSurfaceIntersector.h |
125 | 6 | 1 | 1 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmPolyMerge.h |
131 | 9 | 1 | 1 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmRotationalSweepGeometry.h |
124 | 2 | 1 | 1 | primitive,sweep |
source/SMLib/inc/SmSurfaceDropCurve.h |
215 | 10 | 1 | 1 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmSurfaceSilhouette.h |
107 | 6 | 1 | 1 | boolean,copy_transform,fillet,fixture_io,heal,mass,offset,primitive,query,sweep |
source/SMLib/inc/SmTransSweepGeometry.h |
143 | 3 | 1 | 1 | primitive,sweep |
source/SMLib/src/SmSweepGeometryCreation.cpp |
19 | 1 | 1 | 1 | primitive,sweep |
Provably unused
No function in these files is reachable from any in-scope root under CHA (header-only type/macro files with no function bodies are included; they may still be needed for declarations/constants):
| file | lines | fn lines |
|---|---|---|
source/SMLib/src/NL_Tessellate.cpp |
9395 | 7998 |
source/SMLib/src/NL_SrfLstSqFit.cpp |
9409 | 6184 |
source/SMLib/src/SmPolySolver.cpp |
3676 | 3334 |
source/SMLib/src/SmPolyIntersector.cpp |
3303 | 2933 |
source/SMLib/src/SmPolyMerge.cpp |
2842 | 2666 |
source/SMLib/src/SmGraphicsExtern.cpp |
3663 | 2610 |
source/SMLib/src/SmFeatureExecutive.cpp |
2469 | 1993 |
source/SMLib/src/SmBlendSurface.cpp |
1781 | 1539 |
source/SMLib/src/NL_SrfApprox.cpp |
2731 | 1522 |
source/SMLib/src/SmFilletRemoval.cpp |
1552 | 1297 |
source/SMLib/src/SmCutter.cpp |
1130 | 1029 |
source/SMLib/src/SmSLC.cpp |
892 | 832 |
source/SMLib/src/NL_SrfShape.cpp |
5938 | 743 |
source/SMLib/src/SmGraphicsOutput.cpp |
763 | 526 |
source/SM_API/src/SmApiIntersectors.cpp |
624 | 523 |
source/SMLib/src/SmGraphicsVertexArray.cpp |
488 | 403 |
source/SMLib/src/SmCubicBezierSurface.cpp |
450 | 394 |
source/SMLib/src/SmDirectedSilhouette.cpp |
527 | 391 |
source/SM_API/src/SmApiPolygons.cpp |
453 | 344 |
source/SMLib/inc/SmVectorNd.h |
525 | 262 |
source/SMLib/src/SmFaceGrid.cpp |
328 | 261 |
source/SMLib/src/SmCurveFilletExecutive.cpp |
252 | 216 |
source/SM_API/src/SmApiTrimmedSurfaces.cpp |
276 | 210 |
source/SMLib/inc/SmGraphicsVertexArray.h |
525 | 194 |
source/SMLib/src/SmBrepCutting.cpp |
198 | 154 |
source/SMLib/src/SmGraphicsNLib.cpp |
773 | 145 |
source/SMLib/inc/SmHistogram.h |
210 | 119 |
source/SM_API/src/SmApiImportExport.cpp |
113 | 100 |
source/SMLib/src/SmCodeCount.cpp |
162 | 93 |
source/SMLib/src/SmHistogram.cpp |
126 | 92 |
source/SMLib/inc/SmPolyBrepData.h |
350 | 86 |
source/SMLib/src/NL_CrvPoly.cpp |
429 | 81 |
source/SMLib/src/SmMemBlockMgr.cpp |
96 | 77 |
source/SMLib/inc/SmPolySolver.h |
633 | 74 |
source/SMLib/inc/SmFeatureExecutive.h |
536 | 63 |
source/SMLib/inc/SmSLC.h |
261 | 59 |
source/SMLib/src/SmTypes.cpp |
87 | 54 |
source/SMLib/inc/SmLineSegClass.h |
312 | 51 |
source/SMLib/src/NL_FrameAdv.cpp |
521 | 43 |
source/SMLib/inc/SmFaceGrid.h |
122 | 36 |
source/SMLib/inc/SmCutter.h |
167 | 32 |
source/SMLib/src/SmObjProps.cpp |
50 | 24 |
source/SMLib/src/SmVectorNd.cpp |
38 | 24 |
source/SMLib/inc/SmBlendSurface.h |
335 | 20 |
source/SMLib/inc/SmCubicBezierSurface.h |
113 | 20 |
source/SMLib/src/SmGauss.cpp |
1880 | 19 |
source/SMLib/inc/SmThreadLocalStorage.h |
147 | 18 |
source/SMLib/inc/SmFilletRemoval.h |
205 | 10 |
source/SMLib/inc/SmCurveFilletExecutive.h |
85 | 9 |
source/SMLib/inc/SmObjProps.h |
43 | 7 |
source/SMLib/inc/SmPolynomial.h |
60 | 7 |
source/SMLib/inc/SmCodeCount.h |
120 | 6 |
source/SMLib/inc/SmPolyIntersector.h |
189 | 6 |
source/SMLib/src/NL_Gauss.cpp |
1854 | 6 |
source/SMLib/inc/SmBrepCutting.h |
53 | 3 |
source/SMLib/inc/SmHealData.h |
531 | 3 |
source/SMLib/inc/SmNurbsCrv.h |
319 | 1 |
source/SMLib/inc/NL_BasisAdv.h |
54 | 0 |
source/SMLib/inc/NL_BasisBasic.h |
80 | 0 |
source/SMLib/inc/NL_Bezier.h |
60 | 0 |
source/SMLib/inc/NL_CrvAdv.h |
86 | 0 |
source/SMLib/inc/NL_CrvApprox.h |
62 | 0 |
source/SMLib/inc/NL_CrvBasic.h |
139 | 0 |
source/SMLib/inc/NL_CrvCommon.h |
34 | 0 |
source/SMLib/inc/NL_CrvFit.h |
210 | 0 |
source/SMLib/inc/NL_CrvGeom.h |
22 | 0 |
source/SMLib/inc/NL_CrvNurb.h |
79 | 0 |
source/SMLib/inc/NL_CrvOffset.h |
28 | 0 |
source/SMLib/inc/NL_CrvPoly.h |
15 | 0 |
source/SMLib/inc/NL_CrvShape.h |
39 | 0 |
source/SMLib/inc/NL_CrvTool.h |
38 | 0 |
source/SMLib/inc/NL_DataStruct.h |
460 | 0 |
source/SMLib/inc/NL_Defines2.h |
1784 | 0 |
source/SMLib/inc/NL_FrameAdv.h |
30 | 0 |
source/SMLib/inc/NL_FrameBasic.h |
64 | 0 |
source/SMLib/inc/NL_FuncsAdv.h |
128 | 0 |
source/SMLib/inc/NL_FuncsBasic.h |
118 | 0 |
source/SMLib/inc/NL_Gauss.h |
133 | 0 |
source/SMLib/inc/NL_Geom.h |
134 | 0 |
source/SMLib/inc/NL_Geometry.h |
222 | 0 |
source/SMLib/inc/NL_Globals.h |
93 | 0 |
source/SMLib/inc/NL_Iges.h |
35 | 0 |
source/SMLib/inc/NL_Math.h |
181 | 0 |
source/SMLib/inc/NL_Spiral.h |
19 | 0 |
source/SMLib/inc/NL_SrfAdv.h |
100 | 0 |
source/SMLib/inc/NL_SrfApprox.h |
30 | 0 |
source/SMLib/inc/NL_SrfBasic.h |
140 | 0 |
source/SMLib/inc/NL_SrfCommon.h |
25 | 0 |
source/SMLib/inc/NL_SrfFit.h |
225 | 0 |
source/SMLib/inc/NL_SrfGeom.h |
27 | 0 |
source/SMLib/inc/NL_SrfLstSqFit.h |
52 | 0 |
source/SMLib/inc/NL_SrfNurb.h |
76 | 0 |
source/SMLib/inc/NL_SrfPoly.h |
17 | 0 |
source/SMLib/inc/NL_SrfShape.h |
57 | 0 |
source/SMLib/inc/NL_SrfSymbol.h |
35 | 0 |
source/SMLib/inc/NL_SrfTool.h |
44 | 0 |
source/SMLib/inc/NL_Tessellate.h |
35 | 0 |
source/SMLib/inc/NL_Util.h |
124 | 0 |
source/SMLib/inc/NL_VolumeAdv.h |
134 | 0 |
source/SMLib/inc/SmCEdge.h |
85 | 0 |
source/SMLib/inc/SmCFace.h |
202 | 0 |
source/SMLib/inc/SmCacheMgrBrep.h |
64 | 0 |
source/SMLib/inc/SmCacheMgrCrv.h |
64 | 0 |
source/SMLib/inc/SmCacheMgrSrf.h |
64 | 0 |
source/SMLib/inc/SmCacheMgrTSrf.h |
64 | 0 |
source/SMLib/inc/SmConfig.h |
304 | 0 |
source/SMLib/inc/SmCoreTypes.h |
500 | 0 |
source/SMLib/inc/SmCurveTypes.h |
417 | 0 |
source/SMLib/inc/SmDirectedSilhouette.h |
123 | 0 |
source/SMLib/inc/SmDllMain.h |
24 | 0 |
source/SMLib/inc/SmGauss.h |
130 | 0 |
source/SMLib/inc/SmGeomUtility.h |
1198 | 0 |
source/SMLib/inc/SmGraphicsNLib.h |
31 | 0 |
source/SMLib/inc/SmGraphicsOutput.h |
122 | 0 |
source/SMLib/inc/SmMessages.h |
819 | 0 |
source/SMLib/inc/SmNurbs.h |
47 | 0 |
source/SMLib/inc/SmNurbsSrf.h |
153 | 0 |
source/SMLib/inc/SmNurbsVol.h |
142 | 0 |
source/SMLib/inc/SmRelationMM.h |
343 | 0 |
source/SMLib/inc/SmRelationV.h |
458 | 0 |
source/SMLib/inc/SmSArray.h |
632 | 0 |
source/SMLib/inc/SmSSIData.h |
40 | 0 |
source/SMLib/inc/SmSmlibAll.h |
137 | 0 |
source/SMLib/inc/SmSurfTypes.h |
148 | 0 |
source/SMLib/inc/SmTools.h |
82 | 0 |
source/SMLib/inc/SmVolumeAll.h |
38 | 0 |
source/SMLib/inc/SmVolumeTypes.h |
54 | 0 |
source/SMLib/inc/StdAfx.h |
14 | 0 |
source/SMLib/inc/nurbs.h |
114 | 0 |
source/SMLib/src/NL_CrvShape.cpp |
4448 | 0 |
source/SMLib/src/NL_Globals.cpp |
124 | 0 |
source/SMLib/src/NL_VolumeAdv.cpp |
9239 | 0 |
source/SMLib/src/SmBucketSort.cpp |
13 | 0 |
source/SMLib/src/SmCEdge.cpp |
465 | 0 |
source/SMLib/src/SmCFace.cpp |
1189 | 0 |
source/SMLib/src/SmCacheMgrBrep.cpp |
134 | 0 |
source/SMLib/src/SmCacheMgrCrv.cpp |
240 | 0 |
source/SMLib/src/SmCacheMgrSrf.cpp |
207 | 0 |
source/SMLib/src/SmCacheMgrTSrf.cpp |
257 | 0 |
source/SMLib/src/SmDllMain.cpp |
155 | 0 |
source/SMLib/src/SmHashTable.cpp |
45 | 0 |
source/SMLib/src/SmMapPtrToPtr.cpp |
11 | 0 |
source/SMLib/src/SmRelation.cpp |
12 | 0 |
source/SMLib/src/SmSArray.cpp |
12 | 0 |
source/SMLib/src/SmTArray.cpp |
12 | 0 |
source/SMLib/src/SmTList.cpp |
13 | 0 |
source/SMLib/src/StdAfx.cpp |
10 | 0 |
source/SM_API/inc/SmApiBrep.h |
562 | 0 |
source/SM_API/inc/SmApiCurves.h |
235 | 0 |
source/SM_API/inc/SmApiFillets.h |
38 | 0 |
source/SM_API/inc/SmApiGeneral.h |
173 | 0 |
source/SM_API/inc/SmApiHeal.h |
30 | 0 |
source/SM_API/inc/SmApiImportExport.h |
67 | 0 |
source/SM_API/inc/SmApiIntersectors.h |
91 | 0 |
source/SM_API/inc/SmApiPolygons.h |
107 | 0 |
source/SM_API/inc/SmApiPrimitives.h |
260 | 0 |
source/SM_API/inc/SmApiQueries.h |
341 | 0 |
source/SM_API/inc/SmApiSurfaces.h |
120 | 0 |
source/SM_API/inc/SmApiTessellationParams.h |
38 | 0 |
source/SM_API/inc/SmApiTrimmedSurfaces.h |
67 | 0 |
source/SM_API/inc/SmApiTypes.h |
52 | 0 |
source/SM_API/inc/StdAfx.h |
17 | 0 |
source/SM_API/src/StdAfx.cpp |
10 | 0 |
Unreachable functions inside in-scope files: 5120 functions, 234656 lines. Largest:
| file | unreachable fn lines | functions |
|---|---|---|
source/SMLib/src/SmPoly.cpp |
21712 | 263 |
source/SMLib/src/SmBrep.cpp |
12178 | 95 |
source/SMLib/src/SmTess.cpp |
11772 | 88 |
source/SMLib/src/NL_SrfFit.cpp |
11109 | 29 |
source/SMLib/src/SmSurface.cpp |
7221 | 88 |
source/SMLib/src/NL_Geom.cpp |
5796 | 65 |
source/SMLib/src/SmFace.cpp |
5279 | 54 |
source/SMLib/src/SmVolume.cpp |
5053 | 85 |
source/SMLib/src/NL_CrvFit.cpp |
4662 | 20 |
source/SMLib/src/NL_Math.cpp |
4172 | 83 |
source/SMLib/src/NL_Util.cpp |
3810 | 61 |
source/SMLib/src/NL_SrfAdv.cpp |
3799 | 12 |
source/SMLib/src/SmBrepData.cpp |
3787 | 49 |
source/SMLib/src/SmBSplineSurfaceNLib.cpp |
3750 | 40 |
source/SMLib/src/SmPolyDecimate.cpp |
3586 | 35 |
source/SMLib/src/SmEdge.cpp |
3191 | 45 |
source/SMLib/src/SmCurve.cpp |
2897 | 39 |
source/SMLib/src/NL_SrfTool.cpp |
2788 | 5 |
source/SMLib/src/NL_Bezier.cpp |
2646 | 33 |
source/SMLib/src/NL_SrfBasic.cpp |
2599 | 49 |
source/SMLib/src/SmFilletCorner.cpp |
2469 | 23 |
source/SMLib/src/NL_FuncsAdv.cpp |
2412 | 7 |
source/SMLib/src/SmBSplineSurface.cpp |
2404 | 32 |
source/SMLib/src/SmSpaceBend.cpp |
2367 | 14 |
source/SMLib/src/SmLineSegClass.cpp |
2344 | 29 |
source/SMLib/src/SmGap.cpp |
2206 | 64 |
source/SMLib/src/SmSpaceUnbend.cpp |
2187 | 16 |
source/SMLib/src/NL_SrfGeom.cpp |
2101 | 7 |
source/SMLib/src/SmHealData.cpp |
2074 | 9 |
source/SMLib/src/SmVertex.cpp |
2005 | 35 |
source/SMLib/src/NL_CrvAdv.cpp |
1970 | 6 |
source/SMLib/src/SmBendVolume.cpp |
1952 | 23 |
source/SMLib/src/NL_CrvBasic.cpp |
1950 | 38 |
source/SMLib/src/SmTopologyIntersector.cpp |
1927 | 12 |
source/SMLib/src/NL_CrvApprox.cpp |
1903 | 6 |
source/SMLib/src/SmGeomUtility.cpp |
1900 | 39 |
source/SMLib/src/SmEdgeuse.cpp |
1837 | 22 |
source/SMLib/src/SmBSplineVolume.cpp |
1828 | 35 |
source/SMLib/src/SmBSplineCurve.cpp |
1723 | 30 |
source/SMLib/src/NL_CrvNurb.cpp |
1714 | 8 |
The full list of unreachable functions (file, line, name) is in harness/callgraph/unused_functions.txt.
Global state and nondeterminism hazards
Only code in the in-scope closure is listed. Rust replacements: everything mutable moves into the
Kernel value (tolerances, RNG, caches, counters) or into explicit per-operation context structs;
pointer-keyed maps become arena-id keyed maps with insertion-ordered iteration (or BTreeMap on ids).
rand()/srand(time) (3 sites)
SmFace::GetPointsInFace reseeds the C RNG with time(NULL) and dithers sample V-parameters when lPointCount > 1. Results are nondeterministic in upstream for that path; callers in the closure (SmAssertArray, SmFeatureExecutive) request one point (deterministic branch). Rust: Kernel RNG (seeded); difftests must avoid lPointCount > 1 or compare only invariants (record in findings.md).
| unit | function | file:lines | example |
|---|---|---|---|
topology.face_p2 |
SmFace::GetPointsInFace |
SmFace.cpp:21183,21225,21359 |
srand((unsigned)time(NULL)) ; |
clock()/time() (1 sites)
Only the time(NULL) RNG seed above survives preprocessing. The clock() timing blocks in SmMerge::MergeAddedTopology and SmTrimmingTools::CheckFace sit inside #ifdef SM_DEBUG_CODE and are compiled out of the reference build. Lines inside inactive #if blocks are excluded from every scan here.
| unit | function | file:lines | example |
|---|---|---|---|
topology.face_p2 |
SmFace::GetPointsInFace |
SmFace.cpp:21183 |
srand((unsigned)time(NULL)) ; |
Pointer-keyed hash containers (13 sites)
SmMapPtrToPtr/std::unordered_* keyed by object addresses. Lookups are order-independent, but any iteration (GetAllKeys, GetAllValues, GetAllKeyValuePairs, Get1stKeyFor, range-for) is address-ordered and therefore run-to-run unstable. Rust: key by arena ids and iterate in insertion order (indexmap-style) or sorted id order; where upstream iterates, record any ordering-driven divergence in findings.md.
| unit | function | file:lines | example |
|---|---|---|---|
topology.brep_p3 |
SmBrep::MergeBrep |
SmBrep.cpp:22871 |
SmMapPtrToPtr<SmTopology, SmTopology> sSourceToCopyMap; |
blend.fillet_corner_p1 |
SmFilletCorner::AddExtendedOriginalSurface |
SmFilletCorner.cpp:1088 |
SmMapPtrToPtr<SmFace, SmSurface> & rMap = m_pExecutive->m_vExtendedSurfacesMap; |
blend.fillet_corner_p1 |
SmFilletCorner::GetExtendedSurface |
SmFilletCorner.cpp:2315 |
SmMapPtrToPtr<SmFace, SmSurface> & rMap = m_pExecutive->m_vExtendedSurfacesMap; |
blend.hcr |
SmHCR::ConstructorInit |
SmHCR.cpp:292,293,294 |
m_pSilVertices = new(m_crContext) SmMapPtrToPtr<SmVertex, SmVertex>(&m_crContext); |
offset.offset_executive_p1 |
SmOffsetExecutive::SmOffsetExecutive |
SmOffsetExecutive.cpp:55 |
m_vSurfExtSurf(*(new (crContext) SmMapPtrToPtr<SmSurface, SmSurface>(&crContext))) |
query.poly |
SmPolyBrep::Transform |
SmPoly.cpp:12682 |
std::unordered_set<SmPolyVertAuxData*> sTransformedAuxData; |
boolean.topology_intersector_p1 |
SmTopologyIntersector::SetSubset |
SmTopologyIntersector.cpp:6459 |
m_pSubset = new (m_crContext) SmMapPtrToPtr<SmObject, SmObject>(); |
boolean.topology_intersector_p2 |
SmTopologyIntersector::SmTopologyIntersector |
SmTopologyIntersector.cpp:130,131 |
m_pBToO = new(crContext) SmMapPtrToPtr<SmObject, SmObject>; |
topology.brep_p1 |
sm_GetObjectMap |
SmBrep.cpp:22824 |
SmMapPtrToPtr<SmTopology, SmTopology> &rMap) // in : Map to accumulate all From->To relati |
topology.brep_p1 |
sm_SetObjectMap |
SmBrep.cpp:22805 |
SmMapPtrToPtr<SmTopology, SmTopology> &rMap, // in : Map to accumulate all From->To relati |
Iteration over pointer-keyed containers (address-ordered) (4 sites)
These sites enumerate a pointer-keyed map/set, so the visiting order (and anything order-dependent downstream: created topology order, tie-breaks, first-match results) depends on heap addresses. Each is a candidate determinism divergence vs upstream; the Rust port uses insertion order of arena ids. Difftests touching these paths should compare order-insensitively where upstream is unstable.
| unit | function | file:lines | example |
|---|---|---|---|
topology.brep_p5 |
SmBrep::Transform |
SmBrep.cpp:28891 |
for (SmEdge* pEdge : sEdges) |
blend.fillet_executive_p1 |
SmFilletExecutive::~SmFilletExecutive |
SmFilletExecutive.cpp:531 |
m_vExtendedSurfacesMap.GetAllValues(sExtSurfaces); |
blend.hcr |
SmHCR::GetSilhouetteEdges |
SmHCR.cpp:312 |
m_pSilEdges->GetAllKeys(rSilEdges); |
boolean.topology_intersector_p1 |
SmTopologyIntersector::GetMappedBrepObjects |
SmTopologyIntersector.cpp:945 |
m_pOToB->GetAllValues(sValues); |
Sorting / ordering that may involve pointers (0 sites)
Sites using qsort/std::sort/pointer-to-integer casts inside the closure. Each needs a check that the comparator does not order by address.
Thread-local storage (11 sites)
SmThreadLocalStorage (pthread TLS) tracks operator new placement bookkeeping and the error callback. Not needed in Rust (no placement new; errors are Result).
| unit | function | file:lines | example |
|---|---|---|---|
(idiom) |
smos_InvokeErrorCallback |
SmMessages.cpp:185 |
SmErrorCallbackFunctionPtr pfErrorCallbackFunction = SmThreadLocalStorage::GetErrCallbackF |
geom.object |
SmObject::SmObject |
SmObject.cpp:104,105,86,87 |
if(SmThreadLocalStorage::GetBeenThroughNew(this)) |
geom.object |
SmThreadLocalStorage::GetBeenThroughNew |
SmThreadLocalStorage.cpp:280,327 |
SmBoolean SmThreadLocalStorage::GetBeenThroughNew |
geom.object |
SmThreadLocalStorage::GetErrCallbackFunction |
SmThreadLocalStorage.cpp:596,625 |
SmErrorCallbackFunctionPtr SmThreadLocalStorage::GetErrCallbackFunction() |
geom.object |
SmThreadLocalStorage::SetBeenThroughNew |
SmThreadLocalStorage.cpp:207,273 |
void SmThreadLocalStorage::SetBeenThroughNew |
Mutable globals and statics
Non-const namespace-scope variables, static members, and function-local statics in in-scope code
(the ~203 static NL_STRING rname = "..." routine-name strings and the sAssert*_list validator
label tables are omitted: never written after initialisation). written = the variable is assigned
after its initialiser somewhere in its function (static locals) — i.e. state carried across calls.
| unit | function | variable | type | file:line | written |
|---|---|---|---|---|---|
nlib.basis_basic |
N_BasisFindGlobalMax |
itl |
NL_INTEGER |
NL_BasisBasic.cpp:1754 |
no |
nlib.basis_basic |
N_BasisFindGlobalMax |
nok |
NL_INTEGER |
NL_BasisBasic.cpp:1755 |
no |
nlib.crv_adv_p1 |
`` | NOREM |
NL_REAL |
NL_CrvAdv.cpp:20 |
|
nlib.crv_adv_p1 |
`` | KN_TOL |
NL_REAL |
NL_CrvAdv.cpp:21 |
|
nlib.crv_adv_p1 |
`` | cto |
NL_REAL |
NL_CrvAdv.cpp:30 |
|
nlib.crv_adv_p2 |
N_CrvEvalUnboundedPtsAndDerivs |
g1tol |
NL_REAL |
NL_CrvAdv.cpp:4261 |
no |
nlib.crv_geom |
N_CrvArcLength |
ctl |
NL_REAL |
NL_CrvGeom.cpp:669 |
no |
nlib.crv_tool_p1 |
`` | cto |
NL_REAL |
NL_CrvTool.cpp:15 |
|
nlib.crv_tool_p1 |
`` | NOREM |
NL_REAL |
NL_CrvTool.cpp:16 |
|
nlib.geom |
`` | ST_mmxaps_xp |
NL_REAL * |
NL_Geom.cpp:20 |
|
nlib.geom |
`` | ST_mmxaps_yp |
NL_REAL * |
NL_Geom.cpp:21 |
|
nlib.geom |
`` | ST_mmxaps_gn |
NL_INDEX |
NL_Geom.cpp:22 |
|
nlib.math |
`` | NLIBCHKBYPASS |
NL_INDEX |
NL_Math.cpp:14 |
|
nlib.math |
`` | ST_EvalIsoUvSwitch |
NL_INDEX |
NL_Math.cpp:22 |
|
nlib.math |
`` | ST_EvalIsoGloUv |
NL_REAL |
NL_Math.cpp:23 |
|
nlib.math |
`` | ST_EvalIsoGloS |
NL_FLAG (*)(NL_REAL, NL_REAL, NL_POINT *) |
NL_Math.cpp:24 |
|
nlib.spiral |
`` | RL |
int |
NL_Spiral.cpp:22 |
|
nlib.spiral |
`` | nSpans |
NL_INDEX |
NL_Spiral.cpp:23 |
|
nlib.spiral |
`` | dTurns |
NL_REAL |
NL_Spiral.cpp:24 |
|
nlib.spiral |
`` | h |
NL_REAL |
NL_Spiral.cpp:25 |
|
nlib.spiral |
`` | r0 |
NL_REAL |
NL_Spiral.cpp:26 |
|
nlib.spiral |
`` | r1 |
NL_REAL |
NL_Spiral.cpp:27 |
|
nlib.spiral |
`` | Rdfun |
NL_REAL |
NL_Spiral.cpp:28 |
|
nlib.srf_adv_p1 |
`` | KN_TOL |
NL_REAL |
NL_SrfAdv.cpp:23 |
|
nlib.srf_adv_p2 |
ST_surxsdr |
siDebug |
int |
NL_SrfAdv.cpp:738 |
no |
nlib.srf_adv_p2 |
ST_surxsdr |
cbi |
int |
NL_SrfAdv.cpp:739 |
no |
nlib.srf_adv_p1 |
N_SrfEvalPtDerivsUnbounded |
g1tol |
NL_REAL |
NL_SrfAdv.cpp:5450 |
no |
nlib.srf_adv_p5 |
N_CreateSkinSrfBoundaryContinuity |
ORIGIN |
NL_CPOINT |
NL_SrfAdv.cpp:13265 |
no |
nlib.srf_adv_p5 |
N_CreateSkinSrfBoundaryContinuity |
dper |
NL_REAL |
NL_SrfAdv.cpp:13267 |
no |
nlib.srf_adv_p5 |
N_CreateSkinSrfBoundaryContinuity |
lper |
NL_REAL |
NL_SrfAdv.cpp:13268 |
no |
nlib.srf_adv_p6 |
N_CreateSweepScale |
MAXPTS |
NL_INDEX |
NL_SrfAdv.cpp:15356 |
no |
nlib.srf_adv_p6 |
N_FillNSidedHole |
lto |
NL_REAL |
NL_SrfAdv.cpp:18604 |
no |
nlib.srf_fit |
`` | pts2 |
NL_REAL ** |
NL_SrfFit.cpp:4227 |
|
nlib.srf_fit |
`` | p2 |
NL_REAL ** |
NL_SrfFit.cpp:4228 |
|
nlib.srf_fit |
`` | glo_np |
NL_INDEX |
NL_SrfFit.cpp:4229 |
|
nlib.srf_fit |
`` | error |
NL_FLAG |
NL_SrfFit.cpp:12657 |
|
nlib.srf_offset |
`` | slm |
NL_REAL |
NL_SrfOffset.cpp:615 |
|
nlib.srf_offset |
`` | totalmax |
NL_INDEX |
NL_SrfOffset.cpp:616 |
|
nlib.srf_tool_p1 |
`` | sto |
NL_REAL |
NL_SrfTool.cpp:13 |
|
nlib.srf_tool_p1 |
`` | NOREM |
NL_REAL |
NL_SrfTool.cpp:14 |
|
geom.assert_array |
`` | SM_bAssertValidStream |
int |
SmAssertArray.cpp:24 |
|
surface.b_spline_volume_n_lib |
`` | s_lVolEvalCount |
ULONG |
SmBSplineVolumeNLib.cpp:1716 |
|
blend.fillet_corner_p3 |
SmFilletCorner::Create |
iDebugLevel |
int |
SmFilletCorner.cpp:1152 |
no |
blend.fillet_executive_p2 |
SmFilletExecutive::SurfaceSurfaceFillet |
dAngTol |
double |
SmFilletExecutive.cpp:1503 |
no; runtime-initialised on first call |
blend.fillet_executive_p2 |
SmFilletExecutive::SurfaceSurfaceFillet |
dTanTol |
double |
SmFilletExecutive.cpp:1504 |
no; runtime-initialised on first call |
blend.fillet_solver_p4 |
SmFilletSolver::ComputePointValues |
sdStaticStep |
double |
SmFilletSolver.cpp:3604 |
no; runtime-initialised on first call |
blend.fillet_solver_p1 |
SmFilletSolver::SetupOffsetExtension |
cbiLinear |
int |
SmFilletSolver.cpp:4203 |
no |
(not in a unit) |
`` | badmem |
void * |
SmMemory.cpp:60 |
|
(not in a unit) |
`` | c3d_smlib_error_handler |
void (*)(int, const TCHAR *, int, const TCHAR *) |
SmMessages.cpp:50 |
|
(not in a unit) |
`` | b_DoGraphics |
int |
SmMessages.cpp:56 |
|
(not in a unit) |
`` | b_OutputLong |
int |
SmMessages.cpp:57 |
|
(not in a unit) |
`` | b_OutputThin |
int |
SmMessages.cpp:58 |
|
(not in a unit) |
`` | b_OutputDebugLog |
int |
SmMessages.cpp:59 |
|
(not in a unit) |
`` | b_OutputCommandLog |
int |
SmMessages.cpp:60 |
|
(not in a unit) |
`` | b_OutputApiLog |
int |
SmMessages.cpp:61 |
|
(not in a unit) |
`` | sOutputFile |
TCHAR[1024] |
SmMessages.cpp:78 |
|
(not in a unit) |
`` | sOutputFileThin |
TCHAR[1024] |
SmMessages.cpp:79 |
|
(not in a unit) |
`` | sOutputFileDebugLog |
TCHAR[1024] |
SmMessages.cpp:80 |
|
(not in a unit) |
`` | s_pfUICallbackFun |
void (*)() |
SmMessages.cpp:89 |
|
(not in a unit) |
`` | s_pfExcapeCallbackFun |
int (*)() |
SmMessages.cpp:103 |
|
(not in a unit) |
`` | s_pfBrepListFun |
void (*)(const SmObject *) |
SmMessages.cpp:199 |
|
(not in a unit) |
`` | s_pfBrepListClearFun |
void (*)() |
SmMessages.cpp:226 |
|
nurbs.nurbs_crv |
`` | cto |
gw_REAL |
SmNurbsCrv.cpp:1477 |
|
nurbs.nurbs_crv |
`` | itl |
long |
SmNurbsCrv.cpp:2678 |
|
nurbs.nurbs_crv |
`` | nok |
long |
SmNurbsCrv.cpp:2679 |
|
topology.proto_topology_p1 |
SmProtoTopologyManager::CanCombineEdgeDefinitions |
sdTolFactor |
double |
SmProtoTopology.cpp:6569 |
no |
intersect.surface_intersector_p3 |
SmSurfaceIntersector::TestPoint |
bStopAtSingularity |
int |
SmSurfaceIntersector.cpp:4630 |
no |
intersect.surface_intersector_p4 |
SmSurfaceIntersector::DoPointIntersection |
bInsideMe |
int |
SmSurfaceIntersector.cpp:7156 |
no |
geom.object |
`` | s_sBeenThroughNew |
bool |
SmThreadLocalStorage.cpp:36 |
|
geom.object |
`` | s_pfErrCallbackFunction |
SmErrorCallbackFunctionPtr |
SmThreadLocalStorage.cpp:331 |
|
geom.object |
`` | s_lSERDepth |
ULONG |
SmThreadLocalStorage.cpp:332 |
|
geom.object |
`` | s_lAssertValidDepth |
ULONG |
SmThreadLocalStorage.cpp:333 |
|
geom.tol |
`` | s_ZoneTol3d |
SmZoneTol3d |
SmTol.cpp:70 |
|
geom.tol |
`` | s_TolGapGain |
double |
SmTol.cpp:71 |
|
geom.tol |
`` | s_ModelSizeEstimate |
double |
SmTol.cpp:72 |
|
geom.tol |
`` | s_LargeSmallSizeRatio |
double |
SmTol.cpp:73 |
|
boolean.topology_intersector_p3 |
SmTopologyIntersector::MergeCoincidentSurfaces |
cbiTol |
int |
SmTopologyIntersector.cpp:4536 |
no |
topology.topology_traverser |
`` | SM_AIH_FACE_NUMBER |
int |
SmTopologyTraverser.cpp:1389 |
|
geom.context |
`` | pGlobalContext |
SmContext * |
SmApiGeneral.cpp:33 |
Highlights:
SmTol.cpp:s_ZoneTol3d,s_TolGapGain,s_ModelSizeEstimate,s_LargeSmallSizeRatioare process-wide tolerance state -> fields ofKernel.SmApiGeneral.cpp:pGlobalContext(lazily created defaultSmContext) -> callers pass&mut Kernel.- NLib file statics used as hidden parameters between a driver and its callback (
NL_Geom.cppST_mmxaps_*,NL_Math.cppST_EvalIso*,NL_Spiral.cppspiral parameters,NL_SrfFit.cpppts2/p2/glo_np,NL_SrfOffset.cppslm/totalmax) -> explicit closure/context structs. - Static iteration/statistics counters (
itl,nok,s_lVolEvalCount,SM_AIH_FACE_NUMBER) -> dropped or moved intoKernelif they influence results. SmMessages.cpplog flags and UI/escape callbacks -> not ported (errors areResult, no I/O).- Context traversal marks (
SmContext::m_lCurrentMark*, see upstream.agents/operations/concurrency.md) are per-context mutable state used by topology traversals ->Kernel/per-operation mark sets.
Threading (TBB)
TBB appears only behind SM_USE_TBB / SM_USE_TBB_SCALABLE, which the reference build does not define
(upstream docs: operations are single-threaded in the shipped build). Only the guard lines remain in
compiled code; the tbb::parallel_for / tbb::task_arena bodies are preprocessed out. Guard sites:
NL_Util.cpp:939inN_Free((idiom)):#ifdef SM_USE_TBB_SCALABLENL_Util.cpp:799inN_Malloc((idiom)):#ifdef SM_USE_TBB_SCALABLESmMemory.cpp:135insmos_Calloc((idiom)):#ifdef SM_USE_TBB_SCALABLESmMemory.cpp:225insmos_Free((idiom)):#ifdef SM_USE_TBB_SCALABLESmBrep.cpp:32253inSmBrep::ShrinkGeometry(topology.brep_p4):#ifdef SM_USE_TBBSmTopologyIntersector.cpp:1128inSmTopologyIntersector::IntersectInsertRelate(boolean.topology_intersector_p2):#ifdef SM_USE_TBBSmTopologyIntersector.cpp:1657inSmTopologyIntersector::IntersectTopology(boolean.topology_intersector_p2):#ifdef SM_USE_TBBSmTopologyIntersector.cpp:1734inSmTopologyIntersector::IntersectTopology(boolean.topology_intersector_p2):#endif // SM_USE_TBB
The parallel paths in SmTopologyIntersector::IntersectInsertRelate / IntersectTopology and
SmBrep::ShrinkGeometry have serial #else branches, which are what the reference build runs and what
the Rust port reproduces (deterministic order). SmMemory.cpp/NL_Util.cpp only switch the allocator.
Caveats
- CHA over-approximates: e.g.
SmSurface::Evaluate-style dispatch makes every surface subclass (including volume-deformationSmCrvInVolume/SmSrfInVolume/SmBendVolumetypes) in scope. Units whose code mostly fails RTA are flagged in their notes. - Calls through macros are seen after expansion (e.g.
SER(...),NER(...)); calls inside#ifdef SM_DEBUG_CODEare not compiled and not seen, matching the reference build. - Implicit destructor calls of stack objects are approximated by constructor -> destructor edges.