/*========================================================================= Program: Insight Segmentation & Registration Toolkit Module: $RCSfile: itkAnytimeImageToImageMetricBase.h,v $ Language: C++ Date: $Date: 2007/08/07 17:09:20 $ Version: $Revision: 1.4 $ Copyright (c) Insight Software Consortium. All rights reserved. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm 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. =========================================================================*/ #ifndef __itkAnytimeImageToImageMetricBase_h #define __itkAnytimeImageToImageMetricBase_h #define NUMCHANNELS 20 #include "PerformanceProfileTable.h" //namespace itk //{ /** \class AnytimeImageToImageMetricBase * Generic class to allow crosscasts in optimizers. */ class AnytimeImageToImageMetricBase { public: virtual double IncrementComputationLevel(const double percent,const int channel)=0; virtual void SetComputationLevel(const double percent,const int channel)const=0; virtual double GetComputationLevel(const int channel) const=0; virtual void ResetComputation (const int channel) const=0; virtual void SetChannel (const int channel)=0; virtual void LoadPerformanceProfile (const char* filename ) =0; virtual void WritePixelsUsed (const char* filename ) =0; virtual double GetCurrentAccuracy (const int channel, double feedback )=0; virtual double EstimateCompletionRequired (double feedback, double requiredAccuracy )=0; AnytimeImageToImageMetricBase(){}; virtual ~AnytimeImageToImageMetricBase(){}; AnytimeImageToImageMetricBase(const AnytimeImageToImageMetricBase&) {}; //purposely not implemented void operator=(const AnytimeImageToImageMetricBase&){}; //purposely not implemented }; //} // end namespace itk #endif