# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.3.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.


import collections

from sys import version_info as _version_info
if _version_info < (3, 7, 0):
    raise RuntimeError("Python 3.7 or later required")

from . import _ITKCommonPython


from . import _ITKCommonPython



from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _itkOffsetPython
else:
    import _itkOffsetPython

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.itkSizePython
import itk.pyBasePython
class itkOffset1(object):
    r"""Proxy of C++ itkOffset1 class."""

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

    @staticmethod
    def GetOffsetDimension():
        r"""GetOffsetDimension() -> unsigned int"""
        return _itkOffsetPython.itkOffset1_GetOffsetDimension()

    def __add__(self, *args):
        r"""
        __add__(self, vec) -> itkOffset1

        Parameters
        ----------
        vec: itkOffset1 const &

        __add__(self, sz) -> itkOffset1

        Parameters
        ----------
        sz: itkSize1 const &

        """
        return _itkOffsetPython.itkOffset1___add__(self, *args)

    def __sub__(self, vec):
        r"""
        __sub__(self, vec) -> itkOffset1

        Parameters
        ----------
        vec: itkOffset1 const &

        """
        return _itkOffsetPython.itkOffset1___sub__(self, vec)

    def __iadd__(self, *args):
        r"""
        __iadd__(self, sz) -> itkOffset1

        Parameters
        ----------
        sz: itkSize1 const &

        __iadd__(self, vec) -> itkOffset1

        Parameters
        ----------
        vec: itkOffset1 const &

        """
        return _itkOffsetPython.itkOffset1___iadd__(self, *args)

    def __isub__(self, *args):
        r"""
        __isub__(self, sz) -> itkOffset1

        Parameters
        ----------
        sz: itkSize1 const &

        __isub__(self, vec) -> itkOffset1

        Parameters
        ----------
        vec: itkOffset1 const &

        """
        return _itkOffsetPython.itkOffset1___isub__(self, *args)

    def GetOffset(self):
        r"""GetOffset(self) -> long const *"""
        return _itkOffsetPython.itkOffset1_GetOffset(self)

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

        Parameters
        ----------
        val: long const *

        """
        return _itkOffsetPython.itkOffset1_SetOffset(self, val)

    def SetElement(self, element, val):
        r"""
        SetElement(self, element, val)

        Parameters
        ----------
        element: unsigned long
        val: long

        """
        return _itkOffsetPython.itkOffset1_SetElement(self, element, val)

    def GetElement(self, element):
        r"""
        GetElement(self, element) -> long

        Parameters
        ----------
        element: unsigned long

        """
        return _itkOffsetPython.itkOffset1_GetElement(self, element)

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

        Parameters
        ----------
        value: long

        """
        return _itkOffsetPython.itkOffset1_Fill(self, value)

    @staticmethod
    def GetBasisOffset(dim):
        r"""
        GetBasisOffset(dim) -> itkOffset1

        Parameters
        ----------
        dim: unsigned int

        """
        return _itkOffsetPython.itkOffset1_GetBasisOffset(dim)

    def assign(self, newValue):
        r"""
        assign(self, newValue)

        Parameters
        ----------
        newValue: long const &

        """
        return _itkOffsetPython.itkOffset1_assign(self, newValue)

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

        Parameters
        ----------
        other: itkOffset1 &

        """
        return _itkOffsetPython.itkOffset1_swap(self, other)

    def cbegin(self):
        r"""cbegin(self) -> long const *"""
        return _itkOffsetPython.itkOffset1_cbegin(self)

    def begin(self, *args):
        r"""
        begin(self) -> long
        begin(self) -> long const *
        """
        return _itkOffsetPython.itkOffset1_begin(self, *args)

    def cend(self):
        r"""cend(self) -> long const *"""
        return _itkOffsetPython.itkOffset1_cend(self)

    def end(self, *args):
        r"""
        end(self) -> long
        end(self) -> long const *
        """
        return _itkOffsetPython.itkOffset1_end(self, *args)

    def rbegin(self, *args):
        r"""
        rbegin(self) -> std::reverse_iterator< long * >
        rbegin(self) -> std::reverse_iterator< long const * >
        """
        return _itkOffsetPython.itkOffset1_rbegin(self, *args)

    def rend(self, *args):
        r"""
        rend(self) -> std::reverse_iterator< long * >
        rend(self) -> std::reverse_iterator< long const * >
        """
        return _itkOffsetPython.itkOffset1_rend(self, *args)

    def size(self):
        r"""size(self) -> unsigned int"""
        return _itkOffsetPython.itkOffset1_size(self)

    def max_size(self):
        r"""max_size(self) -> unsigned int"""
        return _itkOffsetPython.itkOffset1_max_size(self)

    def empty(self):
        r"""empty(self) -> bool"""
        return _itkOffsetPython.itkOffset1_empty(self)

    def at(self, *args):
        r"""
        at(self, pos) -> long

        Parameters
        ----------
        pos: unsigned int

        at(self, pos) -> long const &

        Parameters
        ----------
        pos: unsigned int

        """
        return _itkOffsetPython.itkOffset1_at(self, *args)

    def front(self, *args):
        r"""
        front(self) -> long
        front(self) -> long const &
        """
        return _itkOffsetPython.itkOffset1_front(self, *args)

    def back(self, *args):
        r"""
        back(self) -> long
        back(self) -> long const &
        """
        return _itkOffsetPython.itkOffset1_back(self, *args)

    def data(self, *args):
        r"""
        data(self) -> long
        data(self) -> long const *
        """
        return _itkOffsetPython.itkOffset1_data(self, *args)

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

        Parameters
        ----------
        arg0: itkOffset1 const &

        """
        _itkOffsetPython.itkOffset1_swiginit(self, _itkOffsetPython.new_itkOffset1(*args))
    __swig_destroy__ = _itkOffsetPython.delete_itkOffset1

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

        Parameters
        ----------
        d: unsigned long

        """
        return _itkOffsetPython.itkOffset1___getitem__(self, d)

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

        Parameters
        ----------
        d: unsigned long
        v: long

        """
        return _itkOffsetPython.itkOffset1___setitem__(self, d, v)

    @staticmethod
    def __len__():
        r"""__len__() -> unsigned int"""
        return _itkOffsetPython.itkOffset1___len__()

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkOffsetPython.itkOffset1___repr__(self)

    def __eq__(self, other):
        return tuple(self) == tuple(other)


