# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.3.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.


import collections

from sys import version_info as _version_info
if _version_info < (3, 7, 0):
    raise RuntimeError("Python 3.7 or later required")

from . import _ITKCommonPython


from . import _ITKMetricsv4Python



from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _itkImageToImageMetricv4Python
else:
    import _itkImageToImageMetricv4Python

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


if _swig_python_version_info[0:2] >= (3, 3):
    import collections.abc
else:
    import collections

import itk.itkIndexPython
import itk.itkSizePython
import itk.pyBasePython
import itk.itkOffsetPython
import itk.itkImageRegionPython
import itk.ITKCommonBasePython
import itk.itkMatrixPython
import itk.itkVectorPython
import itk.vnl_vectorPython
import itk.stdcomplexPython
import itk.vnl_matrixPython
import itk.itkFixedArrayPython
import itk.vnl_vector_refPython
import itk.itkPointPython
import itk.itkCovariantVectorPython
import itk.vnl_matrix_fixedPython
import itk.itkDisplacementFieldTransformPython
import itk.itkImagePython
import itk.itkRGBPixelPython
import itk.itkRGBAPixelPython
import itk.itkSymmetricSecondRankTensorPython
import itk.itkVariableLengthVectorPython
import itk.itkDiffusionTensor3DPython
import itk.itkTransformBasePython
import itk.itkArray2DPython
import itk.itkOptimizerParametersPython
import itk.itkArrayPython
import itk.itkVectorImagePython
import itk.itkPointSetPython
import itk.itkVectorContainerPython
import itk.itkContinuousIndexPython
import itk.itkImageToImageFilterBPython
import itk.itkPhasedArray3DSpecialCoordinatesImagePython
import itk.itkImageToImageFilterCommonPython
import itk.itkImageSourcePython
import itk.itkImageSourceCommonPython
import itk.itkInterpolateImageFunctionPython
import itk.itkImageFunctionBasePython
import itk.itkFunctionBasePython
import itk.itkSpatialObjectBasePython
import itk.itkAffineTransformPython
import itk.itkMatrixOffsetTransformBasePython
import itk.itkBoundingBoxPython
import itk.itkMapContainerPython
import itk.itkSpatialObjectPropertyPython
import itk.itkObjectToObjectMetricBasePython
import itk.itkSingleValuedCostFunctionv4Python
import itk.itkCostFunctionPython
class itkImageToImageMetricv4F2F2_Superclass(itk.itkObjectToObjectMetricBasePython.itkObjectToObjectMetricBaseTemplateD):
    r"""Proxy of C++ itkImageToImageMetricv4F2F2_Superclass class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr

    def SetFixedTransform(self, _arg):
        r"""
        SetFixedTransform(self, _arg)

        Parameters
        ----------
        _arg: itkTransformD22 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_SetFixedTransform(self, _arg)

    def GetModifiableFixedTransform(self):
        r"""GetModifiableFixedTransform(self) -> itkTransformD22"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetModifiableFixedTransform(self)

    def GetFixedTransform(self, *args):
        r"""
        GetFixedTransform(self) -> itkTransformD22
        GetFixedTransform(self) -> itkTransformD22
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetFixedTransform(self, *args)

    def SetMovingTransform(self, _arg):
        r"""
        SetMovingTransform(self, _arg)

        Parameters
        ----------
        _arg: itkTransformD22 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_SetMovingTransform(self, _arg)

    def GetModifiableMovingTransform(self):
        r"""GetModifiableMovingTransform(self) -> itkTransformD22"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetModifiableMovingTransform(self)

    def GetMovingTransform(self, *args):
        r"""
        GetMovingTransform(self) -> itkTransformD22
        GetMovingTransform(self) -> itkTransformD22
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetMovingTransform(self, *args)

    def SetTransform(self, transform):
        r"""
        SetTransform(self, transform)

        Parameters
        ----------
        transform: itkTransformD22 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_SetTransform(self, transform)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTransformD22"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetTransform(self)

    def GetNumberOfValidPoints(self):
        r"""GetNumberOfValidPoints(self) -> unsigned long"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetNumberOfValidPoints(self)

    def SetVirtualDomain(self, spacing, origin, direction, region):
        r"""
        SetVirtualDomain(self, spacing, origin, direction, region)

        Parameters
        ----------
        spacing: itkVectorD2 const &
        origin: itkPointD2 const &
        direction: itkMatrixD22 const &
        region: itkImageRegion2 const &

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_SetVirtualDomain(self, spacing, origin, direction, region)

    def SetVirtualDomainFromImage(self, virtualImage):
        r"""
        SetVirtualDomainFromImage(self, virtualImage)

        Parameters
        ----------
        virtualImage: itkImageF2 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_SetVirtualDomainFromImage(self, virtualImage)

    def SupportsArbitraryVirtualDomainSamples(self):
        r"""SupportsArbitraryVirtualDomainSamples(self) -> bool"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_SupportsArbitraryVirtualDomainSamples(self)

    def GetVirtualDomainTimeStamp(self):
        r"""GetVirtualDomainTimeStamp(self) -> itkTimeStamp"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetVirtualDomainTimeStamp(self)

    def GetVirtualSpacing(self):
        r"""GetVirtualSpacing(self) -> itkVectorD2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetVirtualSpacing(self)

    def GetVirtualOrigin(self):
        r"""GetVirtualOrigin(self) -> itkPointD2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetVirtualOrigin(self)

    def GetVirtualDirection(self):
        r"""GetVirtualDirection(self) -> itkMatrixD22"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetVirtualDirection(self)

    def GetVirtualRegion(self):
        r"""GetVirtualRegion(self) -> itkImageRegion2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetVirtualRegion(self)

    def GetModifiableVirtualImage(self):
        r"""GetModifiableVirtualImage(self) -> itkImageF2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetModifiableVirtualImage(self)

    def GetVirtualImage(self, *args):
        r"""
        GetVirtualImage(self) -> itkImageF2
        GetVirtualImage(self) -> itkImageF2
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_GetVirtualImage(self, *args)

    def ComputeParameterOffsetFromVirtualIndex(self, index, numberOfLocalParameters):
        r"""
        ComputeParameterOffsetFromVirtualIndex(self, index, numberOfLocalParameters) -> long

        Parameters
        ----------
        index: itkIndex2 const &
        numberOfLocalParameters: unsigned int const &

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_ComputeParameterOffsetFromVirtualIndex(self, index, numberOfLocalParameters)

    def ComputeParameterOffsetFromVirtualPoint(self, point, numberOfLocalParameters):
        r"""
        ComputeParameterOffsetFromVirtualPoint(self, point, numberOfLocalParameters) -> long

        Parameters
        ----------
        point: itkPointD2 const &
        numberOfLocalParameters: unsigned int const &

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_ComputeParameterOffsetFromVirtualPoint(self, point, numberOfLocalParameters)

    def IsInsideVirtualDomain(self, *args):
        r"""
        IsInsideVirtualDomain(self, point) -> bool

        Parameters
        ----------
        point: itkPointD2 const &

        IsInsideVirtualDomain(self, index) -> bool

        Parameters
        ----------
        index: itkIndex2 const &

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_IsInsideVirtualDomain(self, *args)
    __swig_destroy__ = _itkImageToImageMetricv4Python.delete_itkImageToImageMetricv4F2F2_Superclass

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageToImageMetricv4F2F2_Superclass

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_cast(obj)

