From: sln Date: Tue, 31 Oct 2006 07:36:47 +0000 (+0000) Subject: Merged with BR_L_2_3_5 X-Git-Tag: For_CTH_V1_2a~9 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=ac9bc36d6167f776a713736658fe25b2ba521359;p=modules%2Fgui.git Merged with BR_L_2_3_5 // Protection against QwtCurve::drawLines() bug in Qwt 0.4.x: // sometimes it crashes (FPE) if draws curve with big abciss or ordinate cooridates // after curve with small values double getMaxX() const; double getMaxY() const; --- diff --git a/src/Plot2d/Plot2d_Curve.cxx b/src/Plot2d/Plot2d_Curve.cxx index bec633fdc..3c61680e3 100755 --- a/src/Plot2d/Plot2d_Curve.cxx +++ b/src/Plot2d/Plot2d_Curve.cxx @@ -376,6 +376,21 @@ double Plot2d_Curve::getMinX() const return aMinX; } +/*! + Gets curve's maxiaml abscissa +*/ +double Plot2d_Curve::getMaxX() const +{ + QValueList::const_iterator aIt; + double aMaxX = -1e150; + int aCurrent = 0; + for(aIt = myPoints.begin(); aIt != myPoints.end(); ++aIt) { + if ( (*aIt).x > aMaxX ) + aMaxX = (*aIt).x; + } + return aMaxX; +} + /*! Gets curve's minimal ordinate */ @@ -391,6 +406,21 @@ double Plot2d_Curve::getMinY() const return aMinY; } +/*! + Gets curve's maximal ordinate +*/ +double Plot2d_Curve::getMaxY() const +{ + QValueList::const_iterator aIt; + double aMaxY = -1e150; + int aCurrent = 0; + for(aIt = myPoints.begin(); aIt != myPoints.end(); ++aIt) { + if ( (*aIt).y > aMaxY ) + aMaxY = (*aIt).y; + } + return aMaxY; +} + /*! Changes text assigned to point of curve \param ind -- index of point diff --git a/src/Plot2d/Plot2d_Curve.h b/src/Plot2d/Plot2d_Curve.h index bd3be97bd..b8668b879 100755 --- a/src/Plot2d/Plot2d_Curve.h +++ b/src/Plot2d/Plot2d_Curve.h @@ -91,6 +91,12 @@ public: // non-positive X/Y coordinate double getMinX() const; double getMinY() const; + // Protection against QwtCurve::drawLines() bug in Qwt 0.4.x: + // sometimes it crashes (FPE) if draws curve with big abciss or ordinate cooridates + // after curve with small values + double getMaxX() const; + double getMaxY() const; + protected: bool myAutoAssign;