]> Creatis software - bbtk.git/commitdiff
#3120 BBTK Bug New Normal - merge branch changestoITK3and4 FROM master
authorEduardo DAVILA <davila@localhost.localdomain>
Tue, 29 Aug 2017 12:02:54 +0000 (14:02 +0200)
committerEduardo DAVILA <davila@localhost.localdomain>
Tue, 29 Aug 2017 12:02:54 +0000 (14:02 +0200)
kernel/appli/bbfy/bbfy.cpp
packages/itk/src/bbitkDICOMSeriesFileNames.xml
packages/itkvtk/src/bbitkvtkitkImage2vtkImageData.cxx
packages/itkvtk/src/bbitkvtkitkImageVector2vtkImageDataVector.cxx

index 43f89023c53ed59c3d9f223eed78d26fe0347a03..412e66e665a570320d5e63c109dac34cc5eb7fab 100644 (file)
@@ -103,6 +103,7 @@ private:
   std::string mTemplateImplementation;
 
   std::vector<std::string> mInclude;
+  std::string mVerbosePreprocessor;
   std::vector<std::string> mTypedef;
 
   std::string mUserSetDefaultValues;
@@ -293,6 +294,14 @@ void bbfy::ParseXML()
       mAuthor += val;
     }
 
+  // Verbose preprocessor
+  for (i=0,j=0; i<BB.nChildNode("verbosePreprocessor"); i++) 
+  {
+    std::string val;
+    bbtk::GetTextOrClear(BB.getChildNode("verbosePreprocessor",&j),val);
+    mVerbosePreprocessor += val + "\n";
+  }
+
   // Description
   for (i=0,j=0; i<BB.nChildNode("description"); i++) 
     {
@@ -555,6 +564,9 @@ void bbfy::CreateHeader()
   mFile << "#ifndef " << included <<"\n";
   mFile << "#define " << included <<"\n";
 
+  // Verbose preprocessor
+  mFile << mVerbosePreprocessor << "\n";
+
   // Includes 
   mFile << "#include \"bb" << mPackage << "_EXPORT.h\"\n";
   std::vector<std::string>::iterator i;
index 2941999804b5bbbbc616dcd6ba926e66eb2b8ed7..d88e86b5194e9e0330b9819c4a8749572319bd2b 100644 (file)
     #include directives to be put in the .h generated
     There must be one tag per file to include
     Here we include the standard header iostream.h -->
-  <include><PRE>itkDICOMSeriesFileNames.h</PRE></include>
+  <!-- <include><PRE>itkDICOMSeriesFileNames.h</PRE></include>-->
   <!--=====================================================================-->
+  <verbosePreprocessor><PRE>
+#include <itkConfigure.h>
+#if ITK_VERSION_MAJOR < 4
+#  include <itkDICOMSeriesFileNames.h>
+#else
+#  include <itkGDCMSeriesFileNames.h>
+#endif
+  </PRE></verbosePreprocessor>
 
   <!--========================================================================
     INPUTS/OUTPUTS DECLARATION --> 
   <!--========================================================================
     THE PROCESSING METHOD BODY -->
   <process><PRE>
+#if ITK_VERSION_MAJOR < 4
     itk::DICOMSeriesFileNames::Pointer names = 
      itk::DICOMSeriesFileNames::New();
     names->SetDirectory(bbGetInputIn()); 
     bbSetOutputOut( names->GetFileNames() );
+#else
+    itk::GDCMSeriesFileNames::Pointer names = 
+     itk::GDCMSeriesFileNames::New();
+    names->SetDirectory(bbGetInputIn()); 
+    bbSetOutputOut(
+      names->GetFileNames( names->GetSeriesUIDs().begin()->c_str() )
+    );
+#endif
   </PRE></process>
   <!--=====================================================================-->
 
index 6e192c2b19a88252befa4731f6f6aa3fbab4bba4..77240acb1fd5dd9dd3406472827166c7fb2f1adc 100644 (file)
 #include "bbitkvtkPackage.h"
 #include "itkImageToVTKImageFilter.h"
 
+// -------------------------------------------------------------------------
+// LFV: avoid itk::Concept check on 4d or superior images
+#define BBITKVTK_itkImage2vtkImageData_Template( t, ty, di )            \
+  if( t == typeid( itk::Image< ty, di > ) )                             \
+    this->Convert< itk::Image< ty, di > >( )
+// -------------------------------------------------------------------------
 
 namespace bbitkvtk 
 {
@@ -55,7 +61,42 @@ namespace bbitkvtk
   void itkImage2vtkImageData::Convert()
   {
     bbtk::TypeInfo t = bbGetInputIn().type();
-    BBTK_TEMPLATE_ITK_IMAGE_SWITCH(t,Convert);
+
+    // Only supports images in 1, 2 or 3 dimensions
+    BBITKVTK_itkImage2vtkImageData_Template( t, char, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, short, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, int, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, long, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, float, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, double, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned char, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned short, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned int, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned long, 1 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, char, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, short, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, int, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, long, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, float, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, double, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned char, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned short, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned int, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned long, 2 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, char, 3 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, short, 3 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, int, 3 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, long, 3 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, float, 3 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, double, 3 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned char, 3 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned short, 3 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned int, 3 );
+    else BBITKVTK_itkImage2vtkImageData_Template( t, unsigned long, 3 );
+
+    /* Deprecated
+       BBTK_TEMPLATE_ITK_IMAGE_SWITCH(t,Convert);
+    */
   }
 
    template<class T>
index db9b1477f0a6b590ad4cc494673baaaac13d4b83..c26717aeee183ff5e7b992cd8c26ec8543f347b3 100644 (file)
 #include "bbitkvtkPackage.h"
 #include "itkImageToVTKImageFilter.h"
 
+// -------------------------------------------------------------------------
+// LFV: avoid itk::Concept check on 4d or superior images
+#define BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, ty, di ) \
+  if( t == typeid( itk::Image< ty, di > ) )                             \
+    this->Convert< itk::Image< ty, di > >( )
+// -------------------------------------------------------------------------
 
 namespace bbitkvtk 
 {
@@ -57,7 +63,42 @@ namespace bbitkvtk
   {
   // suppose *all* the images have the same type // JPR
     bbtk::TypeInfo t = bbGetInputIn()[0].type();
-    BBTK_TEMPLATE_ITK_IMAGE_SWITCH(t,Convert);
+
+    // Only supports images in 1, 2 or 3 dimensions
+    BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, char, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, short, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, int, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, long, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, float, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, double, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned char, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned short, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned int, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned long, 1 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, char, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, short, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, int, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, long, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, float, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, double, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned char, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned short, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned int, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned long, 2 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, char, 3 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, short, 3 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, int, 3 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, long, 3 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, float, 3 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, double, 3 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned char, 3 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned short, 3 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned int, 3 );
+    else BBITKVTK_itkImageVector2vtkImageDataVector_Template( t, unsigned long, 3 );
+
+    /* Deprecated
+       BBTK_TEMPLATE_ITK_IMAGE_SWITCH(t,Convert);
+    */
   }
 
    template<class T>