# Register itkImageToImageMetricv4F2F2_Superclass in _itkImageToImageMetricv4Python:
_itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_Superclass_swigregister(itkImageToImageMetricv4F2F2_Superclass)
class itkImageToImageMetricv4F3F3_Superclass(itk.itkObjectToObjectMetricBasePython.itkObjectToObjectMetricBaseTemplateD):
    r"""Proxy of C++ itkImageToImageMetricv4F3F3_Superclass class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr

    def SetFixedTransform(self, _arg):
        r"""
        SetFixedTransform(self, _arg)

        Parameters
        ----------
        _arg: itkTransformD33 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_SetFixedTransform(self, _arg)

    def GetModifiableFixedTransform(self):
        r"""GetModifiableFixedTransform(self) -> itkTransformD33"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetModifiableFixedTransform(self)

    def GetFixedTransform(self, *args):
        r"""
        GetFixedTransform(self) -> itkTransformD33
        GetFixedTransform(self) -> itkTransformD33
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetFixedTransform(self, *args)

    def SetMovingTransform(self, _arg):
        r"""
        SetMovingTransform(self, _arg)

        Parameters
        ----------
        _arg: itkTransformD33 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_SetMovingTransform(self, _arg)

    def GetModifiableMovingTransform(self):
        r"""GetModifiableMovingTransform(self) -> itkTransformD33"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetModifiableMovingTransform(self)

    def GetMovingTransform(self, *args):
        r"""
        GetMovingTransform(self) -> itkTransformD33
        GetMovingTransform(self) -> itkTransformD33
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetMovingTransform(self, *args)

    def SetTransform(self, transform):
        r"""
        SetTransform(self, transform)

        Parameters
        ----------
        transform: itkTransformD33 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_SetTransform(self, transform)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTransformD33"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetTransform(self)

    def GetNumberOfValidPoints(self):
        r"""GetNumberOfValidPoints(self) -> unsigned long"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetNumberOfValidPoints(self)

    def SetVirtualDomain(self, spacing, origin, direction, region):
        r"""
        SetVirtualDomain(self, spacing, origin, direction, region)

        Parameters
        ----------
        spacing: itkVectorD3 const &
        origin: itkPointD3 const &
        direction: itkMatrixD33 const &
        region: itkImageRegion3 const &

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_SetVirtualDomain(self, spacing, origin, direction, region)

    def SetVirtualDomainFromImage(self, virtualImage):
        r"""
        SetVirtualDomainFromImage(self, virtualImage)

        Parameters
        ----------
        virtualImage: itkImageF3 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_SetVirtualDomainFromImage(self, virtualImage)

    def SupportsArbitraryVirtualDomainSamples(self):
        r"""SupportsArbitraryVirtualDomainSamples(self) -> bool"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_SupportsArbitraryVirtualDomainSamples(self)

    def GetVirtualDomainTimeStamp(self):
        r"""GetVirtualDomainTimeStamp(self) -> itkTimeStamp"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetVirtualDomainTimeStamp(self)

    def GetVirtualSpacing(self):
        r"""GetVirtualSpacing(self) -> itkVectorD3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetVirtualSpacing(self)

    def GetVirtualOrigin(self):
        r"""GetVirtualOrigin(self) -> itkPointD3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetVirtualOrigin(self)

    def GetVirtualDirection(self):
        r"""GetVirtualDirection(self) -> itkMatrixD33"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetVirtualDirection(self)

    def GetVirtualRegion(self):
        r"""GetVirtualRegion(self) -> itkImageRegion3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetVirtualRegion(self)

    def GetModifiableVirtualImage(self):
        r"""GetModifiableVirtualImage(self) -> itkImageF3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetModifiableVirtualImage(self)

    def GetVirtualImage(self, *args):
        r"""
        GetVirtualImage(self) -> itkImageF3
        GetVirtualImage(self) -> itkImageF3
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_GetVirtualImage(self, *args)

    def ComputeParameterOffsetFromVirtualIndex(self, index, numberOfLocalParameters):
        r"""
        ComputeParameterOffsetFromVirtualIndex(self, index, numberOfLocalParameters) -> long

        Parameters
        ----------
        index: itkIndex3 const &
        numberOfLocalParameters: unsigned int const &

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_ComputeParameterOffsetFromVirtualIndex(self, index, numberOfLocalParameters)

    def ComputeParameterOffsetFromVirtualPoint(self, point, numberOfLocalParameters):
        r"""
        ComputeParameterOffsetFromVirtualPoint(self, point, numberOfLocalParameters) -> long

        Parameters
        ----------
        point: itkPointD3 const &
        numberOfLocalParameters: unsigned int const &

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_ComputeParameterOffsetFromVirtualPoint(self, point, numberOfLocalParameters)

    def IsInsideVirtualDomain(self, *args):
        r"""
        IsInsideVirtualDomain(self, point) -> bool

        Parameters
        ----------
        point: itkPointD3 const &

        IsInsideVirtualDomain(self, index) -> bool

        Parameters
        ----------
        index: itkIndex3 const &

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_IsInsideVirtualDomain(self, *args)
    __swig_destroy__ = _itkImageToImageMetricv4Python.delete_itkImageToImageMetricv4F3F3_Superclass

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageToImageMetricv4F3F3_Superclass

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_cast(obj)

