From b3052a400207f0f555e979426ea110556118d5c9 Mon Sep 17 00:00:00 2001 From: Pasukhin Dmitry Date: Tue, 23 Dec 2025 23:55:16 +0000 Subject: [PATCH] Modeling - Fix 0-based index in BRep_Tool::CurveOnSurface call (#949) Fixed incorrect loop index initialization in GlueEdgesWithPCurves function. The loop for iterating PCurves started from index 0, but BRep_Tool::CurveOnSurface requires 1-based indexing (returns immediately when Index < 1). This bug caused the first PCurve to be skipped, potentially leading to incorrect edge gluing results in ShapeUpgrade_UnifySameDomain. Changed: for (int aCurveIndex = 0;; ...) -> for (int aCurveIndex = 1;; ...) --- .../TKShHealing/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ModelingAlgorithms/TKShHealing/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx b/src/ModelingAlgorithms/TKShHealing/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx index c0633fd303..e1df378b82 100644 --- a/src/ModelingAlgorithms/TKShHealing/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx +++ b/src/ModelingAlgorithms/TKShHealing/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx @@ -1557,7 +1557,7 @@ static TopoDS_Edge GlueEdgesWithPCurves(const TopTools_SequenceOfShape& aChain, TColGeom_SequenceOfSurface SurfSeq; NCollection_Sequence LocSeq; - for (int aCurveIndex = 0;; aCurveIndex++) + for (int aCurveIndex = 1;; aCurveIndex++) { Handle(Geom2d_Curve) aCurve; Handle(Geom_Surface) aSurface;