# 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 _itkMattesMutualInformationImageToImageMetricv4Python
else:
    import _itkMattesMutualInformationImageToImageMetricv4Python

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.itkImageToImageFilterBPython
import itk.itkImageSourcePython
import itk.itkImageSourceCommonPython
import itk.ITKCommonBasePython
import itk.itkMatrixPython
import itk.itkVectorPython
import itk.vnl_vectorPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.vnl_matrixPython
import itk.vnl_vector_refPython
import itk.itkFixedArrayPython
import itk.itkCovariantVectorPython
import itk.itkPointPython
import itk.vnl_matrix_fixedPython
import itk.itkImagePython
import itk.itkOffsetPython
import itk.itkSizePython
import itk.itkIndexPython
import itk.itkRGBAPixelPython
import itk.itkRGBPixelPython
import itk.itkSymmetricSecondRankTensorPython
import itk.itkImageRegionPython
import itk.itkVectorImagePython
import itk.itkVariableLengthVectorPython
import itk.itkPhasedArray3DSpecialCoordinatesImagePython
import itk.itkImageToImageFilterCommonPython
import itk.itkInterpolateImageFunctionPython
import itk.itkImageFunctionBasePython
import itk.itkFunctionBasePython
import itk.itkContinuousIndexPython
import itk.itkArrayPython
import itk.itkObjectToObjectMetricBasePython
import itk.itkOptimizerParametersPython
import itk.itkSingleValuedCostFunctionv4Python
import itk.itkCostFunctionPython
import itk.itkSpatialObjectBasePython
import itk.itkBoundingBoxPython
import itk.itkVectorContainerPython
import itk.itkMapContainerPython
import itk.itkSpatialObjectPropertyPython
import itk.itkAffineTransformPython
import itk.itkTransformBasePython
import itk.itkArray2DPython
import itk.itkDiffusionTensor3DPython
import itk.itkMatrixOffsetTransformBasePython
import itk.itkDisplacementFieldTransformPython
import itk.itkPointSetPython
class itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass(itk.itkObjectToObjectMetricBasePython.itkObjectToObjectMetricBaseTemplateD):
    r"""Proxy of C++ itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_SetFixedTransform(self, _arg)

    def GetModifiableFixedTransform(self):
        r"""GetModifiableFixedTransform(self) -> itkTransformD22"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_GetModifiableFixedTransform(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_SetMovingTransform(self, _arg)

    def GetModifiableMovingTransform(self):
        r"""GetModifiableMovingTransform(self) -> itkTransformD22"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_GetModifiableMovingTransform(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_SetTransform(self, transform)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTransformD22"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_GetTransform(self)

    def GetNumberOfValidPoints(self):
        r"""GetNumberOfValidPoints(self) -> unsigned long"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_SetVirtualDomain(self, spacing, origin, direction, region)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_SetVirtualDomainFromImage(self, virtualImage)

    def SupportsArbitraryVirtualDomainSamples(self):
        r"""SupportsArbitraryVirtualDomainSamples(self) -> bool"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_SupportsArbitraryVirtualDomainSamples(self)

    def GetVirtualDomainTimeStamp(self):
        r"""GetVirtualDomainTimeStamp(self) -> itkTimeStamp"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_GetVirtualDomainTimeStamp(self)

    def GetVirtualSpacing(self):
        r"""GetVirtualSpacing(self) -> itkVectorD2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_GetVirtualSpacing(self)

    def GetVirtualOrigin(self):
        r"""GetVirtualOrigin(self) -> itkPointD2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_GetVirtualOrigin(self)

    def GetVirtualDirection(self):
        r"""GetVirtualDirection(self) -> itkMatrixD22"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_GetVirtualDirection(self)

    def GetVirtualRegion(self):
        r"""GetVirtualRegion(self) -> itkImageRegion2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_GetVirtualRegion(self)

    def GetModifiableVirtualImage(self):
        r"""GetModifiableVirtualImage(self) -> itkImageF2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_GetModifiableVirtualImage(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_IsInsideVirtualDomain(self, *args)
    __swig_destroy__ = _itkMattesMutualInformationImageToImageMetricv4Python.delete_itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_cast(obj)

# Register itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass in _itkMattesMutualInformationImageToImageMetricv4Python:
_itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass_swigregister(itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass)
class itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass(itk.itkObjectToObjectMetricBasePython.itkObjectToObjectMetricBaseTemplateD):
    r"""Proxy of C++ itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_SetFixedTransform(self, _arg)

    def GetModifiableFixedTransform(self):
        r"""GetModifiableFixedTransform(self) -> itkTransformD33"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_GetModifiableFixedTransform(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_SetMovingTransform(self, _arg)

    def GetModifiableMovingTransform(self):
        r"""GetModifiableMovingTransform(self) -> itkTransformD33"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_GetModifiableMovingTransform(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_SetTransform(self, transform)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTransformD33"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_GetTransform(self)

    def GetNumberOfValidPoints(self):
        r"""GetNumberOfValidPoints(self) -> unsigned long"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_SetVirtualDomain(self, spacing, origin, direction, region)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_SetVirtualDomainFromImage(self, virtualImage)

    def SupportsArbitraryVirtualDomainSamples(self):
        r"""SupportsArbitraryVirtualDomainSamples(self) -> bool"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_SupportsArbitraryVirtualDomainSamples(self)

    def GetVirtualDomainTimeStamp(self):
        r"""GetVirtualDomainTimeStamp(self) -> itkTimeStamp"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_GetVirtualDomainTimeStamp(self)

    def GetVirtualSpacing(self):
        r"""GetVirtualSpacing(self) -> itkVectorD3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_GetVirtualSpacing(self)

    def GetVirtualOrigin(self):
        r"""GetVirtualOrigin(self) -> itkPointD3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_GetVirtualOrigin(self)

    def GetVirtualDirection(self):
        r"""GetVirtualDirection(self) -> itkMatrixD33"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_GetVirtualDirection(self)

    def GetVirtualRegion(self):
        r"""GetVirtualRegion(self) -> itkImageRegion3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_GetVirtualRegion(self)

    def GetModifiableVirtualImage(self):
        r"""GetModifiableVirtualImage(self) -> itkImageF3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_GetModifiableVirtualImage(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_IsInsideVirtualDomain(self, *args)
    __swig_destroy__ = _itkMattesMutualInformationImageToImageMetricv4Python.delete_itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_cast(obj)

# Register itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass in _itkMattesMutualInformationImageToImageMetricv4Python:
_itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass_swigregister(itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass)
class itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass(itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_Superclass):
    r"""Proxy of C++ itkMattesMutualInformationImageToImageMetricv4IF2IF2_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 SetFixedImage(self, _arg):
        r"""
        SetFixedImage(self, _arg)

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetFixedImage(self, _arg)

    def GetFixedImage(self):
        r"""GetFixedImage(self) -> itkImageF2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetFixedImage(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetMovingImage(self, _arg)

    def GetMovingImage(self):
        r"""GetMovingImage(self) -> itkImageF2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetMovingImage(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetFixedInterpolator(self, _arg)

    def GetModifiableFixedInterpolator(self):
        r"""GetModifiableFixedInterpolator(self) -> itkInterpolateImageFunctionIF2D"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetModifiableFixedInterpolator(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetMovingInterpolator(self, _arg)

    def GetModifiableMovingInterpolator(self):
        r"""GetModifiableMovingInterpolator(self) -> itkInterpolateImageFunctionIF2D"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetModifiableMovingInterpolator(self)

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

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

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

        SetMovingImageMask(self, _arg)

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetMovingImageMask(self, *args)

    def GetMovingImageMask(self):
        r"""GetMovingImageMask(self) -> itkSpatialObject2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetMovingImageMask(self)

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

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

        SetFixedImageMask(self, _arg)

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetFixedImageMask(self, *args)

    def GetFixedImageMask(self):
        r"""GetFixedImageMask(self) -> itkSpatialObject2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetFixedImageMask(self)

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

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

        SetFixedSampledPointSet(self, _arg)

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetFixedSampledPointSet(self, *args)

    def GetFixedSampledPointSet(self):
        r"""GetFixedSampledPointSet(self) -> itkPointSetF2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetFixedSampledPointSet(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetVirtualSampledPointSet(self, _arg)

    def GetVirtualSampledPointSet(self):
        r"""GetVirtualSampledPointSet(self) -> itkPointSetF2"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetVirtualSampledPointSet(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetUseSampledPointSet(self, _arg)

    def GetUseSampledPointSet(self):
        r"""GetUseSampledPointSet(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetUseSampledPointSet(self)

    def UseSampledPointSetOn(self):
        r"""UseSampledPointSetOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseSampledPointSetOn(self)

    def UseSampledPointSetOff(self):
        r"""UseSampledPointSetOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseSampledPointSetOff(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetUseVirtualSampledPointSet(self, _arg)

    def GetUseVirtualSampledPointSet(self):
        r"""GetUseVirtualSampledPointSet(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetUseVirtualSampledPointSet(self)

    def UseVirtualSampledPointSetOn(self):
        r"""UseVirtualSampledPointSetOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseVirtualSampledPointSetOn(self)

    def UseVirtualSampledPointSetOff(self):
        r"""UseVirtualSampledPointSetOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseVirtualSampledPointSetOff(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetFixedImageGradientFilter(self, _arg)

    def GetModifiableFixedImageGradientFilter(self):
        r"""GetModifiableFixedImageGradientFilter(self) -> itkImageToImageFilterIF2ICVD22"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetModifiableFixedImageGradientFilter(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetMovingImageGradientFilter(self, _arg)

    def GetModifiableMovingImageGradientFilter(self):
        r"""GetModifiableMovingImageGradientFilter(self) -> itkImageToImageFilterIF2ICVD22"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetModifiableMovingImageGradientFilter(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetFixedImageGradientCalculator(self, _arg)

    def GetModifiableFixedImageGradientCalculator(self):
        r"""GetModifiableFixedImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > *"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetFixedImageGradientCalculator(self, *args)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetMovingImageGradientCalculator(self, _arg)

    def GetModifiableMovingImageGradientCalculator(self):
        r"""GetModifiableMovingImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float >,itk::CovariantVector< double,2 >,double > *"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetMovingImageGradientCalculator(self, *args)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetUseFixedImageGradientFilter(self, _arg)

    def GetUseFixedImageGradientFilter(self):
        r"""GetUseFixedImageGradientFilter(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetUseFixedImageGradientFilter(self)

    def UseFixedImageGradientFilterOn(self):
        r"""UseFixedImageGradientFilterOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseFixedImageGradientFilterOn(self)

    def UseFixedImageGradientFilterOff(self):
        r"""UseFixedImageGradientFilterOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseFixedImageGradientFilterOff(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetUseMovingImageGradientFilter(self, _arg)

    def GetUseMovingImageGradientFilter(self):
        r"""GetUseMovingImageGradientFilter(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetUseMovingImageGradientFilter(self)

    def UseMovingImageGradientFilterOn(self):
        r"""UseMovingImageGradientFilterOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseMovingImageGradientFilterOn(self)

    def UseMovingImageGradientFilterOff(self):
        r"""UseMovingImageGradientFilterOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseMovingImageGradientFilterOff(self)

    def GetNumberOfWorkUnitsUsed(self):
        r"""GetNumberOfWorkUnitsUsed(self) -> unsigned int"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetNumberOfWorkUnitsUsed(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetMaximumNumberOfWorkUnits(self, number)

    def GetMaximumNumberOfWorkUnits(self):
        r"""GetMaximumNumberOfWorkUnits(self) -> unsigned int"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetMaximumNumberOfWorkUnits(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_FinalizeThread(self, arg0)

    def GetModifiableFixedImageGradientImage(self):
        r"""GetModifiableFixedImageGradientImage(self) -> itkImageCVD22"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetModifiableFixedImageGradientImage(self)

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

    def GetModifiableMovingImageGradientImage(self):
        r"""GetModifiableMovingImageGradientImage(self) -> itkImageCVD22"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetModifiableMovingImageGradientImage(self)

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

    def GetNumberOfDomainPoints(self):
        r"""GetNumberOfDomainPoints(self) -> unsigned long"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetNumberOfDomainPoints(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetUseFloatingPointCorrection(self, _arg)

    def GetUseFloatingPointCorrection(self):
        r"""GetUseFloatingPointCorrection(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetUseFloatingPointCorrection(self)

    def UseFloatingPointCorrectionOn(self):
        r"""UseFloatingPointCorrectionOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseFloatingPointCorrectionOn(self)

    def UseFloatingPointCorrectionOff(self):
        r"""UseFloatingPointCorrectionOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_UseFloatingPointCorrectionOff(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_SetFloatingPointCorrectionResolution(self, _arg)

    def GetFloatingPointCorrectionResolution(self):
        r"""GetFloatingPointCorrectionResolution(self) -> double"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetFloatingPointCorrectionResolution(self)

    def GetNumberOfSkippedFixedSampledPoints(self):
        r"""GetNumberOfSkippedFixedSampledPoints(self) -> unsigned long const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_GetNumberOfSkippedFixedSampledPoints(self)
    __swig_destroy__ = _itkMattesMutualInformationImageToImageMetricv4Python.delete_itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_cast(obj)

# Register itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass in _itkMattesMutualInformationImageToImageMetricv4Python:
_itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass_swigregister(itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass)
class itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass(itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_Superclass):
    r"""Proxy of C++ itkMattesMutualInformationImageToImageMetricv4IF3IF3_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 SetFixedImage(self, _arg):
        r"""
        SetFixedImage(self, _arg)

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetFixedImage(self, _arg)

    def GetFixedImage(self):
        r"""GetFixedImage(self) -> itkImageF3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetFixedImage(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetMovingImage(self, _arg)

    def GetMovingImage(self):
        r"""GetMovingImage(self) -> itkImageF3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetMovingImage(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetFixedInterpolator(self, _arg)

    def GetModifiableFixedInterpolator(self):
        r"""GetModifiableFixedInterpolator(self) -> itkInterpolateImageFunctionIF3D"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetModifiableFixedInterpolator(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetMovingInterpolator(self, _arg)

    def GetModifiableMovingInterpolator(self):
        r"""GetModifiableMovingInterpolator(self) -> itkInterpolateImageFunctionIF3D"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetModifiableMovingInterpolator(self)

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

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

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

        SetMovingImageMask(self, _arg)

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetMovingImageMask(self, *args)

    def GetMovingImageMask(self):
        r"""GetMovingImageMask(self) -> itkSpatialObject3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetMovingImageMask(self)

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

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

        SetFixedImageMask(self, _arg)

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetFixedImageMask(self, *args)

    def GetFixedImageMask(self):
        r"""GetFixedImageMask(self) -> itkSpatialObject3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetFixedImageMask(self)

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

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

        SetFixedSampledPointSet(self, _arg)

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetFixedSampledPointSet(self, *args)

    def GetFixedSampledPointSet(self):
        r"""GetFixedSampledPointSet(self) -> itkPointSetF3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetFixedSampledPointSet(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetVirtualSampledPointSet(self, _arg)

    def GetVirtualSampledPointSet(self):
        r"""GetVirtualSampledPointSet(self) -> itkPointSetF3"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetVirtualSampledPointSet(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetUseSampledPointSet(self, _arg)

    def GetUseSampledPointSet(self):
        r"""GetUseSampledPointSet(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetUseSampledPointSet(self)

    def UseSampledPointSetOn(self):
        r"""UseSampledPointSetOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseSampledPointSetOn(self)

    def UseSampledPointSetOff(self):
        r"""UseSampledPointSetOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseSampledPointSetOff(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetUseVirtualSampledPointSet(self, _arg)

    def GetUseVirtualSampledPointSet(self):
        r"""GetUseVirtualSampledPointSet(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetUseVirtualSampledPointSet(self)

    def UseVirtualSampledPointSetOn(self):
        r"""UseVirtualSampledPointSetOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseVirtualSampledPointSetOn(self)

    def UseVirtualSampledPointSetOff(self):
        r"""UseVirtualSampledPointSetOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseVirtualSampledPointSetOff(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetFixedImageGradientFilter(self, _arg)

    def GetModifiableFixedImageGradientFilter(self):
        r"""GetModifiableFixedImageGradientFilter(self) -> itkImageToImageFilterIF3ICVD33"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetModifiableFixedImageGradientFilter(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetMovingImageGradientFilter(self, _arg)

    def GetModifiableMovingImageGradientFilter(self):
        r"""GetModifiableMovingImageGradientFilter(self) -> itkImageToImageFilterIF3ICVD33"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetModifiableMovingImageGradientFilter(self)

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

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetFixedImageGradientCalculator(self, _arg)

    def GetModifiableFixedImageGradientCalculator(self):
        r"""GetModifiableFixedImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > *"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetFixedImageGradientCalculator(self, *args)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetMovingImageGradientCalculator(self, _arg)

    def GetModifiableMovingImageGradientCalculator(self):
        r"""GetModifiableMovingImageGradientCalculator(self) -> itk::ImageFunction< itk::Image< float,3 >,itk::CovariantVector< double >,double > *"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_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 _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetMovingImageGradientCalculator(self, *args)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetUseFixedImageGradientFilter(self, _arg)

    def GetUseFixedImageGradientFilter(self):
        r"""GetUseFixedImageGradientFilter(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetUseFixedImageGradientFilter(self)

    def UseFixedImageGradientFilterOn(self):
        r"""UseFixedImageGradientFilterOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseFixedImageGradientFilterOn(self)

    def UseFixedImageGradientFilterOff(self):
        r"""UseFixedImageGradientFilterOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseFixedImageGradientFilterOff(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetUseMovingImageGradientFilter(self, _arg)

    def GetUseMovingImageGradientFilter(self):
        r"""GetUseMovingImageGradientFilter(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetUseMovingImageGradientFilter(self)

    def UseMovingImageGradientFilterOn(self):
        r"""UseMovingImageGradientFilterOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseMovingImageGradientFilterOn(self)

    def UseMovingImageGradientFilterOff(self):
        r"""UseMovingImageGradientFilterOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseMovingImageGradientFilterOff(self)

    def GetNumberOfWorkUnitsUsed(self):
        r"""GetNumberOfWorkUnitsUsed(self) -> unsigned int"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetNumberOfWorkUnitsUsed(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetMaximumNumberOfWorkUnits(self, number)

    def GetMaximumNumberOfWorkUnits(self):
        r"""GetMaximumNumberOfWorkUnits(self) -> unsigned int"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetMaximumNumberOfWorkUnits(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_FinalizeThread(self, arg0)

    def GetModifiableFixedImageGradientImage(self):
        r"""GetModifiableFixedImageGradientImage(self) -> itkImageCVD33"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetModifiableFixedImageGradientImage(self)

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

    def GetModifiableMovingImageGradientImage(self):
        r"""GetModifiableMovingImageGradientImage(self) -> itkImageCVD33"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetModifiableMovingImageGradientImage(self)

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

    def GetNumberOfDomainPoints(self):
        r"""GetNumberOfDomainPoints(self) -> unsigned long"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetNumberOfDomainPoints(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetUseFloatingPointCorrection(self, _arg)

    def GetUseFloatingPointCorrection(self):
        r"""GetUseFloatingPointCorrection(self) -> bool const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetUseFloatingPointCorrection(self)

    def UseFloatingPointCorrectionOn(self):
        r"""UseFloatingPointCorrectionOn(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseFloatingPointCorrectionOn(self)

    def UseFloatingPointCorrectionOff(self):
        r"""UseFloatingPointCorrectionOff(self)"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_UseFloatingPointCorrectionOff(self)

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_SetFloatingPointCorrectionResolution(self, _arg)

    def GetFloatingPointCorrectionResolution(self):
        r"""GetFloatingPointCorrectionResolution(self) -> double"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetFloatingPointCorrectionResolution(self)

    def GetNumberOfSkippedFixedSampledPoints(self):
        r"""GetNumberOfSkippedFixedSampledPoints(self) -> unsigned long const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_GetNumberOfSkippedFixedSampledPoints(self)
    __swig_destroy__ = _itkMattesMutualInformationImageToImageMetricv4Python.delete_itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_cast(obj)

# Register itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass in _itkMattesMutualInformationImageToImageMetricv4Python:
_itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass_swigregister(itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass)

def itkMattesMutualInformationImageToImageMetricv4IF2IF2_New():
    return itkMattesMutualInformationImageToImageMetricv4IF2IF2.New()

class itkMattesMutualInformationImageToImageMetricv4IF2IF2(itkMattesMutualInformationImageToImageMetricv4IF2IF2_Superclass):
    r"""Proxy of C++ itkMattesMutualInformationImageToImageMetricv4IF2IF2 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

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkMattesMutualInformationImageToImageMetricv4IF2IF2_Pointer"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkMattesMutualInformationImageToImageMetricv4IF2IF2_Pointer"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_Clone(self)

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

        Parameters
        ----------
        _arg: unsigned long

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_SetNumberOfHistogramBins(self, _arg)

    def GetNumberOfHistogramBins(self):
        r"""GetNumberOfHistogramBins(self) -> unsigned long const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_GetNumberOfHistogramBins(self)

    def GetJointPDF(self):
        r"""GetJointPDF(self) -> itkImageD2_Pointer const"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_GetJointPDF(self)

    def GetJointPDFDerivatives(self):
        r"""GetJointPDFDerivatives(self) -> itkImageD3_Pointer const"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_GetJointPDFDerivatives(self)
    __swig_destroy__ = _itkMattesMutualInformationImageToImageMetricv4Python.delete_itkMattesMutualInformationImageToImageMetricv4IF2IF2

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_cast(obj)

    def New(*args, **kargs):
        """New() -> itkMattesMutualInformationImageToImageMetricv4IF2IF2

        Create a new object of the class itkMattesMutualInformationImageToImageMetricv4IF2IF2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkMattesMutualInformationImageToImageMetricv4IF2IF2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkMattesMutualInformationImageToImageMetricv4IF2IF2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkMattesMutualInformationImageToImageMetricv4IF2IF2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkMattesMutualInformationImageToImageMetricv4IF2IF2 in _itkMattesMutualInformationImageToImageMetricv4Python:
_itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF2IF2_swigregister(itkMattesMutualInformationImageToImageMetricv4IF2IF2)

def itkMattesMutualInformationImageToImageMetricv4IF3IF3_New():
    return itkMattesMutualInformationImageToImageMetricv4IF3IF3.New()

class itkMattesMutualInformationImageToImageMetricv4IF3IF3(itkMattesMutualInformationImageToImageMetricv4IF3IF3_Superclass):
    r"""Proxy of C++ itkMattesMutualInformationImageToImageMetricv4IF3IF3 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

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkMattesMutualInformationImageToImageMetricv4IF3IF3_Pointer"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkMattesMutualInformationImageToImageMetricv4IF3IF3_Pointer"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_Clone(self)

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

        Parameters
        ----------
        _arg: unsigned long

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_SetNumberOfHistogramBins(self, _arg)

    def GetNumberOfHistogramBins(self):
        r"""GetNumberOfHistogramBins(self) -> unsigned long const &"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_GetNumberOfHistogramBins(self)

    def GetJointPDF(self):
        r"""GetJointPDF(self) -> itkImageD2_Pointer const"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_GetJointPDF(self)

    def GetJointPDFDerivatives(self):
        r"""GetJointPDFDerivatives(self) -> itkImageD3_Pointer const"""
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_GetJointPDFDerivatives(self)
    __swig_destroy__ = _itkMattesMutualInformationImageToImageMetricv4Python.delete_itkMattesMutualInformationImageToImageMetricv4IF3IF3

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

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

        """
        return _itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_cast(obj)

    def New(*args, **kargs):
        """New() -> itkMattesMutualInformationImageToImageMetricv4IF3IF3

        Create a new object of the class itkMattesMutualInformationImageToImageMetricv4IF3IF3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkMattesMutualInformationImageToImageMetricv4IF3IF3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkMattesMutualInformationImageToImageMetricv4IF3IF3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkMattesMutualInformationImageToImageMetricv4IF3IF3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkMattesMutualInformationImageToImageMetricv4IF3IF3 in _itkMattesMutualInformationImageToImageMetricv4Python:
_itkMattesMutualInformationImageToImageMetricv4Python.itkMattesMutualInformationImageToImageMetricv4IF3IF3_swigregister(itkMattesMutualInformationImageToImageMetricv4IF3IF3)

