Files
OCCT/src/FoundationClasses/TKMath/Convert/FILES.cmake
T
Pasukhin Dmitry 498e7cd173 Foundation Classes, Convert - Replace handle-based APIs with direct array access (#1057)
Refactor the Convert package to eliminate heap-allocated handle-based storage
in favor of direct NCollection_Array members, improving performance and
simplifying the API. Deprecate single-element accessors (Pole, Knot, etc.)
in favor of batch const-reference accessors (Poles, Knots, etc.).

Convert_ConicToBSplineCurve:
- Replace handle members (poles, weights, knots, mults) with direct
  NCollection_Array1 fields (myPoles, myWeights, myKnots, myMults).
- Replace BuildCosAndSin handle-based parameters with array references.
- Add batch accessors: Poles(), Weights(), Knots(), Multiplicities().
- Deprecate single-element accessors: Pole(), Weight(), Knot(), Multiplicity().
- Update all conic subclasses: Circle, Ellipse, Hyperbola, Parabola.

Convert_ElementarySurfaceToBSplineSurface:
- Replace handle members with direct NCollection_Array fields
  (myPoles, myWeights, myUKnots, myVKnots, myUMults, myVMults).
- Add Finalize() to trim oversized arrays in derived constructors.
- Add batch accessors: Poles(), Weights(), UKnots(), VKnots(),
  UMultiplicities(), VMultiplicities().
- Deprecate single-element accessors: Pole(), Weight(), UKnot(), VKnot(),
  UMultiplicity(), VMultiplicity().
- Update all surface subclasses: Cone, Cylinder, Sphere, Torus.

Convert_CompPolynomialToPoles / Convert_GridPolynomialToPoles:
- Replace handle-based output parameters with direct const-reference
  accessors for Poles, Knots, Multiplicities.
- Deprecate old handle-based Poles(), Knots(), Multiplicities() overloads.

Convert_CompBezierCurvesToBSplineCurve (2D and 3D):
- Extract common logic into Convert_CompBezierCurvesToBSplineCurveBase
  template header to eliminate code duplication.
- Replace handle<HArray1> members with direct NCollection_Array1 storage
  in the internal sequence, removing unnecessary heap indirection.

NCollection_Sequence:
- Fix Node constructors to use member initializer lists (copy/move
  construction) instead of default-construct + assign, which failed for
  types like NCollection_Array1 where operator= requires matching sizes.

Downstream callers migrated:
- AdvApprox_ApproxAFunction: use new const-ref Knots()/Multiplicities().
- AppDef_Variational: use new const-ref Knots()/Multiplicities().
- AdvApp2Var_ApproxAFunc2Var, AdvApp2Var_Patch: use new const-ref API.
- Geom2dConvert, GeomConvert, GeomConvert_1: use new const-ref API.
- GeomFill_PolynomialConvertor, GeomFill_QuasiAngularConvertor: adapted.
- Geom_OsculatingSurface: use direct array references instead of
  handle->Array*() calls.

Added GTests for all Convert classes covering conic curves,
elementary surfaces, CompBezier, CompPolynomial, and GridPolynomial
conversions.
2026-02-09 16:38:55 +00:00

40 lines
1.4 KiB
CMake

# Source files for Convert package
set(OCCT_Convert_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
set(OCCT_Convert_FILES
Convert_CircleToBSplineCurve.cxx
Convert_CircleToBSplineCurve.hxx
Convert_CompBezierCurves2dToBSplineCurve2d.cxx
Convert_CompBezierCurves2dToBSplineCurve2d.hxx
Convert_CompBezierCurvesToBSplineCurve.cxx
Convert_CompBezierCurvesToBSplineCurve.hxx
Convert_CompBezierCurvesToBSplineCurveBase.hxx
Convert_CompPolynomialToPoles.cxx
Convert_CompPolynomialToPoles.hxx
Convert_ConeToBSplineSurface.cxx
Convert_ConeToBSplineSurface.hxx
Convert_ConicToBSplineCurve.cxx
Convert_ConicToBSplineCurve.hxx
Convert_CosAndSinEvalFunction.hxx
Convert_CylinderToBSplineSurface.cxx
Convert_CylinderToBSplineSurface.hxx
Convert_ElementarySurfaceToBSplineSurface.cxx
Convert_ElementarySurfaceToBSplineSurface.hxx
Convert_EllipseToBSplineCurve.cxx
Convert_EllipseToBSplineCurve.hxx
Convert_GridPolynomialToPoles.cxx
Convert_GridPolynomialToPoles.hxx
Convert_HyperbolaToBSplineCurve.cxx
Convert_HyperbolaToBSplineCurve.hxx
Convert_ParabolaToBSplineCurve.cxx
Convert_ParabolaToBSplineCurve.hxx
Convert_ParameterisationType.hxx
Convert_PolynomialCosAndSin.cxx
Convert_PolynomialCosAndSin.hxx
Convert_SphereToBSplineSurface.cxx
Convert_SphereToBSplineSurface.hxx
Convert_TorusToBSplineSurface.cxx
Convert_TorusToBSplineSurface.hxx
)