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

"""
TopTools module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_toptools.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 _TopTools
else:
    import _TopTools

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

# Register SwigPyIterator in _TopTools:
_TopTools.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.TopoDS
import OCC.Core.Message
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.TCollection
Handle_TopTools_HArray1OfShape_Create = _TopTools.Handle_TopTools_HArray1OfShape_Create
Handle_TopTools_HArray1OfShape_DownCast = _TopTools.Handle_TopTools_HArray1OfShape_DownCast
Handle_TopTools_HArray1OfShape_IsNull = _TopTools.Handle_TopTools_HArray1OfShape_IsNull
Handle_TopTools_HArray1OfListOfShape_Create = _TopTools.Handle_TopTools_HArray1OfListOfShape_Create
Handle_TopTools_HArray1OfListOfShape_DownCast = _TopTools.Handle_TopTools_HArray1OfListOfShape_DownCast
Handle_TopTools_HArray1OfListOfShape_IsNull = _TopTools.Handle_TopTools_HArray1OfListOfShape_IsNull
Handle_TopTools_HArray2OfShape_Create = _TopTools.Handle_TopTools_HArray2OfShape_Create
Handle_TopTools_HArray2OfShape_DownCast = _TopTools.Handle_TopTools_HArray2OfShape_DownCast
Handle_TopTools_HArray2OfShape_IsNull = _TopTools.Handle_TopTools_HArray2OfShape_IsNull
Handle_TopTools_HSequenceOfShape_Create = _TopTools.Handle_TopTools_HSequenceOfShape_Create
Handle_TopTools_HSequenceOfShape_DownCast = _TopTools.Handle_TopTools_HSequenceOfShape_DownCast
Handle_TopTools_HSequenceOfShape_IsNull = _TopTools.Handle_TopTools_HSequenceOfShape_IsNull
class TopTools_DataMapOfIntegerListOfShape(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(_TopTools.TopTools_DataMapOfIntegerListOfShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfIntegerListOfShape_swiginit(self, _TopTools.new_TopTools_DataMapOfIntegerListOfShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfIntegerListOfShape
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Size)
    Keys = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerListOfShape_Keys)

# Register TopTools_DataMapOfIntegerListOfShape in _TopTools:
_TopTools.TopTools_DataMapOfIntegerListOfShape_swigregister(TopTools_DataMapOfIntegerListOfShape)

class TopTools_DataMapOfShapeSequenceOfShape(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(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeSequenceOfShape_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeSequenceOfShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeSequenceOfShape
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeSequenceOfShape_Size)

# Register TopTools_DataMapOfShapeSequenceOfShape in _TopTools:
_TopTools.TopTools_DataMapOfShapeSequenceOfShape_swigregister(TopTools_DataMapOfShapeSequenceOfShape)

class TopTools_SequenceOfShape(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(_TopTools.TopTools_SequenceOfShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_SequenceOfShape_swiginit(self, _TopTools.new_TopTools_SequenceOfShape(*args))
    Size = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Size)
    Length = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Length)
    Lower = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Lower)
    Upper = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Upper)
    IsEmpty = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_IsEmpty)
    Reverse = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Reverse)
    Exchange = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Exchange)
    delNode = _swig_new_static_method(_TopTools.TopTools_SequenceOfShape_delNode)
    Clear = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Clear)
    Assign = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Set)
    Remove = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Remove)
    Append = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Append)
    Prepend = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Prepend)
    InsertBefore = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_InsertBefore)
    InsertAfter = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_InsertAfter)
    Split = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Split)
    First = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_First)
    ChangeFirst = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_ChangeFirst)
    Last = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Last)
    ChangeLast = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_ChangeLast)
    Value = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_Value)
    ChangeValue = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_ChangeValue)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape___call__)
    SetValue = _swig_new_instance_method(_TopTools.TopTools_SequenceOfShape_SetValue)
    __swig_destroy__ = _TopTools.delete_TopTools_SequenceOfShape

# Register TopTools_SequenceOfShape in _TopTools:
_TopTools.TopTools_SequenceOfShape_swigregister(TopTools_SequenceOfShape)
TopTools_SequenceOfShape_delNode = _TopTools.TopTools_SequenceOfShape_delNode

class TopTools_IndexedDataMapOfShapeShape(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(_TopTools.TopTools_IndexedDataMapOfShapeShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedDataMapOfShapeShape_swiginit(self, _TopTools.new_TopTools_IndexedDataMapOfShapeShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_ReSize)
    Add = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Add)
    Contains = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Contains)
    Substitute = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Substitute)
    Swap = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Swap)
    RemoveLast = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_RemoveLast)
    RemoveFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_RemoveFromIndex)
    RemoveKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_RemoveKey)
    FindKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_FindKey)
    FindFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_FindFromIndex)
    ChangeFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_ChangeFromIndex)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape___call__)
    FindIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_FindIndex)
    ChangeFromKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_ChangeFromKey)
    Seek = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Seek)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_ChangeSeek)
    FindFromKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_FindFromKey)
    Clear = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedDataMapOfShapeShape
    Size = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeShape_Size)

# Register TopTools_IndexedDataMapOfShapeShape in _TopTools:
_TopTools.TopTools_IndexedDataMapOfShapeShape_swigregister(TopTools_IndexedDataMapOfShapeShape)

class TopTools_DataMapOfShapeListOfShape(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(_TopTools.TopTools_DataMapOfShapeListOfShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeListOfShape_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeListOfShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeListOfShape
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfShape_Size)

# Register TopTools_DataMapOfShapeListOfShape in _TopTools:
_TopTools.TopTools_DataMapOfShapeListOfShape_swigregister(TopTools_DataMapOfShapeListOfShape)

class TopTools_IndexedMapOfShape(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cbegin = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedMapOfShape_swiginit(self, _TopTools.new_TopTools_IndexedMapOfShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_ReSize)
    Add = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_Add)
    Contains = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_Contains)
    Substitute = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_Substitute)
    Swap = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_Swap)
    RemoveLast = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_RemoveLast)
    RemoveFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_RemoveFromIndex)
    RemoveKey = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_RemoveKey)
    FindKey = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_FindKey)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape___call__)
    FindIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_FindIndex)
    Clear = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedMapOfShape
    Size = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfShape_Size)

# Register TopTools_IndexedMapOfShape in _TopTools:
_TopTools.TopTools_IndexedMapOfShape_swigregister(TopTools_IndexedMapOfShape)

class TopTools_MapOfShape(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cbegin = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_MapOfShape_swiginit(self, _TopTools.new_TopTools_MapOfShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_ReSize)
    Add = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Add)
    Added = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Added)
    Remove = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Remove)
    Clear = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_MapOfShape
    Size = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Size)
    IsEqual = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_IsEqual)
    Contains = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Contains)
    Union = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Union)
    Unite = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Unite)
    HasIntersection = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_HasIntersection)
    Intersection = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Intersection)
    Intersect = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Intersect)
    Subtraction = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Subtraction)
    Subtract = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Subtract)
    Difference = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Difference)
    Differ = _swig_new_instance_method(_TopTools.TopTools_MapOfShape_Differ)

# Register TopTools_MapOfShape in _TopTools:
_TopTools.TopTools_MapOfShape_swigregister(TopTools_MapOfShape)

class TopTools_ListOfShape(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(_TopTools.TopTools_ListOfShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_ListOfShape_swiginit(self, _TopTools.new_TopTools_ListOfShape(*args))
    Size = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_Size)
    Assign = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_Set)
    Clear = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_Clear)
    First = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_First)
    Last = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_Last)
    Append = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_Append)
    Prepend = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_Prepend)
    RemoveFirst = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_RemoveFirst)
    Remove = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_Remove)
    InsertBefore = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_InsertBefore)
    InsertAfter = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_InsertAfter)
    Reverse = _swig_new_instance_method(_TopTools.TopTools_ListOfShape_Reverse)
    __swig_destroy__ = _TopTools.delete_TopTools_ListOfShape

# Register TopTools_ListOfShape in _TopTools:
_TopTools.TopTools_ListOfShape_swigregister(TopTools_ListOfShape)

class TopTools_ListIteratorOfListOfShape(object):
    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):
        _TopTools.TopTools_ListIteratorOfListOfShape_swiginit(self, _TopTools.new_TopTools_ListIteratorOfListOfShape(*args))
    More = _swig_new_instance_method(_TopTools.TopTools_ListIteratorOfListOfShape_More)
    Next = _swig_new_instance_method(_TopTools.TopTools_ListIteratorOfListOfShape_Next)
    Value = _swig_new_instance_method(_TopTools.TopTools_ListIteratorOfListOfShape_Value)
    ChangeValue = _swig_new_instance_method(_TopTools.TopTools_ListIteratorOfListOfShape_ChangeValue)
    __swig_destroy__ = _TopTools.delete_TopTools_ListIteratorOfListOfShape

# Register TopTools_ListIteratorOfListOfShape in _TopTools:
_TopTools.TopTools_ListIteratorOfListOfShape_swigregister(TopTools_ListIteratorOfListOfShape)

class TopTools_DataMapOfShapeInteger(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(_TopTools.TopTools_DataMapOfShapeInteger_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeInteger_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeInteger(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeInteger
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeInteger_Size)

# Register TopTools_DataMapOfShapeInteger in _TopTools:
_TopTools.TopTools_DataMapOfShapeInteger_swigregister(TopTools_DataMapOfShapeInteger)

class TopTools_IndexedMapOfOrientedShape(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cbegin = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedMapOfOrientedShape_swiginit(self, _TopTools.new_TopTools_IndexedMapOfOrientedShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_ReSize)
    Add = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_Add)
    Contains = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_Contains)
    Substitute = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_Substitute)
    Swap = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_Swap)
    RemoveLast = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_RemoveLast)
    RemoveFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_RemoveFromIndex)
    RemoveKey = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_RemoveKey)
    FindKey = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_FindKey)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape___call__)
    FindIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_FindIndex)
    Clear = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedMapOfOrientedShape
    Size = _swig_new_instance_method(_TopTools.TopTools_IndexedMapOfOrientedShape_Size)

# Register TopTools_IndexedMapOfOrientedShape in _TopTools:
_TopTools.TopTools_IndexedMapOfOrientedShape_swigregister(TopTools_IndexedMapOfOrientedShape)

class TopTools_ListOfListOfShape(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(_TopTools.TopTools_ListOfListOfShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_ListOfListOfShape_swiginit(self, _TopTools.new_TopTools_ListOfListOfShape(*args))
    Size = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_Size)
    Assign = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_Set)
    Clear = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_Clear)
    First = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_First)
    Last = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_Last)
    Append = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_Append)
    Prepend = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_Prepend)
    RemoveFirst = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_RemoveFirst)
    Remove = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_Remove)
    InsertBefore = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_InsertBefore)
    InsertAfter = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_InsertAfter)
    Reverse = _swig_new_instance_method(_TopTools.TopTools_ListOfListOfShape_Reverse)
    __swig_destroy__ = _TopTools.delete_TopTools_ListOfListOfShape

# Register TopTools_ListOfListOfShape in _TopTools:
_TopTools.TopTools_ListOfListOfShape_swigregister(TopTools_ListOfListOfShape)

class TopTools_Array1OfShape(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(_TopTools.TopTools_Array1OfShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_Array1OfShape_swiginit(self, _TopTools.new_TopTools_Array1OfShape(*args))
    Init = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Init)
    Size = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Size)
    Length = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Length)
    IsEmpty = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_IsEmpty)
    Lower = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Lower)
    Upper = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Upper)
    IsDeletable = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_IsDeletable)
    IsAllocated = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_IsAllocated)
    Assign = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Assign)
    Move = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Move)
    Set = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Set)
    First = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_First)
    ChangeFirst = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_ChangeFirst)
    Last = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Last)
    ChangeLast = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_ChangeLast)
    Value = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Value)
    ChangeValue = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_ChangeValue)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape___call__)
    SetValue = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_SetValue)
    Resize = _swig_new_instance_method(_TopTools.TopTools_Array1OfShape_Resize)
    __swig_destroy__ = _TopTools.delete_TopTools_Array1OfShape

    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 TopTools_Array1OfShape in _TopTools:
_TopTools.TopTools_Array1OfShape_swigregister(TopTools_Array1OfShape)

class TopTools_Array1OfListOfShape(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(_TopTools.TopTools_Array1OfListOfShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_Array1OfListOfShape_swiginit(self, _TopTools.new_TopTools_Array1OfListOfShape(*args))
    Init = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Init)
    Size = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Size)
    Length = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Length)
    IsEmpty = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_IsEmpty)
    Lower = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Lower)
    Upper = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Upper)
    IsDeletable = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_IsDeletable)
    IsAllocated = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_IsAllocated)
    Assign = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Assign)
    Move = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Move)
    Set = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Set)
    First = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_First)
    ChangeFirst = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_ChangeFirst)
    Last = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Last)
    ChangeLast = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_ChangeLast)
    Value = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Value)
    ChangeValue = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_ChangeValue)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape___call__)
    SetValue = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_SetValue)
    Resize = _swig_new_instance_method(_TopTools.TopTools_Array1OfListOfShape_Resize)
    __swig_destroy__ = _TopTools.delete_TopTools_Array1OfListOfShape

    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 TopTools_Array1OfListOfShape in _TopTools:
_TopTools.TopTools_Array1OfListOfShape_swigregister(TopTools_Array1OfListOfShape)

class TopTools_IndexedDataMapOfShapeListOfShape(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(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_swiginit(self, _TopTools.new_TopTools_IndexedDataMapOfShapeListOfShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_ReSize)
    Add = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Add)
    Contains = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Contains)
    Substitute = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Substitute)
    Swap = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Swap)
    RemoveLast = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_RemoveLast)
    RemoveFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_RemoveFromIndex)
    RemoveKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_RemoveKey)
    FindKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_FindKey)
    FindFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_FindFromIndex)
    ChangeFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_ChangeFromIndex)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape___call__)
    FindIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_FindIndex)
    ChangeFromKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_ChangeFromKey)
    Seek = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Seek)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_ChangeSeek)
    FindFromKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_FindFromKey)
    Clear = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedDataMapOfShapeListOfShape
    Size = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Size)

# Register TopTools_IndexedDataMapOfShapeListOfShape in _TopTools:
_TopTools.TopTools_IndexedDataMapOfShapeListOfShape_swigregister(TopTools_IndexedDataMapOfShapeListOfShape)

class TopTools_DataMapOfShapeShape(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(_TopTools.TopTools_DataMapOfShapeShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeShape_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeShape
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeShape_Size)

# Register TopTools_DataMapOfShapeShape in _TopTools:
_TopTools.TopTools_DataMapOfShapeShape_swigregister(TopTools_DataMapOfShapeShape)

class TopTools_DataMapOfIntegerShape(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(_TopTools.TopTools_DataMapOfIntegerShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfIntegerShape_swiginit(self, _TopTools.new_TopTools_DataMapOfIntegerShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfIntegerShape
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Size)
    Keys = _swig_new_instance_method(_TopTools.TopTools_DataMapOfIntegerShape_Keys)

# Register TopTools_DataMapOfIntegerShape in _TopTools:
_TopTools.TopTools_DataMapOfIntegerShape_swigregister(TopTools_DataMapOfIntegerShape)

class TopTools_DataMapOfShapeReal(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(_TopTools.TopTools_DataMapOfShapeReal_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeReal_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeReal(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeReal
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeReal_Size)

# Register TopTools_DataMapOfShapeReal in _TopTools:
_TopTools.TopTools_DataMapOfShapeReal_swigregister(TopTools_DataMapOfShapeReal)

class TopTools_IndexedDataMapOfShapeAddress(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(_TopTools.TopTools_IndexedDataMapOfShapeAddress_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_cend)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedDataMapOfShapeAddress_swiginit(self, _TopTools.new_TopTools_IndexedDataMapOfShapeAddress(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_ReSize)
    Add = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Add)
    Contains = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Contains)
    Substitute = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Substitute)
    Swap = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Swap)
    RemoveLast = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_RemoveLast)
    RemoveFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_RemoveFromIndex)
    RemoveKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_RemoveKey)
    FindKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_FindKey)
    FindFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_FindFromIndex)
    ChangeFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_ChangeFromIndex)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress___call__)
    FindIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_FindIndex)
    ChangeFromKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_ChangeFromKey)
    Seek = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Seek)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_ChangeSeek)
    FindFromKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_FindFromKey)
    Clear = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedDataMapOfShapeAddress
    Size = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeAddress_Size)

# Register TopTools_IndexedDataMapOfShapeAddress in _TopTools:
_TopTools.TopTools_IndexedDataMapOfShapeAddress_swigregister(TopTools_IndexedDataMapOfShapeAddress)

class TopTools_IndexedDataMapOfShapeReal(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(_TopTools.TopTools_IndexedDataMapOfShapeReal_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_cend)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedDataMapOfShapeReal_swiginit(self, _TopTools.new_TopTools_IndexedDataMapOfShapeReal(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_ReSize)
    Add = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Add)
    Contains = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Contains)
    Substitute = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Substitute)
    Swap = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Swap)
    RemoveLast = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_RemoveLast)
    RemoveFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_RemoveFromIndex)
    RemoveKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_RemoveKey)
    FindKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_FindKey)
    FindFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_FindFromIndex)
    ChangeFromIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_ChangeFromIndex)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal___call__)
    FindIndex = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_FindIndex)
    ChangeFromKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_ChangeFromKey)
    Seek = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Seek)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_ChangeSeek)
    FindFromKey = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_FindFromKey)
    Clear = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedDataMapOfShapeReal
    Size = _swig_new_instance_method(_TopTools.TopTools_IndexedDataMapOfShapeReal_Size)

# Register TopTools_IndexedDataMapOfShapeReal in _TopTools:
_TopTools.TopTools_IndexedDataMapOfShapeReal_swigregister(TopTools_IndexedDataMapOfShapeReal)

class TopTools_MapOfOrientedShape(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cbegin = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_MapOfOrientedShape_swiginit(self, _TopTools.new_TopTools_MapOfOrientedShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_ReSize)
    Add = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Add)
    Added = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Added)
    Remove = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Remove)
    Clear = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_MapOfOrientedShape
    Size = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Size)
    IsEqual = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_IsEqual)
    Contains = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Contains)
    Union = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Union)
    Unite = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Unite)
    HasIntersection = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_HasIntersection)
    Intersection = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Intersection)
    Intersect = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Intersect)
    Subtraction = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Subtraction)
    Subtract = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Subtract)
    Difference = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Difference)
    Differ = _swig_new_instance_method(_TopTools.TopTools_MapOfOrientedShape_Differ)

# Register TopTools_MapOfOrientedShape in _TopTools:
_TopTools.TopTools_MapOfOrientedShape_swigregister(TopTools_MapOfOrientedShape)

class TopTools_DataMapOfOrientedShapeShape(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(_TopTools.TopTools_DataMapOfOrientedShapeShape_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfOrientedShapeShape_swiginit(self, _TopTools.new_TopTools_DataMapOfOrientedShapeShape(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfOrientedShapeShape
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeShape_Size)

# Register TopTools_DataMapOfOrientedShapeShape in _TopTools:
_TopTools.TopTools_DataMapOfOrientedShapeShape_swigregister(TopTools_DataMapOfOrientedShapeShape)

class TopTools_DataMapOfShapeListOfInteger(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(_TopTools.TopTools_DataMapOfShapeListOfInteger_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeListOfInteger_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeListOfInteger(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeListOfInteger
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeListOfInteger_Size)

# Register TopTools_DataMapOfShapeListOfInteger in _TopTools:
_TopTools.TopTools_DataMapOfShapeListOfInteger_swigregister(TopTools_DataMapOfShapeListOfInteger)

class TopTools_DataMapOfOrientedShapeInteger(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(_TopTools.TopTools_DataMapOfOrientedShapeInteger_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfOrientedShapeInteger_swiginit(self, _TopTools.new_TopTools_DataMapOfOrientedShapeInteger(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfOrientedShapeInteger
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfOrientedShapeInteger_Size)

# Register TopTools_DataMapOfOrientedShapeInteger in _TopTools:
_TopTools.TopTools_DataMapOfOrientedShapeInteger_swigregister(TopTools_DataMapOfOrientedShapeInteger)

class TopTools_DataMapOfShapeBox(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(_TopTools.TopTools_DataMapOfShapeBox_begin)
    end = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_end)
    cbegin = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_cbegin)
    cend = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_cend)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeBox_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeBox(*args))
    Exchange = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_Exchange)
    Assign = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_Assign)
    Set = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_Set)
    ReSize = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_ReSize)
    Bind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_Bind)
    Bound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_Bound)
    IsBound = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_IsBound)
    UnBind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_UnBind)
    Seek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_Seek)
    Find = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_Find)
    ChangeSeek = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_ChangeFind)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox___call__)
    Clear = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_Clear)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeBox
    Size = _swig_new_instance_method(_TopTools.TopTools_DataMapOfShapeBox_Size)

# Register TopTools_DataMapOfShapeBox in _TopTools:
_TopTools.TopTools_DataMapOfShapeBox_swigregister(TopTools_DataMapOfShapeBox)

class TopTools_Array2OfShape(object):
    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):
        _TopTools.TopTools_Array2OfShape_swiginit(self, _TopTools.new_TopTools_Array2OfShape(*args))
    Init = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_Init)
    Size = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_Size)
    Length = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_Length)
    NbRows = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_NbRows)
    NbColumns = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_NbColumns)
    RowLength = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_RowLength)
    ColLength = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_ColLength)
    LowerRow = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_LowerRow)
    UpperRow = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_UpperRow)
    LowerCol = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_LowerCol)
    UpperCol = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_UpperCol)
    IsDeletable = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_IsDeletable)
    Assign = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_Assign)
    Move = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_Move)
    Set = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_Set)
    Value = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_Value)
    ChangeValue = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_ChangeValue)
    __call__ = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape___call__)
    SetValue = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_SetValue)
    Resize = _swig_new_instance_method(_TopTools.TopTools_Array2OfShape_Resize)
    __swig_destroy__ = _TopTools.delete_TopTools_Array2OfShape

# Register TopTools_Array2OfShape in _TopTools:
_TopTools.TopTools_Array2OfShape_swigregister(TopTools_Array2OfShape)

class toptools(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Dummy = _swig_new_static_method(_TopTools.toptools_Dummy)
    Dump = _swig_new_static_method(_TopTools.toptools_Dump)

    __repr__ = _dumps_object


    def __init__(self):
        _TopTools.toptools_swiginit(self, _TopTools.new_toptools())
    __swig_destroy__ = _TopTools.delete_toptools

# Register toptools in _TopTools:
_TopTools.toptools_swigregister(toptools)
toptools_Dummy = _TopTools.toptools_Dummy
toptools_Dump = _TopTools.toptools_Dump

class TopTools_LocationSet(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(_TopTools.TopTools_LocationSet_Add)
    Clear = _swig_new_instance_method(_TopTools.TopTools_LocationSet_Clear)
    DumpToString = _swig_new_instance_method(_TopTools.TopTools_LocationSet_DumpToString)
    GetProgress = _swig_new_instance_method(_TopTools.TopTools_LocationSet_GetProgress)
    Index = _swig_new_instance_method(_TopTools.TopTools_LocationSet_Index)
    Location = _swig_new_instance_method(_TopTools.TopTools_LocationSet_Location)
    ReadFromString = _swig_new_instance_method(_TopTools.TopTools_LocationSet_ReadFromString)
    SetProgress = _swig_new_instance_method(_TopTools.TopTools_LocationSet_SetProgress)

    def __init__(self, *args):
        r"""
        * Returns an empty set of locations.
        	:rtype: None
        """
        _TopTools.TopTools_LocationSet_swiginit(self, _TopTools.new_TopTools_LocationSet(*args))
    WriteToString = _swig_new_instance_method(_TopTools.TopTools_LocationSet_WriteToString)

    __repr__ = _dumps_object

    __swig_destroy__ = _TopTools.delete_TopTools_LocationSet

# Register TopTools_LocationSet in _TopTools:
_TopTools.TopTools_LocationSet_swigregister(TopTools_LocationSet)

class TopTools_MutexForShapeProvider(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    CreateMutexForShape = _swig_new_instance_method(_TopTools.TopTools_MutexForShapeProvider_CreateMutexForShape)
    CreateMutexesForSubShapes = _swig_new_instance_method(_TopTools.TopTools_MutexForShapeProvider_CreateMutexesForSubShapes)
    GetMutex = _swig_new_instance_method(_TopTools.TopTools_MutexForShapeProvider_GetMutex)
    RemoveAllMutexes = _swig_new_instance_method(_TopTools.TopTools_MutexForShapeProvider_RemoveAllMutexes)

    def __init__(self, *args):
        r"""
        * Constructor
        	:rtype: None
        """
        _TopTools.TopTools_MutexForShapeProvider_swiginit(self, _TopTools.new_TopTools_MutexForShapeProvider(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _TopTools.delete_TopTools_MutexForShapeProvider

# Register TopTools_MutexForShapeProvider in _TopTools:
_TopTools.TopTools_MutexForShapeProvider_swigregister(TopTools_MutexForShapeProvider)

class TopTools_OrientedShapeMapHasher(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    HashCode = _swig_new_static_method(_TopTools.TopTools_OrientedShapeMapHasher_HashCode)
    IsEqual = _swig_new_static_method(_TopTools.TopTools_OrientedShapeMapHasher_IsEqual)

    __repr__ = _dumps_object


    def __init__(self):
        _TopTools.TopTools_OrientedShapeMapHasher_swiginit(self, _TopTools.new_TopTools_OrientedShapeMapHasher())
    __swig_destroy__ = _TopTools.delete_TopTools_OrientedShapeMapHasher

# Register TopTools_OrientedShapeMapHasher in _TopTools:
_TopTools.TopTools_OrientedShapeMapHasher_swigregister(TopTools_OrientedShapeMapHasher)
TopTools_OrientedShapeMapHasher_HashCode = _TopTools.TopTools_OrientedShapeMapHasher_HashCode
TopTools_OrientedShapeMapHasher_IsEqual = _TopTools.TopTools_OrientedShapeMapHasher_IsEqual

class TopTools_ShapeMapHasher(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    HashCode = _swig_new_static_method(_TopTools.TopTools_ShapeMapHasher_HashCode)
    IsEqual = _swig_new_static_method(_TopTools.TopTools_ShapeMapHasher_IsEqual)

    __repr__ = _dumps_object


    def __init__(self):
        _TopTools.TopTools_ShapeMapHasher_swiginit(self, _TopTools.new_TopTools_ShapeMapHasher())
    __swig_destroy__ = _TopTools.delete_TopTools_ShapeMapHasher

# Register TopTools_ShapeMapHasher in _TopTools:
_TopTools.TopTools_ShapeMapHasher_swigregister(TopTools_ShapeMapHasher)
TopTools_ShapeMapHasher_HashCode = _TopTools.TopTools_ShapeMapHasher_HashCode
TopTools_ShapeMapHasher_IsEqual = _TopTools.TopTools_ShapeMapHasher_IsEqual

class TopTools_ShapeSet(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(_TopTools.TopTools_ShapeSet_Add)
    AddGeometry = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_AddGeometry)
    AddShapes = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_AddShapes)
    ChangeLocations = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_ChangeLocations)
    Check = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_Check)
    Clear = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_Clear)
    DumpToString = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_DumpToString)
    Dump = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_Dump)
    DumpExtentToString = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_DumpExtentToString)
    DumpExtent = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_DumpExtent)
    DumpGeometryToString = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_DumpGeometryToString)
    DumpGeometry = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_DumpGeometry)
    FormatNb = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_FormatNb)
    GetProgress = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_GetProgress)
    Index = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_Index)
    Locations = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_Locations)
    NbShapes = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_NbShapes)
    ReadFromString = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_ReadFromString)
    Read = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_Read)
    ReadGeometryFromString = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_ReadGeometryFromString)
    ReadGeometry = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_ReadGeometry)
    SetFormatNb = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_SetFormatNb)
    SetProgress = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_SetProgress)
    Shape = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_Shape)

    def __init__(self, *args):
        r"""
        * Builds an empty ShapeSet.
        	:rtype: None
        """
        _TopTools.TopTools_ShapeSet_swiginit(self, _TopTools.new_TopTools_ShapeSet(*args))
    WriteToString = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_WriteToString)
    Write = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_Write)
    WriteGeometryToString = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_WriteGeometryToString)
    WriteGeometry = _swig_new_instance_method(_TopTools.TopTools_ShapeSet_WriteGeometry)

    __repr__ = _dumps_object

    __swig_destroy__ = _TopTools.delete_TopTools_ShapeSet

# Register TopTools_ShapeSet in _TopTools:
_TopTools.TopTools_ShapeSet_swigregister(TopTools_ShapeSet)

class TopTools_HArray1OfShape(TopTools_Array1OfShape, 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):
        _TopTools.TopTools_HArray1OfShape_swiginit(self, _TopTools.new_TopTools_HArray1OfShape(*args))
    Array1 = _swig_new_instance_method(_TopTools.TopTools_HArray1OfShape_Array1)
    ChangeArray1 = _swig_new_instance_method(_TopTools.TopTools_HArray1OfShape_ChangeArray1)


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

    __swig_destroy__ = _TopTools.delete_TopTools_HArray1OfShape

# Register TopTools_HArray1OfShape in _TopTools:
_TopTools.TopTools_HArray1OfShape_swigregister(TopTools_HArray1OfShape)

class TopTools_HArray1OfListOfShape(TopTools_Array1OfListOfShape, 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):
        _TopTools.TopTools_HArray1OfListOfShape_swiginit(self, _TopTools.new_TopTools_HArray1OfListOfShape(*args))
    Array1 = _swig_new_instance_method(_TopTools.TopTools_HArray1OfListOfShape_Array1)
    ChangeArray1 = _swig_new_instance_method(_TopTools.TopTools_HArray1OfListOfShape_ChangeArray1)


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

    __swig_destroy__ = _TopTools.delete_TopTools_HArray1OfListOfShape

# Register TopTools_HArray1OfListOfShape in _TopTools:
_TopTools.TopTools_HArray1OfListOfShape_swigregister(TopTools_HArray1OfListOfShape)

class TopTools_HArray2OfShape(TopTools_Array2OfShape, 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):
        _TopTools.TopTools_HArray2OfShape_swiginit(self, _TopTools.new_TopTools_HArray2OfShape(*args))
    Array2 = _swig_new_instance_method(_TopTools.TopTools_HArray2OfShape_Array2)
    ChangeArray2 = _swig_new_instance_method(_TopTools.TopTools_HArray2OfShape_ChangeArray2)


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

    __swig_destroy__ = _TopTools.delete_TopTools_HArray2OfShape

# Register TopTools_HArray2OfShape in _TopTools:
_TopTools.TopTools_HArray2OfShape_swigregister(TopTools_HArray2OfShape)

class TopTools_HSequenceOfShape(TopTools_SequenceOfShape, 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):
        _TopTools.TopTools_HSequenceOfShape_swiginit(self, _TopTools.new_TopTools_HSequenceOfShape(*args))
    Sequence = _swig_new_instance_method(_TopTools.TopTools_HSequenceOfShape_Sequence)
    Append = _swig_new_instance_method(_TopTools.TopTools_HSequenceOfShape_Append)
    ChangeSequence = _swig_new_instance_method(_TopTools.TopTools_HSequenceOfShape_ChangeSequence)


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

    __swig_destroy__ = _TopTools.delete_TopTools_HSequenceOfShape

# Register TopTools_HSequenceOfShape in _TopTools:
_TopTools.TopTools_HSequenceOfShape_swigregister(TopTools_HSequenceOfShape)