# Register itkImageToImageMetricv4F3F3_Superclass in _itkImageToImageMetricv4Python:
_itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_Superclass_swigregister(itkImageToImageMetricv4F3F3_Superclass)
class itkImageToImageMetricv4F2F2(itkImageToImageMetricv4F2F2_Superclass):
    r"""Proxy of C++ itkImageToImageMetricv4F2F2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr

    def SetFixedImage(self, _arg):
        r"""
        SetFixedImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageF2 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetFixedImage(self, _arg)

    def GetFixedImage(self):
        r"""GetFixedImage(self) -> itkImageF2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetFixedImage(self)

    def SetMovingImage(self, _arg):
        r"""
        SetMovingImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageF2 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetMovingImage(self, _arg)

    def GetMovingImage(self):
        r"""GetMovingImage(self) -> itkImageF2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetMovingImage(self)

    def SetFixedInterpolator(self, _arg):
        r"""
        SetFixedInterpolator(self, _arg)

        Parameters
        ----------
        _arg: itkInterpolateImageFunctionIF2D *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetFixedInterpolator(self, _arg)

    def GetModifiableFixedInterpolator(self):
        r"""GetModifiableFixedInterpolator(self) -> itkInterpolateImageFunctionIF2D"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetModifiableFixedInterpolator(self)

    def GetFixedInterpolator(self, *args):
        r"""
        GetFixedInterpolator(self) -> itkInterpolateImageFunctionIF2D
        GetFixedInterpolator(self) -> itkInterpolateImageFunctionIF2D
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetFixedInterpolator(self, *args)

    def SetMovingInterpolator(self, _arg):
        r"""
        SetMovingInterpolator(self, _arg)

        Parameters
        ----------
        _arg: itkInterpolateImageFunctionIF2D *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetMovingInterpolator(self, _arg)

    def GetModifiableMovingInterpolator(self):
        r"""GetModifiableMovingInterpolator(self) -> itkInterpolateImageFunctionIF2D"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetModifiableMovingInterpolator(self)

    def GetMovingInterpolator(self, *args):
        r"""
        GetMovingInterpolator(self) -> itkInterpolateImageFunctionIF2D
        GetMovingInterpolator(self) -> itkInterpolateImageFunctionIF2D
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetMovingInterpolator(self, *args)

    def SetMovingImageMask(self, *args):
        r"""
        SetMovingImageMask(self, arg)

        Parameters
        ----------
        arg: itkSpatialObject2 *const

        SetMovingImageMask(self, _arg)

        Parameters
        ----------
        _arg: itkSpatialObject2 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetMovingImageMask(self, *args)

    def GetMovingImageMask(self):
        r"""GetMovingImageMask(self) -> itkSpatialObject2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetMovingImageMask(self)

    def SetFixedImageMask(self, *args):
        r"""
        SetFixedImageMask(self, arg)

        Parameters
        ----------
        arg: itkSpatialObject2 *const

        SetFixedImageMask(self, _arg)

        Parameters
        ----------
        _arg: itkSpatialObject2 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetFixedImageMask(self, *args)

    def GetFixedImageMask(self):
        r"""GetFixedImageMask(self) -> itkSpatialObject2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetFixedImageMask(self)

    def SetFixedSampledPointSet(self, *args):
        r"""
        SetFixedSampledPointSet(self, arg)

        Parameters
        ----------
        arg: itkPointSetF2 *const

        SetFixedSampledPointSet(self, _arg)

        Parameters
        ----------
        _arg: itkPointSetF2 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetFixedSampledPointSet(self, *args)

    def GetFixedSampledPointSet(self):
        r"""GetFixedSampledPointSet(self) -> itkPointSetF2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetFixedSampledPointSet(self)

    def SetVirtualSampledPointSet(self, _arg):
        r"""
        SetVirtualSampledPointSet(self, _arg)

        Parameters
        ----------
        _arg: itkPointSetF2 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetVirtualSampledPointSet(self, _arg)

    def GetVirtualSampledPointSet(self):
        r"""GetVirtualSampledPointSet(self) -> itkPointSetF2"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetVirtualSampledPointSet(self)

    def SetUseSampledPointSet(self, _arg):
        r"""
        SetUseSampledPointSet(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetUseSampledPointSet(self, _arg)

    def GetUseSampledPointSet(self):
        r"""GetUseSampledPointSet(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetUseSampledPointSet(self)

    def UseSampledPointSetOn(self):
        r"""UseSampledPointSetOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseSampledPointSetOn(self)

    def UseSampledPointSetOff(self):
        r"""UseSampledPointSetOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseSampledPointSetOff(self)

    def SetUseVirtualSampledPointSet(self, _arg):
        r"""
        SetUseVirtualSampledPointSet(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetUseVirtualSampledPointSet(self, _arg)

    def GetUseVirtualSampledPointSet(self):
        r"""GetUseVirtualSampledPointSet(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetUseVirtualSampledPointSet(self)

    def UseVirtualSampledPointSetOn(self):
        r"""UseVirtualSampledPointSetOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseVirtualSampledPointSetOn(self)

    def UseVirtualSampledPointSetOff(self):
        r"""UseVirtualSampledPointSetOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseVirtualSampledPointSetOff(self)

    def SetFixedImageGradientFilter(self, _arg):
        r"""
        SetFixedImageGradientFilter(self, _arg)

        Parameters
        ----------
        _arg: itkImageToImageFilterIF2ICVD22 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetFixedImageGradientFilter(self, _arg)

    def GetModifiableFixedImageGradientFilter(self):
        r"""GetModifiableFixedImageGradientFilter(self) -> itkImageToImageFilterIF2ICVD22"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetModifiableFixedImageGradientFilter(self)

    def GetFixedImageGradientFilter(self, *args):
        r"""
        GetFixedImageGradientFilter(self) -> itkImageToImageFilterIF2ICVD22
        GetFixedImageGradientFilter(self) -> itkImageToImageFilterIF2ICVD22
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetFixedImageGradientFilter(self, *args)

    def SetMovingImageGradientFilter(self, _arg):
        r"""
        SetMovingImageGradientFilter(self, _arg)

        Parameters
        ----------
        _arg: itkImageToImageFilterIF2ICVD22 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetMovingImageGradientFilter(self, _arg)

    def GetModifiableMovingImageGradientFilter(self):
        r"""GetModifiableMovingImageGradientFilter(self) -> itkImageToImageFilterIF2ICVD22"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetModifiableMovingImageGradientFilter(self)

    def GetMovingImageGradientFilter(self, *args):
        r"""
        GetMovingImageGradientFilter(self) -> itkImageToImageFilterIF2ICVD22
        GetMovingImageGradientFilter(self) -> itkImageToImageFilterIF2ICVD22
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetMovingImageGradientFilter(self, *args)

    def SetFixedImageGradientCalculator(self, _arg):
        r"""
        SetFixedImageGradientCalculator(self, _arg)

        Parameters
        ----------
        _arg: itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetFixedImageGradientCalculator(self, _arg)

    def GetModifiableFixedImageGradientCalculator(self):
        r"""GetModifiableFixedImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > *"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetModifiableFixedImageGradientCalculator(self)

    def GetFixedImageGradientCalculator(self, *args):
        r"""
        GetFixedImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > const
        GetFixedImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > *
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetFixedImageGradientCalculator(self, *args)

    def SetMovingImageGradientCalculator(self, _arg):
        r"""
        SetMovingImageGradientCalculator(self, _arg)

        Parameters
        ----------
        _arg: itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetMovingImageGradientCalculator(self, _arg)

    def GetModifiableMovingImageGradientCalculator(self):
        r"""GetModifiableMovingImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > *"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetModifiableMovingImageGradientCalculator(self)

    def GetMovingImageGradientCalculator(self, *args):
        r"""
        GetMovingImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > const
        GetMovingImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > *
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetMovingImageGradientCalculator(self, *args)

    def SetUseFixedImageGradientFilter(self, _arg):
        r"""
        SetUseFixedImageGradientFilter(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetUseFixedImageGradientFilter(self, _arg)

    def GetUseFixedImageGradientFilter(self):
        r"""GetUseFixedImageGradientFilter(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetUseFixedImageGradientFilter(self)

    def UseFixedImageGradientFilterOn(self):
        r"""UseFixedImageGradientFilterOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseFixedImageGradientFilterOn(self)

    def UseFixedImageGradientFilterOff(self):
        r"""UseFixedImageGradientFilterOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseFixedImageGradientFilterOff(self)

    def SetUseMovingImageGradientFilter(self, _arg):
        r"""
        SetUseMovingImageGradientFilter(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetUseMovingImageGradientFilter(self, _arg)

    def GetUseMovingImageGradientFilter(self):
        r"""GetUseMovingImageGradientFilter(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetUseMovingImageGradientFilter(self)

    def UseMovingImageGradientFilterOn(self):
        r"""UseMovingImageGradientFilterOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseMovingImageGradientFilterOn(self)

    def UseMovingImageGradientFilterOff(self):
        r"""UseMovingImageGradientFilterOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseMovingImageGradientFilterOff(self)

    def GetNumberOfWorkUnitsUsed(self):
        r"""GetNumberOfWorkUnitsUsed(self) -> unsigned int"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetNumberOfWorkUnitsUsed(self)

    def SetMaximumNumberOfWorkUnits(self, number):
        r"""
        SetMaximumNumberOfWorkUnits(self, number)

        Parameters
        ----------
        number: unsigned int const

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetMaximumNumberOfWorkUnits(self, number)

    def GetMaximumNumberOfWorkUnits(self):
        r"""GetMaximumNumberOfWorkUnits(self) -> unsigned int"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetMaximumNumberOfWorkUnits(self)

    def FinalizeThread(self, arg0):
        r"""
        FinalizeThread(self, arg0)

        Parameters
        ----------
        arg0: unsigned int const

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_FinalizeThread(self, arg0)

    def GetModifiableFixedImageGradientImage(self):
        r"""GetModifiableFixedImageGradientImage(self) -> itkImageCVD22"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetModifiableFixedImageGradientImage(self)

    def GetFixedImageGradientImage(self, *args):
        r"""
        GetFixedImageGradientImage(self) -> itkImageCVD22
        GetFixedImageGradientImage(self) -> itkImageCVD22
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetFixedImageGradientImage(self, *args)

    def GetModifiableMovingImageGradientImage(self):
        r"""GetModifiableMovingImageGradientImage(self) -> itkImageCVD22"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetModifiableMovingImageGradientImage(self)

    def GetMovingImageGradientImage(self, *args):
        r"""
        GetMovingImageGradientImage(self) -> itkImageCVD22
        GetMovingImageGradientImage(self) -> itkImageCVD22
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetMovingImageGradientImage(self, *args)

    def GetNumberOfDomainPoints(self):
        r"""GetNumberOfDomainPoints(self) -> unsigned long"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetNumberOfDomainPoints(self)

    def SetUseFloatingPointCorrection(self, _arg):
        r"""
        SetUseFloatingPointCorrection(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetUseFloatingPointCorrection(self, _arg)

    def GetUseFloatingPointCorrection(self):
        r"""GetUseFloatingPointCorrection(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetUseFloatingPointCorrection(self)

    def UseFloatingPointCorrectionOn(self):
        r"""UseFloatingPointCorrectionOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseFloatingPointCorrectionOn(self)

    def UseFloatingPointCorrectionOff(self):
        r"""UseFloatingPointCorrectionOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_UseFloatingPointCorrectionOff(self)

    def SetFloatingPointCorrectionResolution(self, _arg):
        r"""
        SetFloatingPointCorrectionResolution(self, _arg)

        Parameters
        ----------
        _arg: double

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_SetFloatingPointCorrectionResolution(self, _arg)

    def GetFloatingPointCorrectionResolution(self):
        r"""GetFloatingPointCorrectionResolution(self) -> double"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetFloatingPointCorrectionResolution(self)

    def GetNumberOfSkippedFixedSampledPoints(self):
        r"""GetNumberOfSkippedFixedSampledPoints(self) -> unsigned long const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_GetNumberOfSkippedFixedSampledPoints(self)
    __swig_destroy__ = _itkImageToImageMetricv4Python.delete_itkImageToImageMetricv4F2F2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageToImageMetricv4F2F2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_cast(obj)

# Register itkImageToImageMetricv4F2F2 in _itkImageToImageMetricv4Python:
_itkImageToImageMetricv4Python.itkImageToImageMetricv4F2F2_swigregister(itkImageToImageMetricv4F2F2)
class itkImageToImageMetricv4F3F3(itkImageToImageMetricv4F3F3_Superclass):
    r"""Proxy of C++ itkImageToImageMetricv4F3F3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr

    def SetFixedImage(self, _arg):
        r"""
        SetFixedImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageF3 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetFixedImage(self, _arg)

    def GetFixedImage(self):
        r"""GetFixedImage(self) -> itkImageF3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetFixedImage(self)

    def SetMovingImage(self, _arg):
        r"""
        SetMovingImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageF3 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetMovingImage(self, _arg)

    def GetMovingImage(self):
        r"""GetMovingImage(self) -> itkImageF3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetMovingImage(self)

    def SetFixedInterpolator(self, _arg):
        r"""
        SetFixedInterpolator(self, _arg)

        Parameters
        ----------
        _arg: itkInterpolateImageFunctionIF3D *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetFixedInterpolator(self, _arg)

    def GetModifiableFixedInterpolator(self):
        r"""GetModifiableFixedInterpolator(self) -> itkInterpolateImageFunctionIF3D"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetModifiableFixedInterpolator(self)

    def GetFixedInterpolator(self, *args):
        r"""
        GetFixedInterpolator(self) -> itkInterpolateImageFunctionIF3D
        GetFixedInterpolator(self) -> itkInterpolateImageFunctionIF3D
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetFixedInterpolator(self, *args)

    def SetMovingInterpolator(self, _arg):
        r"""
        SetMovingInterpolator(self, _arg)

        Parameters
        ----------
        _arg: itkInterpolateImageFunctionIF3D *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetMovingInterpolator(self, _arg)

    def GetModifiableMovingInterpolator(self):
        r"""GetModifiableMovingInterpolator(self) -> itkInterpolateImageFunctionIF3D"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetModifiableMovingInterpolator(self)

    def GetMovingInterpolator(self, *args):
        r"""
        GetMovingInterpolator(self) -> itkInterpolateImageFunctionIF3D
        GetMovingInterpolator(self) -> itkInterpolateImageFunctionIF3D
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetMovingInterpolator(self, *args)

    def SetMovingImageMask(self, *args):
        r"""
        SetMovingImageMask(self, arg)

        Parameters
        ----------
        arg: itkSpatialObject3 *const

        SetMovingImageMask(self, _arg)

        Parameters
        ----------
        _arg: itkSpatialObject3 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetMovingImageMask(self, *args)

    def GetMovingImageMask(self):
        r"""GetMovingImageMask(self) -> itkSpatialObject3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetMovingImageMask(self)

    def SetFixedImageMask(self, *args):
        r"""
        SetFixedImageMask(self, arg)

        Parameters
        ----------
        arg: itkSpatialObject3 *const

        SetFixedImageMask(self, _arg)

        Parameters
        ----------
        _arg: itkSpatialObject3 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetFixedImageMask(self, *args)

    def GetFixedImageMask(self):
        r"""GetFixedImageMask(self) -> itkSpatialObject3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetFixedImageMask(self)

    def SetFixedSampledPointSet(self, *args):
        r"""
        SetFixedSampledPointSet(self, arg)

        Parameters
        ----------
        arg: itkPointSetF3 *const

        SetFixedSampledPointSet(self, _arg)

        Parameters
        ----------
        _arg: itkPointSetF3 const *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetFixedSampledPointSet(self, *args)

    def GetFixedSampledPointSet(self):
        r"""GetFixedSampledPointSet(self) -> itkPointSetF3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetFixedSampledPointSet(self)

    def SetVirtualSampledPointSet(self, _arg):
        r"""
        SetVirtualSampledPointSet(self, _arg)

        Parameters
        ----------
        _arg: itkPointSetF3 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetVirtualSampledPointSet(self, _arg)

    def GetVirtualSampledPointSet(self):
        r"""GetVirtualSampledPointSet(self) -> itkPointSetF3"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetVirtualSampledPointSet(self)

    def SetUseSampledPointSet(self, _arg):
        r"""
        SetUseSampledPointSet(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetUseSampledPointSet(self, _arg)

    def GetUseSampledPointSet(self):
        r"""GetUseSampledPointSet(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetUseSampledPointSet(self)

    def UseSampledPointSetOn(self):
        r"""UseSampledPointSetOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseSampledPointSetOn(self)

    def UseSampledPointSetOff(self):
        r"""UseSampledPointSetOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseSampledPointSetOff(self)

    def SetUseVirtualSampledPointSet(self, _arg):
        r"""
        SetUseVirtualSampledPointSet(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetUseVirtualSampledPointSet(self, _arg)

    def GetUseVirtualSampledPointSet(self):
        r"""GetUseVirtualSampledPointSet(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetUseVirtualSampledPointSet(self)

    def UseVirtualSampledPointSetOn(self):
        r"""UseVirtualSampledPointSetOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseVirtualSampledPointSetOn(self)

    def UseVirtualSampledPointSetOff(self):
        r"""UseVirtualSampledPointSetOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseVirtualSampledPointSetOff(self)

    def SetFixedImageGradientFilter(self, _arg):
        r"""
        SetFixedImageGradientFilter(self, _arg)

        Parameters
        ----------
        _arg: itkImageToImageFilterIF3ICVD33 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetFixedImageGradientFilter(self, _arg)

    def GetModifiableFixedImageGradientFilter(self):
        r"""GetModifiableFixedImageGradientFilter(self) -> itkImageToImageFilterIF3ICVD33"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetModifiableFixedImageGradientFilter(self)

    def GetFixedImageGradientFilter(self, *args):
        r"""
        GetFixedImageGradientFilter(self) -> itkImageToImageFilterIF3ICVD33
        GetFixedImageGradientFilter(self) -> itkImageToImageFilterIF3ICVD33
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetFixedImageGradientFilter(self, *args)

    def SetMovingImageGradientFilter(self, _arg):
        r"""
        SetMovingImageGradientFilter(self, _arg)

        Parameters
        ----------
        _arg: itkImageToImageFilterIF3ICVD33 *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetMovingImageGradientFilter(self, _arg)

    def GetModifiableMovingImageGradientFilter(self):
        r"""GetModifiableMovingImageGradientFilter(self) -> itkImageToImageFilterIF3ICVD33"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetModifiableMovingImageGradientFilter(self)

    def GetMovingImageGradientFilter(self, *args):
        r"""
        GetMovingImageGradientFilter(self) -> itkImageToImageFilterIF3ICVD33
        GetMovingImageGradientFilter(self) -> itkImageToImageFilterIF3ICVD33
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetMovingImageGradientFilter(self, *args)

    def SetFixedImageGradientCalculator(self, _arg):
        r"""
        SetFixedImageGradientCalculator(self, _arg)

        Parameters
        ----------
        _arg: itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetFixedImageGradientCalculator(self, _arg)

    def GetModifiableFixedImageGradientCalculator(self):
        r"""GetModifiableFixedImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > *"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetModifiableFixedImageGradientCalculator(self)

    def GetFixedImageGradientCalculator(self, *args):
        r"""
        GetFixedImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > const
        GetFixedImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > *
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetFixedImageGradientCalculator(self, *args)

    def SetMovingImageGradientCalculator(self, _arg):
        r"""
        SetMovingImageGradientCalculator(self, _arg)

        Parameters
        ----------
        _arg: itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetMovingImageGradientCalculator(self, _arg)

    def GetModifiableMovingImageGradientCalculator(self):
        r"""GetModifiableMovingImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > *"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetModifiableMovingImageGradientCalculator(self)

    def GetMovingImageGradientCalculator(self, *args):
        r"""
        GetMovingImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > const
        GetMovingImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > *
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetMovingImageGradientCalculator(self, *args)

    def SetUseFixedImageGradientFilter(self, _arg):
        r"""
        SetUseFixedImageGradientFilter(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetUseFixedImageGradientFilter(self, _arg)

    def GetUseFixedImageGradientFilter(self):
        r"""GetUseFixedImageGradientFilter(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetUseFixedImageGradientFilter(self)

    def UseFixedImageGradientFilterOn(self):
        r"""UseFixedImageGradientFilterOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseFixedImageGradientFilterOn(self)

    def UseFixedImageGradientFilterOff(self):
        r"""UseFixedImageGradientFilterOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseFixedImageGradientFilterOff(self)

    def SetUseMovingImageGradientFilter(self, _arg):
        r"""
        SetUseMovingImageGradientFilter(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetUseMovingImageGradientFilter(self, _arg)

    def GetUseMovingImageGradientFilter(self):
        r"""GetUseMovingImageGradientFilter(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetUseMovingImageGradientFilter(self)

    def UseMovingImageGradientFilterOn(self):
        r"""UseMovingImageGradientFilterOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseMovingImageGradientFilterOn(self)

    def UseMovingImageGradientFilterOff(self):
        r"""UseMovingImageGradientFilterOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseMovingImageGradientFilterOff(self)

    def GetNumberOfWorkUnitsUsed(self):
        r"""GetNumberOfWorkUnitsUsed(self) -> unsigned int"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetNumberOfWorkUnitsUsed(self)

    def SetMaximumNumberOfWorkUnits(self, number):
        r"""
        SetMaximumNumberOfWorkUnits(self, number)

        Parameters
        ----------
        number: unsigned int const

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetMaximumNumberOfWorkUnits(self, number)

    def GetMaximumNumberOfWorkUnits(self):
        r"""GetMaximumNumberOfWorkUnits(self) -> unsigned int"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetMaximumNumberOfWorkUnits(self)

    def FinalizeThread(self, arg0):
        r"""
        FinalizeThread(self, arg0)

        Parameters
        ----------
        arg0: unsigned int const

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_FinalizeThread(self, arg0)

    def GetModifiableFixedImageGradientImage(self):
        r"""GetModifiableFixedImageGradientImage(self) -> itkImageCVD33"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetModifiableFixedImageGradientImage(self)

    def GetFixedImageGradientImage(self, *args):
        r"""
        GetFixedImageGradientImage(self) -> itkImageCVD33
        GetFixedImageGradientImage(self) -> itkImageCVD33
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetFixedImageGradientImage(self, *args)

    def GetModifiableMovingImageGradientImage(self):
        r"""GetModifiableMovingImageGradientImage(self) -> itkImageCVD33"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetModifiableMovingImageGradientImage(self)

    def GetMovingImageGradientImage(self, *args):
        r"""
        GetMovingImageGradientImage(self) -> itkImageCVD33
        GetMovingImageGradientImage(self) -> itkImageCVD33
        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetMovingImageGradientImage(self, *args)

    def GetNumberOfDomainPoints(self):
        r"""GetNumberOfDomainPoints(self) -> unsigned long"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetNumberOfDomainPoints(self)

    def SetUseFloatingPointCorrection(self, _arg):
        r"""
        SetUseFloatingPointCorrection(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetUseFloatingPointCorrection(self, _arg)

    def GetUseFloatingPointCorrection(self):
        r"""GetUseFloatingPointCorrection(self) -> bool const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetUseFloatingPointCorrection(self)

    def UseFloatingPointCorrectionOn(self):
        r"""UseFloatingPointCorrectionOn(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseFloatingPointCorrectionOn(self)

    def UseFloatingPointCorrectionOff(self):
        r"""UseFloatingPointCorrectionOff(self)"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_UseFloatingPointCorrectionOff(self)

    def SetFloatingPointCorrectionResolution(self, _arg):
        r"""
        SetFloatingPointCorrectionResolution(self, _arg)

        Parameters
        ----------
        _arg: double

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_SetFloatingPointCorrectionResolution(self, _arg)

    def GetFloatingPointCorrectionResolution(self):
        r"""GetFloatingPointCorrectionResolution(self) -> double"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetFloatingPointCorrectionResolution(self)

    def GetNumberOfSkippedFixedSampledPoints(self):
        r"""GetNumberOfSkippedFixedSampledPoints(self) -> unsigned long const &"""
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_GetNumberOfSkippedFixedSampledPoints(self)
    __swig_destroy__ = _itkImageToImageMetricv4Python.delete_itkImageToImageMetricv4F3F3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageToImageMetricv4F3F3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_cast(obj)

# Register itkImageToImageMetricv4F3F3 in _itkImageToImageMetricv4Python:
_itkImageToImageMetricv4Python.itkImageToImageMetricv4F3F3_swigregister(itkImageToImageMetricv4F3F3)

