]> Creatis software - clitk.git/blobdiff - itk/itkBSplineInterpolateImageFunctionWithLUT.h
Remove vcl_math calls
[clitk.git] / itk / itkBSplineInterpolateImageFunctionWithLUT.h
index 1656bef26ca63212c288332ed904bd3ccdb29ace..5ca614d9c35d493a487c7347be9111af3f339a87 100644 (file)
@@ -1,9 +1,9 @@
 /*=========================================================================
   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
 
-  Authors belong to: 
+  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
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-======================================================================-====*/
+===========================================================================**/
 #ifndef ITKBSPLINEINTERPOLATEIMAGEFUNCTIONWITHLUT_H
 #define ITKBSPLINEINTERPOLATEIMAGEFUNCTIONWITHLUT_H
-/* =========================================================================
-                                                                                
-  @file   itkBSplineInterpolateImageFunctionWithLUT.h
-  @author David Sarrut <david.sarrut@creatis.insa-lyon.fr>
-
-  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/Gdcm/License.html for details.
-  * Léon Bérard cancer center, 28 rue Laënnec, 69373 Lyon cedex 08, France
-  * http://www.creatis.insa-lyon.fr/rio
-                                                                                
-  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.
-                                                                             
-========================================================================= */
 
 #include "itkBSplineWeightsCalculator.h"
-//#include "clitkTimer.h"
 #include <itkBSplineInterpolateImageFunction.h>
 
+#include "clitkCommon.h"
+
 namespace itk {
   
   template <
@@ -65,7 +49,7 @@ namespace itk {
     itkNewMacro(Self);
     
     /** Setting LUT sampling (one parameters by dimension or a single
-       one for all dim); Default is 10 (for each dim) **/
+       one for all dim); Default is 20 (for each dim) **/
     void SetLUTSamplingFactor(const int& s);
     void SetLUTSamplingFactors(const SizeType& s);
 
@@ -77,27 +61,24 @@ namespace itk {
     void SetSplineOrders(const  SizeType & SplineOrders);
 
     /** Set the input image.  This must be set by the user. */
-    virtual void SetInputImage(const TImageType * inputData);
-    //void SetOutputSpacing(const SpacingType & s);
-    //void SetInputImageIsCoefficient(bool inputIsCoef) { mInputIsCoef = inputIsCoef; }
+    virtual void SetInputImage(const TImageType * inputData) ITK_OVERRIDE;
+    
+    /** Evaluate the function at a ContinuousIndex position.
+  Overwritten for taking LUT into account (RP: multi-threading-compatible version, 
+  the threadID is actually ignored) */  
+    virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType & index, unsigned int /* threadID */ ) const ITK_OVERRIDE
+    {
+      return this->EvaluateAtContinuousIndex( index );
+    }
 
     /** Evaluate the function at a ContinuousIndex position.
        Overwritten for taking LUT into account */  
-    virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType & index ) const;
+    virtual OutputType EvaluateAtContinuousIndex(const ContinuousIndexType & index ) const ITK_OVERRIDE;
     
     /** Static convenient functions to compute BSpline weights for
        various order, dimension, sampling ... **/
     static void ComputeBlendingWeights(int dim, int order, int sampling, TCoefficientType * weights);
 
-    /** Timer giving computation time for coefficients computation **/    
-    // const clitk::Timer & GetCoefTimer() const { return mCoefficientTimer; }    
-
-    /** Get estimated error **/
-
-    double GetIntrinsicError() const { return *mIntrinsecError; }
-    long   GetNumberOfError() const { return *mNumberOfError; }
-    double GetIntrinsicErrorMax() const { return *mIntrinsecErrorMax; }
-
   protected:
     BSplineInterpolateImageFunctionWithLUT();
     ~BSplineInterpolateImageFunctionWithLUT(){;}
@@ -112,14 +93,6 @@ namespace itk {
     /** Sampling factors for LUT weights **/
     SizeType               mSamplingFactors;
     bool                   mWeightsAreUpToDate;
-    //SpacingType            mOutputSpacing;
-
-    double                 * mIntrinsecError;
-    double                 * mIntrinsecErrorMax;
-    long                   * mNumberOfError;
-
-    //JV add iscoeff, and splineorders
-    // bool     mInputIsCoef;
     SizeType mSplineOrders;
 
     // Filter to compute weights
@@ -130,15 +103,6 @@ namespace itk {
     void UpdateWeightsProperties();
     IndexType GetSampleIndexOfPixelPosition(const ContinuousIndexType & x, IndexType & EvaluateIndex) const;
 
-    // Timing options
-    // clitk::Timer mCoefficientTimer;
-    // clitk::Timer mLUTTimer;
-    bool  mTimerEnabled;
-
-    //JV threadsafety: everything on the stack
-    //std::vector<int> mCorrectedSupportOffset;
-    //std::vector<IndexType> mCorrectedSupportIndex;
-    TCoefficientType * coef;
 
   }; // end class itkBSplineInterpolateImageFunctionWithLUT
 } // end namespace