# 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 _ITKRegistrationCommonPython



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 _itkPointSetToPointSetRegistrationMethodPython
else:
    import _itkPointSetToPointSetRegistrationMethodPython

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.ITKOptimizersBasePython
import itk.vnl_vectorPython
import itk.vnl_matrixPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.ITKCostFunctionsPython
import itk.itkCostFunctionPython
import itk.ITKCommonBasePython
import itk.itkMatrixPython
import itk.vnl_matrix_fixedPython
import itk.itkPointPython
import itk.vnl_vector_refPython
import itk.itkFixedArrayPython
import itk.itkVectorPython
import itk.itkCovariantVectorPython
import itk.vnl_cost_functionPython
import itk.vnl_unary_functionPython
import itk.itkArray2DPython
import itk.vnl_least_squares_functionPython
import itk.itkOptimizerParametersPython
import itk.itkArrayPython
import itk.itkPointSetToPointSetMetricPython
import itk.itkTransformBasePython
import itk.itkVariableLengthVectorPython
import itk.itkDiffusionTensor3DPython
import itk.itkSymmetricSecondRankTensorPython
import itk.itkPointSetPython
import itk.itkVectorContainerPython
import itk.itkOffsetPython
import itk.itkSizePython
import itk.itkContinuousIndexPython
import itk.itkIndexPython

def itkPointSetToPointSetRegistrationMethodREGD2D2_New():
    return itkPointSetToPointSetRegistrationMethodREGD2D2.New()

