18#ifndef itkDistancePreservingRigidityPenaltyTerm_h 
   19#define itkDistancePreservingRigidityPenaltyTerm_h 
   28#include "itkNeighborhood.h" 
   29#include "itkImageRegionIterator.h" 
   30#include "itkNeighborhoodOperatorImageFilter.h" 
   31#include "itkNeighborhoodIterator.h" 
   33#include "itkImageRegionIterator.h" 
   34#include "itkMultiResolutionPyramidImageFilter.h" 
   75template <
class TFixedImage, 
class TScalarType>
 
   94  using typename Superclass::CoordinateRepresentationType;
 
   95  using typename Superclass::MovingImageType;
 
   96  using typename Superclass::MovingImagePixelType;
 
   98  using typename Superclass::MovingImageConstPointer;
 
   99  using typename Superclass::FixedImageType;
 
  101  using typename Superclass::FixedImageConstPointer;
 
  102  using typename Superclass::FixedImageRegionType;
 
  104  using typename Superclass::TransformPointer;
 
  105  using typename Superclass::InputPointType;
 
  106  using typename Superclass::OutputPointType;
 
  107  using typename Superclass::TransformParametersType;
 
  108  using typename Superclass::TransformJacobianType;
 
  109  using typename Superclass::InterpolatorType;
 
  110  using typename Superclass::InterpolatorPointer;
 
  111  using typename Superclass::RealType;
 
  112  using typename Superclass::GradientPixelType;
 
  113  using typename Superclass::GradientImageType;
 
  114  using typename Superclass::GradientImagePointer;
 
  119  using typename Superclass::MeasureType;
 
  120  using typename Superclass::DerivativeType;
 
  122  using typename Superclass::ParametersType;
 
  155  GetValue(
const ParametersType & parameters) 
const override;
 
  159  GetDerivative(
const ParametersType & parameters, DerivativeType & derivative) 
const override;
 
  165                        DerivativeType &       derivative) 
const override;
 
  199  itkGetConstMacro(NumberOfRigidGrids, 
unsigned int);
 
  210  PrintSelf(std::ostream & os, Indent indent) 
const override;
 
  216  mutable MeasureType m_RigidityPenaltyTermValue{};
 
  223  unsigned int m_NumberOfRigidGrids{};
 
 
  230#ifndef ITK_MANUAL_INSTANTIATION 
  231#  include "itkDistancePreservingRigidityPenaltyTerm.hxx" 
typename ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
 
typename FixedImageType::PixelType FixedImagePixelType
 
typename DerivativeType::ValueType DerivativeValueType
 
typename ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
 
typename MovingImageType::Pointer MovingImagePointer
 
ImageMaskSpatialObject< Self::FixedImageDimension > FixedImageMaskType
 
typename FixedImageType::Pointer FixedImagePointer
 
SmartPointer< MovingImageMaskType > MovingImageMaskPointer
 
SmartPointer< FixedImageMaskType > FixedImageMaskPointer
 
ImageMaskSpatialObject< Self::MovingImageDimension > MovingImageMaskType
 
typename BSplineTransformType::SpacingType GridSpacingType
 
typename BSplineKnotImageType::RegionType BSplineKnotImageRegionType
 
typename BSplineTransformType::Pointer BSplineTransformPointer
 
typename PenaltyGridImageType::RegionType PenaltyGridImageRegionType
 
ITK_DISALLOW_COPY_AND_MOVE(DistancePreservingRigidityPenaltyTerm)
 
~DistancePreservingRigidityPenaltyTerm() override=default
 
typename BSplineKnotImageType::Pointer BSplineKnotImagePointer
 
itkStaticConstMacro(ImageDimension, unsigned int, FixedImageType::ImageDimension)
 
Image< signed short, Self::MovingImageDimension > BSplineKnotImageType
 
typename SegmentedImageType::Pointer SegmentedImagePointer
 
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 
itkGetModifiableObjectMacro(SegmentedImage, SegmentedImageType)
 
void GetDerivative(const ParametersType ¶meters, DerivativeType &derivative) const override
 
itkGetModifiableObjectMacro(SampledSegmentedImage, SegmentedImageType)
 
typename PenaltyGridImageType::Pointer PenaltyGridImagePointer
 
SmartPointer< const Self > ConstPointer
 
AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 > BSplineTransformType
 
Image< signed short, Self::MovingImageDimension > SegmentedImageType
 
itkStaticConstMacro(MovingImageDimension, unsigned int, FixedImageType::ImageDimension)
 
void PrintSelf(std::ostream &os, Indent indent) const override
 
DistancePreservingRigidityPenaltyTerm()
 
typename BSplineTransformType::ImageType CoefficientImageType
 
void GetValueAndDerivative(const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override
 
AdvancedCombinationTransform< ScalarType, FixedImageDimension > CombinationTransformType
 
typename CoefficientImageType::Pointer CoefficientImagePointer
 
typename CoefficientImageType::SpacingType CoefficientImageSpacingType
 
void Initialize() override
 
MeasureType GetValue(const ParametersType ¶meters) const override
 
Image< signed short, Self::MovingImageDimension > PenaltyGridImageType
 
typename SegmentedImageType::RegionType SegmentedImageRegionType