]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
isnan(), isinf() are reimplemented without boost
authorasl <asl@opencascade.com>
Mon, 7 Dec 2015 05:57:06 +0000 (08:57 +0300)
committerasl <asl@opencascade.com>
Mon, 7 Dec 2015 05:57:06 +0000 (08:57 +0300)
src/HYDROData/HYDROData_Bathymetry.cxx
src/HYDROData/HYDROData_Image.cxx
src/HYDROData/HYDROData_Profile.cxx
src/HYDROData/HYDROData_Tool.cxx
src/HYDROData/HYDROData_Tool.h

index db0e9d4b9b47b58936163f54a367a355b53f2aaf..24fae3f24dc8ca4e5f4c104b64b409d4d38bf968 100644 (file)
@@ -476,9 +476,9 @@ bool HYDROData_Bathymetry::importFromXYZFile( QFile&          theFile,
     if ( !isXOk || !isYOk || !isZOk )
       return false;
 
-    if ( isnan( aPoint.X() ) || isinf( aPoint.X() ) ||
-         isnan( aPoint.Y() ) || isinf( aPoint.Y() ) ||
-         isnan( aPoint.Z() ) || isinf( aPoint.Z() ) )
+    if ( HYDROData_Tool::IsNan( aPoint.X() ) || HYDROData_Tool::IsInf( aPoint.X() ) ||
+         HYDROData_Tool::IsNan( aPoint.Y() ) || HYDROData_Tool::IsInf( aPoint.Y() ) ||
+         HYDROData_Tool::IsNan( aPoint.Z() ) || HYDROData_Tool::IsInf( aPoint.Z() ) )
       return false;
 
     // Invert the z value if requested
index 1cadb4bfcf7c2b73ae7c4f19c04684003dee0194..287541b1c3131095202b12021f50b2c7b3c0085b 100644 (file)
@@ -21,6 +21,7 @@
 #include "HYDROData_Document.h"
 #include "HYDROData_Lambert93.h"
 #include "HYDROData_OperationsFactory.h"
+#include "HYDROData_Tool.h"
 
 #include <TDataStd_RealArray.hxx>
 #include <TDataStd_ByteArray.hxx>
@@ -670,8 +671,8 @@ bool HYDROData_Image::SetGlobalPointsFromFile( const QString& theFileName )
 
     // Check the result
     if ( !isDoubleOk ||
-         isnan( aDoubleValue ) ||
-         isinf( aDoubleValue ) ) {
+         HYDROData_Tool::IsNan( aDoubleValue ) ||
+         HYDROData_Tool::IsInf( aDoubleValue ) ) {
       continue;
     }
 
index 3e6387941bc4afe31f2d72842ec8a5daafa12723..4f69515e8a919ffac14a29a26bf5acca85ba8fbd 100644 (file)
@@ -618,8 +618,8 @@ bool HYDROData_Profile::ImportFromFile( OSD_File& theFile,
     double aCoordX = aValX.RealValue();
     double aCoordY = aValY.RealValue();
 
-    if ( isnan( aCoordX ) || isinf( aCoordX ) ||
-         isnan( aCoordY ) || isinf( aCoordY ) )
+    if ( HYDROData_Tool::IsNan( aCoordX ) || HYDROData_Tool::IsInf( aCoordX ) ||
+         HYDROData_Tool::IsNan( aCoordY ) || HYDROData_Tool::IsInf( aCoordY ) )
       aRes = false;
 
     if ( anIsParametric )
@@ -645,7 +645,7 @@ bool HYDROData_Profile::ImportFromFile( OSD_File& theFile,
       }
 
       double aCoordZ = aValZ.RealValue();
-      if ( isnan( aCoordZ ) || isinf( aCoordZ ) )
+      if ( HYDROData_Tool::IsNan( aCoordZ ) || HYDROData_Tool::IsInf( aCoordZ ) )
         aRes = false;
 
       ProfilePoint aPoint( aCoordX, aCoordY, aCoordZ );
index f6f0f5a84525e887700d7357bb79c09c5822e1cd..7d1339241db68abd290f6b348fa52791943294ba 100644 (file)
@@ -40,6 +40,7 @@
 #include <TopoDS_Shape.hxx>
 #include <TopoDS_Wire.hxx>
 #include <limits>
+#include <math.h>
 
 static int aMaxNameId = std::numeric_limits<int>::max();
 
@@ -290,6 +291,24 @@ QColor HYDROData_Tool::toQtColor( const Quantity_Color& theColor )
   return QColor( r, g, b );
 }
 
+bool HYDROData_Tool::IsNan( double theValue )
+{
+#ifdef WIN32
+  return _isnan( theValue );
+#else
+  return isnan( theValue );
+#endif
+}
+
+bool HYDROData_Tool::IsInf( double theValue )
+{
+#ifdef WIN32
+  return (!_finite( theValue  ) );
+#else
+  return isinf( theValue );
+#endif  
+}
+
 std::ostream& operator<<( std::ostream& theStream, const QString& theText )
 {
   theStream << theText.toStdString();
index b9b6d6d7658d7ba01ebfb7eb9946d8d2444007e7..e8fd7967bf0c23ad11f9f511a346fc59b6a5c53e 100644 (file)
@@ -121,6 +121,9 @@ public:
 
   static Quantity_Color toOccColor( const QColor& );
   static QColor toQtColor( const Quantity_Color& );
+
+  static bool IsNan( double theValue );
+  static bool IsInf( double theValue );
 };
 
 inline bool ValuesEquals( const double& theFirst, const double& theSecond )