# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.4.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 _ITKRegistrationMethodsv4Python



from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _itkImageRegistrationMethodv4Python
else:
    import _itkImageRegistrationMethodv4Python

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.itkOptimizerParametersPython
import itk.vnl_vectorPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.vnl_matrixPython
import itk.ITKCommonBasePython
import itk.itkMatrixPython
import itk.itkCovariantVectorPython
import itk.vnl_vector_refPython
import itk.itkFixedArrayPython
import itk.itkVectorPython
import itk.vnl_matrix_fixedPython
import itk.itkPointPython
import itk.itkArrayPython
import itk.itkTransformParametersAdaptorBasePython
import itk.itkTransformBasePython
import itk.itkSymmetricSecondRankTensorPython
import itk.itkVariableLengthVectorPython
import itk.itkDiffusionTensor3DPython
import itk.itkArray2DPython
import itk.itkCompositeTransformPython
import itk.itkMultiTransformPython
import itk.itkPointSetPython
import itk.itkVectorContainerPython
import itk.itkContinuousIndexPython
import itk.itkIndexPython
import itk.itkSizePython
import itk.itkOffsetPython
import itk.itkMeshBasePython
import itk.itkMapContainerPython
import itk.itkBoundingBoxPython
import itk.itkImagePython
import itk.itkRGBAPixelPython
import itk.itkImageRegionPython
import itk.itkRGBPixelPython
import itk.itkDisplacementFieldTransformPython
import itk.itkVectorImagePython
import itk.itkBSplineSmoothingOnUpdateDisplacementFieldTransformPython
import itk.itkTimeVaryingBSplineVelocityFieldTransformPython
import itk.itkVelocityFieldTransformPython
import itk.itkObjectToObjectOptimizerBasePython
import itk.itkObjectToObjectMetricBasePython
import itk.itkSingleValuedCostFunctionv4Python
import itk.itkCostFunctionPython
import itk.itkOptimizerParameterScalesEstimatorPython
import itk.itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformPython
import itk.itkTimeVaryingVelocityFieldTransformPython

def itkDataObjectDecoratorBSOUDFTD2_New():
    return itkDataObjectDecoratorBSOUDFTD2.New()

