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



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

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.vnl_vectorPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.vnl_matrixPython
class itkArrayD(itk.vnl_vectorPython.vnl_vectorD):
    r"""Proxy of C++ itkArrayD class."""

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

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

        Parameters
        ----------
        arg0: itkArrayD const &

        __init__(self, arg0) -> itkArrayD

        Parameters
        ----------
        arg0: vnl_vectorD const &

        __init__(self, dimension) -> itkArrayD

        Parameters
        ----------
        dimension: unsigned long

        __init__(self, dimension, value) -> itkArrayD

        Parameters
        ----------
        dimension: unsigned long
        value: double const &

        __init__(self, datain, sz, LetArrayManageMemory=False) -> itkArrayD

        Parameters
        ----------
        datain: double *
        sz: unsigned long
        LetArrayManageMemory: bool

        __init__(self, datain, sz) -> itkArrayD

        Parameters
        ----------
        datain: double const *
        sz: unsigned long

        """
        _itkArrayPython.itkArrayD_swiginit(self, _itkArrayPython.new_itkArrayD(*args))

    def Fill(self, v):
        r"""
        Fill(self, v)

        Parameters
        ----------
        v: double const &

        """
        return _itkArrayPython.itkArrayD_Fill(self, v)

    def Size(self):
        r"""Size(self) -> unsigned long"""
        return _itkArrayPython.itkArrayD_Size(self)

    def GetNumberOfElements(self):
        r"""GetNumberOfElements(self) -> unsigned int"""
        return _itkArrayPython.itkArrayD_GetNumberOfElements(self)

    def GetElement(self, i):
        r"""
        GetElement(self, i) -> double const &

        Parameters
        ----------
        i: unsigned long

        """
        return _itkArrayPython.itkArrayD_GetElement(self, i)

    def SetElement(self, i, value):
        r"""
        SetElement(self, i, value)

        Parameters
        ----------
        i: unsigned long
        value: double const &

        """
        return _itkArrayPython.itkArrayD_SetElement(self, i, value)

    def SetSize(self, sz):
        r"""
        SetSize(self, sz)

        Parameters
        ----------
        sz: unsigned long

        """
        return _itkArrayPython.itkArrayD_SetSize(self, sz)

    def GetSize(self):
        r"""GetSize(self) -> unsigned long"""
        return _itkArrayPython.itkArrayD_GetSize(self)

    def SetDataSameSize(self, datain, LetArrayManageMemory=False):
        r"""
        SetDataSameSize(self, datain, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: double *
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayD_SetDataSameSize(self, datain, LetArrayManageMemory)

    def SetData(self, datain, sz, LetArrayManageMemory=False):
        r"""
        SetData(self, datain, sz, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: double *
        sz: unsigned long
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayD_SetData(self, datain, sz, LetArrayManageMemory)
    __swig_destroy__ = _itkArrayPython.delete_itkArrayD

    def Swap(self, other):
        r"""
        Swap(self, other)

        Parameters
        ----------
        other: itkArrayD &

        """
        return _itkArrayPython.itkArrayD_Swap(self, other)

    def __getitem__(self, dim):
        r"""
        __getitem__(self, dim) -> double

        Parameters
        ----------
        dim: unsigned long

        """
        return _itkArrayPython.itkArrayD___getitem__(self, dim)

    def __setitem__(self, dim, v):
        r"""
        __setitem__(self, dim, v)

        Parameters
        ----------
        dim: unsigned long
        v: double

        """
        return _itkArrayPython.itkArrayD___setitem__(self, dim, v)

    def __len__(self):
        r"""__len__(self) -> unsigned int"""
        return _itkArrayPython.itkArrayD___len__(self)

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkArrayPython.itkArrayD___repr__(self)

# Register itkArrayD in _itkArrayPython:
_itkArrayPython.itkArrayD_swigregister(itkArrayD)
class itkArrayF(itk.vnl_vectorPython.vnl_vectorF):
    r"""Proxy of C++ itkArrayF class."""

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

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

        Parameters
        ----------
        arg0: itkArrayF const &

        __init__(self, arg0) -> itkArrayF

        Parameters
        ----------
        arg0: vnl_vectorF const &

        __init__(self, dimension) -> itkArrayF

        Parameters
        ----------
        dimension: unsigned long

        __init__(self, dimension, value) -> itkArrayF

        Parameters
        ----------
        dimension: unsigned long
        value: float const &

        __init__(self, datain, sz, LetArrayManageMemory=False) -> itkArrayF

        Parameters
        ----------
        datain: float *
        sz: unsigned long
        LetArrayManageMemory: bool

        __init__(self, datain, sz) -> itkArrayF

        Parameters
        ----------
        datain: float const *
        sz: unsigned long

        """
        _itkArrayPython.itkArrayF_swiginit(self, _itkArrayPython.new_itkArrayF(*args))

    def Fill(self, v):
        r"""
        Fill(self, v)

        Parameters
        ----------
        v: float const &

        """
        return _itkArrayPython.itkArrayF_Fill(self, v)

    def Size(self):
        r"""Size(self) -> unsigned long"""
        return _itkArrayPython.itkArrayF_Size(self)

    def GetNumberOfElements(self):
        r"""GetNumberOfElements(self) -> unsigned int"""
        return _itkArrayPython.itkArrayF_GetNumberOfElements(self)

    def GetElement(self, i):
        r"""
        GetElement(self, i) -> float const &

        Parameters
        ----------
        i: unsigned long

        """
        return _itkArrayPython.itkArrayF_GetElement(self, i)

    def SetElement(self, i, value):
        r"""
        SetElement(self, i, value)

        Parameters
        ----------
        i: unsigned long
        value: float const &

        """
        return _itkArrayPython.itkArrayF_SetElement(self, i, value)

    def SetSize(self, sz):
        r"""
        SetSize(self, sz)

        Parameters
        ----------
        sz: unsigned long

        """
        return _itkArrayPython.itkArrayF_SetSize(self, sz)

    def GetSize(self):
        r"""GetSize(self) -> unsigned long"""
        return _itkArrayPython.itkArrayF_GetSize(self)

    def SetDataSameSize(self, datain, LetArrayManageMemory=False):
        r"""
        SetDataSameSize(self, datain, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: float *
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayF_SetDataSameSize(self, datain, LetArrayManageMemory)

    def SetData(self, datain, sz, LetArrayManageMemory=False):
        r"""
        SetData(self, datain, sz, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: float *
        sz: unsigned long
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayF_SetData(self, datain, sz, LetArrayManageMemory)
    __swig_destroy__ = _itkArrayPython.delete_itkArrayF

    def Swap(self, other):
        r"""
        Swap(self, other)

        Parameters
        ----------
        other: itkArrayF &

        """
        return _itkArrayPython.itkArrayF_Swap(self, other)

    def __getitem__(self, dim):
        r"""
        __getitem__(self, dim) -> float

        Parameters
        ----------
        dim: unsigned long

        """
        return _itkArrayPython.itkArrayF___getitem__(self, dim)

    def __setitem__(self, dim, v):
        r"""
        __setitem__(self, dim, v)

        Parameters
        ----------
        dim: unsigned long
        v: float

        """
        return _itkArrayPython.itkArrayF___setitem__(self, dim, v)

    def __len__(self):
        r"""__len__(self) -> unsigned int"""
        return _itkArrayPython.itkArrayF___len__(self)

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkArrayPython.itkArrayF___repr__(self)

# Register itkArrayF in _itkArrayPython:
_itkArrayPython.itkArrayF_swigregister(itkArrayF)
class itkArraySL(itk.vnl_vectorPython.vnl_vectorSL):
    r"""Proxy of C++ itkArraySL class."""

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

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

        Parameters
        ----------
        arg0: itkArraySL const &

        __init__(self, arg0) -> itkArraySL

        Parameters
        ----------
        arg0: vnl_vectorSL const &

        __init__(self, dimension) -> itkArraySL

        Parameters
        ----------
        dimension: unsigned long

        __init__(self, dimension, value) -> itkArraySL

        Parameters
        ----------
        dimension: unsigned long
        value: long const &

        __init__(self, datain, sz, LetArrayManageMemory=False) -> itkArraySL

        Parameters
        ----------
        datain: long *
        sz: unsigned long
        LetArrayManageMemory: bool

        __init__(self, datain, sz) -> itkArraySL

        Parameters
        ----------
        datain: long const *
        sz: unsigned long

        """
        _itkArrayPython.itkArraySL_swiginit(self, _itkArrayPython.new_itkArraySL(*args))

    def Fill(self, v):
        r"""
        Fill(self, v)

        Parameters
        ----------
        v: long const &

        """
        return _itkArrayPython.itkArraySL_Fill(self, v)

    def Size(self):
        r"""Size(self) -> unsigned long"""
        return _itkArrayPython.itkArraySL_Size(self)

    def GetNumberOfElements(self):
        r"""GetNumberOfElements(self) -> unsigned int"""
        return _itkArrayPython.itkArraySL_GetNumberOfElements(self)

    def GetElement(self, i):
        r"""
        GetElement(self, i) -> long const &

        Parameters
        ----------
        i: unsigned long

        """
        return _itkArrayPython.itkArraySL_GetElement(self, i)

    def SetElement(self, i, value):
        r"""
        SetElement(self, i, value)

        Parameters
        ----------
        i: unsigned long
        value: long const &

        """
        return _itkArrayPython.itkArraySL_SetElement(self, i, value)

    def SetSize(self, sz):
        r"""
        SetSize(self, sz)

        Parameters
        ----------
        sz: unsigned long

        """
        return _itkArrayPython.itkArraySL_SetSize(self, sz)

    def GetSize(self):
        r"""GetSize(self) -> unsigned long"""
        return _itkArrayPython.itkArraySL_GetSize(self)

    def SetDataSameSize(self, datain, LetArrayManageMemory=False):
        r"""
        SetDataSameSize(self, datain, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: long *
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArraySL_SetDataSameSize(self, datain, LetArrayManageMemory)

    def SetData(self, datain, sz, LetArrayManageMemory=False):
        r"""
        SetData(self, datain, sz, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: long *
        sz: unsigned long
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArraySL_SetData(self, datain, sz, LetArrayManageMemory)
    __swig_destroy__ = _itkArrayPython.delete_itkArraySL

    def Swap(self, other):
        r"""
        Swap(self, other)

        Parameters
        ----------
        other: itkArraySL &

        """
        return _itkArrayPython.itkArraySL_Swap(self, other)

    def __getitem__(self, dim):
        r"""
        __getitem__(self, dim) -> long

        Parameters
        ----------
        dim: unsigned long

        """
        return _itkArrayPython.itkArraySL___getitem__(self, dim)

    def __setitem__(self, dim, v):
        r"""
        __setitem__(self, dim, v)

        Parameters
        ----------
        dim: unsigned long
        v: long

        """
        return _itkArrayPython.itkArraySL___setitem__(self, dim, v)

    def __len__(self):
        r"""__len__(self) -> unsigned int"""
        return _itkArrayPython.itkArraySL___len__(self)

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkArrayPython.itkArraySL___repr__(self)

# Register itkArraySL in _itkArrayPython:
_itkArrayPython.itkArraySL_swigregister(itkArraySL)
class itkArraySLL(itk.vnl_vectorPython.vnl_vectorSLL):
    r"""Proxy of C++ itkArraySLL class."""

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

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

        Parameters
        ----------
        arg0: itkArraySLL const &

        __init__(self, arg0) -> itkArraySLL

        Parameters
        ----------
        arg0: vnl_vectorSLL const &

        __init__(self, dimension) -> itkArraySLL

        Parameters
        ----------
        dimension: unsigned long

        __init__(self, dimension, value) -> itkArraySLL

        Parameters
        ----------
        dimension: unsigned long
        value: long long const &

        __init__(self, datain, sz, LetArrayManageMemory=False) -> itkArraySLL

        Parameters
        ----------
        datain: long long *
        sz: unsigned long
        LetArrayManageMemory: bool

        __init__(self, datain, sz) -> itkArraySLL

        Parameters
        ----------
        datain: long long const *
        sz: unsigned long

        """
        _itkArrayPython.itkArraySLL_swiginit(self, _itkArrayPython.new_itkArraySLL(*args))

    def Fill(self, v):
        r"""
        Fill(self, v)

        Parameters
        ----------
        v: long long const &

        """
        return _itkArrayPython.itkArraySLL_Fill(self, v)

    def Size(self):
        r"""Size(self) -> unsigned long"""
        return _itkArrayPython.itkArraySLL_Size(self)

    def GetNumberOfElements(self):
        r"""GetNumberOfElements(self) -> unsigned int"""
        return _itkArrayPython.itkArraySLL_GetNumberOfElements(self)

    def GetElement(self, i):
        r"""
        GetElement(self, i) -> long long const &

        Parameters
        ----------
        i: unsigned long

        """
        return _itkArrayPython.itkArraySLL_GetElement(self, i)

    def SetElement(self, i, value):
        r"""
        SetElement(self, i, value)

        Parameters
        ----------
        i: unsigned long
        value: long long const &

        """
        return _itkArrayPython.itkArraySLL_SetElement(self, i, value)

    def SetSize(self, sz):
        r"""
        SetSize(self, sz)

        Parameters
        ----------
        sz: unsigned long

        """
        return _itkArrayPython.itkArraySLL_SetSize(self, sz)

    def GetSize(self):
        r"""GetSize(self) -> unsigned long"""
        return _itkArrayPython.itkArraySLL_GetSize(self)

    def SetDataSameSize(self, datain, LetArrayManageMemory=False):
        r"""
        SetDataSameSize(self, datain, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: long long *
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArraySLL_SetDataSameSize(self, datain, LetArrayManageMemory)

    def SetData(self, datain, sz, LetArrayManageMemory=False):
        r"""
        SetData(self, datain, sz, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: long long *
        sz: unsigned long
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArraySLL_SetData(self, datain, sz, LetArrayManageMemory)
    __swig_destroy__ = _itkArrayPython.delete_itkArraySLL

    def Swap(self, other):
        r"""
        Swap(self, other)

        Parameters
        ----------
        other: itkArraySLL &

        """
        return _itkArrayPython.itkArraySLL_Swap(self, other)

    def __getitem__(self, dim):
        r"""
        __getitem__(self, dim) -> long long

        Parameters
        ----------
        dim: unsigned long

        """
        return _itkArrayPython.itkArraySLL___getitem__(self, dim)

    def __setitem__(self, dim, v):
        r"""
        __setitem__(self, dim, v)

        Parameters
        ----------
        dim: unsigned long
        v: long long

        """
        return _itkArrayPython.itkArraySLL___setitem__(self, dim, v)

    def __len__(self):
        r"""__len__(self) -> unsigned int"""
        return _itkArrayPython.itkArraySLL___len__(self)

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkArrayPython.itkArraySLL___repr__(self)

# Register itkArraySLL in _itkArrayPython:
_itkArrayPython.itkArraySLL_swigregister(itkArraySLL)
class itkArrayUI(itk.vnl_vectorPython.vnl_vectorUI):
    r"""Proxy of C++ itkArrayUI class."""

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

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

        Parameters
        ----------
        arg0: itkArrayUI const &

        __init__(self, arg0) -> itkArrayUI

        Parameters
        ----------
        arg0: vnl_vectorUI const &

        __init__(self, dimension) -> itkArrayUI

        Parameters
        ----------
        dimension: unsigned long

        __init__(self, dimension, value) -> itkArrayUI

        Parameters
        ----------
        dimension: unsigned long
        value: unsigned int const &

        __init__(self, datain, sz, LetArrayManageMemory=False) -> itkArrayUI

        Parameters
        ----------
        datain: unsigned int *
        sz: unsigned long
        LetArrayManageMemory: bool

        __init__(self, datain, sz) -> itkArrayUI

        Parameters
        ----------
        datain: unsigned int const *
        sz: unsigned long

        """
        _itkArrayPython.itkArrayUI_swiginit(self, _itkArrayPython.new_itkArrayUI(*args))

    def Fill(self, v):
        r"""
        Fill(self, v)

        Parameters
        ----------
        v: unsigned int const &

        """
        return _itkArrayPython.itkArrayUI_Fill(self, v)

    def Size(self):
        r"""Size(self) -> unsigned long"""
        return _itkArrayPython.itkArrayUI_Size(self)

    def GetNumberOfElements(self):
        r"""GetNumberOfElements(self) -> unsigned int"""
        return _itkArrayPython.itkArrayUI_GetNumberOfElements(self)

    def GetElement(self, i):
        r"""
        GetElement(self, i) -> unsigned int const &

        Parameters
        ----------
        i: unsigned long

        """
        return _itkArrayPython.itkArrayUI_GetElement(self, i)

    def SetElement(self, i, value):
        r"""
        SetElement(self, i, value)

        Parameters
        ----------
        i: unsigned long
        value: unsigned int const &

        """
        return _itkArrayPython.itkArrayUI_SetElement(self, i, value)

    def SetSize(self, sz):
        r"""
        SetSize(self, sz)

        Parameters
        ----------
        sz: unsigned long

        """
        return _itkArrayPython.itkArrayUI_SetSize(self, sz)

    def GetSize(self):
        r"""GetSize(self) -> unsigned long"""
        return _itkArrayPython.itkArrayUI_GetSize(self)

    def SetDataSameSize(self, datain, LetArrayManageMemory=False):
        r"""
        SetDataSameSize(self, datain, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: unsigned int *
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayUI_SetDataSameSize(self, datain, LetArrayManageMemory)

    def SetData(self, datain, sz, LetArrayManageMemory=False):
        r"""
        SetData(self, datain, sz, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: unsigned int *
        sz: unsigned long
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayUI_SetData(self, datain, sz, LetArrayManageMemory)
    __swig_destroy__ = _itkArrayPython.delete_itkArrayUI

    def Swap(self, other):
        r"""
        Swap(self, other)

        Parameters
        ----------
        other: itkArrayUI &

        """
        return _itkArrayPython.itkArrayUI_Swap(self, other)

    def __getitem__(self, dim):
        r"""
        __getitem__(self, dim) -> unsigned int

        Parameters
        ----------
        dim: unsigned long

        """
        return _itkArrayPython.itkArrayUI___getitem__(self, dim)

    def __setitem__(self, dim, v):
        r"""
        __setitem__(self, dim, v)

        Parameters
        ----------
        dim: unsigned long
        v: unsigned int

        """
        return _itkArrayPython.itkArrayUI___setitem__(self, dim, v)

    def __len__(self):
        r"""__len__(self) -> unsigned int"""
        return _itkArrayPython.itkArrayUI___len__(self)

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkArrayPython.itkArrayUI___repr__(self)

# Register itkArrayUI in _itkArrayPython:
_itkArrayPython.itkArrayUI_swigregister(itkArrayUI)
class itkArrayUL(itk.vnl_vectorPython.vnl_vectorUL):
    r"""Proxy of C++ itkArrayUL class."""

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

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

        Parameters
        ----------
        arg0: itkArrayUL const &

        __init__(self, arg0) -> itkArrayUL

        Parameters
        ----------
        arg0: vnl_vectorUL const &

        __init__(self, dimension) -> itkArrayUL

        Parameters
        ----------
        dimension: unsigned long

        __init__(self, dimension, value) -> itkArrayUL

        Parameters
        ----------
        dimension: unsigned long
        value: unsigned long const &

        __init__(self, datain, sz, LetArrayManageMemory=False) -> itkArrayUL

        Parameters
        ----------
        datain: unsigned long *
        sz: unsigned long
        LetArrayManageMemory: bool

        __init__(self, datain, sz) -> itkArrayUL

        Parameters
        ----------
        datain: unsigned long const *
        sz: unsigned long

        """
        _itkArrayPython.itkArrayUL_swiginit(self, _itkArrayPython.new_itkArrayUL(*args))

    def Fill(self, v):
        r"""
        Fill(self, v)

        Parameters
        ----------
        v: unsigned long const &

        """
        return _itkArrayPython.itkArrayUL_Fill(self, v)

    def Size(self):
        r"""Size(self) -> unsigned long"""
        return _itkArrayPython.itkArrayUL_Size(self)

    def GetNumberOfElements(self):
        r"""GetNumberOfElements(self) -> unsigned int"""
        return _itkArrayPython.itkArrayUL_GetNumberOfElements(self)

    def GetElement(self, i):
        r"""
        GetElement(self, i) -> unsigned long const &

        Parameters
        ----------
        i: unsigned long

        """
        return _itkArrayPython.itkArrayUL_GetElement(self, i)

    def SetElement(self, i, value):
        r"""
        SetElement(self, i, value)

        Parameters
        ----------
        i: unsigned long
        value: unsigned long const &

        """
        return _itkArrayPython.itkArrayUL_SetElement(self, i, value)

    def SetSize(self, sz):
        r"""
        SetSize(self, sz)

        Parameters
        ----------
        sz: unsigned long

        """
        return _itkArrayPython.itkArrayUL_SetSize(self, sz)

    def GetSize(self):
        r"""GetSize(self) -> unsigned long"""
        return _itkArrayPython.itkArrayUL_GetSize(self)

    def SetDataSameSize(self, datain, LetArrayManageMemory=False):
        r"""
        SetDataSameSize(self, datain, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: unsigned long *
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayUL_SetDataSameSize(self, datain, LetArrayManageMemory)

    def SetData(self, datain, sz, LetArrayManageMemory=False):
        r"""
        SetData(self, datain, sz, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: unsigned long *
        sz: unsigned long
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayUL_SetData(self, datain, sz, LetArrayManageMemory)
    __swig_destroy__ = _itkArrayPython.delete_itkArrayUL

    def Swap(self, other):
        r"""
        Swap(self, other)

        Parameters
        ----------
        other: itkArrayUL &

        """
        return _itkArrayPython.itkArrayUL_Swap(self, other)

    def __getitem__(self, dim):
        r"""
        __getitem__(self, dim) -> unsigned long

        Parameters
        ----------
        dim: unsigned long

        """
        return _itkArrayPython.itkArrayUL___getitem__(self, dim)

    def __setitem__(self, dim, v):
        r"""
        __setitem__(self, dim, v)

        Parameters
        ----------
        dim: unsigned long
        v: unsigned long

        """
        return _itkArrayPython.itkArrayUL___setitem__(self, dim, v)

    def __len__(self):
        r"""__len__(self) -> unsigned int"""
        return _itkArrayPython.itkArrayUL___len__(self)

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkArrayPython.itkArrayUL___repr__(self)

# Register itkArrayUL in _itkArrayPython:
_itkArrayPython.itkArrayUL_swigregister(itkArrayUL)
class itkArrayULL(itk.vnl_vectorPython.vnl_vectorULL):
    r"""Proxy of C++ itkArrayULL class."""

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

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

        Parameters
        ----------
        arg0: itkArrayULL const &

        __init__(self, arg0) -> itkArrayULL

        Parameters
        ----------
        arg0: vnl_vectorULL const &

        __init__(self, dimension) -> itkArrayULL

        Parameters
        ----------
        dimension: unsigned long

        __init__(self, dimension, value) -> itkArrayULL

        Parameters
        ----------
        dimension: unsigned long
        value: unsigned long long const &

        __init__(self, datain, sz, LetArrayManageMemory=False) -> itkArrayULL

        Parameters
        ----------
        datain: unsigned long long *
        sz: unsigned long
        LetArrayManageMemory: bool

        __init__(self, datain, sz) -> itkArrayULL

        Parameters
        ----------
        datain: unsigned long long const *
        sz: unsigned long

        """
        _itkArrayPython.itkArrayULL_swiginit(self, _itkArrayPython.new_itkArrayULL(*args))

    def Fill(self, v):
        r"""
        Fill(self, v)

        Parameters
        ----------
        v: unsigned long long const &

        """
        return _itkArrayPython.itkArrayULL_Fill(self, v)

    def Size(self):
        r"""Size(self) -> unsigned long"""
        return _itkArrayPython.itkArrayULL_Size(self)

    def GetNumberOfElements(self):
        r"""GetNumberOfElements(self) -> unsigned int"""
        return _itkArrayPython.itkArrayULL_GetNumberOfElements(self)

    def GetElement(self, i):
        r"""
        GetElement(self, i) -> unsigned long long const &

        Parameters
        ----------
        i: unsigned long

        """
        return _itkArrayPython.itkArrayULL_GetElement(self, i)

    def SetElement(self, i, value):
        r"""
        SetElement(self, i, value)

        Parameters
        ----------
        i: unsigned long
        value: unsigned long long const &

        """
        return _itkArrayPython.itkArrayULL_SetElement(self, i, value)

    def SetSize(self, sz):
        r"""
        SetSize(self, sz)

        Parameters
        ----------
        sz: unsigned long

        """
        return _itkArrayPython.itkArrayULL_SetSize(self, sz)

    def GetSize(self):
        r"""GetSize(self) -> unsigned long"""
        return _itkArrayPython.itkArrayULL_GetSize(self)

    def SetDataSameSize(self, datain, LetArrayManageMemory=False):
        r"""
        SetDataSameSize(self, datain, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: unsigned long long *
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayULL_SetDataSameSize(self, datain, LetArrayManageMemory)

    def SetData(self, datain, sz, LetArrayManageMemory=False):
        r"""
        SetData(self, datain, sz, LetArrayManageMemory=False)

        Parameters
        ----------
        datain: unsigned long long *
        sz: unsigned long
        LetArrayManageMemory: bool

        """
        return _itkArrayPython.itkArrayULL_SetData(self, datain, sz, LetArrayManageMemory)
    __swig_destroy__ = _itkArrayPython.delete_itkArrayULL

    def Swap(self, other):
        r"""
        Swap(self, other)

        Parameters
        ----------
        other: itkArrayULL &

        """
        return _itkArrayPython.itkArrayULL_Swap(self, other)

    def __getitem__(self, dim):
        r"""
        __getitem__(self, dim) -> unsigned long long

        Parameters
        ----------
        dim: unsigned long

        """
        return _itkArrayPython.itkArrayULL___getitem__(self, dim)

    def __setitem__(self, dim, v):
        r"""
        __setitem__(self, dim, v)

        Parameters
        ----------
        dim: unsigned long
        v: unsigned long long

        """
        return _itkArrayPython.itkArrayULL___setitem__(self, dim, v)

    def __len__(self):
        r"""__len__(self) -> unsigned int"""
        return _itkArrayPython.itkArrayULL___len__(self)

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkArrayPython.itkArrayULL___repr__(self)

# Register itkArrayULL in _itkArrayPython:
_itkArrayPython.itkArrayULL_swigregister(itkArrayULL)

