--- /dev/null
+/*=========================================================================
+
+ 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