class itkDataObjectDecoratorBSOUDFTD2(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorBSOUDFTD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorBSOUDFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorBSOUDFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD2_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkBSplineSmoothingOnUpdateDisplacementFieldTransformD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD2_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkBSplineSmoothingOnUpdateDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD2_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkBSplineSmoothingOnUpdateDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD2_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorBSOUDFTD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD2_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorBSOUDFTD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD2_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorBSOUDFTD2 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:

          itkDataObjectDecoratorBSOUDFTD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorBSOUDFTD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD2_swigregister(itkDataObjectDecoratorBSOUDFTD2)

def itkDataObjectDecoratorBSOUDFTD3_New():
    return itkDataObjectDecoratorBSOUDFTD3.New()

class itkDataObjectDecoratorBSOUDFTD3(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorBSOUDFTD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorBSOUDFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorBSOUDFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD3_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkBSplineSmoothingOnUpdateDisplacementFieldTransformD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD3_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkBSplineSmoothingOnUpdateDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD3_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkBSplineSmoothingOnUpdateDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD3_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorBSOUDFTD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD3_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorBSOUDFTD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD3_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorBSOUDFTD3 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:

          itkDataObjectDecoratorBSOUDFTD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorBSOUDFTD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorBSOUDFTD3_swigregister(itkDataObjectDecoratorBSOUDFTD3)

def itkDataObjectDecoratorCTD2_New():
    return itkDataObjectDecoratorCTD2.New()

class itkDataObjectDecoratorCTD2(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorCTD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorCTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorCTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD2_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkCompositeTransformD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD2_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkCompositeTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD2_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkCompositeTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD2_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorCTD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD2_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorCTD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD2_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorCTD2 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:

          itkDataObjectDecoratorCTD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorCTD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD2_swigregister(itkDataObjectDecoratorCTD2)

def itkDataObjectDecoratorCTD3_New():
    return itkDataObjectDecoratorCTD3.New()

class itkDataObjectDecoratorCTD3(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorCTD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorCTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorCTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD3_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkCompositeTransformD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD3_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkCompositeTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD3_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkCompositeTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD3_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorCTD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD3_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorCTD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD3_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorCTD3 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:

          itkDataObjectDecoratorCTD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorCTD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTD3_swigregister(itkDataObjectDecoratorCTD3)

def itkDataObjectDecoratorCTF2_New():
    return itkDataObjectDecoratorCTF2.New()

class itkDataObjectDecoratorCTF2(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorCTF2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorCTF2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorCTF2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF2_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkCompositeTransformF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF2_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkCompositeTransformF2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF2_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkCompositeTransformF2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF2_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorCTF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF2_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorCTF2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF2_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorCTF2 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:

          itkDataObjectDecoratorCTF2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorCTF2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF2_swigregister(itkDataObjectDecoratorCTF2)

def itkDataObjectDecoratorCTF3_New():
    return itkDataObjectDecoratorCTF3.New()

class itkDataObjectDecoratorCTF3(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorCTF3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorCTF3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorCTF3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF3_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkCompositeTransformF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF3_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkCompositeTransformF3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF3_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkCompositeTransformF3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF3_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorCTF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF3_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorCTF3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF3_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorCTF3 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:

          itkDataObjectDecoratorCTF3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorCTF3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorCTF3_swigregister(itkDataObjectDecoratorCTF3)

def itkDataObjectDecoratorDFTD2_New():
    return itkDataObjectDecoratorDFTD2.New()

class itkDataObjectDecoratorDFTD2(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorDFTD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorDFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorDFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD2_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkDisplacementFieldTransformD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD2_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD2_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD2_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorDFTD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD2_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorDFTD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD2_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorDFTD2 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:

          itkDataObjectDecoratorDFTD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorDFTD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD2_swigregister(itkDataObjectDecoratorDFTD2)

def itkDataObjectDecoratorDFTD3_New():
    return itkDataObjectDecoratorDFTD3.New()

class itkDataObjectDecoratorDFTD3(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorDFTD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorDFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorDFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD3_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkDisplacementFieldTransformD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD3_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD3_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD3_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorDFTD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD3_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorDFTD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD3_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorDFTD3 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:

          itkDataObjectDecoratorDFTD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorDFTD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorDFTD3_swigregister(itkDataObjectDecoratorDFTD3)

def itkDataObjectDecoratorGSOUTVVFTD2_New():
    return itkDataObjectDecoratorGSOUTVVFTD2.New()

class itkDataObjectDecoratorGSOUTVVFTD2(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorGSOUTVVFTD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorGSOUTVVFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorGSOUTVVFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD2_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD2_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD2_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD2_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorGSOUTVVFTD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD2_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorGSOUTVVFTD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD2_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorGSOUTVVFTD2 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:

          itkDataObjectDecoratorGSOUTVVFTD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorGSOUTVVFTD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD2_swigregister(itkDataObjectDecoratorGSOUTVVFTD2)

def itkDataObjectDecoratorGSOUTVVFTD3_New():
    return itkDataObjectDecoratorGSOUTVVFTD3.New()

class itkDataObjectDecoratorGSOUTVVFTD3(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorGSOUTVVFTD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorGSOUTVVFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorGSOUTVVFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD3_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD3_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD3_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD3_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorGSOUTVVFTD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD3_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorGSOUTVVFTD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD3_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorGSOUTVVFTD3 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:

          itkDataObjectDecoratorGSOUTVVFTD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorGSOUTVVFTD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorGSOUTVVFTD3_swigregister(itkDataObjectDecoratorGSOUTVVFTD3)

def itkDataObjectDecoratorTVBVFTD2_New():
    return itkDataObjectDecoratorTVBVFTD2.New()

class itkDataObjectDecoratorTVBVFTD2(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorTVBVFTD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorTVBVFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorTVBVFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD2_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkTimeVaryingBSplineVelocityFieldTransformD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD2_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkTimeVaryingBSplineVelocityFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD2_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkTimeVaryingBSplineVelocityFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD2_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorTVBVFTD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD2_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorTVBVFTD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD2_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorTVBVFTD2 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:

          itkDataObjectDecoratorTVBVFTD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorTVBVFTD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD2_swigregister(itkDataObjectDecoratorTVBVFTD2)

def itkDataObjectDecoratorTVBVFTD3_New():
    return itkDataObjectDecoratorTVBVFTD3.New()

class itkDataObjectDecoratorTVBVFTD3(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkDataObjectDecoratorTVBVFTD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkDataObjectDecoratorTVBVFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkDataObjectDecoratorTVBVFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD3_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkTimeVaryingBSplineVelocityFieldTransformD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD3_Set(self, val)

    def Get(self):
        r"""Get(self) -> itkTimeVaryingBSplineVelocityFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD3_Get(self)

    def GetModifiable(self):
        r"""GetModifiable(self) -> itkTimeVaryingBSplineVelocityFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD3_GetModifiable(self)

    def Graft(self, *args):
        r"""
        Graft(self, arg0)

        Parameters
        ----------
        arg0: itkDataObject const *

        Graft(self, data)

        Parameters
        ----------
        data: itkDataObjectDecoratorTVBVFTD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD3_Graft(self, *args)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkDataObjectDecoratorTVBVFTD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD3_cast(obj)

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

        Create a new object of the class itkDataObjectDecoratorTVBVFTD3 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:

          itkDataObjectDecoratorTVBVFTD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkDataObjectDecoratorTVBVFTD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkDataObjectDecoratorTVBVFTD3_swigregister(itkDataObjectDecoratorTVBVFTD3)
class itkImageRegistrationMethodv4Enums(object):
    r"""Proxy of C++ itkImageRegistrationMethodv4Enums class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    MetricSamplingStrategy_NONE = _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4Enums_MetricSamplingStrategy_NONE
    
    MetricSamplingStrategy_REGULAR = _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4Enums_MetricSamplingStrategy_REGULAR
    
    MetricSamplingStrategy_RANDOM = _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4Enums_MetricSamplingStrategy_RANDOM
    

    def __init__(self, *args):
        r"""
        __init__(self) -> itkImageRegistrationMethodv4Enums
        __init__(self, arg0) -> itkImageRegistrationMethodv4Enums

        Parameters
        ----------
        arg0: itkImageRegistrationMethodv4Enums const &

        """
        _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4Enums_swiginit(self, _itkImageRegistrationMethodv4Python.new_itkImageRegistrationMethodv4Enums(*args))
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4Enums

# Register itkImageRegistrationMethodv4Enums in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4Enums_swigregister(itkImageRegistrationMethodv4Enums)

def itkImageRegistrationMethodv4REGv4F2F2_New():
    return itkImageRegistrationMethodv4REGv4F2F2.New()

class itkImageRegistrationMethodv4REGv4F2F2(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F2F2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F2F2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F2F2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF2
        GetFixedImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF2
        GetMovingImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI2

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI2

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorTD22
        GetOutput(self) -> itkDataObjectDecoratorTD22
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorTD22
        GetTransformOutput(self) -> itkDataObjectDecoratorTD22
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F2F2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F2F2 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:

          itkImageRegistrationMethodv4REGv4F2F2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F2F2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2_swigregister(itkImageRegistrationMethodv4REGv4F2F2)

def itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_New():
    return itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2.New()

class itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF2
        GetFixedImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF2
        GetMovingImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI2

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI2

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorBSOUDFTD2
        GetOutput(self) -> itkDataObjectDecoratorBSOUDFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorBSOUDFTD2
        GetTransformOutput(self) -> itkDataObjectDecoratorBSOUDFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkBSplineSmoothingOnUpdateDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkBSplineSmoothingOnUpdateDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2 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:

          itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2_swigregister(itkImageRegistrationMethodv4REGv4F2F2BSOUDFTD2)

def itkImageRegistrationMethodv4REGv4F2F2DFTD2_New():
    return itkImageRegistrationMethodv4REGv4F2F2DFTD2.New()

class itkImageRegistrationMethodv4REGv4F2F2DFTD2(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F2F2DFTD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F2F2DFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F2F2DFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF2
        GetFixedImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF2
        GetMovingImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI2

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI2

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorDFTD2
        GetOutput(self) -> itkDataObjectDecoratorDFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorDFTD2
        GetTransformOutput(self) -> itkDataObjectDecoratorDFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F2F2DFTD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F2F2DFTD2 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:

          itkImageRegistrationMethodv4REGv4F2F2DFTD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F2F2DFTD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2_swigregister(itkImageRegistrationMethodv4REGv4F2F2DFTD2)

def itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_New():
    return itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2.New()

class itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF2
        GetFixedImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF2
        GetMovingImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkMeshD2 const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkMeshD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkMeshD2
        GetFixedPointSet(self, arg0) -> itkMeshD2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkMeshD2 const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkMeshD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkMeshD2
        GetMovingPointSet(self, arg0) -> itkMeshD2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI2

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI2

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorDFTD2
        GetOutput(self) -> itkDataObjectDecoratorDFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorDFTD2
        GetTransformOutput(self) -> itkDataObjectDecoratorDFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkDisplacementFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2 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:

          itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2_swigregister(itkImageRegistrationMethodv4REGv4F2F2DFTD2F2MD2)

def itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_New():
    return itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2.New()

class itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF2
        GetFixedImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF2
        GetMovingImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI2

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI2

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorGSOUTVVFTD2
        GetOutput(self) -> itkDataObjectDecoratorGSOUTVVFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorGSOUTVVFTD2
        GetTransformOutput(self) -> itkDataObjectDecoratorGSOUTVVFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2 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:

          itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2_swigregister(itkImageRegistrationMethodv4REGv4F2F2GSOUTVVFTD2)

def itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_New():
    return itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2.New()

class itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF2
        GetFixedImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF2
        GetMovingImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkMeshD2 const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkMeshD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkMeshD2
        GetFixedPointSet(self, arg0) -> itkMeshD2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkMeshD2 const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkMeshD2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkMeshD2
        GetMovingPointSet(self, arg0) -> itkMeshD2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI2

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI2

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorTD22
        GetOutput(self) -> itkDataObjectDecoratorTD22
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorTD22
        GetTransformOutput(self) -> itkDataObjectDecoratorTD22
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2 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:

          itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2_swigregister(itkImageRegistrationMethodv4REGv4F2F2TD2F2MD2)

def itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_New():
    return itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2.New()

class itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF2
        GetFixedImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF2 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF2 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF2
        GetMovingImage(self, arg0) -> itkImageF2

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI2DSMUI22FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI2DSMUI22FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI2DSMUI22FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI2DSMUI22FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD22 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD22"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD2_Pointer,std::allocator< itkTransformParametersAdaptorBaseD2_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI2

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI2

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorTVBVFTD2
        GetOutput(self) -> itkDataObjectDecoratorTVBVFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorTVBVFTD2
        GetTransformOutput(self) -> itkDataObjectDecoratorTVBVFTD2
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTimeVaryingBSplineVelocityFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTimeVaryingBSplineVelocityFieldTransformD2"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2 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:

          itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2_swigregister(itkImageRegistrationMethodv4REGv4F2F2TVBVFTD2)

def itkImageRegistrationMethodv4REGv4F3F3_New():
    return itkImageRegistrationMethodv4REGv4F3F3.New()

class itkImageRegistrationMethodv4REGv4F3F3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F3F3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F3F3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F3F3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF3
        GetFixedImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF3
        GetMovingImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI3

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI3

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorTD33
        GetOutput(self) -> itkDataObjectDecoratorTD33
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorTD33
        GetTransformOutput(self) -> itkDataObjectDecoratorTD33
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F3F3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F3F3 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:

          itkImageRegistrationMethodv4REGv4F3F3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F3F3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3_swigregister(itkImageRegistrationMethodv4REGv4F3F3)

def itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_New():
    return itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3.New()

class itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF3
        GetFixedImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF3
        GetMovingImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI3

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI3

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorBSOUDFTD3
        GetOutput(self) -> itkDataObjectDecoratorBSOUDFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorBSOUDFTD3
        GetTransformOutput(self) -> itkDataObjectDecoratorBSOUDFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkBSplineSmoothingOnUpdateDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkBSplineSmoothingOnUpdateDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3 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:

          itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3_swigregister(itkImageRegistrationMethodv4REGv4F3F3BSOUDFTD3)

def itkImageRegistrationMethodv4REGv4F3F3DFTD3_New():
    return itkImageRegistrationMethodv4REGv4F3F3DFTD3.New()

class itkImageRegistrationMethodv4REGv4F3F3DFTD3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F3F3DFTD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F3F3DFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F3F3DFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF3
        GetFixedImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF3
        GetMovingImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI3

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI3

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorDFTD3
        GetOutput(self) -> itkDataObjectDecoratorDFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorDFTD3
        GetTransformOutput(self) -> itkDataObjectDecoratorDFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F3F3DFTD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F3F3DFTD3 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:

          itkImageRegistrationMethodv4REGv4F3F3DFTD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F3F3DFTD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3_swigregister(itkImageRegistrationMethodv4REGv4F3F3DFTD3)

def itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_New():
    return itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3.New()

class itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF3
        GetFixedImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF3
        GetMovingImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkMeshD3 const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkMeshD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkMeshD3
        GetFixedPointSet(self, arg0) -> itkMeshD3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkMeshD3 const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkMeshD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkMeshD3
        GetMovingPointSet(self, arg0) -> itkMeshD3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI3

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI3

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorDFTD3
        GetOutput(self) -> itkDataObjectDecoratorDFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorDFTD3
        GetTransformOutput(self) -> itkDataObjectDecoratorDFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkDisplacementFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3 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:

          itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3_swigregister(itkImageRegistrationMethodv4REGv4F3F3DFTD3F3MD3)

def itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_New():
    return itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3.New()

class itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF3
        GetFixedImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF3
        GetMovingImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI3

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI3

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorGSOUTVVFTD3
        GetOutput(self) -> itkDataObjectDecoratorGSOUTVVFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorGSOUTVVFTD3
        GetTransformOutput(self) -> itkDataObjectDecoratorGSOUTVVFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3 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:

          itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3_swigregister(itkImageRegistrationMethodv4REGv4F3F3GSOUTVVFTD3)

def itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_New():
    return itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3.New()

class itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF3
        GetFixedImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF3
        GetMovingImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkMeshD3 const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkMeshD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkMeshD3
        GetFixedPointSet(self, arg0) -> itkMeshD3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkMeshD3 const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkMeshD3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkMeshD3
        GetMovingPointSet(self, arg0) -> itkMeshD3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI3

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI3

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorTD33
        GetOutput(self) -> itkDataObjectDecoratorTD33
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorTD33
        GetTransformOutput(self) -> itkDataObjectDecoratorTD33
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3 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:

          itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3_swigregister(itkImageRegistrationMethodv4REGv4F3F3TD3F3MD3)

def itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_New():
    return itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3.New()

class itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3 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")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_Pointer"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_Clone(self)

    def SetFixedImage(self, *args):
        r"""
        SetFixedImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetFixedImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetFixedImage(self, *args)

    def GetFixedImage(self, *args):
        r"""
        GetFixedImage(self) -> itkImageF3
        GetFixedImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetFixedImage(self, *args)

    def SetMovingImage(self, *args):
        r"""
        SetMovingImage(self, image)

        Parameters
        ----------
        image: itkImageF3 const *

        SetMovingImage(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkImageF3 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetMovingImage(self, *args)

    def GetMovingImage(self, *args):
        r"""
        GetMovingImage(self) -> itkImageF3
        GetMovingImage(self, arg0) -> itkImageF3

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetMovingImage(self, *args)

    def SetFixedPointSet(self, *args):
        r"""
        SetFixedPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetFixedPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetFixedPointSet(self, *args)

    def GetFixedPointSet(self, *args):
        r"""
        GetFixedPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetFixedPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetFixedPointSet(self, *args)

    def SetMovingPointSet(self, *args):
        r"""
        SetMovingPointSet(self, pointSet)

        Parameters
        ----------
        pointSet: itkPointSetUI3DSMUI33FFUI const *

        SetMovingPointSet(self, arg0, arg1)

        Parameters
        ----------
        arg0: unsigned long
        arg1: itkPointSetUI3DSMUI33FFUI const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetMovingPointSet(self, *args)

    def GetMovingPointSet(self, *args):
        r"""
        GetMovingPointSet(self) -> itkPointSetUI3DSMUI33FFUI
        GetMovingPointSet(self, arg0) -> itkPointSetUI3DSMUI33FFUI

        Parameters
        ----------
        arg0: unsigned long

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetMovingPointSet(self, *args)

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

        Parameters
        ----------
        _arg: itkObjectToObjectOptimizerBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        GetOptimizer(self) -> itkObjectToObjectOptimizerBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        arg0: itkOptimizerParametersD &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetOptimizerWeights(self, arg0)

    def GetOptimizerWeights(self):
        r"""GetOptimizerWeights(self) -> itkOptimizerParametersD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetOptimizerWeights(self)

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

        Parameters
        ----------
        _arg: itkObjectToObjectMetricBaseTemplateD *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkObjectToObjectMetricBaseTemplateD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        GetMetric(self) -> itkObjectToObjectMetricBaseTemplateD
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: enum itkImageRegistrationMethodv4Enums::MetricSamplingStrategy const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetMetricSamplingStrategy(self, _arg)

    def GetMetricSamplingStrategy(self):
        r"""GetMetricSamplingStrategy(self) -> itkImageRegistrationMethodv4Enums::MetricSamplingStrategy"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetMetricSamplingStrategy(self)

    def MetricSamplingReinitializeSeed(self, *args):
        r"""
        MetricSamplingReinitializeSeed(self)
        MetricSamplingReinitializeSeed(self, seed)

        Parameters
        ----------
        seed: int

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_MetricSamplingReinitializeSeed(self, *args)

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

        Parameters
        ----------
        arg0: double const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetMetricSamplingPercentage(self, arg0)

    def SetMetricSamplingPercentagePerLevel(self, samplingPercentages):
        r"""
        SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

        Parameters
        ----------
        samplingPercentages: itkArrayD const &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetMetricSamplingPercentagePerLevel(self, samplingPercentages)

    def GetMetricSamplingPercentagePerLevel(self):
        r"""GetMetricSamplingPercentagePerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetMetricSamplingPercentagePerLevel(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetFixedInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetFixedInitialTransform(self, _arg)

    def GetFixedInitialTransformInput(self):
        r"""GetFixedInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetFixedInitialTransformInput(self)

    def GetFixedInitialTransform(self):
        r"""GetFixedInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetFixedInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetMovingInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetMovingInitialTransform(self, _arg)

    def GetMovingInitialTransformInput(self):
        r"""GetMovingInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetMovingInitialTransformInput(self)

    def GetMovingInitialTransform(self):
        r"""GetMovingInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetMovingInitialTransform(self)

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

        Parameters
        ----------
        _arg: itkDataObjectDecoratorTD33 const *

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetInitialTransformInput(self, _arg)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetInitialTransform(self, _arg)

    def GetInitialTransformInput(self):
        r"""GetInitialTransformInput(self) -> itkDataObjectDecoratorTD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetInitialTransformInput(self)

    def GetInitialTransform(self):
        r"""GetInitialTransform(self) -> itkTransformD33"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetInitialTransform(self)

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

        Parameters
        ----------
        arg0: std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > &

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetTransformParametersAdaptorsPerLevel(self, arg0)

    def GetTransformParametersAdaptorsPerLevel(self):
        r"""GetTransformParametersAdaptorsPerLevel(self) -> std::vector< itkTransformParametersAdaptorBaseD3_Pointer,std::allocator< itkTransformParametersAdaptorBaseD3_Pointer > > const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetTransformParametersAdaptorsPerLevel(self)

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

        Parameters
        ----------
        arg0: unsigned long const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetNumberOfLevels(self, arg0)

    def GetNumberOfLevels(self):
        r"""GetNumberOfLevels(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetNumberOfLevels(self)

    def SetShrinkFactorsPerLevel(self, factors):
        r"""
        SetShrinkFactorsPerLevel(self, factors)

        Parameters
        ----------
        factors: itkArrayUL

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetShrinkFactorsPerLevel(self, factors)

    def GetShrinkFactorsPerDimension(self, level):
        r"""
        GetShrinkFactorsPerDimension(self, level) -> itkFixedArrayUI3

        Parameters
        ----------
        level: unsigned int const

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetShrinkFactorsPerDimension(self, level)

    def SetShrinkFactorsPerDimension(self, level, factors):
        r"""
        SetShrinkFactorsPerDimension(self, level, factors)

        Parameters
        ----------
        level: unsigned int
        factors: itkFixedArrayUI3

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetShrinkFactorsPerDimension(self, level, factors)

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

        Parameters
        ----------
        _arg: itkArrayD

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetSmoothingSigmasPerLevel(self, _arg)

    def GetSmoothingSigmasPerLevel(self):
        r"""GetSmoothingSigmasPerLevel(self) -> itkArrayD"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetSmoothingSigmasPerLevel(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetSmoothingSigmasAreSpecifiedInPhysicalUnits(self, _arg)

    def GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self):
        r"""GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetSmoothingSigmasAreSpecifiedInPhysicalUnits(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOn(self)

    def SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self):
        r"""SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SmoothingSigmasAreSpecifiedInPhysicalUnitsOff(self)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkDataObjectDecoratorTVBVFTD3
        GetOutput(self) -> itkDataObjectDecoratorTVBVFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetOutput(self, *args)

    def GetTransformOutput(self, *args):
        r"""
        GetTransformOutput(self) -> itkDataObjectDecoratorTVBVFTD3
        GetTransformOutput(self) -> itkDataObjectDecoratorTVBVFTD3
        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetTransformOutput(self, *args)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTimeVaryingBSplineVelocityFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetModifiableTransform(self)

    def GetTransform(self):
        r"""GetTransform(self) -> itkTimeVaryingBSplineVelocityFieldTransformD3"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetTransform(self)

    def GetCurrentLevel(self):
        r"""GetCurrentLevel(self) -> unsigned long"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetCurrentLevel(self)

    def GetCurrentIteration(self):
        r"""GetCurrentIteration(self) -> unsigned long const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetCurrentIteration(self)

    def GetCurrentMetricValue(self):
        r"""GetCurrentMetricValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetCurrentMetricValue(self)

    def GetCurrentConvergenceValue(self):
        r"""GetCurrentConvergenceValue(self) -> double const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetCurrentConvergenceValue(self)

    def GetIsConverged(self):
        r"""GetIsConverged(self) -> bool const &"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetIsConverged(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetInPlace(self, _arg)

    def GetInPlace(self):
        r"""GetInPlace(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetInPlace(self)

    def InPlaceOn(self):
        r"""InPlaceOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_InPlaceOn(self)

    def InPlaceOff(self):
        r"""InPlaceOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_InPlaceOff(self)

    def InitializeCenterOfLinearOutputTransformOn(self):
        r"""InitializeCenterOfLinearOutputTransformOn(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_InitializeCenterOfLinearOutputTransformOn(self)

    def InitializeCenterOfLinearOutputTransformOff(self):
        r"""InitializeCenterOfLinearOutputTransformOff(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_InitializeCenterOfLinearOutputTransformOff(self)

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_SetInitializeCenterOfLinearOutputTransform(self, _arg)

    def GetInitializeCenterOfLinearOutputTransform(self):
        r"""GetInitializeCenterOfLinearOutputTransform(self) -> bool"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_GetInitializeCenterOfLinearOutputTransform(self)

    def InitializeCenterOfLinearOutputTransform(self):
        r"""InitializeCenterOfLinearOutputTransform(self)"""
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_InitializeCenterOfLinearOutputTransform(self)
    __swig_destroy__ = _itkImageRegistrationMethodv4Python.delete_itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3

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

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

        """
        return _itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_cast(obj)

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

        Create a new object of the class itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3 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:

          itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3 in _itkImageRegistrationMethodv4Python:
_itkImageRegistrationMethodv4Python.itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3_swigregister(itkImageRegistrationMethodv4REGv4F3F3TVBVFTD3)

from itk.support import helpers
import itk.support.types as itkt
from typing import Sequence, Tuple, Union

@helpers.accept_array_like_xarray_torch
def image_registration_methodv4(*args,  fixed_image: Union[itkt.Image, int]=..., moving_image: Union[itkt.Image, int]=..., fixed_point_set: Union[itkt.Mesh, int]=..., moving_point_set: Union[itkt.Mesh, int]=..., optimizer=..., optimizer_weights=..., metric=..., metric_sampling_strategy=..., metric_sampling_percentage: float=..., metric_sampling_percentage_per_level: Sequence[float]=..., fixed_initial_transform_input=..., fixed_initial_transform: itkt.Transform=..., moving_initial_transform_input=..., moving_initial_transform: itkt.Transform=..., initial_transform_input=..., initial_transform: itkt.Transform=..., transform_parameters_adaptors_per_level=..., number_of_levels: int=..., shrink_factors_per_level: Sequence[int]=..., shrink_factors_per_dimension: int=..., smoothing_sigmas_per_level: Sequence[float]=..., smoothing_sigmas_are_specified_in_physical_units: bool=..., initialize_center_of_linear_output_transform: bool=...,**kwargs):
    """Functional interface for ImageRegistrationMethodv4"""
    import itk

    kwarg_typehints = { 'fixed_image':fixed_image,'moving_image':moving_image,'fixed_point_set':fixed_point_set,'moving_point_set':moving_point_set,'optimizer':optimizer,'optimizer_weights':optimizer_weights,'metric':metric,'metric_sampling_strategy':metric_sampling_strategy,'metric_sampling_percentage':metric_sampling_percentage,'metric_sampling_percentage_per_level':metric_sampling_percentage_per_level,'fixed_initial_transform_input':fixed_initial_transform_input,'fixed_initial_transform':fixed_initial_transform,'moving_initial_transform_input':moving_initial_transform_input,'moving_initial_transform':moving_initial_transform,'initial_transform_input':initial_transform_input,'initial_transform':initial_transform,'transform_parameters_adaptors_per_level':transform_parameters_adaptors_per_level,'number_of_levels':number_of_levels,'shrink_factors_per_level':shrink_factors_per_level,'shrink_factors_per_dimension':shrink_factors_per_dimension,'smoothing_sigmas_per_level':smoothing_sigmas_per_level,'smoothing_sigmas_are_specified_in_physical_units':smoothing_sigmas_are_specified_in_physical_units,'initialize_center_of_linear_output_transform':initialize_center_of_linear_output_transform }
    specified_kwarg_typehints = { k:v for (k,v) in kwarg_typehints.items() if kwarg_typehints[k] is not ... }
    kwargs.update(specified_kwarg_typehints)


    instance = itk.ImageRegistrationMethodv4.New(*args, **kwargs)

    return instance.__internal_call__()

def image_registration_methodv4_init_docstring():
    import itk
    from itk.support import template_class

    filter_class = itk.ITKRegistrationMethodsv4.ImageRegistrationMethodv4
    image_registration_methodv4.process_object = filter_class
    is_template = isinstance(filter_class, template_class.itkTemplate)
    if is_template:
        filter_object = filter_class.values()[0]
    else:
        filter_object = filter_class

    image_registration_methodv4.__doc__ = filter_object.__doc__



