mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-08-09 07:20:52 +08:00
498e7cd173
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.
40 lines
1.4 KiB
CMake
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
|
|
)
|