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

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.itkArray2DPython
import itk.vnl_matrixPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.vnl_vectorPython
import itk.itkOptimizerParametersPython
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.itkArrayPython
import itk.itkPointSetPython
import itk.itkVectorContainerPython
import itk.itkContinuousIndexPython
import itk.itkIndexPython
import itk.itkSizePython
import itk.itkOffsetPython
import itk.itkTransformBasePython
import itk.itkSymmetricSecondRankTensorPython
import itk.itkDiffusionTensor3DPython
import itk.itkVariableLengthVectorPython
class itkPointSetToPointSetMetricPSD23_Superclass_Superclass(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSD23_Superclass_Superclass class."""

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

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

    def GetNumberOfParameters(self):
        r"""GetNumberOfParameters(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_Superclass_Superclass_GetNumberOfParameters(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSD23_Superclass_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_Superclass_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSD23_Superclass_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_Superclass_Superclass_swigregister(itkPointSetToPointSetMetricPSD23_Superclass_Superclass)
class itkPointSetToPointSetMetricPSD2_Superclass_Superclass(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSD2_Superclass_Superclass class."""

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

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

    def GetNumberOfParameters(self):
        r"""GetNumberOfParameters(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_Superclass_Superclass_GetNumberOfParameters(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSD2_Superclass_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_Superclass_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSD2_Superclass_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_Superclass_Superclass_swigregister(itkPointSetToPointSetMetricPSD2_Superclass_Superclass)
class itkPointSetToPointSetMetricPSD3_Superclass_Superclass(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSD3_Superclass_Superclass class."""

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

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

    def GetNumberOfParameters(self):
        r"""GetNumberOfParameters(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_Superclass_Superclass_GetNumberOfParameters(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSD3_Superclass_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_Superclass_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSD3_Superclass_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_Superclass_Superclass_swigregister(itkPointSetToPointSetMetricPSD3_Superclass_Superclass)
class itkPointSetToPointSetMetricPSF23_Superclass_Superclass(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSF23_Superclass_Superclass class."""

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

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

    def GetNumberOfParameters(self):
        r"""GetNumberOfParameters(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_Superclass_Superclass_GetNumberOfParameters(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSF23_Superclass_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_Superclass_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSF23_Superclass_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_Superclass_Superclass_swigregister(itkPointSetToPointSetMetricPSF23_Superclass_Superclass)
class itkPointSetToPointSetMetricPSF2_Superclass_Superclass(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSF2_Superclass_Superclass class."""

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

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

    def GetNumberOfParameters(self):
        r"""GetNumberOfParameters(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_Superclass_Superclass_GetNumberOfParameters(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSF2_Superclass_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_Superclass_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSF2_Superclass_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_Superclass_Superclass_swigregister(itkPointSetToPointSetMetricPSF2_Superclass_Superclass)
class itkPointSetToPointSetMetricPSF3_Superclass(itkPointSetToPointSetMetricPSF2_Superclass_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSF3_Superclass class."""

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

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

    def GetValue(self, parameters):
        r"""
        GetValue(self, parameters) -> itkArrayD

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_Superclass_GetValue(self, parameters)

    def GetNumberOfValues(self):
        r"""GetNumberOfValues(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_Superclass_GetNumberOfValues(self)

    def GetDerivative(self, parameters, derivative):
        r"""
        GetDerivative(self, parameters, derivative)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &
        derivative: itkArray2DD &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_Superclass_GetDerivative(self, parameters, derivative)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSF3_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSF3_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_Superclass_swigregister(itkPointSetToPointSetMetricPSF3_Superclass)
class itkPointSetToPointSetMetricPSF3_Superclass_Superclass(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSF3_Superclass_Superclass class."""

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

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

    def GetNumberOfParameters(self):
        r"""GetNumberOfParameters(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_Superclass_Superclass_GetNumberOfParameters(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSF3_Superclass_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_Superclass_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSF3_Superclass_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_Superclass_Superclass_swigregister(itkPointSetToPointSetMetricPSF3_Superclass_Superclass)
class itkPointSetToPointSetMetricPSD23_Superclass(itkPointSetToPointSetMetricPSF2_Superclass_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSD23_Superclass class."""

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

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

    def GetValue(self, parameters):
        r"""
        GetValue(self, parameters) -> itkArrayD

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_Superclass_GetValue(self, parameters)

    def GetNumberOfValues(self):
        r"""GetNumberOfValues(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_Superclass_GetNumberOfValues(self)

    def GetDerivative(self, parameters, derivative):
        r"""
        GetDerivative(self, parameters, derivative)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &
        derivative: itkArray2DD &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_Superclass_GetDerivative(self, parameters, derivative)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSD23_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSD23_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_Superclass_swigregister(itkPointSetToPointSetMetricPSD23_Superclass)
class itkPointSetToPointSetMetricPSD2_Superclass(itkPointSetToPointSetMetricPSF2_Superclass_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSD2_Superclass class."""

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

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

    def GetValue(self, parameters):
        r"""
        GetValue(self, parameters) -> itkArrayD

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_Superclass_GetValue(self, parameters)

    def GetNumberOfValues(self):
        r"""GetNumberOfValues(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_Superclass_GetNumberOfValues(self)

    def GetDerivative(self, parameters, derivative):
        r"""
        GetDerivative(self, parameters, derivative)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &
        derivative: itkArray2DD &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_Superclass_GetDerivative(self, parameters, derivative)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSD2_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSD2_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_Superclass_swigregister(itkPointSetToPointSetMetricPSD2_Superclass)
class itkPointSetToPointSetMetricPSD3_Superclass(itkPointSetToPointSetMetricPSF2_Superclass_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSD3_Superclass class."""

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

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

    def GetValue(self, parameters):
        r"""
        GetValue(self, parameters) -> itkArrayD

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_Superclass_GetValue(self, parameters)

    def GetNumberOfValues(self):
        r"""GetNumberOfValues(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_Superclass_GetNumberOfValues(self)

    def GetDerivative(self, parameters, derivative):
        r"""
        GetDerivative(self, parameters, derivative)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &
        derivative: itkArray2DD &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_Superclass_GetDerivative(self, parameters, derivative)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSD3_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSD3_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_Superclass_swigregister(itkPointSetToPointSetMetricPSD3_Superclass)
class itkPointSetToPointSetMetricPSF23_Superclass(itkPointSetToPointSetMetricPSF2_Superclass_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSF23_Superclass class."""

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

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

    def GetValue(self, parameters):
        r"""
        GetValue(self, parameters) -> itkArrayD

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_Superclass_GetValue(self, parameters)

    def GetNumberOfValues(self):
        r"""GetNumberOfValues(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_Superclass_GetNumberOfValues(self)

    def GetDerivative(self, parameters, derivative):
        r"""
        GetDerivative(self, parameters, derivative)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &
        derivative: itkArray2DD &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_Superclass_GetDerivative(self, parameters, derivative)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSF23_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSF23_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_Superclass_swigregister(itkPointSetToPointSetMetricPSF23_Superclass)
class itkPointSetToPointSetMetricPSF2_Superclass(itkPointSetToPointSetMetricPSF2_Superclass_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSF2_Superclass class."""

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

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

    def GetValue(self, parameters):
        r"""
        GetValue(self, parameters) -> itkArrayD

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_Superclass_GetValue(self, parameters)

    def GetNumberOfValues(self):
        r"""GetNumberOfValues(self) -> unsigned int"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_Superclass_GetNumberOfValues(self)

    def GetDerivative(self, parameters, derivative):
        r"""
        GetDerivative(self, parameters, derivative)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &
        derivative: itkArray2DD &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_Superclass_GetDerivative(self, parameters, derivative)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSF2_Superclass

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_Superclass_cast(obj)

# Register itkPointSetToPointSetMetricPSF2_Superclass in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_Superclass_swigregister(itkPointSetToPointSetMetricPSF2_Superclass)
class itkPointSetToPointSetMetricPSF3(itkPointSetToPointSetMetricPSF2_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSF3 class."""

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

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

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetF3"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_GetFixedPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetF3"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_GetMovingPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD33"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_GetModifiableTransform(self)

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

    def SetTransformParameters(self, parameters):
        r"""
        SetTransformParameters(self, parameters)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_SetTransformParameters(self, parameters)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_Initialize(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSF3

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_cast(obj)

# Register itkPointSetToPointSetMetricPSF3 in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF3_swigregister(itkPointSetToPointSetMetricPSF3)
class itkPointSetToPointSetMetricPSD2(itkPointSetToPointSetMetricPSF2_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSD2 class."""

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

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

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetD2"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_GetFixedPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetD2"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_GetMovingPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD22"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_GetModifiableTransform(self)

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

    def SetTransformParameters(self, parameters):
        r"""
        SetTransformParameters(self, parameters)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_SetTransformParameters(self, parameters)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_Initialize(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSD2

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_cast(obj)

# Register itkPointSetToPointSetMetricPSD2 in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD2_swigregister(itkPointSetToPointSetMetricPSD2)
class itkPointSetToPointSetMetricPSD23(itkPointSetToPointSetMetricPSF2_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSD23 class."""

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

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

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetD2"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_GetFixedPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetD3"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_GetMovingPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD32"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_GetModifiableTransform(self)

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

    def SetTransformParameters(self, parameters):
        r"""
        SetTransformParameters(self, parameters)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_SetTransformParameters(self, parameters)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_Initialize(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSD23

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_cast(obj)

# Register itkPointSetToPointSetMetricPSD23 in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD23_swigregister(itkPointSetToPointSetMetricPSD23)
class itkPointSetToPointSetMetricPSD3(itkPointSetToPointSetMetricPSF2_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSD3 class."""

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

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

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetD3"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_GetFixedPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetD3"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_GetMovingPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD33"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_GetModifiableTransform(self)

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

    def SetTransformParameters(self, parameters):
        r"""
        SetTransformParameters(self, parameters)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_SetTransformParameters(self, parameters)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_Initialize(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSD3

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_cast(obj)

# Register itkPointSetToPointSetMetricPSD3 in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSD3_swigregister(itkPointSetToPointSetMetricPSD3)
class itkPointSetToPointSetMetricPSF2(itkPointSetToPointSetMetricPSF2_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSF2 class."""

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

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

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetF2"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_GetFixedPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetF2"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_GetMovingPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD22"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_GetModifiableTransform(self)

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

    def SetTransformParameters(self, parameters):
        r"""
        SetTransformParameters(self, parameters)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_SetTransformParameters(self, parameters)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_Initialize(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSF2

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_cast(obj)

# Register itkPointSetToPointSetMetricPSF2 in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF2_swigregister(itkPointSetToPointSetMetricPSF2)
class itkPointSetToPointSetMetricPSF23(itkPointSetToPointSetMetricPSF2_Superclass):
    r"""Proxy of C++ itkPointSetToPointSetMetricPSF23 class."""

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

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

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_SetFixedPointSet(self, _arg)

    def GetFixedPointSet(self):
        r"""GetFixedPointSet(self) -> itkPointSetF2"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_GetFixedPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_SetMovingPointSet(self, _arg)

    def GetMovingPointSet(self):
        r"""GetMovingPointSet(self) -> itkPointSetF3"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_GetMovingPointSet(self)

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_SetTransform(self, _arg)

    def GetModifiableTransform(self):
        r"""GetModifiableTransform(self) -> itkTransformD32"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_GetModifiableTransform(self)

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

    def SetTransformParameters(self, parameters):
        r"""
        SetTransformParameters(self, parameters)

        Parameters
        ----------
        parameters: itkOptimizerParametersD const &

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_SetTransformParameters(self, parameters)

    def Initialize(self):
        r"""Initialize(self)"""
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_Initialize(self)
    __swig_destroy__ = _itkPointSetToPointSetMetricPython.delete_itkPointSetToPointSetMetricPSF23

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

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

        """
        return _itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_cast(obj)

# Register itkPointSetToPointSetMetricPSF23 in _itkPointSetToPointSetMetricPython:
_itkPointSetToPointSetMetricPython.itkPointSetToPointSetMetricPSF23_swigregister(itkPointSetToPointSetMetricPSF23)

