]> Creatis software - clitk.git/blobdiff - common/clitkPortability.h
Add preserve studyUID in clitkImage2Dicom
[clitk.git] / common / clitkPortability.h
old mode 100755 (executable)
new mode 100644 (file)
index da1b7ba..3671066
@@ -1,10 +1,44 @@
+/*=========================================================================
+  Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
+
+  Authors belong to: 
+  - University of LYON              http://www.universite-lyon.fr/
+  - Léon Bérard cancer center       http://www.centreleonberard.fr
+  - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
+
+  This software is distributed WITHOUT ANY WARRANTY; without even
+  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+  PURPOSE.  See the copyright notices for more information.
+
+  It is distributed under dual licence
+
+  - BSD        See included LICENSE.txt file
+  - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+===========================================================================**/
 #ifndef CLITKPORTABILITY_H
 #define CLITKPORTABILITY_H
-  
-#if defined(WIN32)
+#if defined(_WIN32)
+#  define _USE_MATH_DEFINES //Before math.h include (i.e. cmath)
+#endif
+#include <cmath>
+
+#if defined(_WIN32)
 #  define rint(x)  floor(x+0.5)
 #  define lrint(x) (long)rint(x) 
-#  define _USE_MATH_DEFINES
+#endif
+
+template<typename T>
+int IsNormal(const T val) {
+#if defined(_MSC_VER)
+  return _finite(val);
+#else
+  return std::isnormal(val);
+#endif
+}
+
+#if defined(_MSC_VER)
+#  include <io.h>
+#  define mkstemp(x) _mktemp_s(x, sizeof(x))
 #endif
 
 #endif /* end #define CLITKPORTABILITY_H */