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

"""
Bnd module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_bnd.html
"""

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _Bnd
else:
    import _Bnd

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

_swig_new_instance_method = _Bnd.SWIG_PyInstanceMethod_New
_swig_new_static_method = _Bnd.SWIG_PyStaticMethod_New

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 == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, 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__)


class SwigPyIterator(object):
    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
    __swig_destroy__ = _Bnd.delete_SwigPyIterator
    value = _swig_new_instance_method(_Bnd.SwigPyIterator_value)
    incr = _swig_new_instance_method(_Bnd.SwigPyIterator_incr)
    decr = _swig_new_instance_method(_Bnd.SwigPyIterator_decr)
    distance = _swig_new_instance_method(_Bnd.SwigPyIterator_distance)
    equal = _swig_new_instance_method(_Bnd.SwigPyIterator_equal)
    copy = _swig_new_instance_method(_Bnd.SwigPyIterator_copy)
    next = _swig_new_instance_method(_Bnd.SwigPyIterator_next)
    __next__ = _swig_new_instance_method(_Bnd.SwigPyIterator___next__)
    previous = _swig_new_instance_method(_Bnd.SwigPyIterator_previous)
    advance = _swig_new_instance_method(_Bnd.SwigPyIterator_advance)
    __eq__ = _swig_new_instance_method(_Bnd.SwigPyIterator___eq__)
    __ne__ = _swig_new_instance_method(_Bnd.SwigPyIterator___ne__)
    __iadd__ = _swig_new_instance_method(_Bnd.SwigPyIterator___iadd__)
    __isub__ = _swig_new_instance_method(_Bnd.SwigPyIterator___isub__)
    __add__ = _swig_new_instance_method(_Bnd.SwigPyIterator___add__)
    __sub__ = _swig_new_instance_method(_Bnd.SwigPyIterator___sub__)
    def __iter__(self):
        return self

# Register SwigPyIterator in _Bnd:
_Bnd.SwigPyIterator_swigregister(SwigPyIterator)


def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


from six import with_metaclass
import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.TColgp
import OCC.Core.BVH
Handle_Bnd_HArray1OfBox_Create = _Bnd.Handle_Bnd_HArray1OfBox_Create
Handle_Bnd_HArray1OfBox_DownCast = _Bnd.Handle_Bnd_HArray1OfBox_DownCast
Handle_Bnd_HArray1OfBox_IsNull = _Bnd.Handle_Bnd_HArray1OfBox_IsNull
Handle_Bnd_HArray1OfSphere_Create = _Bnd.Handle_Bnd_HArray1OfSphere_Create
Handle_Bnd_HArray1OfSphere_DownCast = _Bnd.Handle_Bnd_HArray1OfSphere_DownCast
Handle_Bnd_HArray1OfSphere_IsNull = _Bnd.Handle_Bnd_HArray1OfSphere_IsNull
Handle_Bnd_HArray1OfBox2d_Create = _Bnd.Handle_Bnd_HArray1OfBox2d_Create
Handle_Bnd_HArray1OfBox2d_DownCast = _Bnd.Handle_Bnd_HArray1OfBox2d_DownCast
Handle_Bnd_HArray1OfBox2d_IsNull = _Bnd.Handle_Bnd_HArray1OfBox2d_IsNull
class Bnd_Array1OfSphere(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_begin)
    end = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_end)
    cbegin = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_cbegin)
    cend = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_cend)

    def __init__(self, *args):
        _Bnd.Bnd_Array1OfSphere_swiginit(self, _Bnd.new_Bnd_Array1OfSphere(*args))
    Init = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Init)
    Size = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Size)
    Length = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Length)
    IsEmpty = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_IsEmpty)
    Lower = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Lower)
    Upper = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Upper)
    IsDeletable = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_IsDeletable)
    IsAllocated = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_IsAllocated)
    Assign = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Assign)
    Move = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Move)
    Set = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Set)
    First = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_First)
    ChangeFirst = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_ChangeFirst)
    Last = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Last)
    ChangeLast = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_ChangeLast)
    Value = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Value)
    ChangeValue = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_ChangeValue)
    __call__ = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere___call__)
    SetValue = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_SetValue)
    Resize = _swig_new_instance_method(_Bnd.Bnd_Array1OfSphere_Resize)
    __swig_destroy__ = _Bnd.delete_Bnd_Array1OfSphere

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

    def __len__(self):
        return self.Length()

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register Bnd_Array1OfSphere in _Bnd:
_Bnd.Bnd_Array1OfSphere_swigregister(Bnd_Array1OfSphere)

