18#ifndef itkObjectToObjectMetricBase_h
19#define itkObjectToObjectMetricBase_h
23#include "ITKOptimizersv4Export.h"
42 GRADIENT_SOURCE_FIXED = 0,
43 GRADIENT_SOURCE_MOVING,
61extern ITKOptimizersv4_EXPORT std::ostream &
63extern ITKOptimizersv4_EXPORT std::ostream &
89template <
typename TInternalComputationValueType =
double>
109 using typename Superclass::MeasureType;
112 using typename Superclass::DerivativeType;
116 using typename Superclass::ParametersType;
134#if !defined(ITK_LEGACY_REMOVE)
138 static constexpr GradientSourceEnum GRADIENT_SOURCE_FIXED = GradientSourceEnum::GRADIENT_SOURCE_FIXED;
139 static constexpr GradientSourceEnum GRADIENT_SOURCE_MOVING = GradientSourceEnum::GRADIENT_SOURCE_MOVING;
140 static constexpr GradientSourceEnum GRADIENT_SOURCE_BOTH = GradientSourceEnum::GRADIENT_SOURCE_BOTH;
236#if !defined(ITK_LEGACY_REMOVE)
238 static constexpr MetricCategoryEnum UNKNOWN_METRIC = MetricCategoryEnum::UNKNOWN_METRIC;
239 static constexpr MetricCategoryEnum OBJECT_METRIC = MetricCategoryEnum::OBJECT_METRIC;
241 static constexpr MetricCategoryEnum POINT_SET_METRIC = MetricCategoryEnum::POINT_SET_METRIC;
249 return MetricCategoryEnum::UNKNOWN_METRIC;
273#ifndef ITK_MANUAL_INSTANTIATION
274# include "itkObjectToObjectMetricBase.hxx"
Control indentation during Print() invocation.
Light weight base class for most itk classes.
Define additional traits for native types such as int or float.
This class contains all the enum classes used by the ObjectToObjectMetricBaseTemplate class.
Base class for all object-to-object similarity metrics added in ITKv4.
virtual void GetDerivative(DerivativeType &) const =0
virtual bool HasLocalSupport() const =0
typename ObjectType::ConstPointer ObjectConstPointer
bool GetGradientSourceIncludesMoving() const
virtual MetricCategoryEnum GetMetricCategory() const
typename DerivativeType::ValueType DerivativeValueType
unsigned int NumberOfParametersType
MeasureType GetValue() const override=0
TInternalComputationValueType ParametersValueType
NumberOfParametersType GetNumberOfParameters() const override=0
ObjectToObjectMetricBaseTemplate()
void PrintSelf(std::ostream &os, Indent indent) const override
void GetValueAndDerivative(MeasureType &value, DerivativeType &derivative) const override=0
virtual void Initialize()=0
TInternalComputationValueType CoordinateRepresentationType
virtual void SetParameters(ParametersType ¶ms)=0
virtual const ParametersType & GetParameters() const =0
virtual NumberOfParametersType GetNumberOfLocalParameters() const =0
~ObjectToObjectMetricBaseTemplate() override=default
MeasureType GetCurrentValue() const
bool GetGradientSourceIncludesFixed() const
virtual void UpdateTransformParameters(const DerivativeType &derivative, ParametersValueType factor=NumericTraits< ParametersValueType >::OneValue())=0
Base class for most ITK classes.
This class is a base for a CostFunction that returns a single value.
SmartPointer< const Self > ConstPointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)