]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Fix for the bug IPAL22911 TC6.5.0: Problem with the curve normalization .
authorrnv <rnv@opencascade.com>
Tue, 24 Apr 2012 13:55:03 +0000 (13:55 +0000)
committerrnv <rnv@opencascade.com>
Tue, 24 Apr 2012 13:55:03 +0000 (13:55 +0000)
src/Plot2d/Plot2d.cxx
src/Plot2d/Plot2d_Curve.cxx
src/Plot2d/Plot2d_PlotItems.cxx

index 57b6c178c42ff342b6d250450b398dacb8f2f338..4737c228bbfe3ec0f5d2bb4eeb18a7aa5f6cc21d 100755 (executable)
@@ -102,6 +102,8 @@ bool Plot2d_Point::minDeviation(double& min) const {
   if(hasDeviation()) {
     min = deviationPtr[0];
     return true;
+  } else {
+    min = 0;
   }
   return false;
 }
@@ -113,6 +115,8 @@ bool Plot2d_Point::maxDeviation(double& max) const {
   if(hasDeviation()) {
     max = deviationPtr[1];
     return true;
+  } else {
+    max = 0;
   }
   return false;
 }
index be7caa90da740e445f284a816c275c4a50b32688..0aae4b04e1a9a7b18e1ed85aef381f99ec488762 100755 (executable)
@@ -339,9 +339,8 @@ double Plot2d_Curve::getMinY() const
   pointList::const_iterator aIt;
   double coeff = 0.0;
   for (aIt = myPoints.begin(); aIt != myPoints.end(); ++aIt) {    
-    aMinY = qMin( aMinY, myScale * (*aIt).y );
-    if((*aIt).minDeviation(coeff))
-      aMinY = qMin( aMinY, coeff );
+   (*aIt).minDeviation(coeff);
+    aMinY = qMin( aMinY, myScale * (*aIt).y - coeff);
   }
   return aMinY;
 }
@@ -355,9 +354,8 @@ double Plot2d_Curve::getMaxY() const
   pointList::const_iterator aIt;
   double coeff = 0.0;
   for (aIt = myPoints.begin(); aIt != myPoints.end(); ++aIt) {
-    aMaxY = qMax( aMaxY, myScale * (*aIt).y);
-    if((*aIt).maxDeviation(coeff))
-      aMaxY = qMax( aMaxY, coeff);
+    (*aIt).maxDeviation(coeff);
+    aMaxY = qMax( aMaxY, myScale * (*aIt).y + coeff);
   }
   return aMaxY;
 }
index 24871dc8dde2577c766ab31518334f68eefca570..95a2d2defa80fd65dbea9c18b2959e718e03727e 100644 (file)
@@ -324,8 +324,8 @@ void Plot2d_QwtPlotCurve::draw(QPainter *painter,
       xi = x(i);
       yi = y(i);
       xp = xMap.transform(xi);
-      ytop = yMap.transform(max);
-      ybtm = yMap.transform(min);
+      ytop = yMap.transform(yi + max);
+      ybtm = yMap.transform(yi - min);
       tickl = xp - tickSz;
       tickr = xp + tickSz;
       painter->drawLine(tickl,ytop,tickr,ytop);