]> Creatis software - clitk.git/blobdiff - itk/clitkBooleanOperatorLabelImageFilter.h
With ITK 5.0, itk::ProcessObject::VerifyInputInformation are now declared const
[clitk.git] / itk / clitkBooleanOperatorLabelImageFilter.h
index f81b4402a14cf2dbcc4f8995bb298e13b2992106..523a179f8087f713919883e28194f259b7f4a119 100644 (file)
@@ -3,7 +3,7 @@
 
   Authors belong to: 
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
+  - Léon Bérard cancer center       http://www.centreleonberard.fr
   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
 
   This software is distributed WITHOUT ANY WARRANTY; without even
@@ -14,7 +14,7 @@
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-  ======================================================================-====*/
+  ===========================================================================**/
 
 #ifndef CLITKBOOLEANOPERATORLABELIMAGEFILTER_H
 #define CLITKBOOLEANOPERATORLABELIMAGEFILTER_H
@@ -81,7 +81,8 @@ namespace clitk {
     // Set type of operation
     typedef enum {
       And = 0, 
-      AndNot = 1
+      AndNot = 1, 
+      Or = 2
     } OperationTypeEnumeration;
     itkGetMacro(OperationType, OperationTypeEnumeration);
     itkSetMacro(OperationType, OperationTypeEnumeration);
@@ -96,16 +97,24 @@ namespace clitk {
     itkStaticConstMacro(InputImage1Dimension, unsigned int, TInputImage1::ImageDimension);
     itkStaticConstMacro(InputImage2Dimension, unsigned int, TInputImage2::ImageDimension);
     itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension);
-    
+
+    // I dont want to verify inputs information
+#if ITK_VERSION_MAJOR <= 4
+    virtual void VerifyInputInformation() ITK_OVERRIDE { }
+#else
+    virtual void VerifyInputInformation() const ITK_OVERRIDE { }
+#endif
+
   protected:
     BooleanOperatorLabelImageFilter();
     virtual ~BooleanOperatorLabelImageFilter() {}
     
-    virtual void GenerateOutputInformation();
-    virtual void GenerateInputRequestedRegion();
-    virtual void GenerateData();
+    virtual void GenerateOutputInformation() ITK_OVERRIDE;
+    virtual void GenerateInputRequestedRegion() ITK_OVERRIDE;
+    virtual void GenerateData() ITK_OVERRIDE;
     
-    virtual void ReleaseInputs() { } // Do not release date to keep input in memory and continue ...    
+    // Do not release date to keep input in memory and continue ... 
+    virtual void ReleaseInputs() ITK_OVERRIDE { }
     
     Input1ImagePixelType mBackgroundValue1;
     Input2ImagePixelType mBackgroundValue2;
@@ -120,6 +129,7 @@ namespace clitk {
     
     template<class Iter1, class Iter2> void LoopAndNot(Iter1 it1, Iter1 it2, Iter2 ot);
     template<class Iter1, class Iter2> void LoopAnd(Iter1 it1, Iter1 it2, Iter2 ot);
+    template<class Iter1, class Iter2> void LoopOr(Iter1 it1, Iter1 it2, Iter2 ot);
     
   private:
     BooleanOperatorLabelImageFilter(const Self&); //purposely not implemented