# Register itkOffset1 in _itkOffsetPython:
_itkOffsetPython.itkOffset1_swigregister(itkOffset1)
class itkOffset2(object):
    r"""Proxy of C++ itkOffset2 class."""

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

    @staticmethod
    def GetOffsetDimension():
        r"""GetOffsetDimension() -> unsigned int"""
        return _itkOffsetPython.itkOffset2_GetOffsetDimension()

    def __add__(self, *args):
        r"""
        __add__(self, vec) -> itkOffset2

        Parameters
        ----------
        vec: itkOffset2 const &

        __add__(self, sz) -> itkOffset2

        Parameters
        ----------
        sz: itkSize2 const &

        """
        return _itkOffsetPython.itkOffset2___add__(self, *args)

    def __sub__(self, vec):
        r"""
        __sub__(self, vec) -> itkOffset2

        Parameters
        ----------
        vec: itkOffset2 const &

        """
        return _itkOffsetPython.itkOffset2___sub__(self, vec)

    def __iadd__(self, *args):
        r"""
        __iadd__(self, sz) -> itkOffset2

        Parameters
        ----------
        sz: itkSize2 const &

        __iadd__(self, vec) -> itkOffset2

        Parameters
        ----------
        vec: itkOffset2 const &

        """
        return _itkOffsetPython.itkOffset2___iadd__(self, *args)

    def __isub__(self, *args):
        r"""
        __isub__(self, sz) -> itkOffset2

        Parameters
        ----------
        sz: itkSize2 const &

        __isub__(self, vec) -> itkOffset2

        Parameters
        ----------
        vec: itkOffset2 const &

        """
        return _itkOffsetPython.itkOffset2___isub__(self, *args)

    def GetOffset(self):
        r"""GetOffset(self) -> long const *"""
        return _itkOffsetPython.itkOffset2_GetOffset(self)

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

        Parameters
        ----------
        val: long const *

        """
        return _itkOffsetPython.itkOffset2_SetOffset(self, val)

    def SetElement(self, element, val):
        r"""
        SetElement(self, element, val)

        Parameters
        ----------
        element: unsigned long
        val: long

        """
        return _itkOffsetPython.itkOffset2_SetElement(self, element, val)

    def GetElement(self, element):
        r"""
        GetElement(self, element) -> long

        Parameters
        ----------
        element: unsigned long

        """
        return _itkOffsetPython.itkOffset2_GetElement(self, element)

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

        Parameters
        ----------
        value: long

        """
        return _itkOffsetPython.itkOffset2_Fill(self, value)

    @staticmethod
    def GetBasisOffset(dim):
        r"""
        GetBasisOffset(dim) -> itkOffset2

        Parameters
        ----------
        dim: unsigned int

        """
        return _itkOffsetPython.itkOffset2_GetBasisOffset(dim)

    def assign(self, newValue):
        r"""
        assign(self, newValue)

        Parameters
        ----------
        newValue: long const &

        """
        return _itkOffsetPython.itkOffset2_assign(self, newValue)

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

        Parameters
        ----------
        other: itkOffset2 &

        """
        return _itkOffsetPython.itkOffset2_swap(self, other)

    def cbegin(self):
        r"""cbegin(self) -> long const *"""
        return _itkOffsetPython.itkOffset2_cbegin(self)

    def begin(self, *args):
        r"""
        begin(self) -> long
        begin(self) -> long const *
        """
        return _itkOffsetPython.itkOffset2_begin(self, *args)

    def cend(self):
        r"""cend(self) -> long const *"""
        return _itkOffsetPython.itkOffset2_cend(self)

    def end(self, *args):
        r"""
        end(self) -> long
        end(self) -> long const *
        """
        return _itkOffsetPython.itkOffset2_end(self, *args)

    def rbegin(self, *args):
        r"""
        rbegin(self) -> std::reverse_iterator< long * >
        rbegin(self) -> std::reverse_iterator< long const * >
        """
        return _itkOffsetPython.itkOffset2_rbegin(self, *args)

    def rend(self, *args):
        r"""
        rend(self) -> std::reverse_iterator< long * >
        rend(self) -> std::reverse_iterator< long const * >
        """
        return _itkOffsetPython.itkOffset2_rend(self, *args)

    def size(self):
        r"""size(self) -> unsigned int"""
        return _itkOffsetPython.itkOffset2_size(self)

    def max_size(self):
        r"""max_size(self) -> unsigned int"""
        return _itkOffsetPython.itkOffset2_max_size(self)

    def empty(self):
        r"""empty(self) -> bool"""
        return _itkOffsetPython.itkOffset2_empty(self)

    def at(self, *args):
        r"""
        at(self, pos) -> long

        Parameters
        ----------
        pos: unsigned int

        at(self, pos) -> long const &

        Parameters
        ----------
        pos: unsigned int

        """
        return _itkOffsetPython.itkOffset2_at(self, *args)

    def front(self, *args):
        r"""
        front(self) -> long
        front(self) -> long const &
        """
        return _itkOffsetPython.itkOffset2_front(self, *args)

    def back(self, *args):
        r"""
        back(self) -> long
        back(self) -> long const &
        """
        return _itkOffsetPython.itkOffset2_back(self, *args)

    def data(self, *args):
        r"""
        data(self) -> long
        data(self) -> long const *
        """
        return _itkOffsetPython.itkOffset2_data(self, *args)

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

        Parameters
        ----------
        arg0: itkOffset2 const &

        """
        _itkOffsetPython.itkOffset2_swiginit(self, _itkOffsetPython.new_itkOffset2(*args))
    __swig_destroy__ = _itkOffsetPython.delete_itkOffset2

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

        Parameters
        ----------
        d: unsigned long

        """
        return _itkOffsetPython.itkOffset2___getitem__(self, d)

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

        Parameters
        ----------
        d: unsigned long
        v: long

        """
        return _itkOffsetPython.itkOffset2___setitem__(self, d, v)

    @staticmethod
    def __len__():
        r"""__len__() -> unsigned int"""
        return _itkOffsetPython.itkOffset2___len__()

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkOffsetPython.itkOffset2___repr__(self)

    def __eq__(self, other):
        return tuple(self) == tuple(other)


