mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-07-10 04:17:44 +08:00
Extract duplicated curve analysis logic (tangent, curvature, normal, centre of curvature, inflection/extrema finding) from per-type evaluators (BezierCurve, BSplineCurve, OffsetCurve, OtherCurve) into shared CurveAnalysisTools.pxx for both GeomProp (3D) and Geom2dProp (2D). Add GeomProp::ComputeTangent overload with sign correction using finite-difference points, and use it in BRepProp_Curve::Tangent to properly handle degenerate D1 cases instead of falling back to unsigned higher-order derivatives. Add GeomProp_Curve::Continuity static methods for computing junction continuity (C0/G1/C1/C2) between two Geom_Curve handles, with BSpline knot-multiplicity analysis and optional orientation reversal flags. Add 29 per-geometry-type GTest files (9 3D curves, 9 2D curves, 11 3D surfaces) covering: - Analytical property verification against known formulas - VsCLProps/VsCLProps2d/VsSLProps comparison with legacy LProp APIs at both uniform samples and critical points (vertices, poles, knots, seams, endpoints, near-degenerate regions) - FindCurvatureExtrema/FindInflections validation where applicable Update existing VsCLProps, VsCLProps2d, VsSLProps, and VsBRepLProp comparison tests with improved structure and broader coverage.