class Bnd_Array1OfBox(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_begin)
    end = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_end)
    cbegin = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_cbegin)
    cend = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_cend)

    def __init__(self, *args):
        _Bnd.Bnd_Array1OfBox_swiginit(self, _Bnd.new_Bnd_Array1OfBox(*args))
    Init = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Init)
    Size = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Size)
    Length = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Length)
    IsEmpty = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_IsEmpty)
    Lower = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Lower)
    Upper = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Upper)
    IsDeletable = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_IsDeletable)
    IsAllocated = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_IsAllocated)
    Assign = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Assign)
    Move = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Move)
    Set = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Set)
    First = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_First)
    ChangeFirst = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_ChangeFirst)
    Last = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Last)
    ChangeLast = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_ChangeLast)
    Value = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Value)
    ChangeValue = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_ChangeValue)
    __call__ = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox___call__)
    SetValue = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_SetValue)
    Resize = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox_Resize)
    __swig_destroy__ = _Bnd.delete_Bnd_Array1OfBox

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

    def __len__(self):
        return self.Length()

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register Bnd_Array1OfBox in _Bnd:
_Bnd.Bnd_Array1OfBox_swigregister(Bnd_Array1OfBox)

class Bnd_Array1OfBox2d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_begin)
    end = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_end)
    cbegin = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_cbegin)
    cend = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_cend)

    def __init__(self, *args):
        _Bnd.Bnd_Array1OfBox2d_swiginit(self, _Bnd.new_Bnd_Array1OfBox2d(*args))
    Init = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Init)
    Size = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Size)
    Length = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Length)
    IsEmpty = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_IsEmpty)
    Lower = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Lower)
    Upper = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Upper)
    IsDeletable = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_IsDeletable)
    IsAllocated = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_IsAllocated)
    Assign = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Assign)
    Move = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Move)
    Set = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Set)
    First = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_First)
    ChangeFirst = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_ChangeFirst)
    Last = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Last)
    ChangeLast = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_ChangeLast)
    Value = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Value)
    ChangeValue = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_ChangeValue)
    __call__ = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d___call__)
    SetValue = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_SetValue)
    Resize = _swig_new_instance_method(_Bnd.Bnd_Array1OfBox2d_Resize)
    __swig_destroy__ = _Bnd.delete_Bnd_Array1OfBox2d

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

    def __len__(self):
        return self.Length()

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register Bnd_Array1OfBox2d in _Bnd:
_Bnd.Bnd_Array1OfBox2d_swigregister(Bnd_Array1OfBox2d)

class Bnd_SeqOfBox(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_begin)
    end = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_end)
    cbegin = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_cbegin)
    cend = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_cend)

    def __init__(self, *args):
        _Bnd.Bnd_SeqOfBox_swiginit(self, _Bnd.new_Bnd_SeqOfBox(*args))
    Size = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Size)
    Length = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Length)
    Lower = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Lower)
    Upper = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Upper)
    IsEmpty = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_IsEmpty)
    Reverse = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Reverse)
    Exchange = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Exchange)
    delNode = _swig_new_static_method(_Bnd.Bnd_SeqOfBox_delNode)
    Clear = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Clear)
    Assign = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Assign)
    Set = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Set)
    Remove = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Remove)
    Append = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Append)
    Prepend = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Prepend)
    InsertBefore = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_InsertBefore)
    InsertAfter = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_InsertAfter)
    Split = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Split)
    First = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_First)
    ChangeFirst = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_ChangeFirst)
    Last = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Last)
    ChangeLast = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_ChangeLast)
    Value = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_Value)
    ChangeValue = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_ChangeValue)
    __call__ = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox___call__)
    SetValue = _swig_new_instance_method(_Bnd.Bnd_SeqOfBox_SetValue)
    __swig_destroy__ = _Bnd.delete_Bnd_SeqOfBox

# Register Bnd_SeqOfBox in _Bnd:
_Bnd.Bnd_SeqOfBox_swigregister(Bnd_SeqOfBox)
Bnd_SeqOfBox_delNode = _Bnd.Bnd_SeqOfBox_delNode

