]> Creatis software - bbtk.git/blobdiff - packages/itk/src/bbitkImageProperties.cxx
*** empty log message ***
[bbtk.git] / packages / itk / src / bbitkImageProperties.cxx
diff --git a/packages/itk/src/bbitkImageProperties.cxx b/packages/itk/src/bbitkImageProperties.cxx
new file mode 100644 (file)
index 0000000..3202074
--- /dev/null
@@ -0,0 +1,87 @@
+/*=========================================================================
+                                                                                
+  Program:   bbtk
+  Module:    $RCSfile: bbitkImageProperties.cxx,v $
+  Language:  C++
+  Date:      $Date: 2008/02/05 12:03:01 $
+  Version:   $Revision: 1.1 $
+                                                                                
+  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/bbtk/License.html for details.
+                                                                                
+     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.
+                                                                                
+=========================================================================*/
+/**
+ *  \file 
+ *  \brief 
+ */
+#ifdef _USE_ITK_
+
+#include "bbitkImageProperties.h"
+#include "bbitkPackage.h"
+
+namespace bbitk 
+{
+  BBTK_USER_BLACK_BOX_IMPLEMENTATION(ImageProperties,bbtk::UserBlackBox);
+
+  BBTK_ADD_BLACK_BOX_TO_PACKAGE(itk,ImageProperties);
+
+
+
+
+  void ImageProperties::DoIt()
+  {
+    BBTK_TEMPLATE_ITK_IMAGE_SWITCH(bbGetInputIn().type(),DoIt);
+  }
+
+
+
+  /** 
+      Template Processing 
+  */
+  template<class itkImageType>
+  void ImageProperties::DoIt()
+  {
+    bbtkDebugMessageInc("Core",9,"bbitk::ImageProperties::DoIt<"
+                       <<bbtk::TypeName<itkImageType>()
+                       <<">()"<<std::endl);
+
+    itkImageType* im = bbGetInputIn().get<itkImageType*>();
+    unsigned int dim = im->GetImageDimension();
+
+    bbSetOutputTypeName(bbtk::TypeName<typename itkImageType::PixelType>());
+    bbSetOutputDimension(dim);
+    const typename itkImageType::RegionType& r =im->GetLargestPossibleRegion();
+    bbSetOutputLargestPossibleRegion(r);
+
+    const typename itkImageType::IndexType& ind = r.GetIndex();
+    std::vector<int> vind;
+    for (int i=0;i<dim;++i) vind.push_back(ind[i]);
+    bbSetOutputIndex(vind);
+
+    const typename itkImageType::SizeType& sz = r.GetSize();
+    std::vector<int> vsz;
+    for (int i=0;i<dim;++i) vsz.push_back(sz[i]);
+    bbSetOutputSize(vsz);
+
+    typename itkImageType::SpacingType sp = im->GetSpacing();
+    std::vector<float> vsp;
+    for (int i=0;i<dim;++i) vsp.push_back(sp[i]);
+    bbSetOutputSpacing(vsp);
+
+    bbtkDebugDecTab("Core",9);
+  }
+
+
+
+
+
+
+}
+// eo namespace bbtk
+
+#endif