0024921: ShapeAnalysis_Curve::ValidateRange doesn't adjust the range for periodic...
authorrazmyslovich <razmyslovich@volumegraphics.com>
Wed, 14 May 2014 11:16:16 +0000 (13:16 +0200)
committerapn <apn@opencascade.com>
Thu, 22 May 2014 12:58:25 +0000 (16:58 +0400)
Fix the sequence of conditional checks and always try to adjust the range for periodic curves

src/ShapeAnalysis/ShapeAnalysis_Curve.cxx

index 0a68b22..8b83b32 100644 (file)
@@ -506,11 +506,13 @@ Standard_Boolean ShapeAnalysis_Curve::ValidateRange (const Handle(Geom_Curve)& t
     }
   }
 
     }
   }
 
-  if (First < Last) return Standard_True;
-
   // 15.11.2002 PTV OCC966
   // 15.11.2002 PTV OCC966
-  if (ShapeAnalysis_Curve::IsPeriodic(theCurve)) 
+  if (ShapeAnalysis_Curve::IsPeriodic(theCurve)) {
     ElCLib::AdjustPeriodic(cf,cl,Precision::PConfusion(),First,Last); //:a7 abv 11 Feb 98: preci -> PConfusion()
     ElCLib::AdjustPeriodic(cf,cl,Precision::PConfusion(),First,Last); //:a7 abv 11 Feb 98: preci -> PConfusion()
+  }
+  else if (First < Last) {
+    // nothing to fix
+  }
   else if (theCurve->IsClosed()) {
     // l'un des points projecte se trouve sur l'origine du parametrage
     // de la courbe 3D. L algo a donne cl +- preci au lieu de cf ou vice-versa
   else if (theCurve->IsClosed()) {
     // l'un des points projecte se trouve sur l'origine du parametrage
     // de la courbe 3D. L algo a donne cl +- preci au lieu de cf ou vice-versa