class Bnd_B2d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_B2d_Add)

    def __init__(self, *args):
        r"""
        * Empty constructor.
        	:rtype: None* Constructor.
        	:param theCenter:
        	:type theCenter: gp_XY
        	:param theHSize:
        	:type theHSize: gp_XY
        	:rtype: None
        """
        _Bnd.Bnd_B2d_swiginit(self, _Bnd.new_Bnd_B2d(*args))
    Clear = _swig_new_instance_method(_Bnd.Bnd_B2d_Clear)
    CornerMax = _swig_new_instance_method(_Bnd.Bnd_B2d_CornerMax)
    CornerMin = _swig_new_instance_method(_Bnd.Bnd_B2d_CornerMin)
    Enlarge = _swig_new_instance_method(_Bnd.Bnd_B2d_Enlarge)
    IsIn = _swig_new_instance_method(_Bnd.Bnd_B2d_IsIn)
    IsOut = _swig_new_instance_method(_Bnd.Bnd_B2d_IsOut)
    IsVoid = _swig_new_instance_method(_Bnd.Bnd_B2d_IsVoid)
    Limit = _swig_new_instance_method(_Bnd.Bnd_B2d_Limit)
    SetCenter = _swig_new_instance_method(_Bnd.Bnd_B2d_SetCenter)
    SetHSize = _swig_new_instance_method(_Bnd.Bnd_B2d_SetHSize)
    SquareExtent = _swig_new_instance_method(_Bnd.Bnd_B2d_SquareExtent)
    Transformed = _swig_new_instance_method(_Bnd.Bnd_B2d_Transformed)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_B2d

# Register Bnd_B2d in _Bnd:
_Bnd.Bnd_B2d_swigregister(Bnd_B2d)

class Bnd_B2f(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_B2f_Add)

    def __init__(self, *args):
        r"""
        * Empty constructor.
        	:rtype: None* Constructor.
        	:param theCenter:
        	:type theCenter: gp_XY
        	:param theHSize:
        	:type theHSize: gp_XY
        	:rtype: None
        """
        _Bnd.Bnd_B2f_swiginit(self, _Bnd.new_Bnd_B2f(*args))
    Clear = _swig_new_instance_method(_Bnd.Bnd_B2f_Clear)
    CornerMax = _swig_new_instance_method(_Bnd.Bnd_B2f_CornerMax)
    CornerMin = _swig_new_instance_method(_Bnd.Bnd_B2f_CornerMin)
    Enlarge = _swig_new_instance_method(_Bnd.Bnd_B2f_Enlarge)
    IsIn = _swig_new_instance_method(_Bnd.Bnd_B2f_IsIn)
    IsOut = _swig_new_instance_method(_Bnd.Bnd_B2f_IsOut)
    IsVoid = _swig_new_instance_method(_Bnd.Bnd_B2f_IsVoid)
    Limit = _swig_new_instance_method(_Bnd.Bnd_B2f_Limit)
    SetCenter = _swig_new_instance_method(_Bnd.Bnd_B2f_SetCenter)
    SetHSize = _swig_new_instance_method(_Bnd.Bnd_B2f_SetHSize)
    SquareExtent = _swig_new_instance_method(_Bnd.Bnd_B2f_SquareExtent)
    Transformed = _swig_new_instance_method(_Bnd.Bnd_B2f_Transformed)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_B2f

# Register Bnd_B2f in _Bnd:
_Bnd.Bnd_B2f_swigregister(Bnd_B2f)

class Bnd_B3d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_B3d_Add)

    def __init__(self, *args):
        r"""
        * Empty constructor.
        	:rtype: None* Constructor.
        	:param theCenter:
        	:type theCenter: gp_XYZ
        	:param theHSize:
        	:type theHSize: gp_XYZ
        	:rtype: None
        """
        _Bnd.Bnd_B3d_swiginit(self, _Bnd.new_Bnd_B3d(*args))
    Clear = _swig_new_instance_method(_Bnd.Bnd_B3d_Clear)
    CornerMax = _swig_new_instance_method(_Bnd.Bnd_B3d_CornerMax)
    CornerMin = _swig_new_instance_method(_Bnd.Bnd_B3d_CornerMin)
    Enlarge = _swig_new_instance_method(_Bnd.Bnd_B3d_Enlarge)
    IsIn = _swig_new_instance_method(_Bnd.Bnd_B3d_IsIn)
    IsOut = _swig_new_instance_method(_Bnd.Bnd_B3d_IsOut)
    IsVoid = _swig_new_instance_method(_Bnd.Bnd_B3d_IsVoid)
    Limit = _swig_new_instance_method(_Bnd.Bnd_B3d_Limit)
    SetCenter = _swig_new_instance_method(_Bnd.Bnd_B3d_SetCenter)
    SetHSize = _swig_new_instance_method(_Bnd.Bnd_B3d_SetHSize)
    SquareExtent = _swig_new_instance_method(_Bnd.Bnd_B3d_SquareExtent)
    Transformed = _swig_new_instance_method(_Bnd.Bnd_B3d_Transformed)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_B3d

