Modeling Data - Modernize LProp .gxx templates into .pxx utilities (#1155)

Replace legacy .gxx generic class templates (LProp_CLProps.gxx,
LProp_SLProps.gxx) with modern C++ .pxx template utilities
(LProp_CurveUtils.pxx, LProp_SurfaceUtils.pxx) using namespaced
template functions and access policies.

Remove obsolete CurveTool/SurfaceTool intermediary classes
(GeomLProp_CurveTool, GeomLProp_SurfaceTool, LProp3d_CurveTool,
LProp3d_SurfaceTool, BRepLProp_CurveTool) that are no longer needed
with the new direct/tool access policy design.

Replace per-instantiation _0.cxx files with standalone .cxx
implementations that delegate to the shared .pxx utilities.

Fix myCN field type from double to int in all CLProps headers
to match SLProps convention and actual usage (values 0 or 4).
Add default member initializers for uninitialized fields
(myCurvature, mySignificantFirstDerivativeOrder, myMinCurv,
myMaxCurv, myMeanCurv, myGausCurv) across all CLProps/SLProps classes.
Fix theSigOrder pass-by-value bug in Tangent/Curvature wrappers.
Fix typos: anUinfium/anVinfium -> anUinfimum/anVinfimum.
This commit is contained in:
Pasukhin Dmitry
2026-03-09 23:29:52 +00:00
committed by GitHub
parent c4715e0e72
commit fe9a0de8d0
47 changed files with 3324 additions and 2095 deletions

View File

@@ -33,7 +33,6 @@ class BRepAdaptor_Curve;
class gp_Vec;
class gp_Pnt;
class gp_Dir;
class BRepLProp_CurveTool;
class BRepLProp_CLProps
{
@@ -113,14 +112,14 @@ private:
BRepAdaptor_Curve myCurve;
double myU;
int myDerOrder;
double myCN;
int myCN;
double myLinTol;
gp_Pnt myPnt;
gp_Vec myDerivArr[3];
gp_Dir myTangent;
double myCurvature;
double myCurvature = 0.0;
LProp_Status myTangentStatus;
int mySignificantFirstDerivativeOrder;
int mySignificantFirstDerivativeOrder = 0;
};
#endif // _BRepLProp_CLProps_HeaderFile