# Register itkOffset2 in _itkOffsetPython:
_itkOffsetPython.itkOffset2_swigregister(itkOffset2)
class itkOffset3(object):
    r"""Proxy of C++ itkOffset3 class."""

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

    @staticmethod
    def GetOffsetDimension():
        r"""GetOffsetDimension() -> unsigned int"""
        return _itkOffsetPython.itkOffset3_GetOffsetDimension()

    def __add__(self, *args):
        r"""
        __add__(self, vec) -> itkOffset3

        Parameters
        ----------
        vec: itkOffset3 const &

        __add__(self, sz) -> itkOffset3

        Parameters
        ----------
        sz: itkSize3 const &

        """
        return _itkOffsetPython.itkOffset3___add__(self, *args)

    def __sub__(self, vec):
        r"""
        __sub__(self, vec) -> itkOffset3

        Parameters
        ----------
        vec: itkOffset3 const &

        """
        return _itkOffsetPython.itkOffset3___sub__(self, vec)

    def __iadd__(self, *args):
        r"""
        __iadd__(self, sz) -> itkOffset3

        Parameters
        ----------
        sz: itkSize3 const &

        __iadd__(self, vec) -> itkOffset3

        Parameters
        ----------
        vec: itkOffset3 const &

        """
        return _itkOffsetPython.itkOffset3___iadd__(self, *args)

    def __isub__(self, *args):
        r"""
        __isub__(self, sz) -> itkOffset3

        Parameters
        ----------
        sz: itkSize3 const &

        __isub__(self, vec) -> itkOffset3

        Parameters
        ----------
        vec: itkOffset3 const &

        """
        return _itkOffsetPython.itkOffset3___isub__(self, *args)

    def GetOffset(self):
        r"""GetOffset(self) -> long const *"""
        return _itkOffsetPython.itkOffset3_GetOffset(self)

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

        Parameters
        ----------
        val: long const *

        """
        return _itkOffsetPython.itkOffset3_SetOffset(self, val)

    def SetElement(self, element, val):
        r"""
        SetElement(self, element, val)

        Parameters
        ----------
        element: unsigned long
        val: long

        """
        return _itkOffsetPython.itkOffset3_SetElement(self, element, val)

    def GetElement(self, element):
        r"""
        GetElement(self, element) -> long

        Parameters
        ----------
        element: unsigned long

        """
        return _itkOffsetPython.itkOffset3_GetElement(self, element)

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

        Parameters
        ----------
        value: long

        """
        return _itkOffsetPython.itkOffset3_Fill(self, value)

    @staticmethod
    def GetBasisOffset(dim):
        r"""
        GetBasisOffset(dim) -> itkOffset3

        Parameters
        ----------
        dim: unsigned int

        """
        return _itkOffsetPython.itkOffset3_GetBasisOffset(dim)

    def assign(self, newValue):
        r"""
        assign(self, newValue)

        Parameters
        ----------
        newValue: long const &

        """
        return _itkOffsetPython.itkOffset3_assign(self, newValue)

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

        Parameters
        ----------
        other: itkOffset3 &

        """
        return _itkOffsetPython.itkOffset3_swap(self, other)

    def cbegin(self):
        r"""cbegin(self) -> long const *"""
        return _itkOffsetPython.itkOffset3_cbegin(self)

    def begin(self, *args):
        r"""
        begin(self) -> long
        begin(self) -> long const *
        """
        return _itkOffsetPython.itkOffset3_begin(self, *args)

    def cend(self):
        r"""cend(self) -> long const *"""
        return _itkOffsetPython.itkOffset3_cend(self)

    def end(self, *args):
        r"""
        end(self) -> long
        end(self) -> long const *
        """
        return _itkOffsetPython.itkOffset3_end(self, *args)

    def rbegin(self, *args):
        r"""
        rbegin(self) -> std::reverse_iterator< long * >
        rbegin(self) -> std::reverse_iterator< long const * >
        """
        return _itkOffsetPython.itkOffset3_rbegin(self, *args)

    def rend(self, *args):
        r"""
        rend(self) -> std::reverse_iterator< long * >
        rend(self) -> std::reverse_iterator< long const * >
        """
        return _itkOffsetPython.itkOffset3_rend(self, *args)

    def size(self):
        r"""size(self) -> unsigned int"""
        return _itkOffsetPython.itkOffset3_size(self)

    def max_size(self):
        r"""max_size(self) -> unsigned int"""
        return _itkOffsetPython.itkOffset3_max_size(self)

    def empty(self):
        r"""empty(self) -> bool"""
        return _itkOffsetPython.itkOffset3_empty(self)

    def at(self, *args):
        r"""
        at(self, pos) -> long

        Parameters
        ----------
        pos: unsigned int

        at(self, pos) -> long const &

        Parameters
        ----------
        pos: unsigned int

        """
        return _itkOffsetPython.itkOffset3_at(self, *args)

    def front(self, *args):
        r"""
        front(self) -> long
        front(self) -> long const &
        """
        return _itkOffsetPython.itkOffset3_front(self, *args)

    def back(self, *args):
        r"""
        back(self) -> long
        back(self) -> long const &
        """
        return _itkOffsetPython.itkOffset3_back(self, *args)

    def data(self, *args):
        r"""
        data(self) -> long
        data(self) -> long const *
        """
        return _itkOffsetPython.itkOffset3_data(self, *args)

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

        Parameters
        ----------
        arg0: itkOffset3 const &

        """
        _itkOffsetPython.itkOffset3_swiginit(self, _itkOffsetPython.new_itkOffset3(*args))
    __swig_destroy__ = _itkOffsetPython.delete_itkOffset3

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

        Parameters
        ----------
        d: unsigned long

        """
        return _itkOffsetPython.itkOffset3___getitem__(self, d)

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

        Parameters
        ----------
        d: unsigned long
        v: long

        """
        return _itkOffsetPython.itkOffset3___setitem__(self, d, v)

    @staticmethod
    def __len__():
        r"""__len__() -> unsigned int"""
        return _itkOffsetPython.itkOffset3___len__()

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkOffsetPython.itkOffset3___repr__(self)

    def __eq__(self, other):
        return tuple(self) == tuple(other)