# Register Bnd_B3d in _Bnd:
_Bnd.Bnd_B3d_swigregister(Bnd_B3d)

class Bnd_B3f(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_B3f_Add)

    def __init__(self, *args):
        r"""
        * Empty constructor.
        	:rtype: None* Constructor.
        	:param theCenter:
        	:type theCenter: gp_XYZ
        	:param theHSize:
        	:type theHSize: gp_XYZ
        	:rtype: None
        """
        _Bnd.Bnd_B3f_swiginit(self, _Bnd.new_Bnd_B3f(*args))
    Clear = _swig_new_instance_method(_Bnd.Bnd_B3f_Clear)
    CornerMax = _swig_new_instance_method(_Bnd.Bnd_B3f_CornerMax)
    CornerMin = _swig_new_instance_method(_Bnd.Bnd_B3f_CornerMin)
    Enlarge = _swig_new_instance_method(_Bnd.Bnd_B3f_Enlarge)
    IsIn = _swig_new_instance_method(_Bnd.Bnd_B3f_IsIn)
    IsOut = _swig_new_instance_method(_Bnd.Bnd_B3f_IsOut)
    IsVoid = _swig_new_instance_method(_Bnd.Bnd_B3f_IsVoid)
    Limit = _swig_new_instance_method(_Bnd.Bnd_B3f_Limit)
    SetCenter = _swig_new_instance_method(_Bnd.Bnd_B3f_SetCenter)
    SetHSize = _swig_new_instance_method(_Bnd.Bnd_B3f_SetHSize)
    SquareExtent = _swig_new_instance_method(_Bnd.Bnd_B3f_SquareExtent)
    Transformed = _swig_new_instance_method(_Bnd.Bnd_B3f_Transformed)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_B3f

# Register Bnd_B3f in _Bnd:
_Bnd.Bnd_B3f_swigregister(Bnd_B3f)

class Bnd_BoundSortBox(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_BoundSortBox_Add)

    def __init__(self, *args):
        r"""
        * Constructs an empty comparison algorithm for bounding boxes. The bounding boxes are then defined using the Initialize function.
        	:rtype: None
        """
        _Bnd.Bnd_BoundSortBox_swiginit(self, _Bnd.new_Bnd_BoundSortBox(*args))
    Compare = _swig_new_instance_method(_Bnd.Bnd_BoundSortBox_Compare)
    Destroy = _swig_new_instance_method(_Bnd.Bnd_BoundSortBox_Destroy)
    Dump = _swig_new_instance_method(_Bnd.Bnd_BoundSortBox_Dump)
    Initialize = _swig_new_instance_method(_Bnd.Bnd_BoundSortBox_Initialize)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_BoundSortBox

# Register Bnd_BoundSortBox in _Bnd:
_Bnd.Bnd_BoundSortBox_swigregister(Bnd_BoundSortBox)

class Bnd_BoundSortBox2d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_BoundSortBox2d_Add)

    def __init__(self, *args):
        r"""
        * Constructs an empty comparison algorithm for 2D bounding boxes. The bounding boxes are then defined using the Initialize function.
        	:rtype: None
        """
        _Bnd.Bnd_BoundSortBox2d_swiginit(self, _Bnd.new_Bnd_BoundSortBox2d(*args))
    Compare = _swig_new_instance_method(_Bnd.Bnd_BoundSortBox2d_Compare)
    Dump = _swig_new_instance_method(_Bnd.Bnd_BoundSortBox2d_Dump)
    Initialize = _swig_new_instance_method(_Bnd.Bnd_BoundSortBox2d_Initialize)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_BoundSortBox2d

# Register Bnd_BoundSortBox2d in _Bnd:
_Bnd.Bnd_BoundSortBox2d_swigregister(Bnd_BoundSortBox2d)

