diff --git a/src/Draft/Draft_Modification_1.cxx b/src/Draft/Draft_Modification_1.cxx index 072f21e443..3d27584c73 100644 --- a/src/Draft/Draft_Modification_1.cxx +++ b/src/Draft/Draft_Modification_1.cxx @@ -1212,14 +1212,16 @@ void Draft_Modification::Perform () Dist2Min = RealLast(); for (i = 1; i <= myExtPC.NbExt(); i++) { - Dist2 = myExtPC.SquareDistance(i); - if (Dist2 < Dist2Min) - { - Dist2Min = Dist2; - pmin = myExtPC.Point(i).Parameter(); - } + if (myExtPC.IsMin(i)) + { + Dist2 = myExtPC.SquareDistance(i); + if (Dist2 < Dist2Min) + { + Dist2Min = Dist2; + pmin = myExtPC.Point(i).Parameter(); + } + } } - newC->D1(pmin,pfv,newd1); Standard_Boolean YaRev = d1fv.Dot(newd1) < 0.; @@ -1986,7 +1988,7 @@ static Standard_Real Parameter(const Handle(Geom_Curve)& C, GeomAdaptor_Curve TheCurve(C); Extrema_ExtPC myExtPC(P,TheCurve); if (!myExtPC.IsDone()) { - Standard_Failure::Raise(); + Standard_Failure::Raise("Draft_Modification_1::Parameter: ExtremaPC not done."); } if (myExtPC.NbExt() >= 1) { Standard_Real Dist2, Dist2Min = myExtPC.SquareDistance(1); diff --git a/src/Extrema/Extrema_FuncExtPC.gxx b/src/Extrema/Extrema_FuncExtPC.gxx index 381e77f824..347079142c 100644 --- a/src/Extrema/Extrema_FuncExtPC.gxx +++ b/src/Extrema/Extrema_FuncExtPC.gxx @@ -364,17 +364,18 @@ Standard_Integer Extrema_FuncExtPC::GetStateNumber () { if (!myPinit || !myCinit) Standard_TypeMismatch::Raise(); mySqDist.Append(myPc.SquareDistance(myP)); - Standard_Integer IntVal; - if (!myD1Init) { - myD1Init = Standard_True; - Standard_Real FF, DD; - Values(myU, FF, DD); - } - if (!myD1Init) IntVal = 0; - else { - if (myD1f > 0.) { IntVal = 1; } - else { IntVal = 0; } + + // It is necessary to always compute myD1f. + myD1Init = Standard_True; + Standard_Real FF, DD; + Values(myU, FF, DD); + + Standard_Integer IntVal = 0; + if (myD1f > 0.0) + { + IntVal = 1; } + myIsMin.Append(IntVal); myPoint.Append(POnC(myU,myPc)); return 0; diff --git a/src/Extrema/Extrema_GExtPC.gxx b/src/Extrema/Extrema_GExtPC.gxx index 5a0d0bf69c..59002f4f38 100644 --- a/src/Extrema/Extrema_GExtPC.gxx +++ b/src/Extrema/Extrema_GExtPC.gxx @@ -28,13 +28,13 @@ #include #include #include +#include //======================================================================= //function : Perform //purpose : //======================================================================= - void Extrema_GExtPC::Perform(const ThePoint& P) { mySqDist.Clear(); @@ -56,58 +56,203 @@ void Extrema_GExtPC::Perform(const ThePoint& P) mydist2 = P.SquareDistance(Pl); } + TheCurve & aCurve = *((TheCurve*)myC); + switch(type) { case GeomAbs_Circle: { - myExtPElC.Perform(P, TheCurveTool::Circle(*((TheCurve*)myC)), t3d, myuinf, myusup); + myExtPElC.Perform(P, TheCurveTool::Circle(aCurve), t3d, myuinf, myusup); } break; case GeomAbs_Ellipse: { - myExtPElC.Perform(P, TheCurveTool::Ellipse(*((TheCurve*)myC)), t3d, myuinf, myusup); + myExtPElC.Perform(P, TheCurveTool::Ellipse(aCurve), t3d, myuinf, myusup); } break; case GeomAbs_Parabola: { - myExtPElC.Perform(P, TheCurveTool::Parabola(*((TheCurve*)myC)), t3d,myuinf,myusup); + myExtPElC.Perform(P, TheCurveTool::Parabola(aCurve), t3d,myuinf,myusup); } break; case GeomAbs_Hyperbola: { - myExtPElC.Perform(P,TheCurveTool::Hyperbola(*((TheCurve*)myC)),t3d, myuinf, myusup); + myExtPElC.Perform(P,TheCurveTool::Hyperbola(aCurve),t3d, myuinf, myusup); } break; case GeomAbs_Line: { - myExtPElC.Perform(P, TheCurveTool::Line(*((TheCurve*)myC)), t3d, myuinf, myusup); + myExtPElC.Perform(P, TheCurveTool::Line(aCurve), t3d, myuinf, myusup); } break; case GeomAbs_BezierCurve: { myintuinf = myuinf; myintusup = myusup; - mysample = (TheCurveTool::Bezier(*((TheCurve*)myC)))->NbPoles()*2; + mysample = (TheCurveTool::Bezier(aCurve))->NbPoles() * 2; + myExtPC.Initialize(aCurve); IntervalPerform(P); return; } case GeomAbs_BSplineCurve: { - mysample = (TheCurveTool::BSpline(*((TheCurve*)myC)))->NbPoles()*2; + const Standard_Integer + aFirstIdx = TheCurveTool::BSpline(aCurve)->FirstUKnotIndex(), + aLastIdx = TheCurveTool::BSpline(aCurve)->LastUKnotIndex(); + // const reference can not be used due to implementation of BRep_Adaptor. + TColStd_Array1OfReal aKnots(aFirstIdx, aLastIdx); + TheCurveTool::BSpline(aCurve)->Knots(aKnots); + + // Workaround to work with: + // blend, where knots may be moved from param space. + Standard_Real aPeriodJump = 0.0; + if (TheCurveTool::IsPeriodic(aCurve)) + { + Standard_Integer aPeriodShift = + Standard_Integer ((myuinf - aKnots(aFirstIdx)) / TheCurveTool::Period(aCurve)); + + if (myuinf < aKnots(aFirstIdx)) + aPeriodShift--; + + aPeriodJump = TheCurveTool::Period(aCurve) * aPeriodShift; + } + + Standard_Integer anIdx; + + // Find first and last used knot + Standard_Integer aFirstUsedKnot = aFirstIdx, + aLastUsedKnot = aLastIdx; + for(anIdx = aFirstIdx; anIdx <= aLastIdx; anIdx++) + { + Standard_Real aKnot = aKnots(anIdx) + aPeriodJump; + if (myuinf >= aKnot) + aFirstUsedKnot = anIdx; + else + break; + + } + for(anIdx = aLastIdx; anIdx >= aFirstIdx; anIdx--) + { + Standard_Real aKnot = aKnots(anIdx) + aPeriodJump; + if (myusup <= aKnot) + aLastUsedKnot = anIdx; + else + break; + } + + mysample = (TheCurveTool::BSpline(aCurve))->Degree() + 1; + + // Fill sample points. + Standard_Integer aValIdx = 1; + NCollection_Array1 aVal(1, (mysample) * (aLastUsedKnot - aFirstUsedKnot) + 1); + NCollection_Array1 aParam(1, (mysample) * (aLastUsedKnot - aFirstUsedKnot) + 1); + for(anIdx = aFirstUsedKnot; anIdx < aLastUsedKnot; anIdx++) + { + Standard_Real aF = aKnots(anIdx) + aPeriodJump, + aL = aKnots(anIdx + 1) + aPeriodJump; + + if (anIdx == aFirstUsedKnot) + aF = myuinf; + if (anIdx == aLastUsedKnot - 1) + aL = myusup; + + Standard_Real aStep = (aL - aF) / mysample; + for(Standard_Integer aPntIdx = 0; aPntIdx < mysample; aPntIdx++) + { + Standard_Real aCurrentParam = aF + aStep * aPntIdx; + aVal(aValIdx) = TheCurveTool::Value(aCurve, aCurrentParam).SquareDistance(P); + aParam(aValIdx) = aCurrentParam; + aValIdx++; + } + } + // Fill last point. + aVal(aValIdx) = TheCurveTool::Value(aCurve, myusup).SquareDistance(P); + aParam(aValIdx) = myusup; + + myExtPC.Initialize(aCurve); + + // Find extremas. + for(anIdx = aVal.Lower() + 1; anIdx < aVal.Upper(); anIdx++) + { + if (aVal(anIdx) <= Precision::SquareConfusion()) + { + mySqDist.Append(aVal(anIdx)); + myismin.Append(Standard_True); + mypoint.Append(ThePOnC(aParam(anIdx), TheCurveTool::Value(aCurve, aParam(anIdx)))); + } + if ((aVal(anIdx) >= aVal(anIdx + 1) && + aVal(anIdx) >= aVal(anIdx - 1)) || + (aVal(anIdx) <= aVal(anIdx + 1) && + aVal(anIdx) <= aVal(anIdx - 1)) ) + { + myintuinf = aParam(anIdx - 1); + myintusup = aParam(anIdx + 1); + + IntervalPerform(P); + } + } + + // Solve on first and last interval. + if (mydist1 > Precision::SquareConfusion()) + { + ThePoint aP1, aP2; + TheVector aV1, aV2; + TheCurveTool::D1(aCurve, aParam.Value(aParam.Lower()), aP1, aV1); + TheCurveTool::D1(aCurve, aParam.Value(aParam.Lower() + 1), aP2, aV2); + TheVector aBase1(P, aP1), aBase2(P, aP2); + Standard_Real aVal1 = aV1.Dot(aBase1); // Derivative of (C(u) - P)^2 + Standard_Real aVal2 = aV2.Dot(aBase2); // Derivative of (C(u) - P)^2 + + // Derivatives have opposite signs - min or max inside of interval (sufficient condition). + // Necessary condition - when point lies on curve. + if(aVal1 * aVal2 <= 0.0 || + aBase1.Dot(aBase2) <= 0.0) + { + myintuinf = aParam(aVal.Lower()); + myintusup = aParam(aVal.Lower() + 1); + IntervalPerform(P); + } + } + + if (mydist2 > Precision::SquareConfusion()) + { + ThePoint aP1, aP2; + TheVector aV1, aV2; + TheCurveTool::D1(aCurve, aParam.Value(aParam.Upper() - 1), aP1, aV1); + TheCurveTool::D1(aCurve, aParam.Value(aParam.Upper()), aP2, aV2); + TheVector aBase1(P, aP1), aBase2(P, aP2); + Standard_Real aVal1 = aV1.Dot(aBase1); // Derivative of (C(u) - P)^2 + Standard_Real aVal2 = aV2.Dot(aBase2); // Derivative of (C(u) - P)^2 + + // Derivatives have opposite signs - min or max inside of interval (sufficient condition). + // Necessary condition - when point lies on curve. + if(aVal1 * aVal2 <= 0.0 || + aBase1.Dot(aBase2) <= 0.0) + { + myintuinf = aParam(aVal.Upper() - 1); + myintusup = aParam(aVal.Upper()); + IntervalPerform(P); + } + } + + mydone = Standard_True; + break; } - case GeomAbs_OtherCurve: + case GeomAbs_OtherCurve: { Standard_Boolean IntExtIsDone = Standard_False; Standard_Boolean IntIsNotValid; - n = TheCurveTool::NbIntervals(*((TheCurve*)myC), GeomAbs_C2); + n = TheCurveTool::NbIntervals(aCurve, GeomAbs_C2); TColStd_Array1OfReal theInter(1, n+1); - Standard_Boolean isPeriodic = TheCurveTool::IsPeriodic(*((TheCurve*)myC)); - TheCurveTool::Intervals(*((TheCurve*)myC), theInter, GeomAbs_C2); + Standard_Boolean isPeriodic = TheCurveTool::IsPeriodic(aCurve); + TheCurveTool::Intervals(aCurve, theInter, GeomAbs_C2); mysample = Max(mysample/n, 17); TheVector V1; ThePoint PP; Standard_Real s1 = 0.0 ; - Standard_Real s2 = 0.0; - for (i = 1; i <= n; i++) { + Standard_Real s2 = 0.0; + myExtPC.Initialize(aCurve); + for (i = 1; i <= n; i++) + { myintuinf = theInter(i); myintusup = theInter(i+1); @@ -115,7 +260,7 @@ void Extrema_GExtPC::Perform(const ThePoint& P) Standard_Real aSupToCheck = myintusup; if (isPeriodic) { - Standard_Real aPeriod = TheCurveTool::Period(*((TheCurve*)myC)); + Standard_Real aPeriod = TheCurveTool::Period(aCurve); anInfToCheck = ElCLib::InPeriod(myintuinf, myuinf, myuinf+aPeriod); aSupToCheck = myintusup+(anInfToCheck-myintuinf); } @@ -129,7 +274,7 @@ void Extrema_GExtPC::Perform(const ThePoint& P) if (i != 1) { - TheCurveTool::D1(*((TheCurve*)myC), myintuinf, PP, V1); + TheCurveTool::D1(aCurve, myintuinf, PP, V1); s1 = (TheVector(P, PP))*V1; if (s1*s2 < 0.0) { mySqDist.Append(PP.SquareDistance(P)); @@ -138,65 +283,80 @@ void Extrema_GExtPC::Perform(const ThePoint& P) } } if (i != n) { - TheCurveTool::D1(*((TheCurve*)myC), myintusup, PP, V1); + TheCurveTool::D1(aCurve, myintusup, PP, V1); s2 = (TheVector(P, PP))*V1; } IntervalPerform(P); IntExtIsDone = IntExtIsDone || mydone; } - mydone = IntExtIsDone; - // Additional checking if the point is on the first or last point of the curve and does not added yet - if (mydist1 < Precision::SquareConfusion() || mydist2 < Precision::SquareConfusion()) - { - Standard_Boolean isFirstAdded = Standard_False; - Standard_Boolean isLastAdded = Standard_False; - Standard_Integer aNbPoints = mypoint.Length(); - for (i = 1; i <= aNbPoints; i++) - { - U = mypoint.Value(i).Parameter(); - if (Abs(U - myuinf) < mytolu) - isFirstAdded = Standard_True; - else if (Abs(myusup - U) < mytolu) - isLastAdded = Standard_True; - } - if (!isFirstAdded && mydist1 < Precision::SquareConfusion()) - { - mySqDist.Prepend(mydist1); - myismin.Prepend(Standard_True); - mypoint.Prepend(ThePOnC(myuinf, Pf)); - } - if (!isLastAdded && mydist2 < Precision::SquareConfusion()) - { - mySqDist.Append(mydist2); - myismin.Append(Standard_True); - mypoint.Append(ThePOnC(myusup, Pl)); - } - } - return; + mydone = IntExtIsDone; + break; } } - - - mydone = myExtPElC.IsDone(); - if (mydone) { - NbExt = myExtPElC.NbExt(); - for (i = 1; i <= NbExt; i++) { - // Verification de la validite des parametres: - ThePOnC PC = myExtPElC.Point(i); - U = PC.Parameter(); - if (TheCurveTool::IsPeriodic(*((TheCurve*)myC))) { - U = ElCLib::InPeriod(U, myuinf, myuinf+TheCurveTool::Period(*((TheCurve*)myC))); + + // Postprocessing. + if (type == GeomAbs_BSplineCurve || + type == GeomAbs_OtherCurve) + { + // Additional checking if the point is on the first or last point of the curve + // and does not added yet. + if (mydist1 < Precision::SquareConfusion() || + mydist2 < Precision::SquareConfusion()) + { + Standard_Boolean isFirstAdded = Standard_False; + Standard_Boolean isLastAdded = Standard_False; + Standard_Integer aNbPoints = mypoint.Length(); + for (i = 1; i <= aNbPoints; i++) + { + U = mypoint.Value(i).Parameter(); + if (Abs(U - myuinf) < mytolu) + isFirstAdded = Standard_True; + else if (Abs(myusup - U) < mytolu) + isLastAdded = Standard_True; } - if ((U >= myuinf-mytolu) && (U <= myusup+mytolu)){ - PC.SetValues(U, myExtPElC.Point(i).Value()); - mySqDist.Append(myExtPElC.SquareDistance(i)); - myismin.Append(myExtPElC.IsMin(i)); - mypoint.Append(PC); + if (!isFirstAdded && mydist1 < Precision::SquareConfusion()) + { + mySqDist.Prepend(mydist1); + myismin.Prepend(Standard_True); + mypoint.Prepend(ThePOnC(myuinf, Pf)); + } + if (!isLastAdded && mydist2 < Precision::SquareConfusion()) + { + mySqDist.Append(mydist2); + myismin.Append(Standard_True); + mypoint.Append(ThePOnC(myusup, Pl)); + } + mydone = Standard_True; + } + } + else + { + // In analytical case + mydone = myExtPElC.IsDone(); + if (mydone) + { + NbExt = myExtPElC.NbExt(); + for (i = 1; i <= NbExt; i++) + { + // Verification de la validite des parametres: + ThePOnC PC = myExtPElC.Point(i); + U = PC.Parameter(); + if (TheCurveTool::IsPeriodic(aCurve)) + { + U = ElCLib::InPeriod(U, myuinf, myuinf+TheCurveTool::Period(aCurve)); + } + if ((U >= myuinf-mytolu) && (U <= myusup+mytolu)) + { + PC.SetValues(U, myExtPElC.Point(i).Value()); + mySqDist.Append(myExtPElC.SquareDistance(i)); + myismin.Append(myExtPElC.IsMin(i)); + mypoint.Append(PC); + } } } - } + } } @@ -232,20 +392,23 @@ void Extrema_GExtPC::IntervalPerform(const ThePoint& P) { Standard_Integer i; Standard_Real U; - myExtPC.Initialize((*((TheCurve*)myC)), mysample, - myintuinf, myintusup, mytolu, mytolf); + myExtPC.Initialize(mysample, myintuinf, myintusup, mytolu, mytolf); myExtPC.Perform(P); mydone = myExtPC.IsDone(); - if (mydone) { + if (mydone) + { Standard_Integer NbExt = myExtPC.NbExt(); - for (i = 1; i <= NbExt; i++) { + for (i = 1; i <= NbExt; i++) + { // Verification de la validite des parametres pour le cas trimme: ThePOnC PC = myExtPC.Point(i); U = PC.Parameter(); - if (TheCurveTool::IsPeriodic(*((TheCurve*)myC))) { + if (TheCurveTool::IsPeriodic(*((TheCurve*)myC))) + { U = ElCLib::InPeriod(U, myuinf, myuinf+TheCurveTool::Period(*((TheCurve*)myC))); } - if ((U >= myuinf - mytolu) && (U <= myusup + mytolu)) { + if ((U >= myuinf - mytolu) && (U <= myusup + mytolu)) + { PC.SetValues(U, PC.Value()); mySqDist.Append(myExtPC.SquareDistance(i)); myismin.Append(myExtPC.IsMin(i)); @@ -384,4 +547,3 @@ void Extrema_GExtPC::TrimmedSquareDistances(Standard_Real& dist1, P1 = Pf; P2 = Pl; } - diff --git a/src/ProjLib/ProjLib_ProjectedCurve.cxx b/src/ProjLib/ProjLib_ProjectedCurve.cxx index a446bad345..9eb4a0926a 100644 --- a/src/ProjLib/ProjLib_ProjectedCurve.cxx +++ b/src/ProjLib/ProjLib_ProjectedCurve.cxx @@ -493,9 +493,16 @@ void ProjLib_ProjectedCurve::Load(const Handle(Adaptor3d_HCurve)& C) Extrema_ExtPC anExtr(P, mySurface->BasisCurve()->Curve(), myTolerance); if (anExtr.IsDone()) { - Standard_Integer anIndex = 1; - while (!anExtr.IsMin(anIndex) && anIndex < anExtr.NbExt()) anIndex++; - Vsingular[0] = anExtr.Point(anIndex).Parameter(); + Standard_Real aMinDist = RealLast(); + for(Standard_Integer anIdx = 1; anIdx <= anExtr.NbExt(); anIdx++) + { + if (anExtr.IsMin(anIdx) && + anExtr.SquareDistance(anIdx) < aMinDist) + { + aMinDist = anExtr.SquareDistance(anIdx); + Vsingular[0] = anExtr.Point(anIdx).Parameter(); + } + } } else Vsingular[0] = ElCLib::Parameter(L, P); @@ -512,9 +519,16 @@ void ProjLib_ProjectedCurve::Load(const Handle(Adaptor3d_HCurve)& C) Extrema_ExtPC anExtr(P, mySurface->BasisCurve()->Curve(), myTolerance); if (anExtr.IsDone()) { - Standard_Integer anIndex = 1; - while (!anExtr.IsMin(anIndex) && anIndex < anExtr.NbExt()) anIndex++; - Vsingular[1] = anExtr.Point(anIndex).Parameter(); + Standard_Real aMinDist = RealLast(); + for(Standard_Integer anIdx = 1; anIdx <= anExtr.NbExt(); anIdx++) + { + if (anExtr.IsMin(anIdx) && + anExtr.SquareDistance(anIdx) < aMinDist) + { + aMinDist = anExtr.SquareDistance(anIdx); + Vsingular[1] = anExtr.Point(anIdx).Parameter(); + } + } } else Vsingular[1] = ElCLib::Parameter(L, P); diff --git a/src/ShapeAnalysis/ShapeAnalysis_Curve.cxx b/src/ShapeAnalysis/ShapeAnalysis_Curve.cxx index 0d8b306e3d..125df37c26 100644 --- a/src/ShapeAnalysis/ShapeAnalysis_Curve.cxx +++ b/src/ShapeAnalysis/ShapeAnalysis_Curve.cxx @@ -231,16 +231,28 @@ Standard_Real ShapeAnalysis_Curve::ProjectAct(const Adaptor3d_Curve& C3D, try { OCC_CATCH_SIGNALS Extrema_ExtPC myExtPC(P3D,C3D); - if ( myExtPC.IsDone() && ( myExtPC.NbExt() > 0) ) { - Standard_Real dist2, dist2Min = myExtPC.SquareDistance(1); - Standard_Integer index = 1; - for ( Standard_Integer i = 2; i <= myExtPC.NbExt(); i++) { + Standard_Real dist2Min = RealLast() , dist2; + Standard_Integer index = 0; + if ( myExtPC.IsDone() && ( myExtPC.NbExt() > 0) ) + { + for ( Standard_Integer i = 1; i <= myExtPC.NbExt(); i++) + { + if (!myExtPC.IsMin(i)) + continue; + dist2 = myExtPC.SquareDistance(i); - if ( dist2 < dist2Min) { dist2Min = dist2; index = i; } + if ( dist2 < dist2Min) + { + dist2Min = dist2; index = i; + } + } + + if (index != 0) + { + param = (myExtPC.Point(index)).Parameter(); + proj = (myExtPC.Point(index)).Value(); + OK = Standard_True; } - param = (myExtPC.Point(index)).Parameter(); - proj = (myExtPC.Point(index)).Value(); - OK = Standard_True; } } catch(Standard_Failure) { diff --git a/tests/bugs/modalg_5/bug23706_16 b/tests/bugs/modalg_5/bug23706_16 index 9fd030f097..d4dc68e4c6 100644 --- a/tests/bugs/modalg_5/bug23706_16 +++ b/tests/bugs/modalg_5/bug23706_16 @@ -9,7 +9,7 @@ puts "" set x 3.999999652077201 set y 5.0000000062915735 set z 5.00002142991819367 -set pp_ch 0.9991079538920743 +set pp_ch 0.99910795389207607 restore [locate_data_file bug23706_c.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_17 b/tests/bugs/modalg_5/bug23706_17 index 8928dff363..1f26fb3ed2 100644 --- a/tests/bugs/modalg_5/bug23706_17 +++ b/tests/bugs/modalg_5/bug23706_17 @@ -9,7 +9,7 @@ puts "" set x 3.99999991301930024 set y 5.00000000157289337 set z 5.00000535747954842 -set pp_ch 0.99955486819730277 +set pp_ch 0.99955486819730044 restore [locate_data_file bug23706_c.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_19 b/tests/bugs/modalg_5/bug23706_19 index 90a6521433..949610593c 100644 --- a/tests/bugs/modalg_5/bug23706_19 +++ b/tests/bugs/modalg_5/bug23706_19 @@ -9,7 +9,7 @@ puts "" set x 3.99999999837571056 set y 5.0000000000293724 set z 5.0000001000463034 -set pp_ch 0.99993927567416474 +set pp_ch 0.99993927567419039 restore [locate_data_file bug23706_c.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_20 b/tests/bugs/modalg_5/bug23706_20 index a40965a0e7..e31b6e085d 100644 --- a/tests/bugs/modalg_5/bug23706_20 +++ b/tests/bugs/modalg_5/bug23706_20 @@ -9,7 +9,7 @@ puts "" set x 3.9999965207720098 set y 5.0000000629157348 set z 5.0002142991819367 -set pp_ch 0.99715423329884789 +set pp_ch 0.99715423329884956 restore [locate_data_file bug23706_c2.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_21 b/tests/bugs/modalg_5/bug23706_21 index 7f2cf8bf13..0f314f989a 100644 --- a/tests/bugs/modalg_5/bug23706_21 +++ b/tests/bugs/modalg_5/bug23706_21 @@ -9,7 +9,7 @@ puts "" set x 3.999999652077201 set y 5.0000000062915735 set z 5.00002142991819367 -set pp_ch 0.99910795390933105 +set pp_ch 0.99910795390933249 restore [locate_data_file bug23706_c2.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_22 b/tests/bugs/modalg_5/bug23706_22 index b95aa011f4..51358752a0 100644 --- a/tests/bugs/modalg_5/bug23706_22 +++ b/tests/bugs/modalg_5/bug23706_22 @@ -9,7 +9,7 @@ puts "" set x 3.99999991301930024 set y 5.00000000157289337 set z 5.00000535747954842 -set pp_ch 0.99955486819834238 +set pp_ch 0.99955486819834583 restore [locate_data_file bug23706_c2.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_24 b/tests/bugs/modalg_5/bug23706_24 index 8a2672b716..a3ca5d5c6a 100644 --- a/tests/bugs/modalg_5/bug23706_24 +++ b/tests/bugs/modalg_5/bug23706_24 @@ -9,7 +9,7 @@ puts "" set x 3.99999999837571056 set y 5.0000000000293724 set z 5.0000001000463034 -set pp_ch 0.9999392756740122 +set pp_ch 0.99993927567408425 restore [locate_data_file bug23706_c2.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_26 b/tests/bugs/modalg_5/bug23706_26 index bed1d5bfce..c72d7e0c1f 100644 --- a/tests/bugs/modalg_5/bug23706_26 +++ b/tests/bugs/modalg_5/bug23706_26 @@ -9,8 +9,8 @@ puts "" set x 11.0 set y -6.0 set z 5.0 -set pp_ch1 0.22894170490369878 -set pp_ch2 1.7710582950963012 +set pp_ch1 0.22894170490369881 +set pp_ch2 1.0000000014907082 restore [locate_data_file bug23706_c03.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_28 b/tests/bugs/modalg_5/bug23706_28 index 05e74545cc..b7ba52f137 100644 --- a/tests/bugs/modalg_5/bug23706_28 +++ b/tests/bugs/modalg_5/bug23706_28 @@ -10,16 +10,14 @@ set x 5.0 set y 8.0 set z -2.0 set pp_ch1 1 -set pp_ch2 1 -set pp_ch3 1.1865241781930462 +set pp_ch2 1.1865241781930462 restore [locate_data_file bug23706_c03.draw] c set info [proj c $x $y $z] regexp {parameter 1 += +([-0-9.+eE]+)} $info full pp1 regexp {parameter 2 += +([-0-9.+eE]+)} $info full pp2 -regexp {parameter 3 += +([-0-9.+eE]+)} $info full pp3 -if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 || $pp3 != $pp_ch3 } { +if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 } { puts "Error : Projection is not correct" } else { puts "OK: Projection is correct" diff --git a/tests/bugs/modalg_5/bug23706_29 b/tests/bugs/modalg_5/bug23706_29 index 2d1bc735d0..467b31c2ee 100644 --- a/tests/bugs/modalg_5/bug23706_29 +++ b/tests/bugs/modalg_5/bug23706_29 @@ -10,16 +10,12 @@ set x -4.0 set y 4.0 set z 1.0 set pp_ch1 0 -set pp_ch2 1 -set pp_ch3 1 restore [locate_data_file bug23706_c03.draw] c set info [proj c $x $y $z] regexp {parameter 1 += +([-0-9.+eE]+)} $info full pp1 -regexp {parameter 2 += +([-0-9.+eE]+)} $info full pp2 -regexp {parameter 3 += +([-0-9.+eE]+)} $info full pp3 -if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 || $pp3 != $pp_ch3 } { +if { $pp1 != $pp_ch1 } { puts "Error : Projection is not correct" } else { puts "OK: Projection is correct" diff --git a/tests/bugs/modalg_5/bug23706_31 b/tests/bugs/modalg_5/bug23706_31 index 6f53a40d4c..47d26115ab 100644 --- a/tests/bugs/modalg_5/bug23706_31 +++ b/tests/bugs/modalg_5/bug23706_31 @@ -10,7 +10,7 @@ set x 11.0 set y -6.0 set z 5.0 set pp_ch1 0.22894170490369881 -set pp_ch2 1.7710582950963012 +set pp_ch2 1.0000000014907084 restore [locate_data_file bug23706_c04.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_33 b/tests/bugs/modalg_5/bug23706_33 index 2ca8763abe..b7ec49c912 100644 --- a/tests/bugs/modalg_5/bug23706_33 +++ b/tests/bugs/modalg_5/bug23706_33 @@ -9,17 +9,15 @@ puts "" set x 5.0 set y 8.0 set z -2.0 -set pp_ch1 0.81347582180695399 +set pp_ch1 0.81347582180695377 set pp_ch2 1 -set pp_ch3 1 restore [locate_data_file bug23706_c04.draw] c set info [proj c $x $y $z] regexp {parameter 1 += +([-0-9.+eE]+)} $info full pp1 regexp {parameter 2 += +([-0-9.+eE]+)} $info full pp2 -regexp {parameter 3 += +([-0-9.+eE]+)} $info full pp3 -if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 || $pp3 != $pp_ch3 } { +if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 } { puts "Error : Projection is not correct" } else { puts "OK: Projection is correct" diff --git a/tests/bugs/modalg_5/bug23706_34 b/tests/bugs/modalg_5/bug23706_34 index b14a05f809..1ea9c4af21 100644 --- a/tests/bugs/modalg_5/bug23706_34 +++ b/tests/bugs/modalg_5/bug23706_34 @@ -9,17 +9,13 @@ puts "" set x -4.0 set y 4.0 set z 1.0 -set pp_ch1 1 -set pp_ch2 1 -set pp_ch3 2 +set pp_ch1 2 restore [locate_data_file bug23706_c04.draw] c set info [proj c $x $y $z] regexp {parameter 1 += +([-0-9.+eE]+)} $info full pp1 -regexp {parameter 2 += +([-0-9.+eE]+)} $info full pp2 -regexp {parameter 3 += +([-0-9.+eE]+)} $info full pp3 -if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 || $pp3 != $pp_ch3 } { +if { $pp1 != $pp_ch1 } { puts "Error : Projection is not correct" } else { puts "OK: Projection is correct" diff --git a/tests/bugs/modalg_5/bug23706_36 b/tests/bugs/modalg_5/bug23706_36 index 22bc5dd56e..a73a74fe29 100644 --- a/tests/bugs/modalg_5/bug23706_36 +++ b/tests/bugs/modalg_5/bug23706_36 @@ -10,7 +10,7 @@ set x 11.0 set y -6.0 set z 5.0 set pp_ch1 0.22894170490369881 -set pp_ch2 1.7205732840814361 +set pp_ch2 1.0000000014908634 restore [locate_data_file bug23706_c05.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_38 b/tests/bugs/modalg_5/bug23706_38 index d55ae36f0b..c559e3b637 100644 --- a/tests/bugs/modalg_5/bug23706_38 +++ b/tests/bugs/modalg_5/bug23706_38 @@ -10,16 +10,14 @@ set x 5.0 set y 8.0 set z -2.0 set pp_ch1 1 -set pp_ch2 1 -set pp_ch3 1.0371228345434986 +set pp_ch2 1.0371228345434986 restore [locate_data_file bug23706_c05.draw] c set info [proj c $x $y $z] regexp {parameter 1 += +([-0-9.+eE]+)} $info full pp1 regexp {parameter 2 += +([-0-9.+eE]+)} $info full pp2 -regexp {parameter 3 += +([-0-9.+eE]+)} $info full pp3 -if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 || $pp3 != $pp_ch3 } { +if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 } { puts "Error : Projection is not correct" } else { puts "OK: Projection is correct" diff --git a/tests/bugs/modalg_5/bug23706_39 b/tests/bugs/modalg_5/bug23706_39 index bd679f6ca2..eb42d94b5d 100644 --- a/tests/bugs/modalg_5/bug23706_39 +++ b/tests/bugs/modalg_5/bug23706_39 @@ -10,16 +10,12 @@ set x -4.0 set y 4.0 set z 1.0 set pp_ch1 0 -set pp_ch2 1 -set pp_ch3 1 restore [locate_data_file bug23706_c05.draw] c set info [proj c $x $y $z] regexp {parameter 1 += +([-0-9.+eE]+)} $info full pp1 -regexp {parameter 2 += +([-0-9.+eE]+)} $info full pp2 -regexp {parameter 3 += +([-0-9.+eE]+)} $info full pp3 -if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 || $pp3 != $pp_ch3 } { +if { $pp1 != $pp_ch1 } { puts "Error : Projection is not correct" } else { puts "OK: Projection is correct" diff --git a/tests/bugs/modalg_5/bug23706_40 b/tests/bugs/modalg_5/bug23706_40 index 00fe14a61d..45c28f5e84 100644 --- a/tests/bugs/modalg_5/bug23706_40 +++ b/tests/bugs/modalg_5/bug23706_40 @@ -9,7 +9,7 @@ puts "" set x -3.0 set y 15.0 set z -9.0 -set pp_ch 0.31967360381308058 +set pp_ch 0.31967360381308063 restore [locate_data_file bug23706_c07.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_43 b/tests/bugs/modalg_5/bug23706_43 index bc482f13f8..1751d4615e 100644 --- a/tests/bugs/modalg_5/bug23706_43 +++ b/tests/bugs/modalg_5/bug23706_43 @@ -9,9 +9,9 @@ puts "" set x 5.0 set y 8.0 set z -2.0 -set pp_ch1 1 -set pp_ch2 1 -set pp_ch3 1.0371228345434986 +set pp_ch1 1.0371228345434986 +set pp_ch2 0.99999999682789309 +set pp_ch3 0.99999999486742297 restore [locate_data_file bug23706_c07.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_44 b/tests/bugs/modalg_5/bug23706_44 index 749b807d91..db624405a9 100644 --- a/tests/bugs/modalg_5/bug23706_44 +++ b/tests/bugs/modalg_5/bug23706_44 @@ -10,16 +10,12 @@ set x -4.0 set y 4.0 set z 1.0 set pp_ch1 0.034819847916144751 -set pp_ch2 1 -set pp_ch3 1 restore [locate_data_file bug23706_c07.draw] c set info [proj c $x $y $z] regexp {parameter 1 += +([-0-9.+eE]+)} $info full pp1 -regexp {parameter 2 += +([-0-9.+eE]+)} $info full pp2 -regexp {parameter 3 += +([-0-9.+eE]+)} $info full pp3 -if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 || $pp3 != $pp_ch3 } { +if { $pp1 != $pp_ch1 } { puts "Error : Projection is not correct" } else { puts "OK: Projection is correct" diff --git a/tests/bugs/modalg_5/bug23706_48 b/tests/bugs/modalg_5/bug23706_48 index 8bf2f89506..45d7e629d6 100644 --- a/tests/bugs/modalg_5/bug23706_48 +++ b/tests/bugs/modalg_5/bug23706_48 @@ -9,9 +9,9 @@ puts "" set x 5.0 set y 8.0 set z -2.0 -set pp_ch1 1 -set pp_ch2 1 -set pp_ch3 1.0371228345434986 +set pp_ch1 1.0371228345434986 +set pp_ch2 0.99999999851019361 +set pp_ch3 1.0000000000000002 restore [locate_data_file bug23706_c08.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_49 b/tests/bugs/modalg_5/bug23706_49 index cd75d4d348..47edb7c45d 100644 --- a/tests/bugs/modalg_5/bug23706_49 +++ b/tests/bugs/modalg_5/bug23706_49 @@ -9,17 +9,13 @@ puts "" set x -4.0 set y 4.0 set z 1.0 -set pp_ch1 0.087689905182099182 -set pp_ch2 1 -set pp_ch3 1 +set pp_ch1 0.087689905182099168 restore [locate_data_file bug23706_c08.draw] c set info [proj c $x $y $z] regexp {parameter 1 += +([-0-9.+eE]+)} $info full pp1 -regexp {parameter 2 += +([-0-9.+eE]+)} $info full pp2 -regexp {parameter 3 += +([-0-9.+eE]+)} $info full pp3 -if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 || $pp3 != $pp_ch3 } { +if { $pp1 != $pp_ch1 } { puts "Error : Projection is not correct" } else { puts "OK: Projection is correct" diff --git a/tests/bugs/modalg_5/bug23706_50 b/tests/bugs/modalg_5/bug23706_50 index 18eedbbb98..c826011ea8 100644 --- a/tests/bugs/modalg_5/bug23706_50 +++ b/tests/bugs/modalg_5/bug23706_50 @@ -13,8 +13,8 @@ set pp_ch1 2.261838779028444 set pp_ch2 2.7514388736312116 set pp_ch3 3.5195936992321921 set pp_ch4 3.9600115496393977 -set pp_ch5 5.4999999987220543 -set pp_ch6 6.8388132447593541 +set pp_ch5 5.5000000059308434 +set pp_ch6 6.838813244759355 set pp_ch7 7.8261046366621292 restore [locate_data_file bug23706_c11.draw] c diff --git a/tests/bugs/modalg_5/bug23706_51 b/tests/bugs/modalg_5/bug23706_51 index 1c2938bc87..87b8b117bd 100644 --- a/tests/bugs/modalg_5/bug23706_51 +++ b/tests/bugs/modalg_5/bug23706_51 @@ -9,12 +9,12 @@ puts "" set x 5.0 set y 7.0 set z 8.0 -set pp_ch1 2.8126840147763663 -set pp_ch2 3.5195936992321926 -set pp_ch3 3.9600115496393977 -set pp_ch4 5.4999999987220543 -set pp_ch5 7.2883607799598096 -set pp_ch6 1 +set pp_ch1 1 +set pp_ch2 2.8126840147763663 +set pp_ch3 3.5195936992321926 +set pp_ch4 3.9600115496393977 +set pp_ch5 5.5000000059308434 +set pp_ch6 7.2883607799598096 restore [locate_data_file bug23706_c11.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_52 b/tests/bugs/modalg_5/bug23706_52 index fd19bca607..12f55abab1 100644 --- a/tests/bugs/modalg_5/bug23706_52 +++ b/tests/bugs/modalg_5/bug23706_52 @@ -9,9 +9,9 @@ puts "" set x 11.0 set y -2.0 set z -2.0 -set pp_ch1 2.9473269594602054 +set pp_ch1 2.947326959460205 set pp_ch2 4.4416670680933228 -set pp_ch3 5.4999999987220543 +set pp_ch3 5.5000000000000036 set pp_ch4 6.6582576262308306 set pp_ch5 7.7414573419084736 diff --git a/tests/bugs/modalg_5/bug23706_53 b/tests/bugs/modalg_5/bug23706_53 index 4fe42247be..681fb1de10 100644 --- a/tests/bugs/modalg_5/bug23706_53 +++ b/tests/bugs/modalg_5/bug23706_53 @@ -11,11 +11,10 @@ set y 3.0 set z 2.0 set pp_ch1 1.1738953633378706 set pp_ch2 2.1611867552406454 -set pp_ch3 3.5000000012779413 +set pp_ch3 3.5000000059308389 set pp_ch4 5.0399884503606023 set pp_ch5 5.4804063007678074 -set pp_ch6 6.2485611263687888 -set pp_ch7 6.7381612209715556 +set pp_ch6 1.1738953633378706 restore [locate_data_file bug23706_c12.draw] c set info [proj c $x $y $z] @@ -26,14 +25,12 @@ regexp {parameter 3 += +([-0-9.+eE]+)} $info full pp3 regexp {parameter 4 += +([-0-9.+eE]+)} $info full pp4 regexp {parameter 5 += +([-0-9.+eE]+)} $info full pp5 regexp {parameter 6 += +([-0-9.+eE]+)} $info full pp6 -regexp {parameter 7 += +([-0-9.+eE]+)} $info full pp7 if { $pp1 != $pp_ch1 || $pp2 != $pp_ch2 || $pp3 != $pp_ch3 || $pp4 != $pp_ch4 || $pp5 != $pp_ch5 || - $pp6 != $pp_ch6 || - $pp7 != $pp_ch7} { + $pp6 != $pp_ch6} { puts "Error : Projection is not correct" } else { puts "OK: Projection is correct" diff --git a/tests/bugs/modalg_5/bug23706_54 b/tests/bugs/modalg_5/bug23706_54 index e3cbb582ba..d4422223c4 100644 --- a/tests/bugs/modalg_5/bug23706_54 +++ b/tests/bugs/modalg_5/bug23706_54 @@ -10,7 +10,7 @@ set x 5.0 set y 7.0 set z 8.0 set pp_ch1 1.7116392200401909 -set pp_ch2 3.5000000012779413 +set pp_ch2 3.5000000059308389 set pp_ch3 5.0399884503606023 set pp_ch4 5.4804063007678074 set pp_ch5 6.1873159852236332 diff --git a/tests/bugs/modalg_5/bug23706_55 b/tests/bugs/modalg_5/bug23706_55 index 833dd50804..be4fe44448 100644 --- a/tests/bugs/modalg_5/bug23706_55 +++ b/tests/bugs/modalg_5/bug23706_55 @@ -11,7 +11,7 @@ set y -2.0 set z -2.0 set pp_ch1 1.2585426580915264 set pp_ch2 2.3417423737691694 -set pp_ch3 3.499999996505935 +set pp_ch3 3.4999999999999991 set pp_ch4 4.5583329319066772 set pp_ch5 6.052673040539795 diff --git a/tests/bugs/modalg_5/bug23706_56 b/tests/bugs/modalg_5/bug23706_56 index 585a783c77..2f48ed149c 100644 --- a/tests/bugs/modalg_5/bug23706_56 +++ b/tests/bugs/modalg_5/bug23706_56 @@ -12,7 +12,7 @@ set z 2.0 set pp_ch1 1.8318851868378956 set pp_ch2 3.0397214383562297 set pp_ch3 5.5 -set pp_ch4 6.8388132447593541 +set pp_ch4 6.838813244759355 set pp_ch5 7.8261046366621292 restore [locate_data_file bug23706_c13.draw] c diff --git a/tests/bugs/modalg_5/bug23706_57 b/tests/bugs/modalg_5/bug23706_57 index d075ef7dd6..66f6847b63 100644 --- a/tests/bugs/modalg_5/bug23706_57 +++ b/tests/bugs/modalg_5/bug23706_57 @@ -9,10 +9,10 @@ puts "" set x 5.0 set y 7.0 set z 8.0 -set pp_ch1 3.0397214383562297 -set pp_ch2 5.5 -set pp_ch3 7.2883607799598096 -set pp_ch4 1 +set pp_ch1 1 +set pp_ch2 3.0397214383562297 +set pp_ch3 5.5 +set pp_ch4 7.2883607799598096 restore [locate_data_file bug23706_c13.draw] c set info [proj c $x $y $z] diff --git a/tests/bugs/modalg_5/bug23706_58 b/tests/bugs/modalg_5/bug23706_58 index 2be2338ea2..0462648b1f 100644 --- a/tests/bugs/modalg_5/bug23706_58 +++ b/tests/bugs/modalg_5/bug23706_58 @@ -11,7 +11,7 @@ set y -2.0 set z -2.0 set pp_ch1 2.2389225099869194 set pp_ch2 3.219764556283669 -set pp_ch3 5.5 +set pp_ch3 5.4999999999999991 set pp_ch4 6.6582576262308306 set pp_ch5 7.7414573419084736 diff --git a/tests/bugs/modalg_5/bug23706_60 b/tests/bugs/modalg_5/bug23706_60 index 5ec0c89a2a..f64701814e 100644 --- a/tests/bugs/modalg_5/bug23706_60 +++ b/tests/bugs/modalg_5/bug23706_60 @@ -10,7 +10,7 @@ set x 5.0 set y 7.0 set z 8.0 set pp_ch1 1.7116392200401909 -set pp_ch2 3.5000000000000004 +set pp_ch2 3.5 set pp_ch3 5.9602785616437703 set pp_ch4 8 diff --git a/tests/bugs/modalg_5/bug23706_61 b/tests/bugs/modalg_5/bug23706_61 index 8057244123..8fea3f6505 100644 --- a/tests/bugs/modalg_5/bug23706_61 +++ b/tests/bugs/modalg_5/bug23706_61 @@ -11,7 +11,7 @@ set y -2.0 set z -2.0 set pp_ch1 1.2585426580915264 set pp_ch2 2.3417423737691694 -set pp_ch3 3.5000000000000004 +set pp_ch3 3.4999999999999991 set pp_ch4 5.7802354437163306 set pp_ch5 6.761077490013081 diff --git a/tests/bugs/moddata_3/bug26351 b/tests/bugs/moddata_3/bug26351 new file mode 100644 index 0000000000..12b08f04e1 --- /dev/null +++ b/tests/bugs/moddata_3/bug26351 @@ -0,0 +1,41 @@ +puts "========" +puts "CR26351" +puts "========" +puts "" +####################################################################### +# Wrong result found by the projection algorithm +####################################################################### + +restore [locate_data_file bug26351_loire_e.brep] e + +# 1 + +mkcurve c e + +set x 167.52026394441 +set y -1206.50315237977 +set z 0 + +proj c $x $y $z + +regexp {The length ext_12 is +([0-9.+eE]+)} [length ext_12] full l_12 + +# 2 + +vertex v $x $y $z +vertex vc 48135.477492688588 e + +distmini d v vc + +set distmin [dval d_val] + +# Check results + +set tol_abs 1.0e-07 +set tol_rel 0.01 + +set expected_l_12 29.450809988644483 +set expected_distmin 3.1958945321254297e-12 + +checkreal "Length l_12" ${l_12} ${expected_l_12} ${tol_abs} ${tol_rel} +checkreal "Minimal distance" ${distmin} ${expected_distmin} ${tol_abs} ${tol_rel} diff --git a/tests/de/iges_2/C5 b/tests/de/iges_2/C5 index 4315afb588..70184aba9f 100644 --- a/tests/de/iges_2/C5 +++ b/tests/de/iges_2/C5 @@ -1,18 +1,18 @@ # !!!! This file is generated automatically, do not edit manually! See end script puts "TODO CR23096 ALL: NBSHAPES : Faulty" puts "TODO CR23096 ALL: TOLERANCE : Faulty" - +puts "TODO CR23096 ALL: LABELS : Faulty" set filename sim6049.igs set ref_data { DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 ) -TPSTAT : Faulties = 0 ( 0 ) Warnings = 6 ( 2819 ) Summary = 6 ( 2819 ) +TPSTAT : Faulties = 0 ( 0 ) Warnings = 7 ( 2820 ) Summary = 7 ( 2820 ) CHECKSHAPE : Wires = 4 ( 6 ) Faces = 4 ( 6 ) Shells = 0 ( 0 ) Solids = 0 ( 0 ) -NBSHAPES : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 3785 ( 3785 ) Summary = 69461 ( 69485 ) -STATSHAPE : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 3785 ( 3785 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 30982 ( 30997 ) -TOLERANCE : MaxTol = 0.08172710091 ( 0.05040240237 ) AvgTol = 0.000605864669 ( 0.0006023709171 ) -LABELS : N0Labels = 3785 ( 3785 ) N1Labels = 0 ( 0 ) N2Labels = 0 ( 0 ) TotalLabels = 3785 ( 3785 ) NameLabels = 3785 ( 3785 ) ColorLabels = 3785 ( 3785 ) LayerLabels = 3785 ( 3785 ) +NBSHAPES : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 3786 ( 3786 ) Summary = 69468 ( 69491 ) +STATSHAPE : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 3786 ( 3786 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 30984 ( 30999 ) +TOLERANCE : MaxTol = 0.08172710091 ( 0.05040240237 ) AvgTol = 0.0006058177695 ( 0.0006024184165 ) +LABELS : N0Labels = 3785 ( 3785 ) N1Labels = 2 ( 0 ) N2Labels = 0 ( 0 ) TotalLabels = 3787 ( 3785 ) NameLabels = 3785 ( 3785 ) ColorLabels = 3786 ( 3785 ) LayerLabels = 3786 ( 3785 ) PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 ) NCOLORS : NColors = 6 ( 6 ) COLORS : Colors = BLUE1 CYAN1 GREEN MAGENTA1 RED YELLOW ( BLUE1 CYAN1 GREEN MAGENTA1 RED YELLOW ) diff --git a/tests/de/step_2/J7 b/tests/de/step_2/J7 index a037f5b96a..0f7c0fccd7 100644 --- a/tests/de/step_2/J7 +++ b/tests/de/step_2/J7 @@ -1,16 +1,15 @@ # !!!! This file is generated automatically, do not edit manually! See end script puts "TODO CR23096 ALL: TPSTAT : Faulty" - set filename bm4_ct_punch.stp set ref_data { -DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 ) -TPSTAT : Faulties = 0 ( 0 ) Warnings = 63 ( 7 ) Summary = 63 ( 7 ) +DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 4 ) Summary = 0 ( 4 ) +TPSTAT : Faulties = 0 ( 0 ) Warnings = 32 ( 7 ) Summary = 32 ( 7 ) CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 ) -NBSHAPES : Solid = 3 ( 3 ) Shell = 21 ( 21 ) Face = 197 ( 197 ) Summary = 1444 ( 1443 ) -STATSHAPE : Solid = 3 ( 3 ) Shell = 21 ( 21 ) Face = 197 ( 197 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 574 ( 573 ) -TOLERANCE : MaxTol = 0.004833959886 ( 0.01857875727 ) AvgTol = 0.0001319661036 ( 0.0004088626406 ) +NBSHAPES : Solid = 3 ( 3 ) Shell = 21 ( 21 ) Face = 197 ( 197 ) Summary = 1443 ( 1443 ) +STATSHAPE : Solid = 3 ( 3 ) Shell = 21 ( 21 ) Face = 197 ( 197 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 573 ( 573 ) +TOLERANCE : MaxTol = 0.255769437 ( 0.255769437 ) AvgTol = 0.0008786095241 ( 0.001031806589 ) LABELS : N0Labels = 6 ( 6 ) N1Labels = 45 ( 45 ) N2Labels = 0 ( 0 ) TotalLabels = 51 ( 51 ) NameLabels = 11 ( 11 ) ColorLabels = 41 ( 41 ) LayerLabels = 21 ( 21 ) PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 ) NCOLORS : NColors = 4 ( 4 ) diff --git a/tests/de/step_2/U8 b/tests/de/step_2/U8 index 6be1678888..21b25a07e7 100644 --- a/tests/de/step_2/U8 +++ b/tests/de/step_2/U8 @@ -3,11 +3,11 @@ set filename trj8_b1-ec-214.stp set ref_data { DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 ) -TPSTAT : Faulties = 0 ( 0 ) Warnings = 2 ( 24 ) Summary = 2 ( 24 ) +TPSTAT : Faulties = 0 ( 0 ) Warnings = 1 ( 26 ) Summary = 1 ( 26 ) CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 ) NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 415 ( 415 ) Summary = 2770 ( 2755 ) STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 415 ( 415 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 1191 ( 1176 ) -TOLERANCE : MaxTol = 0.09895712553 ( 0.9492387908 ) AvgTol = 0.01303492802 ( 0.03965300183 ) +TOLERANCE : MaxTol = 0.09895712553 ( 0.9492387908 ) AvgTol = 0.01313889085 ( 0.04014418394 ) LABELS : N0Labels = 1 ( 1 ) N1Labels = 28 ( 28 ) N2Labels = 0 ( 0 ) TotalLabels = 29 ( 29 ) NameLabels = 1 ( 1 ) ColorLabels = 29 ( 29 ) LayerLabels = 0 ( 0 ) PROPS : Centroid = 1 ( 1 ) Volume = 1 ( 1 ) Area = 1 ( 1 ) NCOLORS : NColors = 2 ( 2 ) diff --git a/tests/draft/angle/K8 b/tests/draft/angle/K8 index 5f80d0da9c..c78b2bf32b 100644 --- a/tests/draft/angle/K8 +++ b/tests/draft/angle/K8 @@ -1,5 +1,5 @@ #D4---------------------------------------------- -puts "TODO OCC22803 All:Faulty shapes in variables faulty_1 to faulty_4" +puts "TODO OCC22803 All:Faulty shapes in variables faulty_1 to" plane pt 0 0 0 1 0 0 ptorus pt pt 15 12 @@ -10,4 +10,4 @@ bfuse f pt pr nexplode f f depouille result f 0 0 1 f_4 5 0 0 40 0 0 1 -set square 10850.6 +set square 10112.2 diff --git a/tests/draft/angle/K9 b/tests/draft/angle/K9 index 5892fc5236..112a3ccdb3 100644 --- a/tests/draft/angle/K9 +++ b/tests/draft/angle/K9 @@ -1,5 +1,5 @@ #D5---------------------------------------------- -puts "TODO OCC22803 All:Faulty shapes in variables faulty_1 to faulty_4" +puts "TODO OCC22803 All:Faulty shapes in variables faulty_1 to" plane pt 0 0 0 1 0 0 ptorus pt pt 15 15 @@ -11,4 +11,4 @@ bfuse f pt p2 nexplode f f depouille result f 0 0 1 f_6 5 0 0 44 0 0 1 -set square 13239.6 +set square 9979.48