Units / surface
surface.surface_p2 partial
- Layer
- 21
- Upstream lines
- 2,398
- Functions
- 91
- Rust module
surface::surface::p2
Source: crates/solidcore/src/surface/surface/p2.rs
Upstream: source/SMLib/inc/SmSurface.h, source/SMLib/src/SmSurface.cpp
Notes
surface.surface_p10 (PR #93): LsiGlobalSolver gained the borrowed fields surface_cache and kernel its LocalSolve reads (None from LsiGlobalSolver::new); local_solve now calls LsiGlobalSolver::local_solve_branch (surface::surface::p10). PARTIAL: difftest 869 cases (69 fixture: Surface.sms / DropCurveSurface.sms / offset_nurb.sms queries, evaluation, knots, edits, copies, SmSurfaceEval, ReadFromDB; base SmSurface() defaults; TestSmPrincipalDirectionPairing; + 800 generated), 790 pass bit-identical, 79 deferred after surface.plane_p2 wired the plane dispatch, PR #40 (surface.surface_p5 36, surface.surface_p1 31, surface.cone_p2 10, intersect.adv_surface_intersector 1, topology.trimming_tools 1; the 18 surface.surface_p7 cases moved to surface.surface_p1 with PR #24); wired UNPORTED(surface.surface_p2) in nurbs.b_spline_surface_p1 (IsKindOf), curve.curve_p2, curve.tangent_field, nurbs.b_spline_curve_n_lib, curve.iso_curve, curve.crv_on_surf (ReadFromDB, lift co-ports), nurbs.b_spline_surface_n_lib_p2 (GetDerivativeLimit co-port); geom.grid now blocked on surface.surface_cache_p1; geom.solution_array keeps 2 handle-lookup markers; 91 fns; largest: SmDerivSurfDefinition::CreateCrossSectionCurves, smsurf_EvaluateGeometric, smsurf_DropVectors, sm_CCLocalSolve; cycle back-edges (call into later units; stub or co-port): intersect.curve_class_p1(5), intersect.point_class(3), intersect.surface_intersector_p1(3), intersect.adv_surface_intersector(2), surface.cone_p1(2), surface.surface_cache_p1(2), topology.trimming_tools(2), intersect.curve_class_p2(1), intersect.curve_class_p8(1), intersect.surface_intersector_p4(1), intersect.surface_intersector_p5(1), surface.curve_bounded_surface(1), surface.offset_surface(1), surface.plane_p2(1), surface.sphere(1), surface.srf_in_volume(1), surface.surf_of_extrusion_p2(1), surface.surf_of_revolution_p3(1), surface.surface_p1(1), surface.torus(1); unit-SCC #22 (220 units); 320 upstream test entry points reach this unit intersect.surface_intersector_p5 wired (PR #82): base_global_surface_intersect runs DoIntersection, whose surface caches defer at SmSurface::CalculateContinuities (surface.surface_p6); now 869 cases, 808 pass, 61 deferred (surface.surface_p5 36, surface.surface_p4 13, surface.cone_p2 10, surface.surface_p6 1, topology.trimming_tools 1). [surface.surface_p6 wired (PR #92): 869 cases, 808 pass, 61 deferred (surface.cone_p2 10, surface.surface_p4 13, surface.surface_p5 36, surface.surface_p8 1, topology.trimming_tools 1)] Re-run with surface.surface_p5's back-edges wired (PR #50): cases=869 passed=807 failed=0 deferred=62 max_rel_err=0e0 blocked_by=intersect.adv_surface_intersector(1),surface.plane_p2(11),surface.surface_p3(36),surface.surface_p4(13),topology.trimming_tools(1). Re-run (PR #52, after merging surface_p4/#49 and surface_p5/#50): 869 cases, 844 pass, 25 deferred (surface.surface_point_solve_p3 13, surface.cone_p2 10, surface.surface_p8 1, topology.trimming_tools 1); the generator skips CreateExtendedSurface cases whose in-place N_SrfExtendByDist would be retried on half-written arrays (upstream UB-107, plan/findings.md). surface.surface_point_solve_p3 (PR #106): clone_for_evaluation preserves the owner and exact B-spline/revolution NURBS data for temporary solver evaluation instead of the upstream copy constructor knot fix-up. Re-run after merging PR #106 (surface.surface_point_solve_p3 wired, 2026-10-15): 869 cases, 857 pass, 12 deferred (surface.cone_p2 10, surface.surface_p8 1, topology.trimming_tools 1), 0 failed, max_rel_err 0. [topology.trimming_tools wired (PR #124): CreatePlaneWith3DCurves calls the ported OrderCurvesIntoLoops/FindOuterLoops; re-run after merging main with PR #106: 869 cases, 858 pass, 11 deferred (surface.cone_p2 10, surface.surface_p8 1), 0 failed, max_rel_err 0]
Difftest
- Cases
- 869
- Passed
- 859
- Deferred
- 10
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
surface.cone_p2 claimed | 10 |
Report JSON (per-case results)
Dependencies
Depends on: geom.a_object partial geom.assert_array green geom.extent1d green geom.extent2d green geom.extent3d green geom.geom_utility_p1 green geom.object partial geom.solution_array partial geom.tol green geom.vector2d green geom.vector3d green
Soft dependencies: curve.curve_cache green curve.curve_p2 green curve.curve_p3 green curve.curve_p7 green curve.curve_p8 green geom.axis2_placement green geom.polar_box green geom.polynomial green geom.tree partial nurbs.b_spline_curve_n_lib green nurbs.b_spline_curve_p1 green nurbs.b_spline_surface_n_lib_p2 partial nurbs.b_spline_surface_p1 green nurbs.b_spline_surface_p2 partial
Dependents: blend.fillet_corner_p1 todo blend.fillet_corner_p2 todo blend.fillet_corner_p3 todo blend.fillet_executive_p1 todo blend.fillet_geom_p1 claimed blend.fillet_geom_p2 todo blend.fillet_geom_p4 todo blend.fillet_geom_p5 todo blend.fillet_geom_p6 todo blend.fillet_intersector claimed blend.fillet_solver_p1 claimed blend.fillet_solver_p2 todo blend.fillet_solver_p3 todo blend.fillet_solver_p4 claimed blend.fillet_standard_solver_p1 claimed blend.fillet_standard_solver_p2 todo blend.hcr claimed heal.gap partial intersect.adv_surface_intersector partial intersect.curve_class_p1 partial intersect.curve_class_p2 claimed intersect.curve_class_p5 partial intersect.curve_class_p8 partial intersect.curve_class_p9 partial intersect.point_class partial intersect.ray_tracer partial intersect.surface_drop_curve partial intersect.surface_drop_lib_p1 partial intersect.surface_drop_lib_p3 claimed intersect.surface_intersector_p1 partial intersect.surface_intersector_p2 partial intersect.surface_intersector_p3 partial intersect.surface_silhouette green intersect.topology_solver_p1 partial offset.offset_executive_p1 claimed offset.offset_executive_p2 claimed offset.offset_geometry_creation claimed primitive.primitive_creation_p1 claimed query.face_p1 claimed query.face_p3 claimed surface.cone_p1 green surface.cone_p2 claimed surface.cone_p3 partial surface.curve_bounded_surface green surface.offset_surface green surface.plane_p1 partial surface.plane_p2 partial surface.sphere green surface.srf_in_volume partial surface.surf_of_extrusion_p1 green surface.surf_of_extrusion_p2 partial surface.surf_of_revolution_p1 green surface.surf_of_revolution_p2 partial surface.surf_of_revolution_p3 partial surface.surface_cache_p1 green surface.surface_cache_p2 partial surface.surface_cache_p3 partial surface.surface_p1 partial surface.surface_p10 partial surface.surface_p11 partial surface.surface_p3 green surface.surface_p4 green surface.surface_p5 green surface.surface_p6 green surface.surface_p7 partial surface.surface_p8 partial surface.surface_p9 partial surface.surface_point_solve_p1 green surface.surface_point_solve_p2 green surface.surface_point_solve_p3 green surface.torus green sweep.rotational_sweep_geometry partial sweep.trans_sweep_geometry partial topology.brep_p1 claimed topology.brep_p10 claimed topology.brep_p2 claimed topology.brep_p3 claimed topology.brep_p5 claimed topology.brep_p7 claimed topology.brep_p8 claimed topology.brep_p9 claimed topology.edge partial topology.edgeuse_p1 partial topology.edgeuse_p2 partial topology.edgeuse_p3 claimed topology.face_p1 partial topology.face_p2 partial topology.face_p3 claimed topology.proto_topology_p1 partial
Soft dependents: blend.fillet_custom_solver partial blend.fillet_executive_p2 todo blend.fillet_executive_p3 todo blend.fillet_solver_p5 claimed boolean.merge_p1 partial boolean.merge_p2 todo boolean.merge_p3 todo boolean.topology_intersector_p1 partial boolean.topology_intersector_p3 claimed heal.face_props partial heal.heal_data_p3 partial intersect.curve_class_p4 claimed intersect.surface_intersector_p4 partial intersect.surface_intersector_p5 partial intersect.surface_tracer partial intersect.topology_solver_p2 partial primitive.primitive_creation_p2 todo primitive.primitive_creation_p3 todo query.api_queries partial query.brep claimed query.edge partial query.face_p2 partial query.loop green query.poly partial query.tess partial surface.trim_srf_cache partial sweep.topology_sweep claimed topology.brep_cache partial topology.brep_data partial topology.brep_p4 claimed topology.brep_p6 claimed topology.face_p4 claimed topology.loopuse partial topology.proto_topology_p2 partial topology.trimming_tools partial topology.vertexuse partial
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmDropCurveFail::~SmDropCurveFail | SmSurface.h:168 | 1 | |
SmSurface::~SmSurface | SmSurface.h:333 | 4 | Drop (implicit), Clone |
SmSurface::AdjustSTEPUVDomain | SmSurface.h:345 | 4 | [Surface::adjust_step_uv_domain] |
SmSurface::CreateExtendedSurface | SmSurface.h:605 | 11 | [Surface::create_extended_surface], [Surface::create_extended_surface_dir] |
SmSurface::CreateExtendedSurface | SmSurface.h:617 | 13 | [Surface::create_extended_surface], [Surface::create_extended_surface_dir] |
SmSurface::DropPointFast | SmSurface.h:828 | 12 | [Surface::drop_point_fast] |
SmSurface::Evaluate | SmSurface.h:915 | 32 | [Surface::evaluate], [Surface::evaluate_point] |
SmSurface::EvaluatePoint | SmSurface.h:1012 | 2 | [Surface::evaluate], [Surface::evaluate_point] |
SmSurface::GetOwner | SmSurface.h:1093 | 1 | [Surface::owner] |
SmSurface::GetNaturalUVDomain | SmSurface.h:1096 | 1 | [Surface::natural_uv_domain], [Surface::step_uv_domain] |
SmSurface::GetSTEPUVDomain | SmSurface.h:1097 | 1 | [Surface::natural_uv_domain], [Surface::step_uv_domain] |
SmSurface::GetDegree | SmSurface.h:1098 | 1 | [Surface::degree], [Surface::number_control_points] |
SmSurface::GetNumberControlPoints | SmSurface.h:1099 | 1 | [Surface::degree], [Surface::number_control_points] |
SmSurface::GetMaxAnalyticDomain | SmSurface.h:1101 | 1 | [Surface::max_analytic_domain] |
SmSurface::IsBilinear | SmSurface.h:1468 | 1 | [Surface::is_bilinear], [Surface::is_parallel_to_vector] |
SmSurface::IsParallelToVector | SmSurface.h:1506 | 2 | [Surface::is_bilinear], [Surface::is_parallel_to_vector] |
SmSurface::IntersectWithPlane | SmSurface.h:1591 | 27 | [Surface::intersect_with_plane] |
SmSurface::Reverse | SmSurface.h:1671 | 2 | [Surface::reverse], [Surface::reparameterize] |
SmSurface::Reparameterize | SmSurface.h:1674 | 2 | [Surface::reverse], [Surface::reparameterize] |
SmSurface::SplitAt | SmSurface.h:1703 | 10 | [Surface::split_at], [Surface::step_inversion] |
SmSurface::STEPInversion | SmSurface.h:1715 | 11 | [Surface::split_at], [Surface::step_inversion] |
SmSurface::SwapUV | SmSurface.h:1727 | 2 | [Surface::swap_uv], [Surface::transform], [Surface::trim_with_domain] |
SmSurface::Transform | SmSurface.h:1730 | 5 | [Surface::swap_uv], [Surface::transform], [Surface::trim_with_domain] |
SmSurface::TrimWithDomain | SmSurface.h:1736 | 2 | [Surface::swap_uv], [Surface::transform], [Surface::trim_with_domain] |
SmSurface::GetClassString | SmSurface.h:1752 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING], [Surface::type_code], [Surface::type_string], [Surface::class_string] |
SmSurface::GetType | SmSurface.h:1752 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING], [Surface::type_code], [Surface::type_string], [Surface::class_string] |
SmSurface::GetTypeString | SmSurface.h:1752 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING], [Surface::type_code], [Surface::type_string], [Surface::class_string] |
SmSurfaceEval::SmSurfaceEval | SmSurface.h:2034 | 9 | [SurfaceEval] |
SmSurfaceEval::SmSurfaceEval | SmSurface.h:2044 | 9 | [SurfaceEval] |
SmSurfaceEval::SmSurfaceEval | SmSurface.h:2054 | 9 | [SurfaceEval] |
SmSurfaceEval::operator= | SmSurface.h:2065 | 19 | [SurfaceEval] |
SmSurfaceEval::~SmSurfaceEval | SmSurface.h:2106 | 1 | |
SmSurfaceEval::SetUV | SmSurface.h:2126 | 10 | [SurfaceEval] |
SmSurfaceEval::SetUV | SmSurface.h:2137 | 10 | [SurfaceEval] |
SmSurfaceEval::SetSectDir | SmSurface.h:2169 | 6 | [SurfaceEval] |
SmSurfaceEval::GetUV | SmSurface.h:2178 | 1 | [SurfaceEval] |
SmDerivSurfDefinition::IsFromSurfaceBoundaryCurve | SmSurface.h:2553 | 7 | [DerivSurfDefinition], [TangencyType], [CurvatureType], [BlendEndType] |
SmDerivSurfDefinition::GetNumDerivs | SmSurface.h:2632 | 6 | [DerivSurfDefinition], [TangencyType], [CurvatureType], [BlendEndType] |
SmDerivSurfDefinition::GetClassString | SmSurface.h:2674 | 1 | [TYPE], [TYPE_STRING], [CLASS_STRING], [Surface::type_code], [Surface::type_string], [Surface::class_string] |
SmDerivSurfDefinition::GetClassType | SmSurface.h:2675 | 1 | [DerivSurfDefinition], [TangencyType], [CurvatureType], [BlendEndType] |
SmDropCurveFail::operator= | SmSurface.cpp:144 | 60 | [SurfaceEval] |
SmDropCurveFail::UnInit | SmSurface.cpp:264 | 42 | [DropCurveFail], [DropCurveFailArgs], [CreateUvTrimCurvePathType] |
SmDropCurveFail::Set | SmSurface.cpp:312 | 96 | [DropCurveFail], [DropCurveFailArgs], [CreateUvTrimCurvePathType] |
SmSurface::Copy | SmSurface.cpp:762 | 8 | [Surface::copy], [Surface::copy_and_add_analytics] |
SmSurface::CopyAndAddAnalytics | SmSurface.cpp:812 | 9 | [Surface::copy], [Surface::copy_and_add_analytics] |
SmSurface::GetDerivativeLimit | SmSurface.cpp:827 | 6 | [derivative_limit], [normal_limit] |
SmSurface::GetNormalLimit | SmSurface.cpp:844 | 5 | [derivative_limit], [normal_limit] |
SmSurfaceEval::Eval | SmSurface.cpp:1922 | 37 | [SurfaceEval] |
SmDerivSurfDefinition::SmDerivSurfDefinition | SmSurface.cpp:2179 | 26 | [DerivSurfDefinition], [TangencyType], [CurvatureType], [BlendEndType] |
SmDerivSurfDefinition::~SmDerivSurfDefinition | SmSurface.cpp:2211 | 7 | |
SmDerivSurfDefinition::AssertValid | SmSurface.cpp:2241 | 87 | [DerivSurfDefinition], [TangencyType], [CurvatureType], [BlendEndType] |
SmDerivSurfDefinition::CreateCrossSectionCurves | SmSurface.cpp:3303 | 193 | [DerivSurfDefinition], [TangencyType], [CurvatureType], [BlendEndType] |
SmDerivSurfDefinition::SkinDerivSurface | SmSurface.cpp:3503 | 87 | [DerivSurfDefinition], [TangencyType], [CurvatureType], [BlendEndType] |
sm_GetOriginalSurface | SmSurface.cpp:3600 | 16 | [original_surface] |
smsurf_GetSurfaceCache | SmSurface.cpp:3749 | 40 | [surface_cache] |
sm_CCLocalSolve | SmSurface.cpp:3826 | 115 | [cc_local_solve] |
SmIsoCurveLengthIFEO::SmIsoCurveLengthIFEO | SmSurface.cpp:5194 | 5 | [IsoCurveLengthIntegrand] |
SmFindSingularParamWithGivenTangentDirEFO::~SmFindSingularParamWithGivenTangentDirEFO | SmSurface.cpp:6611 | 1 | |
s_MapUV | SmSurface.cpp:7244 | 14 | [map_uv], [is_even] |
s_IsEven | SmSurface.cpp:7258 | 1 | [map_uv], [is_even] |
SmSurface::CreatePlaneWith3DCurves | SmSurface.cpp:9940 | 112 | [Surface::create_plane_with_3d_curves], [PlaneWith3dCurves] |
SmSurface::CurveOnClassify | SmSurface.cpp:10167 | 79 | [Surface::curve_on_classify] |
sm_MergeDoubleArrays | SmSurface.cpp:11574 | 41 | [merge_double_arrays] |
SmSurface::ConvertUVFromSTEPToNURBS | SmSurface.cpp:12242 | 34 | [Surface::convert_uv_from_step_to_nurbs], [Surface::convert_uv_from_nurbs_to_step] |
SmSurface::ConvertUVFromNURBSToSTEP | SmSurface.cpp:12282 | 8 | [Surface::convert_uv_from_step_to_nurbs], [Surface::convert_uv_from_nurbs_to_step] |
SmSurface::GetKnots | SmSurface.cpp:12361 | 14 | [Surface::knots] |
sm_ConvertToParameterDelta | SmSurface.cpp:13053 | 11 | [convert_to_parameter_delta] |
sm_CsArePerpenDisjoint | SmSurface.cpp:17322 | 53 | [cs_are_perpen_disjoint] |
SmLSIGlobalSolver::~SmLSIGlobalSolver | SmSurface.cpp:17907 | 3 | |
SmLSIGlobalSolver::BranchMayContainAnswers | SmSurface.cpp:17963 | 106 | [LsiGlobalSolver] |
SmSurface::GlobalSurfaceIntersect | SmSurface.cpp:20375 | 92 | [Surface::global_surface_intersect], [base_global_surface_intersect], [SurfaceIntersection] |
sm_IntersectAndSplit | SmSurface.cpp:23712 | 45 | [intersect_and_split], [intersect_curve_and_split] |
sm_IntersectCurveAndSplit | SmSurface.cpp:23764 | 52 | [intersect_and_split], [intersect_curve_and_split] |
sm_SetUpBreaks | SmSurface.cpp:24009 | 25 | [set_up_breaks] |
SmCSIntersectENFO::~SmCSIntersectENFO | SmSurface.cpp:24459 | 1 | |
SmCSNormalizeENFO::~SmCSNormalizeENFO | SmSurface.cpp:25220 | 1 | |
SmFindPSNormalENFO::~SmFindPSNormalENFO | SmSurface.cpp:25832 | 1 | |
SmSSPIntersectENFO::~SmSSPIntersectENFO | SmSurface.cpp:26606 | 1 | |
SmSSINormalizeENFO::~SmSSINormalizeENFO | SmSurface.cpp:26963 | 1 | |
SmSSNormalizeENFO::~SmSSNormalizeENFO | SmSurface.cpp:28082 | 1 | |
SmSSSIntersectENFO::~SmSSSIntersectENFO | SmSurface.cpp:28634 | 1 | |
smsurf_LiftSecondDerivative | SmSurface.cpp:29647 | 17 | [lift_second_derivative], [lift_third_derivative] |
smsurf_LiftThirdDerivative | SmSurface.cpp:29670 | 29 | [lift_second_derivative], [lift_third_derivative] |
smsurf_ScaleSTEPAngularDerivatives | SmSurface.cpp:29704 | 22 | [scale_step_angular_derivatives] |
smsurf_EvaluateGeometric | SmSurface.cpp:29746 | 184 | [evaluate_geometric], [GeometricProperties] |
smsurf_ComputeSurfacePointType | SmSurface.cpp:30027 | 50 | [compute_surface_point_type], [LocalSurfaceType], [SurfaceSideType] |
smsurf_DropVectors | SmSurface.cpp:30143 | 171 | [drop_vectors] |
SmSurface::Notify | SmSurface.cpp:30324 | 50 | [notify] |
SmSurface::PointBasedSurfaceIntersect | SmSurface.cpp:30588 | 66 | [Surface::point_based_surface_intersect], [PointIntersection] |
SmSurface::ReadFromDB | SmSurface.cpp:34641 | 27 | [Surface::read_from_db] |
SmSurface::IsKindOf | SmSurface.cpp:34673 | 4 | [is_kind_of], [Surface::is_kind_of] |
Module file-header table (48 rows)
| Rust | Upstream |
|---|---|
[Surface], [SurfaceKind] | SmSurface (and its derived classes) |
[SurfaceEvaluate] | the evaluation virtuals generic callers use |
Drop (implicit), Clone | ~SmSurface, copy constructor (owner reset) |
[TYPE], [TYPE_STRING], [CLASS_STRING], [Surface::type_code], [Surface::type_string], [Surface::class_string] | GetType, GetTypeString, GetClassString (SM_COMMON) |
[is_kind_of], [Surface::is_kind_of] | SmSurface::IsKindOf |
[Surface::owner] | GetOwner |
[Surface::copy], [Surface::copy_and_add_analytics] | Copy, CopyAndAddAnalytics |
[Surface::adjust_step_uv_domain] | AdjustSTEPUVDomain |
[Surface::create_extended_surface], [Surface::create_extended_surface_dir] | CreateExtendedSurface (both) |
[Surface::drop_point_fast] | DropPointFast |
[Surface::evaluate], [Surface::evaluate_point] | Evaluate, EvaluatePoint |
[Surface::natural_uv_domain], [Surface::step_uv_domain] | GetNaturalUVDomain, GetSTEPUVDomain |
[Surface::degree], [Surface::number_control_points] | GetDegree, GetNumberControlPoints |
[Surface::max_analytic_domain] | GetMaxAnalyticDomain |
[Surface::is_bilinear], [Surface::is_parallel_to_vector] | IsBilinear, IsParallelToVector |
[Surface::intersect_with_plane] | IntersectWithPlane |
[Surface::reverse], [Surface::reparameterize] | Reverse, Reparameterize |
[Surface::split_at], [Surface::step_inversion] | SplitAt, STEPInversion |
[Surface::swap_uv], [Surface::transform], [Surface::trim_with_domain] | SwapUV, Transform, TrimWithDomain |
[Surface::knots] | GetKnots |
[Surface::convert_uv_from_step_to_nurbs], [Surface::convert_uv_from_nurbs_to_step] | ConvertUVFromSTEPToNURBS, ConvertUVFromNURBSToSTEP |
[Surface::curve_on_classify] | CurveOnClassify |
[Surface::global_surface_intersect], [base_global_surface_intersect], [SurfaceIntersection] | GlobalSurfaceIntersect (virtual: the SmPlane override in surface::plane::p2; the SmSurface body) |
[Surface::point_based_surface_intersect], [PointIntersection] | PointBasedSurfaceIntersect (UV point version) |
[Surface::read_from_db] | SmSurface::ReadFromDB |
[Surface::create_plane_with_3d_curves], [PlaneWith3dCurves] | CreatePlaneWith3DCurves |
[derivative_limit], [normal_limit] | GetDerivativeLimit, GetNormalLimit (static) |
[notify] | SmSurface::Notify |
base_* functions | the SmSurface.h inline defaults of the virtuals |
[SurfaceEval] | SmSurfaceEval (constructors, operator=, SetUV, SetSectDir, GetUV, Eval) |
[DerivSurfDefinition], [TangencyType], [CurvatureType], [BlendEndType] | SmDerivSurfDefinition (constructor, AssertValid, IsFromSurfaceBoundaryCurve, GetNumDerivs, CreateCrossSectionCurves, SkinDerivSurface, GetClassString, GetClassType), SmTangencyType, SmCurvatureType, SmBlendEndType |
[DropCurveFail], [DropCurveFailArgs], [CreateUvTrimCurvePathType] | SmDropCurveFail (operator=, UnInit, Set), SmCreateUVTrimCurvePathType |
[lift_second_derivative], [lift_third_derivative] | smsurf_LiftSecondDerivative, smsurf_LiftThirdDerivative |
[scale_step_angular_derivatives] | smsurf_ScaleSTEPAngularDerivatives |
[evaluate_geometric], [GeometricProperties] | smsurf_EvaluateGeometric |
[compute_surface_point_type], [LocalSurfaceType], [SurfaceSideType] | smsurf_ComputeSurfacePointType, SmLocalSurfaceType, SmSurfaceSideType |
[drop_vectors] | smsurf_DropVectors |
[surface_cache] | smsurf_GetSurfaceCache |
[original_surface] | sm_GetOriginalSurface (static) |
[cc_local_solve] | sm_CCLocalSolve (static) |
[merge_double_arrays] | sm_MergeDoubleArrays (static) |
[convert_to_parameter_delta] | sm_ConvertToParameterDelta (static) |
[cs_are_perpen_disjoint] | sm_CsArePerpenDisjoint (static) |
[intersect_and_split], [intersect_curve_and_split] | sm_IntersectAndSplit, sm_IntersectCurveAndSplit (static) |
[set_up_breaks] | sm_SetUpBreaks (static) |
[map_uv], [is_even] | s_MapUV, s_IsEven (static) |
[LsiGlobalSolver] | SmLSIGlobalSolver (BranchMayContainAnswers) |
[IsoCurveLengthIntegrand] | SmIsoCurveLengthIFEO (constructor) |
Upstream tests reaching this unit
SM_API_test:TestSmPrincipalDirectionPairing, prog_test:my_test_extent3d, prog_test:my_test_vector2d, prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point, prog_test:my_test_matrix