class Bnd_Box(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_Box_Add)

    def __init__(self, *args):
        r"""
        * Creates an empty Box. The constructed box is qualified Void. Its gap is null.
        	:rtype: None* Creates a bounding box, it contains: - minimum/maximum point of bouning box, The constructed box is qualified Void. Its gap is null.
        	:param theMin:
        	:type theMin: gp_Pnt
        	:param theMax:
        	:type theMax: gp_Pnt
        	:rtype: None
        """
        _Bnd.Bnd_Box_swiginit(self, _Bnd.new_Bnd_Box(*args))
    CornerMax = _swig_new_instance_method(_Bnd.Bnd_Box_CornerMax)
    CornerMin = _swig_new_instance_method(_Bnd.Bnd_Box_CornerMin)
    Distance = _swig_new_instance_method(_Bnd.Bnd_Box_Distance)
    Dump = _swig_new_instance_method(_Bnd.Bnd_Box_Dump)
    DumpJsonToString = _swig_new_instance_method(_Bnd.Bnd_Box_DumpJsonToString)
    Enlarge = _swig_new_instance_method(_Bnd.Bnd_Box_Enlarge)
    FinitePart = _swig_new_instance_method(_Bnd.Bnd_Box_FinitePart)
    Get = _swig_new_instance_method(_Bnd.Bnd_Box_Get)
    GetGap = _swig_new_instance_method(_Bnd.Bnd_Box_GetGap)
    HasFinitePart = _swig_new_instance_method(_Bnd.Bnd_Box_HasFinitePart)
    IsOpen = _swig_new_instance_method(_Bnd.Bnd_Box_IsOpen)
    IsOpenXmax = _swig_new_instance_method(_Bnd.Bnd_Box_IsOpenXmax)
    IsOpenXmin = _swig_new_instance_method(_Bnd.Bnd_Box_IsOpenXmin)
    IsOpenYmax = _swig_new_instance_method(_Bnd.Bnd_Box_IsOpenYmax)
    IsOpenYmin = _swig_new_instance_method(_Bnd.Bnd_Box_IsOpenYmin)
    IsOpenZmax = _swig_new_instance_method(_Bnd.Bnd_Box_IsOpenZmax)
    IsOpenZmin = _swig_new_instance_method(_Bnd.Bnd_Box_IsOpenZmin)
    IsOut = _swig_new_instance_method(_Bnd.Bnd_Box_IsOut)
    IsThin = _swig_new_instance_method(_Bnd.Bnd_Box_IsThin)
    IsVoid = _swig_new_instance_method(_Bnd.Bnd_Box_IsVoid)
    IsWhole = _swig_new_instance_method(_Bnd.Bnd_Box_IsWhole)
    IsXThin = _swig_new_instance_method(_Bnd.Bnd_Box_IsXThin)
    IsYThin = _swig_new_instance_method(_Bnd.Bnd_Box_IsYThin)
    IsZThin = _swig_new_instance_method(_Bnd.Bnd_Box_IsZThin)
    OpenXmax = _swig_new_instance_method(_Bnd.Bnd_Box_OpenXmax)
    OpenXmin = _swig_new_instance_method(_Bnd.Bnd_Box_OpenXmin)
    OpenYmax = _swig_new_instance_method(_Bnd.Bnd_Box_OpenYmax)
    OpenYmin = _swig_new_instance_method(_Bnd.Bnd_Box_OpenYmin)
    OpenZmax = _swig_new_instance_method(_Bnd.Bnd_Box_OpenZmax)
    OpenZmin = _swig_new_instance_method(_Bnd.Bnd_Box_OpenZmin)
    Set = _swig_new_instance_method(_Bnd.Bnd_Box_Set)
    SetGap = _swig_new_instance_method(_Bnd.Bnd_Box_SetGap)
    SetVoid = _swig_new_instance_method(_Bnd.Bnd_Box_SetVoid)
    SetWhole = _swig_new_instance_method(_Bnd.Bnd_Box_SetWhole)
    SquareExtent = _swig_new_instance_method(_Bnd.Bnd_Box_SquareExtent)
    Transformed = _swig_new_instance_method(_Bnd.Bnd_Box_Transformed)
    Update = _swig_new_instance_method(_Bnd.Bnd_Box_Update)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_Box

# Register Bnd_Box in _Bnd:
_Bnd.Bnd_Box_swigregister(Bnd_Box)

