]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/Image.hxx
...
[cpPlugins.git] / lib / cpPlugins / Interface / Image.hxx
index 1bb8b77be545eb3c5af9add91d94aab9cb6db618..3160fea305f850e73ca3fdd897da294052390254 100644 (file)
 
 // -------------------------------------------------------------------------
 template< unsigned int D >
-void cpPlugins::Interface::Image::
+bool cpPlugins::Interface::Image::
 _ITK_2_VTK_0( itk::LightObject* o )
 {
+  bool s = false;
   if( dynamic_cast< itk::ImageBase< D >* >( o ) != NULL )
   {
-    this->_ITK_2_VTK_1< char, D >( o );
-    this->_ITK_2_VTK_1< short, D >( o );
-    this->_ITK_2_VTK_1< int, D >( o );
-    this->_ITK_2_VTK_1< long, D >( o );
-    this->_ITK_2_VTK_1< unsigned char, D >( o );
-    this->_ITK_2_VTK_1< unsigned short, D >( o );
-    this->_ITK_2_VTK_1< unsigned int, D >( o );
-    this->_ITK_2_VTK_1< unsigned long, D >( o );
-    this->_ITK_2_VTK_1< float, D >( o );
-    this->_ITK_2_VTK_1< double, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< char >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< short >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< int >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< long >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< unsigned char >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< unsigned short >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< unsigned int >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< unsigned long >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< float >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBPixel< double >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< char >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< short >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< int >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< long >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned char >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned short >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned int >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned long >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< float >, D >( o );
-    this->_ITK_2_VTK_1< itk::RGBAPixel< double >, D >( o );
-    this->_ITK_2_VTK_1< itk::DiffusionTensor3D< float >, D >( o );
-    this->_ITK_2_VTK_1< itk::DiffusionTensor3D< double >, D >( o );
-    this->_ITK_2_VTK_1< itk::Vector< float, D >, D >( o );
-    this->_ITK_2_VTK_1< itk::Vector< double, D >, D >( o );
-    this->_ITK_2_VTK_1< itk::CovariantVector< float, D >, D >( o );
-    this->_ITK_2_VTK_1< itk::CovariantVector< double, D >, D >( o );
-    this->_ITK_2_VTK_1< itk::Point< float, D >, D >( o );
-    this->_ITK_2_VTK_1< itk::Point< double, D >, D >( o );
-    this->_ITK_2_VTK_1< itk::SymmetricSecondRankTensor< float, D >, D >( o );
-    this->_ITK_2_VTK_1< itk::SymmetricSecondRankTensor< double, D >, D >( o );
-  }
-  else
-  {
-    this->m_VTKObject = NULL;
-    this->m_ITKvVTK = NULL;
-    this->Modified( );
+    s |= this->_ITK_2_VTK_1< char, D >( o );
+    s |= this->_ITK_2_VTK_1< short, D >( o );
+    s |= this->_ITK_2_VTK_1< int, D >( o );
+    s |= this->_ITK_2_VTK_1< long, D >( o );
+    s |= this->_ITK_2_VTK_1< unsigned char, D >( o );
+    s |= this->_ITK_2_VTK_1< unsigned short, D >( o );
+    s |= this->_ITK_2_VTK_1< unsigned int, D >( o );
+    s |= this->_ITK_2_VTK_1< unsigned long, D >( o );
+    s |= this->_ITK_2_VTK_1< float, D >( o );
+    s |= this->_ITK_2_VTK_1< double, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< char >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< short >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< int >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< long >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< unsigned char >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< unsigned short >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< unsigned int >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< unsigned long >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< float >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBPixel< double >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< char >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< short >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< int >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< long >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned char >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned short >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned int >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned long >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< float >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< double >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::DiffusionTensor3D< float >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::DiffusionTensor3D< double >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::Vector< float, D >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::Vector< double, D >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::CovariantVector< float, D >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::CovariantVector< double, D >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::Point< float, D >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::Point< double, D >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::SymmetricSecondRankTensor< float, D >, D >( o );
+    s |= this->_ITK_2_VTK_1< itk::SymmetricSecondRankTensor< double, D >, D >( o );
 
   } // fi
+  return( s );
 }
 
 // -------------------------------------------------------------------------
 template< class P, unsigned int D >
-void cpPlugins::Interface::Image::
+bool cpPlugins::Interface::Image::
 _ITK_2_VTK_1( itk::LightObject* o )
 {
-  if( dynamic_cast< itk::Image< P, D >* >( o ) == NULL )
-  {
-    this->m_VTKObject = NULL;
-    this->m_ITKvVTK = NULL;
-    this->Modified( );
-  }
+  if( dynamic_cast< itk::Image< P, D >* >( o ) != NULL )
+    return( this->_ITK_2_VTK_2< itk::Image< P, D > >( o ) );
   else
-    this->_ITK_2_VTK_2< itk::Image< P, D > >( o );
+    return( false );
 }
 
 // -------------------------------------------------------------------------
 template< class I >
-void cpPlugins::Interface::Image::
+bool cpPlugins::Interface::Image::
 _ITK_2_VTK_2( itk::LightObject* o )
 {
   typedef itk::ImageToVTKImageFilter< I > _I2V;
@@ -111,14 +103,10 @@ _ITK_2_VTK_2( itk::LightObject* o )
     // Keep object track
     this->m_ITKObject = o;
     this->m_VTKObject = f->GetOutput( );
+    return( true );
   }
   else
-  {
-    this->m_VTKObject = NULL;
-    this->m_ITKvVTK = NULL;
-
-  } // fi
-  this->Modified( );
+    return( false );
 }
 
 #ifndef cpPlugins_Interface_EXPORTS