class itkPointSetToPointSetRegistrationMethodREGD2D2(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkPointSetToPointSetRegistrationMethodREGD2D2 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__() -> itkPointSetToPointSetRegistrationMethodREGD2D2_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkPointSetToPointSetRegistrationMethodREGD2D2_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_Clone(self)

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

        Parameters
        ----------
        _arg: itkPointSetD2 const *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetD2"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetFixedPointSet(self)

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

        Parameters
        ----------
        _arg: itkPointSetD2 const *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetD2"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetMovingPointSet(self)

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

        Parameters
        ----------
        _arg: itkMultipleValuedNonLinearOptimizer *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkMultipleValuedNonLinearOptimizer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetOptimizer(self, *args)

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

        Parameters
        ----------
        _arg: itkPointSetToPointSetMetricPSD2 *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkPointSetToPointSetMetricPSD2"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkPointSetToPointSetMetricPSD2
        GetMetric(self) -> itkPointSetToPointSetMetricPSD2
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetMetric(self, *args)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD22"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetModifiableTransform(self)

    def GetTransform(self, *args):
        r"""
        GetTransform(self) -> itkTransformD22
        GetTransform(self) -> itkTransformD22
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetTransform(self, *args)

    def SetInitialTransformParameters(self, param):
        r"""
        SetInitialTransformParameters(self, param)

        Parameters
        ----------
        param: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_SetInitialTransformParameters(self, param)

    def GetInitialTransformParameters(self):
        r"""GetInitialTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetInitialTransformParameters(self)

    def GetLastTransformParameters(self):
        r"""GetLastTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetLastTransformParameters(self)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_Initialize(self)

    def GetOutput(self):
        r"""GetOutput(self) -> itkDataObjectDecoratorTD22"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_GetOutput(self)
    __swig_destroy__ = _itkPointSetToPointSetRegistrationMethodPython.delete_itkPointSetToPointSetRegistrationMethodREGD2D2

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_cast(obj)

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

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

          itkPointSetToPointSetRegistrationMethodREGD2D2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkPointSetToPointSetRegistrationMethodREGD2D2 in _itkPointSetToPointSetRegistrationMethodPython:
_itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D2_swigregister(itkPointSetToPointSetRegistrationMethodREGD2D2)

def itkPointSetToPointSetRegistrationMethodREGD2D3_New():
    return itkPointSetToPointSetRegistrationMethodREGD2D3.New()

class itkPointSetToPointSetRegistrationMethodREGD2D3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkPointSetToPointSetRegistrationMethodREGD2D3 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__() -> itkPointSetToPointSetRegistrationMethodREGD2D3_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkPointSetToPointSetRegistrationMethodREGD2D3_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_Clone(self)

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

        Parameters
        ----------
        _arg: itkPointSetD2 const *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetD2"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetFixedPointSet(self)

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

        Parameters
        ----------
        _arg: itkPointSetD3 const *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetD3"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetMovingPointSet(self)

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

        Parameters
        ----------
        _arg: itkMultipleValuedNonLinearOptimizer *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkMultipleValuedNonLinearOptimizer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        _arg: itkPointSetToPointSetMetricPSD23 *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkPointSetToPointSetMetricPSD23"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkPointSetToPointSetMetricPSD23
        GetMetric(self) -> itkPointSetToPointSetMetricPSD23
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: itkTransformD32 *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD32"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetModifiableTransform(self)

    def GetTransform(self, *args):
        r"""
        GetTransform(self) -> itkTransformD32
        GetTransform(self) -> itkTransformD32
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetTransform(self, *args)

    def SetInitialTransformParameters(self, param):
        r"""
        SetInitialTransformParameters(self, param)

        Parameters
        ----------
        param: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_SetInitialTransformParameters(self, param)

    def GetInitialTransformParameters(self):
        r"""GetInitialTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetInitialTransformParameters(self)

    def GetLastTransformParameters(self):
        r"""GetLastTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetLastTransformParameters(self)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_Initialize(self)

    def GetOutput(self):
        r"""GetOutput(self) -> itkDataObjectDecoratorTD32"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_GetOutput(self)
    __swig_destroy__ = _itkPointSetToPointSetRegistrationMethodPython.delete_itkPointSetToPointSetRegistrationMethodREGD2D3

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_cast(obj)

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

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

          itkPointSetToPointSetRegistrationMethodREGD2D3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkPointSetToPointSetRegistrationMethodREGD2D3 in _itkPointSetToPointSetRegistrationMethodPython:
_itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD2D3_swigregister(itkPointSetToPointSetRegistrationMethodREGD2D3)

def itkPointSetToPointSetRegistrationMethodREGD3D3_New():
    return itkPointSetToPointSetRegistrationMethodREGD3D3.New()

class itkPointSetToPointSetRegistrationMethodREGD3D3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkPointSetToPointSetRegistrationMethodREGD3D3 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__() -> itkPointSetToPointSetRegistrationMethodREGD3D3_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkPointSetToPointSetRegistrationMethodREGD3D3_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_Clone(self)

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

        Parameters
        ----------
        _arg: itkPointSetD3 const *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetD3"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetFixedPointSet(self)

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

        Parameters
        ----------
        _arg: itkPointSetD3 const *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetD3"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetMovingPointSet(self)

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

        Parameters
        ----------
        _arg: itkMultipleValuedNonLinearOptimizer *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkMultipleValuedNonLinearOptimizer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        _arg: itkPointSetToPointSetMetricPSD3 *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkPointSetToPointSetMetricPSD3"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkPointSetToPointSetMetricPSD3
        GetMetric(self) -> itkPointSetToPointSetMetricPSD3
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetMetric(self, *args)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD33"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetModifiableTransform(self)

    def GetTransform(self, *args):
        r"""
        GetTransform(self) -> itkTransformD33
        GetTransform(self) -> itkTransformD33
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetTransform(self, *args)

    def SetInitialTransformParameters(self, param):
        r"""
        SetInitialTransformParameters(self, param)

        Parameters
        ----------
        param: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_SetInitialTransformParameters(self, param)

    def GetInitialTransformParameters(self):
        r"""GetInitialTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetInitialTransformParameters(self)

    def GetLastTransformParameters(self):
        r"""GetLastTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetLastTransformParameters(self)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_Initialize(self)

    def GetOutput(self):
        r"""GetOutput(self) -> itkDataObjectDecoratorTD33"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_GetOutput(self)
    __swig_destroy__ = _itkPointSetToPointSetRegistrationMethodPython.delete_itkPointSetToPointSetRegistrationMethodREGD3D3

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_cast(obj)

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

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

          itkPointSetToPointSetRegistrationMethodREGD3D3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkPointSetToPointSetRegistrationMethodREGD3D3 in _itkPointSetToPointSetRegistrationMethodPython:
_itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGD3D3_swigregister(itkPointSetToPointSetRegistrationMethodREGD3D3)

def itkPointSetToPointSetRegistrationMethodREGF2F2_New():
    return itkPointSetToPointSetRegistrationMethodREGF2F2.New()

class itkPointSetToPointSetRegistrationMethodREGF2F2(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkPointSetToPointSetRegistrationMethodREGF2F2 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__() -> itkPointSetToPointSetRegistrationMethodREGF2F2_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkPointSetToPointSetRegistrationMethodREGF2F2_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_Clone(self)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetF2"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetFixedPointSet(self)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetF2"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetMovingPointSet(self)

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

        Parameters
        ----------
        _arg: itkMultipleValuedNonLinearOptimizer *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkMultipleValuedNonLinearOptimizer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetOptimizer(self, *args)

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

        Parameters
        ----------
        _arg: itkPointSetToPointSetMetricPSF2 *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkPointSetToPointSetMetricPSF2"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkPointSetToPointSetMetricPSF2
        GetMetric(self) -> itkPointSetToPointSetMetricPSF2
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetMetric(self, *args)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD22"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetModifiableTransform(self)

    def GetTransform(self, *args):
        r"""
        GetTransform(self) -> itkTransformD22
        GetTransform(self) -> itkTransformD22
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetTransform(self, *args)

    def SetInitialTransformParameters(self, param):
        r"""
        SetInitialTransformParameters(self, param)

        Parameters
        ----------
        param: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_SetInitialTransformParameters(self, param)

    def GetInitialTransformParameters(self):
        r"""GetInitialTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetInitialTransformParameters(self)

    def GetLastTransformParameters(self):
        r"""GetLastTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetLastTransformParameters(self)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_Initialize(self)

    def GetOutput(self):
        r"""GetOutput(self) -> itkDataObjectDecoratorTD22"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_GetOutput(self)
    __swig_destroy__ = _itkPointSetToPointSetRegistrationMethodPython.delete_itkPointSetToPointSetRegistrationMethodREGF2F2

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_cast(obj)

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

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

          itkPointSetToPointSetRegistrationMethodREGF2F2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkPointSetToPointSetRegistrationMethodREGF2F2 in _itkPointSetToPointSetRegistrationMethodPython:
_itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F2_swigregister(itkPointSetToPointSetRegistrationMethodREGF2F2)

def itkPointSetToPointSetRegistrationMethodREGF2F3_New():
    return itkPointSetToPointSetRegistrationMethodREGF2F3.New()

class itkPointSetToPointSetRegistrationMethodREGF2F3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkPointSetToPointSetRegistrationMethodREGF2F3 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__() -> itkPointSetToPointSetRegistrationMethodREGF2F3_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkPointSetToPointSetRegistrationMethodREGF2F3_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_Clone(self)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetF2"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetFixedPointSet(self)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetF3"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetMovingPointSet(self)

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

        Parameters
        ----------
        _arg: itkMultipleValuedNonLinearOptimizer *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkMultipleValuedNonLinearOptimizer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        _arg: itkPointSetToPointSetMetricPSF23 *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkPointSetToPointSetMetricPSF23"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkPointSetToPointSetMetricPSF23
        GetMetric(self) -> itkPointSetToPointSetMetricPSF23
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetMetric(self, *args)

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

        Parameters
        ----------
        _arg: itkTransformD32 *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD32"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetModifiableTransform(self)

    def GetTransform(self, *args):
        r"""
        GetTransform(self) -> itkTransformD32
        GetTransform(self) -> itkTransformD32
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetTransform(self, *args)

    def SetInitialTransformParameters(self, param):
        r"""
        SetInitialTransformParameters(self, param)

        Parameters
        ----------
        param: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_SetInitialTransformParameters(self, param)

    def GetInitialTransformParameters(self):
        r"""GetInitialTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetInitialTransformParameters(self)

    def GetLastTransformParameters(self):
        r"""GetLastTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetLastTransformParameters(self)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_Initialize(self)

    def GetOutput(self):
        r"""GetOutput(self) -> itkDataObjectDecoratorTD32"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_GetOutput(self)
    __swig_destroy__ = _itkPointSetToPointSetRegistrationMethodPython.delete_itkPointSetToPointSetRegistrationMethodREGF2F3

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_cast(obj)

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

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

          itkPointSetToPointSetRegistrationMethodREGF2F3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkPointSetToPointSetRegistrationMethodREGF2F3 in _itkPointSetToPointSetRegistrationMethodPython:
_itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF2F3_swigregister(itkPointSetToPointSetRegistrationMethodREGF2F3)

def itkPointSetToPointSetRegistrationMethodREGF3F3_New():
    return itkPointSetToPointSetRegistrationMethodREGF3F3.New()

class itkPointSetToPointSetRegistrationMethodREGF3F3(itk.ITKCommonBasePython.itkProcessObject):
    r"""Proxy of C++ itkPointSetToPointSetRegistrationMethodREGF3F3 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__() -> itkPointSetToPointSetRegistrationMethodREGF3F3_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkPointSetToPointSetRegistrationMethodREGF3F3_Pointer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_Clone(self)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetF3"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetFixedPointSet(self)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetF3"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetMovingPointSet(self)

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

        Parameters
        ----------
        _arg: itkMultipleValuedNonLinearOptimizer *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_SetOptimizer(self, _arg)

    def GetModifiableOptimizer(self):
        r"""GetModifiableOptimizer(self) -> itkMultipleValuedNonLinearOptimizer"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetModifiableOptimizer(self)

    def GetOptimizer(self, *args):
        r"""
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        GetOptimizer(self) -> itkMultipleValuedNonLinearOptimizer
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetOptimizer(self, *args)

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

        Parameters
        ----------
        _arg: itkPointSetToPointSetMetricPSF3 *

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_SetMetric(self, _arg)

    def GetModifiableMetric(self):
        r"""GetModifiableMetric(self) -> itkPointSetToPointSetMetricPSF3"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetModifiableMetric(self)

    def GetMetric(self, *args):
        r"""
        GetMetric(self) -> itkPointSetToPointSetMetricPSF3
        GetMetric(self) -> itkPointSetToPointSetMetricPSF3
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetMetric(self, *args)

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD33"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetModifiableTransform(self)

    def GetTransform(self, *args):
        r"""
        GetTransform(self) -> itkTransformD33
        GetTransform(self) -> itkTransformD33
        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetTransform(self, *args)

    def SetInitialTransformParameters(self, param):
        r"""
        SetInitialTransformParameters(self, param)

        Parameters
        ----------
        param: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_SetInitialTransformParameters(self, param)

    def GetInitialTransformParameters(self):
        r"""GetInitialTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetInitialTransformParameters(self)

    def GetLastTransformParameters(self):
        r"""GetLastTransformParameters(self) -> itkOptimizerParametersD"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetLastTransformParameters(self)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_Initialize(self)

    def GetOutput(self):
        r"""GetOutput(self) -> itkDataObjectDecoratorTD33"""
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_GetOutput(self)
    __swig_destroy__ = _itkPointSetToPointSetRegistrationMethodPython.delete_itkPointSetToPointSetRegistrationMethodREGF3F3

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

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

        """
        return _itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_cast(obj)

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

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

          itkPointSetToPointSetRegistrationMethodREGF3F3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkPointSetToPointSetRegistrationMethodREGF3F3 in _itkPointSetToPointSetRegistrationMethodPython:
_itkPointSetToPointSetRegistrationMethodPython.itkPointSetToPointSetRegistrationMethodREGF3F3_swigregister(itkPointSetToPointSetRegistrationMethodREGF3F3)

from itk.support import helpers
import itk.support.types as itkt
from typing import Sequence, Tuple, Union

@helpers.accept_array_like_xarray_torch
def point_set_to_point_set_registration_method(*args,  fixed_point_set: itkt.PointSet=..., moving_point_set: itkt.PointSet=..., optimizer=..., metric=..., transform: itkt.Transform=..., initial_transform_parameters=...,**kwargs):
    """Functional interface for PointSetToPointSetRegistrationMethod"""
    import itk

    kwarg_typehints = { 'fixed_point_set':fixed_point_set,'moving_point_set':moving_point_set,'optimizer':optimizer,'metric':metric,'transform':transform,'initial_transform_parameters':initial_transform_parameters }
    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.PointSetToPointSetRegistrationMethod.New(*args, **kwargs)

    return instance.__internal_call__()

def point_set_to_point_set_registration_method_init_docstring():
    import itk
    from itk.support import template_class

    filter_class = itk.ITKRegistrationCommon.PointSetToPointSetRegistrationMethod
    point_set_to_point_set_registration_method.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

    point_set_to_point_set_registration_method.__doc__ = filter_object.__doc__