class Bnd_Box2d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_Box2d_Add)

    def __init__(self, *args):
        r"""
        * Creates an empty 2D bounding box. The constructed box is qualified Void. Its gap is null.
        	:rtype: None
        """
        _Bnd.Bnd_Box2d_swiginit(self, _Bnd.new_Bnd_Box2d(*args))
    Dump = _swig_new_instance_method(_Bnd.Bnd_Box2d_Dump)
    Enlarge = _swig_new_instance_method(_Bnd.Bnd_Box2d_Enlarge)
    Get = _swig_new_instance_method(_Bnd.Bnd_Box2d_Get)
    GetGap = _swig_new_instance_method(_Bnd.Bnd_Box2d_GetGap)
    IsOpenXmax = _swig_new_instance_method(_Bnd.Bnd_Box2d_IsOpenXmax)
    IsOpenXmin = _swig_new_instance_method(_Bnd.Bnd_Box2d_IsOpenXmin)
    IsOpenYmax = _swig_new_instance_method(_Bnd.Bnd_Box2d_IsOpenYmax)
    IsOpenYmin = _swig_new_instance_method(_Bnd.Bnd_Box2d_IsOpenYmin)
    IsOut = _swig_new_instance_method(_Bnd.Bnd_Box2d_IsOut)
    IsVoid = _swig_new_instance_method(_Bnd.Bnd_Box2d_IsVoid)
    IsWhole = _swig_new_instance_method(_Bnd.Bnd_Box2d_IsWhole)
    OpenXmax = _swig_new_instance_method(_Bnd.Bnd_Box2d_OpenXmax)
    OpenXmin = _swig_new_instance_method(_Bnd.Bnd_Box2d_OpenXmin)
    OpenYmax = _swig_new_instance_method(_Bnd.Bnd_Box2d_OpenYmax)
    OpenYmin = _swig_new_instance_method(_Bnd.Bnd_Box2d_OpenYmin)
    Set = _swig_new_instance_method(_Bnd.Bnd_Box2d_Set)
    SetGap = _swig_new_instance_method(_Bnd.Bnd_Box2d_SetGap)
    SetVoid = _swig_new_instance_method(_Bnd.Bnd_Box2d_SetVoid)
    SetWhole = _swig_new_instance_method(_Bnd.Bnd_Box2d_SetWhole)
    SquareExtent = _swig_new_instance_method(_Bnd.Bnd_Box2d_SquareExtent)
    Transformed = _swig_new_instance_method(_Bnd.Bnd_Box2d_Transformed)
    Update = _swig_new_instance_method(_Bnd.Bnd_Box2d_Update)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_Box2d

# Register Bnd_Box2d in _Bnd:
_Bnd.Bnd_Box2d_swigregister(Bnd_Box2d)

class Bnd_OBB(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_OBB_Add)

    def __init__(self, *args):
        r"""
        * Empty constructor
        	:rtype: None* Constructor taking all defining parameters
        	:param theCenter:
        	:type theCenter: gp_Pnt
        	:param theXDirection:
        	:type theXDirection: gp_Dir
        	:param theYDirection:
        	:type theYDirection: gp_Dir
        	:param theZDirection:
        	:type theZDirection: gp_Dir
        	:param theHXSize:
        	:type theHXSize: float
        	:param theHYSize:
        	:type theHYSize: float
        	:param theHZSize:
        	:type theHZSize: float
        	:rtype: None* Constructor to create OBB from AABB.
        	:param theBox:
        	:type theBox: Bnd_Box
        	:rtype: None
        """
        _Bnd.Bnd_OBB_swiginit(self, _Bnd.new_Bnd_OBB(*args))
    Center = _swig_new_instance_method(_Bnd.Bnd_OBB_Center)
    DumpJsonToString = _swig_new_instance_method(_Bnd.Bnd_OBB_DumpJsonToString)
    Enlarge = _swig_new_instance_method(_Bnd.Bnd_OBB_Enlarge)
    GetVertex = _swig_new_instance_method(_Bnd.Bnd_OBB_GetVertex)
    IsAABox = _swig_new_instance_method(_Bnd.Bnd_OBB_IsAABox)
    IsCompletelyInside = _swig_new_instance_method(_Bnd.Bnd_OBB_IsCompletelyInside)
    IsOut = _swig_new_instance_method(_Bnd.Bnd_OBB_IsOut)
    IsVoid = _swig_new_instance_method(_Bnd.Bnd_OBB_IsVoid)
    Position = _swig_new_instance_method(_Bnd.Bnd_OBB_Position)
    ReBuild = _swig_new_instance_method(_Bnd.Bnd_OBB_ReBuild)
    SetAABox = _swig_new_instance_method(_Bnd.Bnd_OBB_SetAABox)
    SetCenter = _swig_new_instance_method(_Bnd.Bnd_OBB_SetCenter)
    SetVoid = _swig_new_instance_method(_Bnd.Bnd_OBB_SetVoid)
    SetXComponent = _swig_new_instance_method(_Bnd.Bnd_OBB_SetXComponent)
    SetYComponent = _swig_new_instance_method(_Bnd.Bnd_OBB_SetYComponent)
    SetZComponent = _swig_new_instance_method(_Bnd.Bnd_OBB_SetZComponent)
    SquareExtent = _swig_new_instance_method(_Bnd.Bnd_OBB_SquareExtent)
    XDirection = _swig_new_instance_method(_Bnd.Bnd_OBB_XDirection)
    XHSize = _swig_new_instance_method(_Bnd.Bnd_OBB_XHSize)
    YDirection = _swig_new_instance_method(_Bnd.Bnd_OBB_YDirection)
    YHSize = _swig_new_instance_method(_Bnd.Bnd_OBB_YHSize)
    ZDirection = _swig_new_instance_method(_Bnd.Bnd_OBB_ZDirection)
    ZHSize = _swig_new_instance_method(_Bnd.Bnd_OBB_ZHSize)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_OBB

