]> Creatis software - clitk.git/blobdiff - common/clitkCommon.txx
- correct crop 2D bug
[clitk.git] / common / clitkCommon.txx
index 984ef76adab1ed8bd3a37ace2e753f36adf00e87..f9eeb8c8bfd9280319f0ed0d38a47a393827b87b 100644 (file)
@@ -1,18 +1,22 @@
-/*-------------------------------------------------------------------------
-                                                                                
-  Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
-  l'Image). All rights reserved. See Doc/License.txt or
-  http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
-  
+/*=========================================================================
+  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://oncora1.lyon.fnclcc.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 above copyright notices for more information.
-  
-  -------------------------------------------------------------------------*/
+  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 CLITKCOMMON_TXX
 #define CLITKCOMMON_TXX
-
 /**
    -------------------------------------------------
    * @file   clitkCommon.txx
@@ -112,6 +116,9 @@ void GetSortedIndex(const std::vector<Type> & toSort, std::vector<int> & index,
 //--------------------------------------------------------------------
 template<class TPixel>
 std::string GetTypeAsString() {
+  //  http://www.vtk.org/doc/release/3/html/vtkSetGet_8h-source.html
+  // and
+  // itkImageIOBase.cxx
   const std::type_info & PixType = typeid(TPixel);
   std::string pixelName;
   if (PixType == typeid(char)) pixelName = "char"; // 'plain" char is different from signed char and unsigned char ...
@@ -128,5 +135,26 @@ std::string GetTypeAsString() {
 }
 //--------------------------------------------------------------------
 
+//--------------------------------------------------------------------
+template<class ImageType>
+void CloneImage(const typename ImageType::Pointer & input, typename ImageType::Pointer & output) {
+  output->SetRegions(input->GetLargestPossibleRegion());
+  output->SetOrigin(input->GetOrigin());
+  output->SetSpacing(input->GetSpacing());
+  output->Allocate();
+  typedef itk::ImageRegionConstIterator<ImageType> ConstIteratorType; 
+  ConstIteratorType pi(input,input->GetLargestPossibleRegion());
+  pi.GoToBegin();  
+  typedef itk::ImageRegionIterator<ImageType> IteratorType; 
+  IteratorType po(output,input->GetLargestPossibleRegion());
+  po.GoToBegin(); 
+  while (!pi.IsAtEnd()) {
+    po.Set(pi.Get());
+    ++pi;
+    ++po;
+  }
+}
+//--------------------------------------------------------------------
+
 #endif /* end #define CLITKCOMMON_TXX */