From 06f68996cf1584e9ad538cba796a9bfc36844aae Mon Sep 17 00:00:00 2001 From: jgv Date: Mon, 14 Sep 2020 18:51:50 +0300 Subject: [PATCH] 0031766: Modeling Algorithms - Instability on pipe bugs bug26088 test case Correction in GeomFill_Sweep: set the flags "myExchUV", "isUReversed", "isVReversed" to FALSE (initial state) after failure of BuildKPart method. --- src/GeomFill/GeomFill_Sweep.cxx | 7 +++++++ tests/pipe/bugs/bug26088 | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/GeomFill/GeomFill_Sweep.cxx b/src/GeomFill/GeomFill_Sweep.cxx index af96a3d6ea..95804f3d26 100644 --- a/src/GeomFill/GeomFill_Sweep.cxx +++ b/src/GeomFill/GeomFill_Sweep.cxx @@ -219,6 +219,12 @@ GeomFill_Sweep::GeomFill_Sweep(const Handle(GeomFill_LocationLaw)& Location, // Traitement des KPart if (myKPart) isKPart = BuildKPart(); + + if (!isKPart) + { + myExchUV = Standard_False; + isUReversed = isVReversed = Standard_False; + } // Traitement des produits Formelles if ((!isKPart) && (Methode == GeomFill_Location)) { @@ -876,6 +882,7 @@ static Standard_Boolean IsSweepParallelSpine (const Handle(GeomFill_LocationLaw) // l == f - "degenerated" surface // UlastOnSec - UfirstOnSec > M_PI_2 - "twisted" surface, // it is impossible to represent with help of trimmed sphere + isUReversed = Standard_False; return Ok; } diff --git a/tests/pipe/bugs/bug26088 b/tests/pipe/bugs/bug26088 index 3550592973..f965759185 100755 --- a/tests/pipe/bugs/bug26088 +++ b/tests/pipe/bugs/bug26088 @@ -10,6 +10,16 @@ restore [locate_data_file bug26088_profile0.brep] pr # path and profile pipe result p pr +checkshape result + +checknbshapes result -vertex 8 -edge 14 -wire 6 -face 6 -shell 1 + +set tolres [checkmaxtol result] + +if { ${tolres} > 1.e-4} { + puts "Error: bad tolerance of result" +} + smallview fit checkview -screenshot -2d -path ${imagedir}/${test_image}.png