# Register Bnd_OBB in _Bnd:
_Bnd.Bnd_OBB_swigregister(Bnd_OBB)

class Bnd_Range(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_Range_Add)

    def __init__(self, *args):
        r"""
        * Default constructor. Creates VOID range.
        	:rtype: None* Constructor. Never creates VOID range.
        	:param theMin:
        	:type theMin: float
        	:param theMax:
        	:type theMax: float
        	:rtype: None
        """
        _Bnd.Bnd_Range_swiginit(self, _Bnd.new_Bnd_Range(*args))
    Common = _swig_new_instance_method(_Bnd.Bnd_Range_Common)
    Delta = _swig_new_instance_method(_Bnd.Bnd_Range_Delta)
    DumpJsonToString = _swig_new_instance_method(_Bnd.Bnd_Range_DumpJsonToString)
    Enlarge = _swig_new_instance_method(_Bnd.Bnd_Range_Enlarge)
    GetBounds = _swig_new_instance_method(_Bnd.Bnd_Range_GetBounds)
    GetIntermediatePoint = _swig_new_instance_method(_Bnd.Bnd_Range_GetIntermediatePoint)
    GetMax = _swig_new_instance_method(_Bnd.Bnd_Range_GetMax)
    GetMin = _swig_new_instance_method(_Bnd.Bnd_Range_GetMin)
    IsIntersected = _swig_new_instance_method(_Bnd.Bnd_Range_IsIntersected)
    IsOut = _swig_new_instance_method(_Bnd.Bnd_Range_IsOut)
    IsVoid = _swig_new_instance_method(_Bnd.Bnd_Range_IsVoid)
    SetVoid = _swig_new_instance_method(_Bnd.Bnd_Range_SetVoid)
    Shift = _swig_new_instance_method(_Bnd.Bnd_Range_Shift)
    Shifted = _swig_new_instance_method(_Bnd.Bnd_Range_Shifted)
    Split = _swig_new_instance_method(_Bnd.Bnd_Range_Split)
    TrimFrom = _swig_new_instance_method(_Bnd.Bnd_Range_TrimFrom)
    TrimTo = _swig_new_instance_method(_Bnd.Bnd_Range_TrimTo)
    Union = _swig_new_instance_method(_Bnd.Bnd_Range_Union)
    __eq_wrapper__ = _swig_new_instance_method(_Bnd.Bnd_Range___eq_wrapper__)

    def __eq__(self, right):
        try:
            return self.__eq_wrapper__(right)
        except:
            return False


    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_Range

# Register Bnd_Range in _Bnd:
_Bnd.Bnd_Range_swigregister(Bnd_Range)