# Register itkOffset3 in _itkOffsetPython:
_itkOffsetPython.itkOffset3_swigregister(itkOffset3)
class itkOffset4(object):
    r"""Proxy of C++ itkOffset4 class."""

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

    @staticmethod
    def GetOffsetDimension():
        r"""GetOffsetDimension() -> unsigned int"""
        return _itkOffsetPython.itkOffset4_GetOffsetDimension()

    def __add__(self, *args):
        r"""
        __add__(self, vec) -> itkOffset4

        Parameters
        ----------
        vec: itkOffset4 const &

        __add__(self, sz) -> itkOffset4

        Parameters
        ----------
        sz: itkSize4 const &

        """
        return _itkOffsetPython.itkOffset4___add__(self, *args)

    def __sub__(self, vec):
        r"""
        __sub__(self, vec) -> itkOffset4

        Parameters
        ----------
        vec: itkOffset4 const &

        """
        return _itkOffsetPython.itkOffset4___sub__(self, vec)

    def __iadd__(self, *args):
        r"""
        __iadd__(self, sz) -> itkOffset4

        Parameters
        ----------
        sz: itkSize4 const &

        __iadd__(self, vec) -> itkOffset4

        Parameters
        ----------
        vec: itkOffset4 const &

        """
        return _itkOffsetPython.itkOffset4___iadd__(self, *args)

    def __isub__(self, *args):
        r"""
        __isub__(self, sz) -> itkOffset4

        Parameters
        ----------
        sz: itkSize4 const &

        __isub__(self, vec) -> itkOffset4

        Parameters
        ----------
        vec: itkOffset4 const &

        """
        return _itkOffsetPython.itkOffset4___isub__(self, *args)

    def GetOffset(self):
        r"""GetOffset(self) -> long const *"""
        return _itkOffsetPython.itkOffset4_GetOffset(self)

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

        Parameters
        ----------
        val: long const *

        """
        return _itkOffsetPython.itkOffset4_SetOffset(self, val)

    def SetElement(self, element, val):
        r"""
        SetElement(self, element, val)

        Parameters
        ----------
        element: unsigned long
        val: long

        """
        return _itkOffsetPython.itkOffset4_SetElement(self, element, val)

    def GetElement(self, element):
        r"""
        GetElement(self, element) -> long

        Parameters
        ----------
        element: unsigned long

        """
        return _itkOffsetPython.itkOffset4_GetElement(self, element)

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

        Parameters
        ----------
        value: long

        """
        return _itkOffsetPython.itkOffset4_Fill(self, value)

    @staticmethod
    def GetBasisOffset(dim):
        r"""
        GetBasisOffset(dim) -> itkOffset4

        Parameters
        ----------
        dim: unsigned int

        """
        return _itkOffsetPython.itkOffset4_GetBasisOffset(dim)

    def assign(self, newValue):
        r"""
        assign(self, newValue)

        Parameters
        ----------
        newValue: long const &

        """
        return _itkOffsetPython.itkOffset4_assign(self, newValue)

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

        Parameters
        ----------
        other: itkOffset4 &

        """
        return _itkOffsetPython.itkOffset4_swap(self, other)

    def cbegin(self):
        r"""cbegin(self) -> long const *"""
        return _itkOffsetPython.itkOffset4_cbegin(self)

    def begin(self, *args):
        r"""
        begin(self) -> long
        begin(self) -> long const *
        """
        return _itkOffsetPython.itkOffset4_begin(self, *args)

    def cend(self):
        r"""cend(self) -> long const *"""
        return _itkOffsetPython.itkOffset4_cend(self)

    def end(self, *args):
        r"""
        end(self) -> long
        end(self) -> long const *
        """
        return _itkOffsetPython.itkOffset4_end(self, *args)

    def rbegin(self, *args):
        r"""
        rbegin(self) -> std::reverse_iterator< long * >
        rbegin(self) -> std::reverse_iterator< long const * >
        """
        return _itkOffsetPython.itkOffset4_rbegin(self, *args)

    def rend(self, *args):
        r"""
        rend(self) -> std::reverse_iterator< long * >
        rend(self) -> std::reverse_iterator< long const * >
        """
        return _itkOffsetPython.itkOffset4_rend(self, *args)

    def size(self):
        r"""size(self) -> unsigned int"""
        return _itkOffsetPython.itkOffset4_size(self)

    def max_size(self):
        r"""max_size(self) -> unsigned int"""
        return _itkOffsetPython.itkOffset4_max_size(self)

    def empty(self):
        r"""empty(self) -> bool"""
        return _itkOffsetPython.itkOffset4_empty(self)

    def at(self, *args):
        r"""
        at(self, pos) -> long

        Parameters
        ----------
        pos: unsigned int

        at(self, pos) -> long const &

        Parameters
        ----------
        pos: unsigned int

        """
        return _itkOffsetPython.itkOffset4_at(self, *args)

    def front(self, *args):
        r"""
        front(self) -> long
        front(self) -> long const &
        """
        return _itkOffsetPython.itkOffset4_front(self, *args)

    def back(self, *args):
        r"""
        back(self) -> long
        back(self) -> long const &
        """
        return _itkOffsetPython.itkOffset4_back(self, *args)

    def data(self, *args):
        r"""
        data(self) -> long
        data(self) -> long const *
        """
        return _itkOffsetPython.itkOffset4_data(self, *args)

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

        Parameters
        ----------
        arg0: itkOffset4 const &

        """
        _itkOffsetPython.itkOffset4_swiginit(self, _itkOffsetPython.new_itkOffset4(*args))
    __swig_destroy__ = _itkOffsetPython.delete_itkOffset4

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

        Parameters
        ----------
        d: unsigned long

        """
        return _itkOffsetPython.itkOffset4___getitem__(self, d)

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

        Parameters
        ----------
        d: unsigned long
        v: long

        """
        return _itkOffsetPython.itkOffset4___setitem__(self, d, v)

    @staticmethod
    def __len__():
        r"""__len__() -> unsigned int"""
        return _itkOffsetPython.itkOffset4___len__()

    def __repr__(self):
        r"""__repr__(self) -> std::string"""
        return _itkOffsetPython.itkOffset4___repr__(self)

    def __eq__(self, other):
        return tuple(self) == tuple(other)


# Register itkOffset4 in _itkOffsetPython:
_itkOffsetPython.itkOffset4_swigregister(itkOffset4)

