]> Creatis software - clitk.git/blobdiff - common/clitkCommon.txx
Add define to avoid vtk warning on mac
[clitk.git] / common / clitkCommon.txx
index 553c9b5f1df523ab1efdd0cdbc3aa63f7dc9598b..845e62fe520deb89def17b26d99c0e3fa7be1c98 100644 (file)
@@ -3,7 +3,7 @@
 
   Authors belong to:
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.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
@@ -14,7 +14,7 @@
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-======================================================================-====*/
+===========================================================================**/
 #ifndef CLITKCOMMON_TXX
 #define CLITKCOMMON_TXX
 
@@ -195,6 +195,7 @@ std::string GetTypeAsString()
 }
 //--------------------------------------------------------------------
 
+
 //--------------------------------------------------------------------
 template<class ImageType>
 void CloneImage(const typename ImageType::Pointer & input, typename ImageType::Pointer & output)
@@ -217,5 +218,39 @@ void CloneImage(const typename ImageType::Pointer & input, typename ImageType::P
 }
 //--------------------------------------------------------------------
 
+
+//--------------------------------------------------------------------
+// http://stackoverflow.com/questions/771453/copy-map-values-to-vector-in-stl
+template <typename M, typename V> 
+void MapToVecFirst(const  M & m, V & v) {
+  for( typename M::const_iterator it = m.begin(); it != m.end(); ++it ) {
+    v.push_back( it->first );
+  }
+}
+template <typename M, typename V> 
+void MapToVecSecond(const  M & m, V & v) {
+  for( typename M::const_iterator it = m.begin(); it != m.end(); ++it ) {
+    v.push_back( it->second );
+  }
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+//http://stackoverflow.com/questions/1494399/how-do-i-search-find-and-replace-in-a-standard-string
+template<class T>
+int inline findAndReplace(T& source, const T& find, const T& replace)
+{
+  int num=0;
+  int fLen = find.size();
+  int rLen = replace.size();
+  for (int pos=0; (pos=source.find(find, pos))!=T::npos; pos+=rLen) {
+    num++;
+    source.replace(pos, fLen, replace);
+  }
+  return num;
+}
+//--------------------------------------------------------------------
+
 #endif /* end #define CLITKCOMMON_TXX */