class Bnd_Sphere(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_Bnd.Bnd_Sphere_Add)

    def __init__(self, *args):
        r"""
        * Empty constructor
        	:rtype: None* Constructor of a definite sphere
        	:param theCntr:
        	:type theCntr: gp_XYZ
        	:param theRad:
        	:type theRad: float
        	:param theU:
        	:type theU: int
        	:param theV:
        	:type theV: int
        	:rtype: None
        """
        _Bnd.Bnd_Sphere_swiginit(self, _Bnd.new_Bnd_Sphere(*args))
    Center = _swig_new_instance_method(_Bnd.Bnd_Sphere_Center)
    Distance = _swig_new_instance_method(_Bnd.Bnd_Sphere_Distance)
    Distances = _swig_new_instance_method(_Bnd.Bnd_Sphere_Distances)
    IsOut = _swig_new_instance_method(_Bnd.Bnd_Sphere_IsOut)
    IsValid = _swig_new_instance_method(_Bnd.Bnd_Sphere_IsValid)
    Project = _swig_new_instance_method(_Bnd.Bnd_Sphere_Project)
    Radius = _swig_new_instance_method(_Bnd.Bnd_Sphere_Radius)
    SetValid = _swig_new_instance_method(_Bnd.Bnd_Sphere_SetValid)
    SquareDistance = _swig_new_instance_method(_Bnd.Bnd_Sphere_SquareDistance)
    SquareDistances = _swig_new_instance_method(_Bnd.Bnd_Sphere_SquareDistances)
    SquareExtent = _swig_new_instance_method(_Bnd.Bnd_Sphere_SquareExtent)
    U = _swig_new_instance_method(_Bnd.Bnd_Sphere_U)
    V = _swig_new_instance_method(_Bnd.Bnd_Sphere_V)

    __repr__ = _dumps_object

    __swig_destroy__ = _Bnd.delete_Bnd_Sphere

# Register Bnd_Sphere in _Bnd:
_Bnd.Bnd_Sphere_swigregister(Bnd_Sphere)

class Bnd_Tools(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Bnd2BVH = _swig_new_static_method(_Bnd.Bnd_Tools_Bnd2BVH)

    __repr__ = _dumps_object


    def __init__(self):
        _Bnd.Bnd_Tools_swiginit(self, _Bnd.new_Bnd_Tools())
    __swig_destroy__ = _Bnd.delete_Bnd_Tools

# Register Bnd_Tools in _Bnd:
_Bnd.Bnd_Tools_swigregister(Bnd_Tools)
Bnd_Tools_Bnd2BVH = _Bnd.Bnd_Tools_Bnd2BVH

class Bnd_HArray1OfBox(Bnd_Array1OfBox, OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _Bnd.Bnd_HArray1OfBox_swiginit(self, _Bnd.new_Bnd_HArray1OfBox(*args))
    Array1 = _swig_new_instance_method(_Bnd.Bnd_HArray1OfBox_Array1)
    ChangeArray1 = _swig_new_instance_method(_Bnd.Bnd_HArray1OfBox_ChangeArray1)


    @staticmethod
    def DownCast(t):
      return Handle_Bnd_HArray1OfBox_DownCast(t)

    __swig_destroy__ = _Bnd.delete_Bnd_HArray1OfBox

# Register Bnd_HArray1OfBox in _Bnd:
_Bnd.Bnd_HArray1OfBox_swigregister(Bnd_HArray1OfBox)

class Bnd_HArray1OfSphere(Bnd_Array1OfSphere, OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _Bnd.Bnd_HArray1OfSphere_swiginit(self, _Bnd.new_Bnd_HArray1OfSphere(*args))
    Array1 = _swig_new_instance_method(_Bnd.Bnd_HArray1OfSphere_Array1)
    ChangeArray1 = _swig_new_instance_method(_Bnd.Bnd_HArray1OfSphere_ChangeArray1)


    @staticmethod
    def DownCast(t):
      return Handle_Bnd_HArray1OfSphere_DownCast(t)

    __swig_destroy__ = _Bnd.delete_Bnd_HArray1OfSphere

# Register Bnd_HArray1OfSphere in _Bnd:
_Bnd.Bnd_HArray1OfSphere_swigregister(Bnd_HArray1OfSphere)

class Bnd_HArray1OfBox2d(Bnd_Array1OfBox2d, OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _Bnd.Bnd_HArray1OfBox2d_swiginit(self, _Bnd.new_Bnd_HArray1OfBox2d(*args))
    Array1 = _swig_new_instance_method(_Bnd.Bnd_HArray1OfBox2d_Array1)
    ChangeArray1 = _swig_new_instance_method(_Bnd.Bnd_HArray1OfBox2d_ChangeArray1)


    @staticmethod
    def DownCast(t):
      return Handle_Bnd_HArray1OfBox2d_DownCast(t)

    __swig_destroy__ = _Bnd.delete_Bnd_HArray1OfBox2d

# Register Bnd_HArray1OfBox2d in _Bnd:
_Bnd.Bnd_HArray1OfBox2d_swigregister(Bnd_HArray1OfBox2d)



