# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# 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__

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

    def value(self) -> "PyObject *":
        return _TopTools.SwigPyIterator_value(self)

    def incr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _TopTools.SwigPyIterator_incr(self, n)

    def decr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _TopTools.SwigPyIterator_decr(self, n)

    def distance(self, x: "SwigPyIterator") -> "ptrdiff_t":
        return _TopTools.SwigPyIterator_distance(self, x)

    def equal(self, x: "SwigPyIterator") -> "bool":
        return _TopTools.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _TopTools.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _TopTools.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _TopTools.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _TopTools.SwigPyIterator_previous(self)

    def advance(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _TopTools.SwigPyIterator_advance(self, n)

    def __eq__(self, x: "SwigPyIterator") -> "bool":
        return _TopTools.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: "SwigPyIterator") -> "bool":
        return _TopTools.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _TopTools.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _TopTools.SwigPyIterator___isub__(self, n)

    def __add__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _TopTools.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        return _TopTools.SwigPyIterator___sub__(self, *args)
    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


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _TopTools.process_exception(error, method_name, class_name)

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.TCollection
import OCC.Core.OSD
import OCC.Core.TColStd
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp

from enum import IntEnum
from OCC.Core.Exception import *




def Handle_TopTools_HArray1OfShape_Create() -> "opencascade::handle< TopTools_HArray1OfShape >":
    return _TopTools.Handle_TopTools_HArray1OfShape_Create()

def Handle_TopTools_HArray1OfShape_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TopTools_HArray1OfShape >":
    return _TopTools.Handle_TopTools_HArray1OfShape_DownCast(t)

def Handle_TopTools_HArray1OfShape_IsNull(t: "opencascade::handle< TopTools_HArray1OfShape > const &") -> "bool":
    return _TopTools.Handle_TopTools_HArray1OfShape_IsNull(t)

def Handle_TopTools_HArray1OfListOfShape_Create() -> "opencascade::handle< TopTools_HArray1OfListOfShape >":
    return _TopTools.Handle_TopTools_HArray1OfListOfShape_Create()

def Handle_TopTools_HArray1OfListOfShape_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TopTools_HArray1OfListOfShape >":
    return _TopTools.Handle_TopTools_HArray1OfListOfShape_DownCast(t)

def Handle_TopTools_HArray1OfListOfShape_IsNull(t: "opencascade::handle< TopTools_HArray1OfListOfShape > const &") -> "bool":
    return _TopTools.Handle_TopTools_HArray1OfListOfShape_IsNull(t)

def Handle_TopTools_HArray2OfShape_Create() -> "opencascade::handle< TopTools_HArray2OfShape >":
    return _TopTools.Handle_TopTools_HArray2OfShape_Create()

def Handle_TopTools_HArray2OfShape_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TopTools_HArray2OfShape >":
    return _TopTools.Handle_TopTools_HArray2OfShape_DownCast(t)

def Handle_TopTools_HArray2OfShape_IsNull(t: "opencascade::handle< TopTools_HArray2OfShape > const &") -> "bool":
    return _TopTools.Handle_TopTools_HArray2OfShape_IsNull(t)

def Handle_TopTools_HSequenceOfShape_Create() -> "opencascade::handle< TopTools_HSequenceOfShape >":
    return _TopTools.Handle_TopTools_HSequenceOfShape_Create()

def Handle_TopTools_HSequenceOfShape_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TopTools_HSequenceOfShape >":
    return _TopTools.Handle_TopTools_HSequenceOfShape_DownCast(t)

def Handle_TopTools_HSequenceOfShape_IsNull(t: "opencascade::handle< TopTools_HSequenceOfShape > const &") -> "bool":
    return _TopTools.Handle_TopTools_HSequenceOfShape_IsNull(t)
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

    def begin(self) -> "NCollection_Array1< TopTools_ListOfShape >::iterator":
        return _TopTools.TopTools_Array1OfListOfShape_begin(self)

    def end(self) -> "NCollection_Array1< TopTools_ListOfShape >::iterator":
        return _TopTools.TopTools_Array1OfListOfShape_end(self)

    def cbegin(self) -> "NCollection_Array1< TopTools_ListOfShape >::const_iterator":
        return _TopTools.TopTools_Array1OfListOfShape_cbegin(self)

    def cend(self) -> "NCollection_Array1< TopTools_ListOfShape >::const_iterator":
        return _TopTools.TopTools_Array1OfListOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_Array1OfListOfShape_swiginit(self, _TopTools.new_TopTools_Array1OfListOfShape(*args))

    def Init(self, theValue: "TopoDS_ListOfShape") -> "void":
        return _TopTools.TopTools_Array1OfListOfShape_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array1OfListOfShape_Size(self)

    def Length(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array1OfListOfShape_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _TopTools.TopTools_Array1OfListOfShape_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array1OfListOfShape_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array1OfListOfShape_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _TopTools.TopTools_Array1OfListOfShape_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _TopTools.TopTools_Array1OfListOfShape_IsAllocated(self)

    def Assign(self, theOther: "TopTools_Array1OfListOfShape") -> "NCollection_Array1< TopTools_ListOfShape > &":
        return _TopTools.TopTools_Array1OfListOfShape_Assign(self, theOther)

    def Move(self, theOther: "TopTools_Array1OfListOfShape") -> "NCollection_Array1< TopTools_ListOfShape > &":
        return _TopTools.TopTools_Array1OfListOfShape_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< TopTools_ListOfShape > &":
        return _TopTools.TopTools_Array1OfListOfShape_Set(self, *args)

    def First(self) -> "TopTools_ListOfShape const &":
        return _TopTools.TopTools_Array1OfListOfShape_First(self)

    def ChangeFirst(self) -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_Array1OfListOfShape_ChangeFirst(self)

    def Last(self) -> "TopTools_ListOfShape const &":
        return _TopTools.TopTools_Array1OfListOfShape_Last(self)

    def ChangeLast(self) -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_Array1OfListOfShape_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "TopTools_ListOfShape const &":
        return _TopTools.TopTools_Array1OfListOfShape_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_Array1OfListOfShape_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_Array1OfListOfShape___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "TopoDS_ListOfShape") -> "void":
        return _TopTools.TopTools_Array1OfListOfShape_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _TopTools.TopTools_Array1OfListOfShape_Resize(self, theLower, theUpper, theToCopyData)
    __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_Array1OfShape(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_Array1< TopoDS_Shape >::iterator":
        return _TopTools.TopTools_Array1OfShape_begin(self)

    def end(self) -> "NCollection_Array1< TopoDS_Shape >::iterator":
        return _TopTools.TopTools_Array1OfShape_end(self)

    def cbegin(self) -> "NCollection_Array1< TopoDS_Shape >::const_iterator":
        return _TopTools.TopTools_Array1OfShape_cbegin(self)

    def cend(self) -> "NCollection_Array1< TopoDS_Shape >::const_iterator":
        return _TopTools.TopTools_Array1OfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_Array1OfShape_swiginit(self, _TopTools.new_TopTools_Array1OfShape(*args))

    def Init(self, theValue: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_Array1OfShape_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array1OfShape_Size(self)

    def Length(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array1OfShape_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _TopTools.TopTools_Array1OfShape_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array1OfShape_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array1OfShape_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _TopTools.TopTools_Array1OfShape_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _TopTools.TopTools_Array1OfShape_IsAllocated(self)

    def Assign(self, theOther: "TopTools_Array1OfShape") -> "NCollection_Array1< TopoDS_Shape > &":
        return _TopTools.TopTools_Array1OfShape_Assign(self, theOther)

    def Move(self, theOther: "TopTools_Array1OfShape") -> "NCollection_Array1< TopoDS_Shape > &":
        return _TopTools.TopTools_Array1OfShape_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< TopoDS_Shape > &":
        return _TopTools.TopTools_Array1OfShape_Set(self, *args)

    def First(self) -> "TopoDS_Shape const &":
        return _TopTools.TopTools_Array1OfShape_First(self)

    def ChangeFirst(self) -> "TopoDS_Shape &":
        return _TopTools.TopTools_Array1OfShape_ChangeFirst(self)

    def Last(self) -> "TopoDS_Shape const &":
        return _TopTools.TopTools_Array1OfShape_Last(self)

    def ChangeLast(self) -> "TopoDS_Shape &":
        return _TopTools.TopTools_Array1OfShape_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_Array1OfShape_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape &":
        return _TopTools.TopTools_Array1OfShape_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "TopoDS_Shape &":
        return _TopTools.TopTools_Array1OfShape___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_Array1OfShape_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _TopTools.TopTools_Array1OfShape_Resize(self, theLower, theUpper, theToCopyData)
    __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_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))

    def Init(self, theValue: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_Array2OfShape_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_Size(self)

    def Length(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_Length(self)

    def NbRows(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_NbRows(self)

    def NbColumns(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_NbColumns(self)

    def RowLength(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_RowLength(self)

    def ColLength(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_ColLength(self)

    def LowerRow(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_LowerRow(self)

    def UpperRow(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_UpperRow(self)

    def LowerCol(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_LowerCol(self)

    def UpperCol(self) -> "Standard_Integer":
        return _TopTools.TopTools_Array2OfShape_UpperCol(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _TopTools.TopTools_Array2OfShape_IsDeletable(self)

    def Assign(self, theOther: "TopTools_Array2OfShape") -> "NCollection_Array2< TopoDS_Shape > &":
        return _TopTools.TopTools_Array2OfShape_Assign(self, theOther)

    def Move(self, theOther: "TopTools_Array2OfShape") -> "NCollection_Array2< TopoDS_Shape > &":
        return _TopTools.TopTools_Array2OfShape_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array2< TopoDS_Shape > &":
        return _TopTools.TopTools_Array2OfShape_Set(self, *args)

    def Value(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_Array2OfShape_Value(self, theRow, theCol)

    def ChangeValue(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const") -> "TopoDS_Shape &":
        return _TopTools.TopTools_Array2OfShape_ChangeValue(self, theRow, theCol)

    def __call__(self, *args) -> "TopoDS_Shape &":
        return _TopTools.TopTools_Array2OfShape___call__(self, *args)

    def SetValue(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const", theItem: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_Array2OfShape_SetValue(self, theRow, theCol, theItem)

    def Resize(self, theRowLower: "Standard_Integer", theRowUpper: "Standard_Integer", theColLower: "Standard_Integer", theColUpper: "Standard_Integer", theToCopyData: "Standard_Boolean") -> "void":
        return _TopTools.TopTools_Array2OfShape_Resize(self, theRowLower, theRowUpper, theColLower, theColUpper, theToCopyData)
    __swig_destroy__ = _TopTools.delete_TopTools_Array2OfShape

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

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

    def begin(self) -> "NCollection_DataMap< int,TopTools_ListOfShape,NCollection_DefaultHasher< int > >::iterator":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_begin(self)

    def end(self) -> "NCollection_DataMap< int,TopTools_ListOfShape,NCollection_DefaultHasher< int > >::iterator":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_end(self)

    def cbegin(self) -> "NCollection_DataMap< int,TopTools_ListOfShape,NCollection_DefaultHasher< int > >::const_iterator":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_cbegin(self)

    def cend(self) -> "NCollection_DataMap< int,TopTools_ListOfShape,NCollection_DefaultHasher< int > >::const_iterator":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfIntegerListOfShape_swiginit(self, _TopTools.new_TopTools_DataMapOfIntegerListOfShape(*args))

    def Exchange(self, theOther: "NCollection_DataMap< Standard_Integer,TopTools_ListOfShape,TColStd_MapIntegerHasher > &") -> "void":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Exchange(self, theOther)

    def Assign(self, theOther: "NCollection_DataMap< Standard_Integer,TopTools_ListOfShape,TColStd_MapIntegerHasher > const &") -> "NCollection_DataMap< Standard_Integer,TopTools_ListOfShape,TColStd_MapIntegerHasher > &":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Assign(self, theOther)

    def Set(self, theOther: "NCollection_DataMap< Standard_Integer,TopTools_ListOfShape,TColStd_MapIntegerHasher > const &") -> "NCollection_DataMap< Standard_Integer,TopTools_ListOfShape,TColStd_MapIntegerHasher > &":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_ReSize(self, N)

    def Bind(self, theKey: "int const &", theItem: "TopoDS_ListOfShape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Bind(self, theKey, theItem)

    def Bound(self, theKey: "int const &", theItem: "TopoDS_ListOfShape") -> "TopTools_ListOfShape *":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "int const &") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_IsBound(self, theKey)

    def UnBind(self, theKey: "int const &") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_UnBind(self, theKey)

    def Seek(self, theKey: "int const &") -> "TopTools_ListOfShape const *":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Find(self, *args)

    def ChangeSeek(self, theKey: "int const &") -> "TopTools_ListOfShape *":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "int const &") -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_ChangeFind(self, theKey)

    def __call__(self, *args) -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfIntegerListOfShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Size(self)

    def Keys(self) -> "PyObject *":
        return _TopTools.TopTools_DataMapOfIntegerListOfShape_Keys(self)

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

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

    def begin(self) -> "NCollection_DataMap< int,TopoDS_Shape,NCollection_DefaultHasher< int > >::iterator":
        return _TopTools.TopTools_DataMapOfIntegerShape_begin(self)

    def end(self) -> "NCollection_DataMap< int,TopoDS_Shape,NCollection_DefaultHasher< int > >::iterator":
        return _TopTools.TopTools_DataMapOfIntegerShape_end(self)

    def cbegin(self) -> "NCollection_DataMap< int,TopoDS_Shape,NCollection_DefaultHasher< int > >::const_iterator":
        return _TopTools.TopTools_DataMapOfIntegerShape_cbegin(self)

    def cend(self) -> "NCollection_DataMap< int,TopoDS_Shape,NCollection_DefaultHasher< int > >::const_iterator":
        return _TopTools.TopTools_DataMapOfIntegerShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfIntegerShape_swiginit(self, _TopTools.new_TopTools_DataMapOfIntegerShape(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfIntegerShape") -> "void":
        return _TopTools.TopTools_DataMapOfIntegerShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfIntegerShape") -> "NCollection_DataMap< Standard_Integer,TopoDS_Shape,TColStd_MapIntegerHasher > &":
        return _TopTools.TopTools_DataMapOfIntegerShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfIntegerShape") -> "NCollection_DataMap< Standard_Integer,TopoDS_Shape,TColStd_MapIntegerHasher > &":
        return _TopTools.TopTools_DataMapOfIntegerShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfIntegerShape_ReSize(self, N)

    def Bind(self, theKey: "int const &", theItem: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfIntegerShape_Bind(self, theKey, theItem)

    def Bound(self, theKey: "int const &", theItem: "TopoDS_Shape") -> "TopoDS_Shape *":
        return _TopTools.TopTools_DataMapOfIntegerShape_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "int const &") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfIntegerShape_IsBound(self, theKey)

    def UnBind(self, theKey: "int const &") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfIntegerShape_UnBind(self, theKey)

    def Seek(self, theKey: "int const &") -> "TopoDS_Shape const *":
        return _TopTools.TopTools_DataMapOfIntegerShape_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfIntegerShape_Find(self, *args)

    def ChangeSeek(self, theKey: "int const &") -> "TopoDS_Shape *":
        return _TopTools.TopTools_DataMapOfIntegerShape_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "int const &") -> "TopoDS_Shape &":
        return _TopTools.TopTools_DataMapOfIntegerShape_ChangeFind(self, theKey)

    def __call__(self, *args) -> "TopoDS_Shape &":
        return _TopTools.TopTools_DataMapOfIntegerShape___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfIntegerShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfIntegerShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfIntegerShape_Size(self)

    def Keys(self) -> "PyObject *":
        return _TopTools.TopTools_DataMapOfIntegerShape_Keys(self)

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

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

    def begin(self) -> "NCollection_DataMap< TopoDS_Shape,int,TopTools_OrientedShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,int,TopTools_OrientedShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,int,TopTools_OrientedShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,int,TopTools_OrientedShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfOrientedShapeInteger_swiginit(self, _TopTools.new_TopTools_DataMapOfOrientedShapeInteger(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfOrientedShapeInteger") -> "void":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfOrientedShapeInteger") -> "NCollection_DataMap< TopoDS_Shape,Standard_Integer,TopTools_OrientedShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfOrientedShapeInteger") -> "NCollection_DataMap< TopoDS_Shape,Standard_Integer,TopTools_OrientedShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "int const &") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "int const &") -> "int *":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "int const *":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "int *":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "int &":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_ChangeFind(self, theKey)

    def __call__(self, *args) -> "int &":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfOrientedShapeInteger

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfOrientedShapeInteger_Size(self)

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

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

    def begin(self) -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_OrientedShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_OrientedShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_OrientedShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_OrientedShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfOrientedShapeShape_swiginit(self, _TopTools.new_TopTools_DataMapOfOrientedShapeShape(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfOrientedShapeShape") -> "void":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfOrientedShapeShape") -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_OrientedShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfOrientedShapeShape") -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_OrientedShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "TopoDS_Shape") -> "TopoDS_Shape *":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "TopoDS_Shape const *":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "TopoDS_Shape *":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "TopoDS_Shape &":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_ChangeFind(self, theKey)

    def __call__(self, *args) -> "TopoDS_Shape &":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfOrientedShapeShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfOrientedShapeShape_Size(self)

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

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

    def begin(self) -> "NCollection_DataMap< TopoDS_Shape,Bnd_Box,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeBox_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,Bnd_Box,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeBox_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,Bnd_Box,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeBox_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,Bnd_Box,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeBox_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeBox_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeBox(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfShapeBox") -> "void":
        return _TopTools.TopTools_DataMapOfShapeBox_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfShapeBox") -> "NCollection_DataMap< TopoDS_Shape,Bnd_Box,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeBox_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfShapeBox") -> "NCollection_DataMap< TopoDS_Shape,Bnd_Box,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeBox_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfShapeBox_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "Bnd_Box const &") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeBox_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "Bnd_Box const &") -> "Bnd_Box *":
        return _TopTools.TopTools_DataMapOfShapeBox_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeBox_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeBox_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "Bnd_Box const *":
        return _TopTools.TopTools_DataMapOfShapeBox_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeBox_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "Bnd_Box *":
        return _TopTools.TopTools_DataMapOfShapeBox_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "Bnd_Box &":
        return _TopTools.TopTools_DataMapOfShapeBox_ChangeFind(self, theKey)

    def __call__(self, *args) -> "Bnd_Box &":
        return _TopTools.TopTools_DataMapOfShapeBox___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfShapeBox_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeBox

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfShapeBox_Size(self)

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

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

    def begin(self) -> "NCollection_DataMap< TopoDS_Shape,int,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeInteger_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,int,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeInteger_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,int,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeInteger_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,int,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeInteger_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeInteger_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeInteger(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfShapeInteger") -> "void":
        return _TopTools.TopTools_DataMapOfShapeInteger_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfShapeInteger") -> "NCollection_DataMap< TopoDS_Shape,Standard_Integer,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeInteger_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfShapeInteger") -> "NCollection_DataMap< TopoDS_Shape,Standard_Integer,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeInteger_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfShapeInteger_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "int const &") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeInteger_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "int const &") -> "int *":
        return _TopTools.TopTools_DataMapOfShapeInteger_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeInteger_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeInteger_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "int const *":
        return _TopTools.TopTools_DataMapOfShapeInteger_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeInteger_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "int *":
        return _TopTools.TopTools_DataMapOfShapeInteger_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "int &":
        return _TopTools.TopTools_DataMapOfShapeInteger_ChangeFind(self, theKey)

    def __call__(self, *args) -> "int &":
        return _TopTools.TopTools_DataMapOfShapeInteger___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfShapeInteger_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeInteger

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfShapeInteger_Size(self)

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

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

    def begin(self) -> "NCollection_DataMap< TopoDS_Shape,NCollection_List< int >,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,NCollection_List< int >,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,NCollection_List< int >,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,NCollection_List< int >,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeListOfInteger_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeListOfInteger(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfShapeListOfInteger") -> "void":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfShapeListOfInteger") -> "NCollection_DataMap< TopoDS_Shape,TColStd_ListOfInteger,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfShapeListOfInteger") -> "NCollection_DataMap< TopoDS_Shape,TColStd_ListOfInteger,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "TColStd_ListOfInteger") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "TColStd_ListOfInteger") -> "NCollection_List< int > *":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "NCollection_List< int > const *":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "NCollection_List< int > *":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "NCollection_List< int > &":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_ChangeFind(self, theKey)

    def __call__(self, *args) -> "NCollection_List< int > &":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeListOfInteger

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfShapeListOfInteger_Size(self)

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

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

    def begin(self) -> "NCollection_DataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeListOfShape_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeListOfShape(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfShapeListOfShape") -> "void":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfShapeListOfShape") -> "NCollection_DataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfShapeListOfShape") -> "NCollection_DataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "TopoDS_ListOfShape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "TopoDS_ListOfShape") -> "TopTools_ListOfShape *":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "TopTools_ListOfShape const *":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "TopTools_ListOfShape *":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_ChangeFind(self, theKey)

    def __call__(self, *args) -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_DataMapOfShapeListOfShape___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeListOfShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfShapeListOfShape_Size(self)

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

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

    def begin(self) -> "NCollection_DataMap< TopoDS_Shape,double,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeReal_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,double,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeReal_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,double,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeReal_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,double,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeReal_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeReal_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeReal(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfShapeReal") -> "void":
        return _TopTools.TopTools_DataMapOfShapeReal_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfShapeReal") -> "NCollection_DataMap< TopoDS_Shape,Standard_Real,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeReal_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfShapeReal") -> "NCollection_DataMap< TopoDS_Shape,Standard_Real,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeReal_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfShapeReal_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "double const &") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeReal_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "double const &") -> "double *":
        return _TopTools.TopTools_DataMapOfShapeReal_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeReal_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeReal_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "double const *":
        return _TopTools.TopTools_DataMapOfShapeReal_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeReal_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "double *":
        return _TopTools.TopTools_DataMapOfShapeReal_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "double &":
        return _TopTools.TopTools_DataMapOfShapeReal_ChangeFind(self, theKey)

    def __call__(self, *args) -> "double &":
        return _TopTools.TopTools_DataMapOfShapeReal___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfShapeReal_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeReal

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfShapeReal_Size(self)

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

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

    def begin(self) -> "NCollection_DataMap< TopoDS_Shape,TopTools_SequenceOfShape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,TopTools_SequenceOfShape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,TopTools_SequenceOfShape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,TopTools_SequenceOfShape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeSequenceOfShape_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeSequenceOfShape(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfShapeSequenceOfShape") -> "void":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfShapeSequenceOfShape") -> "NCollection_DataMap< TopoDS_Shape,TopTools_SequenceOfShape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfShapeSequenceOfShape") -> "NCollection_DataMap< TopoDS_Shape,TopTools_SequenceOfShape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "TopTools_SequenceOfShape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "TopTools_SequenceOfShape") -> "TopTools_SequenceOfShape *":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "TopTools_SequenceOfShape const *":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "TopTools_SequenceOfShape *":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "TopTools_SequenceOfShape &":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_ChangeFind(self, theKey)

    def __call__(self, *args) -> "TopTools_SequenceOfShape &":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeSequenceOfShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfShapeSequenceOfShape_Size(self)

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

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

    def begin(self) -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeShape_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_DataMapOfShapeShape_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeShape_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_DataMapOfShapeShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_DataMapOfShapeShape_swiginit(self, _TopTools.new_TopTools_DataMapOfShapeShape(*args))

    def Exchange(self, theOther: "TopTools_DataMapOfShapeShape") -> "void":
        return _TopTools.TopTools_DataMapOfShapeShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_DataMapOfShapeShape") -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_DataMapOfShapeShape") -> "NCollection_DataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_DataMapOfShapeShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_DataMapOfShapeShape_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeShape_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "TopoDS_Shape") -> "TopoDS_Shape *":
        return _TopTools.TopTools_DataMapOfShapeShape_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeShape_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeShape_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "TopoDS_Shape const *":
        return _TopTools.TopTools_DataMapOfShapeShape_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_DataMapOfShapeShape_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "TopoDS_Shape *":
        return _TopTools.TopTools_DataMapOfShapeShape_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "TopoDS_Shape &":
        return _TopTools.TopTools_DataMapOfShapeShape_ChangeFind(self, theKey)

    def __call__(self, *args) -> "TopoDS_Shape &":
        return _TopTools.TopTools_DataMapOfShapeShape___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_DataMapOfShapeShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_DataMapOfShapeShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_DataMapOfShapeShape_Size(self)

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

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

    def begin(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,void *,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_begin(self)

    def end(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,void *,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_end(self)

    def cbegin(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,void *,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_cbegin(self)

    def cend(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,void *,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedDataMapOfShapeAddress_swiginit(self, _TopTools.new_TopTools_IndexedDataMapOfShapeAddress(*args))

    def Exchange(self, theOther: "TopTools_IndexedDataMapOfShapeAddress") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_IndexedDataMapOfShapeAddress") -> "NCollection_IndexedDataMap< TopoDS_Shape,void *,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Assign(self, theOther)

    def Set(self, theOther: "TopTools_IndexedDataMapOfShapeAddress") -> "NCollection_IndexedDataMap< TopoDS_Shape,void *,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_ReSize(self, N)

    def Add(self, theKey1: "TopoDS_Shape", theItem: "void *const &") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Add(self, theKey1, theItem)

    def Contains(self, theKey1: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "TopoDS_Shape", theItem: "void *const &") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Substitute(self, theIndex, theKey1, theItem)

    def Swap(self, theIndex1: "Standard_Integer const", theIndex2: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self) -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_RemoveLast(self)

    def RemoveFromIndex(self, theIndex: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_FindKey(self, theIndex)

    def FindFromIndex(self, theIndex: "Standard_Integer const") -> "void *const &":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_FindFromIndex(self, theIndex)

    def ChangeFromIndex(self, theIndex: "Standard_Integer const") -> "void *&":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_ChangeFromIndex(self, theIndex)

    def __call__(self, *args) -> "void *&":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress___call__(self, *args)

    def FindIndex(self, theKey1: "TopoDS_Shape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_FindIndex(self, theKey1)

    def ChangeFromKey(self, theKey1: "TopoDS_Shape") -> "void *&":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_ChangeFromKey(self, theKey1)

    def Seek(self, theKey1: "TopoDS_Shape") -> "void *const *":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Seek(self, theKey1)

    def ChangeSeek(self, theKey1: "TopoDS_Shape") -> "void **":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_ChangeSeek(self, theKey1)

    def FindFromKey(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_FindFromKey(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedDataMapOfShapeAddress

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeAddress_Size(self)

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

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

    def begin(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_begin(self)

    def end(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_end(self)

    def cbegin(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_cbegin(self)

    def cend(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_swiginit(self, _TopTools.new_TopTools_IndexedDataMapOfShapeListOfShape(*args))

    def Exchange(self, theOther: "TopTools_IndexedDataMapOfShapeListOfShape") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_IndexedDataMapOfShapeListOfShape") -> "NCollection_IndexedDataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_IndexedDataMapOfShapeListOfShape") -> "NCollection_IndexedDataMap< TopoDS_Shape,TopTools_ListOfShape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_ReSize(self, N)

    def Add(self, theKey1: "TopoDS_Shape", theItem: "TopoDS_ListOfShape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Add(self, theKey1, theItem)

    def Contains(self, theKey1: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "TopoDS_Shape", theItem: "TopoDS_ListOfShape") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Substitute(self, theIndex, theKey1, theItem)

    def Swap(self, theIndex1: "Standard_Integer const", theIndex2: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self) -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_RemoveLast(self)

    def RemoveFromIndex(self, theIndex: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_FindKey(self, theIndex)

    def FindFromIndex(self, theIndex: "Standard_Integer const") -> "TopTools_ListOfShape const &":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_FindFromIndex(self, theIndex)

    def ChangeFromIndex(self, theIndex: "Standard_Integer const") -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_ChangeFromIndex(self, theIndex)

    def __call__(self, *args) -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape___call__(self, *args)

    def FindIndex(self, theKey1: "TopoDS_Shape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_FindIndex(self, theKey1)

    def ChangeFromKey(self, theKey1: "TopoDS_Shape") -> "TopTools_ListOfShape &":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_ChangeFromKey(self, theKey1)

    def Seek(self, theKey1: "TopoDS_Shape") -> "TopTools_ListOfShape const *":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Seek(self, theKey1)

    def ChangeSeek(self, theKey1: "TopoDS_Shape") -> "TopTools_ListOfShape *":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_ChangeSeek(self, theKey1)

    def FindFromKey(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_FindFromKey(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedDataMapOfShapeListOfShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeListOfShape_Size(self)

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

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

    def begin(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,double,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_begin(self)

    def end(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,double,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_end(self)

    def cbegin(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,double,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_cbegin(self)

    def cend(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,double,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedDataMapOfShapeReal_swiginit(self, _TopTools.new_TopTools_IndexedDataMapOfShapeReal(*args))

    def Exchange(self, theOther: "TopTools_IndexedDataMapOfShapeReal") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_IndexedDataMapOfShapeReal") -> "NCollection_IndexedDataMap< TopoDS_Shape,Standard_Real,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Assign(self, theOther)

    def Set(self, theOther: "TopTools_IndexedDataMapOfShapeReal") -> "NCollection_IndexedDataMap< TopoDS_Shape,Standard_Real,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_ReSize(self, N)

    def Add(self, theKey1: "TopoDS_Shape", theItem: "double const &") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Add(self, theKey1, theItem)

    def Contains(self, theKey1: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "TopoDS_Shape", theItem: "double const &") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Substitute(self, theIndex, theKey1, theItem)

    def Swap(self, theIndex1: "Standard_Integer const", theIndex2: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self) -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_RemoveLast(self)

    def RemoveFromIndex(self, theIndex: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_FindKey(self, theIndex)

    def FindFromIndex(self, theIndex: "Standard_Integer const") -> "double const &":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_FindFromIndex(self, theIndex)

    def ChangeFromIndex(self, theIndex: "Standard_Integer const") -> "double &":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_ChangeFromIndex(self, theIndex)

    def __call__(self, *args) -> "double &":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal___call__(self, *args)

    def FindIndex(self, theKey1: "TopoDS_Shape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_FindIndex(self, theKey1)

    def ChangeFromKey(self, theKey1: "TopoDS_Shape") -> "double &":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_ChangeFromKey(self, theKey1)

    def Seek(self, theKey1: "TopoDS_Shape") -> "double const *":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Seek(self, theKey1)

    def ChangeSeek(self, theKey1: "TopoDS_Shape") -> "double *":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_ChangeSeek(self, theKey1)

    def FindFromKey(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_FindFromKey(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedDataMapOfShapeReal

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeReal_Size(self)

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

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

    def begin(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_begin(self)

    def end(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher >::iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_end(self)

    def cbegin(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_cbegin(self)

    def cend(self) -> "NCollection_IndexedDataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedDataMapOfShapeShape_swiginit(self, _TopTools.new_TopTools_IndexedDataMapOfShapeShape(*args))

    def Exchange(self, theOther: "TopTools_IndexedDataMapOfShapeShape") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_IndexedDataMapOfShapeShape") -> "NCollection_IndexedDataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_IndexedDataMapOfShapeShape") -> "NCollection_IndexedDataMap< TopoDS_Shape,TopoDS_Shape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_ReSize(self, N)

    def Add(self, theKey1: "TopoDS_Shape", theItem: "TopoDS_Shape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Add(self, theKey1, theItem)

    def Contains(self, theKey1: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "TopoDS_Shape", theItem: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Substitute(self, theIndex, theKey1, theItem)

    def Swap(self, theIndex1: "Standard_Integer const", theIndex2: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self) -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_RemoveLast(self)

    def RemoveFromIndex(self, theIndex: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_FindKey(self, theIndex)

    def FindFromIndex(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_FindFromIndex(self, theIndex)

    def ChangeFromIndex(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape &":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_ChangeFromIndex(self, theIndex)

    def __call__(self, *args) -> "TopoDS_Shape &":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape___call__(self, *args)

    def FindIndex(self, theKey1: "TopoDS_Shape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_FindIndex(self, theKey1)

    def ChangeFromKey(self, theKey1: "TopoDS_Shape") -> "TopoDS_Shape &":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_ChangeFromKey(self, theKey1)

    def Seek(self, theKey1: "TopoDS_Shape") -> "TopoDS_Shape const *":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Seek(self, theKey1)

    def ChangeSeek(self, theKey1: "TopoDS_Shape") -> "TopoDS_Shape *":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_ChangeSeek(self, theKey1)

    def FindFromKey(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_FindFromKey(self, *args)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedDataMapOfShapeShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_IndexedDataMapOfShapeShape_Size(self)

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

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

    def cbegin(self) -> "NCollection_IndexedMap< TopoDS_Shape,TopTools_OrientedShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_cbegin(self)

    def cend(self) -> "NCollection_IndexedMap< TopoDS_Shape,TopTools_OrientedShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedMapOfOrientedShape_swiginit(self, _TopTools.new_TopTools_IndexedMapOfOrientedShape(*args))

    def Exchange(self, theOther: "TopTools_IndexedMapOfOrientedShape") -> "void":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_IndexedMapOfOrientedShape") -> "NCollection_IndexedMap< TopoDS_Shape,TopTools_OrientedShapeMapHasher > &":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_IndexedMapOfOrientedShape") -> "NCollection_IndexedMap< TopoDS_Shape,TopTools_OrientedShapeMapHasher > &":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_Set(self, theOther)

    def ReSize(self, theExtent: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_ReSize(self, theExtent)

    def Add(self, theKey1: "TopoDS_Shape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_Add(self, theKey1)

    def Contains(self, theKey1: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_Substitute(self, theIndex, theKey1)

    def Swap(self, theIndex1: "Standard_Integer const", theIndex2: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self) -> "void":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_RemoveLast(self)

    def RemoveFromIndex(self, theIndex: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_FindKey(self, theIndex)

    def __call__(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_IndexedMapOfOrientedShape___call__(self, theIndex)

    def FindIndex(self, theKey1: "TopoDS_Shape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_FindIndex(self, theKey1)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedMapOfOrientedShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_IndexedMapOfOrientedShape_Size(self)

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

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

    def cbegin(self) -> "NCollection_IndexedMap< TopoDS_Shape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedMapOfShape_cbegin(self)

    def cend(self) -> "NCollection_IndexedMap< TopoDS_Shape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_IndexedMapOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_IndexedMapOfShape_swiginit(self, _TopTools.new_TopTools_IndexedMapOfShape(*args))

    def Exchange(self, theOther: "TopTools_IndexedMapOfShape") -> "void":
        return _TopTools.TopTools_IndexedMapOfShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_IndexedMapOfShape") -> "NCollection_IndexedMap< TopoDS_Shape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedMapOfShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_IndexedMapOfShape") -> "NCollection_IndexedMap< TopoDS_Shape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_IndexedMapOfShape_Set(self, theOther)

    def ReSize(self, theExtent: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedMapOfShape_ReSize(self, theExtent)

    def Add(self, theKey1: "TopoDS_Shape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedMapOfShape_Add(self, theKey1)

    def Contains(self, theKey1: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedMapOfShape_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_IndexedMapOfShape_Substitute(self, theIndex, theKey1)

    def Swap(self, theIndex1: "Standard_Integer const", theIndex2: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedMapOfShape_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self) -> "void":
        return _TopTools.TopTools_IndexedMapOfShape_RemoveLast(self)

    def RemoveFromIndex(self, theIndex: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_IndexedMapOfShape_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_IndexedMapOfShape_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_IndexedMapOfShape_FindKey(self, theIndex)

    def __call__(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_IndexedMapOfShape___call__(self, theIndex)

    def FindIndex(self, theKey1: "TopoDS_Shape") -> "Standard_Integer":
        return _TopTools.TopTools_IndexedMapOfShape_FindIndex(self, theKey1)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_IndexedMapOfShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_IndexedMapOfShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_IndexedMapOfShape_Size(self)

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

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))

    def More(self) -> "Standard_Boolean":
        return _TopTools.TopTools_ListIteratorOfListOfShape_More(self)

    def Next(self) -> "void":
        return _TopTools.TopTools_ListIteratorOfListOfShape_Next(self)

    def Value(self) -> "TopoDS_Shape const &":
        return _TopTools.TopTools_ListIteratorOfListOfShape_Value(self)

    def ChangeValue(self) -> "TopoDS_Shape &":
        return _TopTools.TopTools_ListIteratorOfListOfShape_ChangeValue(self)
    __swig_destroy__ = _TopTools.delete_TopTools_ListIteratorOfListOfShape

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

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

    def begin(self) -> "NCollection_List< TopTools_ListOfShape >::iterator":
        return _TopTools.TopTools_ListOfListOfShape_begin(self)

    def end(self) -> "NCollection_List< TopTools_ListOfShape >::iterator":
        return _TopTools.TopTools_ListOfListOfShape_end(self)

    def cbegin(self) -> "NCollection_List< TopTools_ListOfShape >::const_iterator":
        return _TopTools.TopTools_ListOfListOfShape_cbegin(self)

    def cend(self) -> "NCollection_List< TopTools_ListOfShape >::const_iterator":
        return _TopTools.TopTools_ListOfListOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_ListOfListOfShape_swiginit(self, _TopTools.new_TopTools_ListOfListOfShape(*args))

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_ListOfListOfShape_Size(self)

    def Assign(self, theOther: "TopTools_ListOfListOfShape") -> "NCollection_List< TopTools_ListOfShape > &":
        return _TopTools.TopTools_ListOfListOfShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_ListOfListOfShape") -> "NCollection_List< TopTools_ListOfShape > &":
        return _TopTools.TopTools_ListOfListOfShape_Set(self, theOther)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _TopTools.TopTools_ListOfListOfShape_Clear(self, theAllocator)

    def First(self) -> "TopTools_ListOfShape const &":
        return _TopTools.TopTools_ListOfListOfShape_First(self)

    def Last(self) -> "TopTools_ListOfShape const &":
        return _TopTools.TopTools_ListOfListOfShape_Last(self)

    def Append(self, *args) -> "void":
        return _TopTools.TopTools_ListOfListOfShape_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TopTools.TopTools_ListOfListOfShape_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _TopTools.TopTools_ListOfListOfShape_RemoveFirst(self)

    def Remove(self, theIter: "NCollection_List< TopTools_ListOfShape >::Iterator &") -> "void":
        return _TopTools.TopTools_ListOfListOfShape_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _TopTools.TopTools_ListOfListOfShape_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TopTools.TopTools_ListOfListOfShape_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _TopTools.TopTools_ListOfListOfShape_Reverse(self)
    __swig_destroy__ = _TopTools.delete_TopTools_ListOfListOfShape

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


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

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

    def begin(self) -> "NCollection_List< TopoDS_Shape >::iterator":
        return _TopTools.TopTools_ListOfShape_begin(self)

    def end(self) -> "NCollection_List< TopoDS_Shape >::iterator":
        return _TopTools.TopTools_ListOfShape_end(self)

    def cbegin(self) -> "NCollection_List< TopoDS_Shape >::const_iterator":
        return _TopTools.TopTools_ListOfShape_cbegin(self)

    def cend(self) -> "NCollection_List< TopoDS_Shape >::const_iterator":
        return _TopTools.TopTools_ListOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_ListOfShape_swiginit(self, _TopTools.new_TopTools_ListOfShape(*args))

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_ListOfShape_Size(self)

    def Assign(self, theOther: "TopoDS_ListOfShape") -> "NCollection_List< TopoDS_Shape > &":
        return _TopTools.TopTools_ListOfShape_Assign(self, theOther)

    def Set(self, theOther: "TopoDS_ListOfShape") -> "NCollection_List< TopoDS_Shape > &":
        return _TopTools.TopTools_ListOfShape_Set(self, theOther)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _TopTools.TopTools_ListOfShape_Clear(self, theAllocator)

    def First(self) -> "TopoDS_Shape const &":
        return _TopTools.TopTools_ListOfShape_First(self)

    def Last(self) -> "TopoDS_Shape const &":
        return _TopTools.TopTools_ListOfShape_Last(self)

    def Append(self, *args) -> "void":
        return _TopTools.TopTools_ListOfShape_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TopTools.TopTools_ListOfShape_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _TopTools.TopTools_ListOfShape_RemoveFirst(self)

    def Remove(self, theIter: "TopoDS_ListIteratorOfListOfShape") -> "void":
        return _TopTools.TopTools_ListOfShape_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _TopTools.TopTools_ListOfShape_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TopTools.TopTools_ListOfShape_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _TopTools.TopTools_ListOfShape_Reverse(self)
    __swig_destroy__ = _TopTools.delete_TopTools_ListOfShape

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


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

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

    def cbegin(self) -> "NCollection_Map< TopoDS_Shape,TopTools_OrientedShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_MapOfOrientedShape_cbegin(self)

    def cend(self) -> "NCollection_Map< TopoDS_Shape,TopTools_OrientedShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_MapOfOrientedShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_MapOfOrientedShape_swiginit(self, _TopTools.new_TopTools_MapOfOrientedShape(*args))

    def Exchange(self, theOther: "TopTools_MapOfOrientedShape") -> "void":
        return _TopTools.TopTools_MapOfOrientedShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_MapOfOrientedShape") -> "NCollection_Map< TopoDS_Shape,TopTools_OrientedShapeMapHasher > &":
        return _TopTools.TopTools_MapOfOrientedShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_MapOfOrientedShape") -> "NCollection_Map< TopoDS_Shape,TopTools_OrientedShapeMapHasher > &":
        return _TopTools.TopTools_MapOfOrientedShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_MapOfOrientedShape_ReSize(self, N)

    def Add(self, K: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfOrientedShape_Add(self, K)

    def Added(self, K: "TopoDS_Shape") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_MapOfOrientedShape_Added(self, K)

    def Remove(self, K: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfOrientedShape_Remove(self, K)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_MapOfOrientedShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_MapOfOrientedShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_MapOfOrientedShape_Size(self)

    def IsEqual(self, theOther: "TopTools_MapOfOrientedShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfOrientedShape_IsEqual(self, theOther)

    def Contains(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfOrientedShape_Contains(self, *args)

    def Union(self, theLeft: "TopTools_MapOfOrientedShape", theRight: "TopTools_MapOfOrientedShape") -> "void":
        return _TopTools.TopTools_MapOfOrientedShape_Union(self, theLeft, theRight)

    def Unite(self, theOther: "TopTools_MapOfOrientedShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfOrientedShape_Unite(self, theOther)

    def HasIntersection(self, theMap: "TopTools_MapOfOrientedShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfOrientedShape_HasIntersection(self, theMap)

    def Intersection(self, theLeft: "TopTools_MapOfOrientedShape", theRight: "TopTools_MapOfOrientedShape") -> "void":
        return _TopTools.TopTools_MapOfOrientedShape_Intersection(self, theLeft, theRight)

    def Intersect(self, theOther: "TopTools_MapOfOrientedShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfOrientedShape_Intersect(self, theOther)

    def Subtraction(self, theLeft: "TopTools_MapOfOrientedShape", theRight: "TopTools_MapOfOrientedShape") -> "void":
        return _TopTools.TopTools_MapOfOrientedShape_Subtraction(self, theLeft, theRight)

    def Subtract(self, theOther: "TopTools_MapOfOrientedShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfOrientedShape_Subtract(self, theOther)

    def Difference(self, theLeft: "TopTools_MapOfOrientedShape", theRight: "TopTools_MapOfOrientedShape") -> "void":
        return _TopTools.TopTools_MapOfOrientedShape_Difference(self, theLeft, theRight)

    def Differ(self, theOther: "TopTools_MapOfOrientedShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfOrientedShape_Differ(self, theOther)

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

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

    def cbegin(self) -> "NCollection_Map< TopoDS_Shape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_MapOfShape_cbegin(self)

    def cend(self) -> "NCollection_Map< TopoDS_Shape,TopTools_ShapeMapHasher >::const_iterator":
        return _TopTools.TopTools_MapOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_MapOfShape_swiginit(self, _TopTools.new_TopTools_MapOfShape(*args))

    def Exchange(self, theOther: "TopTools_MapOfShape") -> "void":
        return _TopTools.TopTools_MapOfShape_Exchange(self, theOther)

    def Assign(self, theOther: "TopTools_MapOfShape") -> "NCollection_Map< TopoDS_Shape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_MapOfShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_MapOfShape") -> "NCollection_Map< TopoDS_Shape,TopTools_ShapeMapHasher > &":
        return _TopTools.TopTools_MapOfShape_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_MapOfShape_ReSize(self, N)

    def Add(self, K: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfShape_Add(self, K)

    def Added(self, K: "TopoDS_Shape") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_MapOfShape_Added(self, K)

    def Remove(self, K: "TopoDS_Shape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfShape_Remove(self, K)

    def Clear(self, *args) -> "void":
        return _TopTools.TopTools_MapOfShape_Clear(self, *args)
    __swig_destroy__ = _TopTools.delete_TopTools_MapOfShape

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_MapOfShape_Size(self)

    def IsEqual(self, theOther: "TopTools_MapOfShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfShape_IsEqual(self, theOther)

    def Contains(self, *args) -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfShape_Contains(self, *args)

    def Union(self, theLeft: "TopTools_MapOfShape", theRight: "TopTools_MapOfShape") -> "void":
        return _TopTools.TopTools_MapOfShape_Union(self, theLeft, theRight)

    def Unite(self, theOther: "TopTools_MapOfShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfShape_Unite(self, theOther)

    def HasIntersection(self, theMap: "TopTools_MapOfShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfShape_HasIntersection(self, theMap)

    def Intersection(self, theLeft: "TopTools_MapOfShape", theRight: "TopTools_MapOfShape") -> "void":
        return _TopTools.TopTools_MapOfShape_Intersection(self, theLeft, theRight)

    def Intersect(self, theOther: "TopTools_MapOfShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfShape_Intersect(self, theOther)

    def Subtraction(self, theLeft: "TopTools_MapOfShape", theRight: "TopTools_MapOfShape") -> "void":
        return _TopTools.TopTools_MapOfShape_Subtraction(self, theLeft, theRight)

    def Subtract(self, theOther: "TopTools_MapOfShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfShape_Subtract(self, theOther)

    def Difference(self, theLeft: "TopTools_MapOfShape", theRight: "TopTools_MapOfShape") -> "void":
        return _TopTools.TopTools_MapOfShape_Difference(self, theLeft, theRight)

    def Differ(self, theOther: "TopTools_MapOfShape") -> "Standard_Boolean":
        return _TopTools.TopTools_MapOfShape_Differ(self, theOther)

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

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

    def begin(self) -> "NCollection_Sequence< TopoDS_Shape >::iterator":
        return _TopTools.TopTools_SequenceOfShape_begin(self)

    def end(self) -> "NCollection_Sequence< TopoDS_Shape >::iterator":
        return _TopTools.TopTools_SequenceOfShape_end(self)

    def cbegin(self) -> "NCollection_Sequence< TopoDS_Shape >::const_iterator":
        return _TopTools.TopTools_SequenceOfShape_cbegin(self)

    def cend(self) -> "NCollection_Sequence< TopoDS_Shape >::const_iterator":
        return _TopTools.TopTools_SequenceOfShape_cend(self)

    def __init__(self, *args):
        _TopTools.TopTools_SequenceOfShape_swiginit(self, _TopTools.new_TopTools_SequenceOfShape(*args))

    def Size(self) -> "Standard_Integer":
        return _TopTools.TopTools_SequenceOfShape_Size(self)

    def Length(self) -> "Standard_Integer":
        return _TopTools.TopTools_SequenceOfShape_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _TopTools.TopTools_SequenceOfShape_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _TopTools.TopTools_SequenceOfShape_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _TopTools.TopTools_SequenceOfShape_IsEmpty(self)

    def Reverse(self) -> "void":
        return _TopTools.TopTools_SequenceOfShape_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _TopTools.TopTools_SequenceOfShape_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
        return _TopTools.TopTools_SequenceOfShape_delNode(theNode, theAl)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _TopTools.TopTools_SequenceOfShape_Clear(self, theAllocator)

    def Assign(self, theOther: "TopTools_SequenceOfShape") -> "NCollection_Sequence< TopoDS_Shape > &":
        return _TopTools.TopTools_SequenceOfShape_Assign(self, theOther)

    def Set(self, theOther: "TopTools_SequenceOfShape") -> "NCollection_Sequence< TopoDS_Shape > &":
        return _TopTools.TopTools_SequenceOfShape_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _TopTools.TopTools_SequenceOfShape_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _TopTools.TopTools_SequenceOfShape_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TopTools.TopTools_SequenceOfShape_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _TopTools.TopTools_SequenceOfShape_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TopTools.TopTools_SequenceOfShape_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "TopTools_SequenceOfShape") -> "void":
        return _TopTools.TopTools_SequenceOfShape_Split(self, theIndex, theSeq)

    def First(self) -> "TopoDS_Shape const &":
        return _TopTools.TopTools_SequenceOfShape_First(self)

    def ChangeFirst(self) -> "TopoDS_Shape &":
        return _TopTools.TopTools_SequenceOfShape_ChangeFirst(self)

    def Last(self) -> "TopoDS_Shape const &":
        return _TopTools.TopTools_SequenceOfShape_Last(self)

    def ChangeLast(self) -> "TopoDS_Shape &":
        return _TopTools.TopTools_SequenceOfShape_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape const &":
        return _TopTools.TopTools_SequenceOfShape_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "TopoDS_Shape &":
        return _TopTools.TopTools_SequenceOfShape_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "TopoDS_Shape &":
        return _TopTools.TopTools_SequenceOfShape___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "TopoDS_Shape") -> "void":
        return _TopTools.TopTools_SequenceOfShape_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _TopTools.delete_TopTools_SequenceOfShape

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


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

def TopTools_SequenceOfShape_delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
    return _TopTools.TopTools_SequenceOfShape_delNode(theNode, theAl)

class toptools(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Dummy(*args) -> "void":
        r"""
        This is to bypass an extraction bug. it will force the inclusion of standard_integer.hxx itself including standard_ostream.hxx at the correct position.

        Parameters
        ----------
        I: int

        Returns
        -------
        None

        """
        return _TopTools.toptools_Dummy(*args)

    __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)

def toptools_Dummy(*args) -> "void":
    r"""
    This is to bypass an extraction bug. it will force the inclusion of standard_integer.hxx itself including standard_ostream.hxx at the correct position.

    Parameters
    ----------
    I: int

    Returns
    -------
    None

    """
    return _TopTools.toptools_Dummy(*args)

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

    def __init__(self, *args):
        r"""
        Returns an empty set of locations.

        Returns
        -------
        None

        """
        _TopTools.TopTools_LocationSet_swiginit(self, _TopTools.new_TopTools_LocationSet(*args))

    def Add(self, *args) -> "Standard_Integer":
        r"""
        Incorporate a new location in the set and returns its index.

        Parameters
        ----------
        L: TopLoc_Location

        Returns
        -------
        int

        """
        return _TopTools.TopTools_LocationSet_Add(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clears the content of the set.

        Returns
        -------
        None

        """
        return _TopTools.TopTools_LocationSet_Clear(self, *args)

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TopTools_LocationSet self) -> std::string"""
        return _TopTools.TopTools_LocationSet_DumpToString(self)

    def Index(self, *args) -> "Standard_Integer":
        r"""
        Returns the index of <l>.

        Parameters
        ----------
        L: TopLoc_Location

        Returns
        -------
        int

        """
        return _TopTools.TopTools_LocationSet_Index(self, *args)

    def Location(self, *args) -> "TopLoc_Location const &":
        r"""
        Returns the location of index <i>.

        Parameters
        ----------
        I: int

        Returns
        -------
        TopLoc_Location

        """
        return _TopTools.TopTools_LocationSet_Location(self, *args)

    def ReadFromString(self, src: "std::string") -> "void":
        r"""ReadFromString(TopTools_LocationSet self, std::string src)"""
        return _TopTools.TopTools_LocationSet_ReadFromString(self, src)

    def WriteToString(self) -> "std::string":
        r"""WriteToString(TopTools_LocationSet self) -> std::string"""
        return _TopTools.TopTools_LocationSet_WriteToString(self)

    __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

    def __init__(self, *args):
        r"""
        Constructor.

        Returns
        -------
        None

        """
        _TopTools.TopTools_MutexForShapeProvider_swiginit(self, _TopTools.new_TopTools_MutexForShapeProvider(*args))

    def CreateMutexForShape(self, *args) -> "void":
        r"""
        Creates and associates mutex with theshape.

        Parameters
        ----------
        theShape: TopoDS_Shape

        Returns
        -------
        None

        """
        return _TopTools.TopTools_MutexForShapeProvider_CreateMutexForShape(self, *args)

    def CreateMutexesForSubShapes(self, *args) -> "void":
        r"""
        Creates and associates mutexes with each sub-shape of type thetype in theshape.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theType: TopAbs_ShapeEnum

        Returns
        -------
        None

        """
        return _TopTools.TopTools_MutexForShapeProvider_CreateMutexesForSubShapes(self, *args)

    def GetMutex(self, *args) -> "Standard_Mutex *":
        r"""
        Returns pointer to mutex associated with theshape. in case when mutex not found returns null.

        Parameters
        ----------
        theShape: TopoDS_Shape

        Returns
        -------
        Standard_Mutex *

        """
        return _TopTools.TopTools_MutexForShapeProvider_GetMutex(self, *args)

    def RemoveAllMutexes(self, *args) -> "void":
        r"""
        Removes all mutexes.

        Returns
        -------
        None

        """
        return _TopTools.TopTools_MutexForShapeProvider_RemoveAllMutexes(self, *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

    @staticmethod
    def HashCode(*args) -> "Standard_Integer":
        r"""
        Computes a hash code for the given shape, in the range [1, theupperbound] @param theshape the shape which hash code is to be computed @param theupperbound the upper bound of the range a computing hash code must be within returns a computed hash code, in the range [1, theupperbound].

        Parameters
        ----------
        theShape: TopoDS_Shape
        theUpperBound: int

        Returns
        -------
        int

        """
        return _TopTools.TopTools_OrientedShapeMapHasher_HashCode(*args)

    @staticmethod
    def IsEqual(*args) -> "Standard_Boolean":
        r"""
        Returns true when the two keys are equal. two same keys must have the same hashcode, the contrary is not necessary.

        Parameters
        ----------
        S1: TopoDS_Shape
        S2: TopoDS_Shape

        Returns
        -------
        bool

        """
        return _TopTools.TopTools_OrientedShapeMapHasher_IsEqual(*args)

    __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)

def TopTools_OrientedShapeMapHasher_HashCode(*args) -> "Standard_Integer":
    r"""
    Computes a hash code for the given shape, in the range [1, theupperbound] @param theshape the shape which hash code is to be computed @param theupperbound the upper bound of the range a computing hash code must be within returns a computed hash code, in the range [1, theupperbound].

    Parameters
    ----------
    theShape: TopoDS_Shape
    theUpperBound: int

    Returns
    -------
    int

    """
    return _TopTools.TopTools_OrientedShapeMapHasher_HashCode(*args)

def TopTools_OrientedShapeMapHasher_IsEqual(*args) -> "Standard_Boolean":
    r"""
    Returns true when the two keys are equal. two same keys must have the same hashcode, the contrary is not necessary.

    Parameters
    ----------
    S1: TopoDS_Shape
    S2: TopoDS_Shape

    Returns
    -------
    bool

    """
    return _TopTools.TopTools_OrientedShapeMapHasher_IsEqual(*args)

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

    @staticmethod
    def HashCode(*args) -> "Standard_Integer":
        r"""
        Computes a hash code for the given shape, in the range [1, theupperbound] @param theshape the shape which hash code is to be computed @param theupperbound the upper bound of the range a computing hash code must be within returns a computed hash code, in the range [1, theupperbound].

        Parameters
        ----------
        theShape: TopoDS_Shape
        theUpperBound: int

        Returns
        -------
        int

        """
        return _TopTools.TopTools_ShapeMapHasher_HashCode(*args)

    @staticmethod
    def IsEqual(*args) -> "Standard_Boolean":
        r"""
        Returns true when the two keys are the same. two same keys must have the same hashcode, the contrary is not necessary.

        Parameters
        ----------
        S1: TopoDS_Shape
        S2: TopoDS_Shape

        Returns
        -------
        bool

        """
        return _TopTools.TopTools_ShapeMapHasher_IsEqual(*args)

    __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)

def TopTools_ShapeMapHasher_HashCode(*args) -> "Standard_Integer":
    r"""
    Computes a hash code for the given shape, in the range [1, theupperbound] @param theshape the shape which hash code is to be computed @param theupperbound the upper bound of the range a computing hash code must be within returns a computed hash code, in the range [1, theupperbound].

    Parameters
    ----------
    theShape: TopoDS_Shape
    theUpperBound: int

    Returns
    -------
    int

    """
    return _TopTools.TopTools_ShapeMapHasher_HashCode(*args)

def TopTools_ShapeMapHasher_IsEqual(*args) -> "Standard_Boolean":
    r"""
    Returns true when the two keys are the same. two same keys must have the same hashcode, the contrary is not necessary.

    Parameters
    ----------
    S1: TopoDS_Shape
    S2: TopoDS_Shape

    Returns
    -------
    bool

    """
    return _TopTools.TopTools_ShapeMapHasher_IsEqual(*args)

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

    def __init__(self, *args):
        r"""
        Builds an empty shapeset.

        Returns
        -------
        None

        """
        _TopTools.TopTools_ShapeSet_swiginit(self, _TopTools.new_TopTools_ShapeSet(*args))

    def Add(self, *args) -> "Standard_Integer":
        r"""
        Stores <s> and its sub-shape. returns the index of <s>. the method addgeometry is called on each sub-shape.

        Parameters
        ----------
        S: TopoDS_Shape

        Returns
        -------
        int

        """
        return _TopTools.TopTools_ShapeSet_Add(self, *args)

    def AddGeometry(self, *args) -> "void":
        r"""
        Stores the geometry of <s>.

        Parameters
        ----------
        S: TopoDS_Shape

        Returns
        -------
        None

        """
        return _TopTools.TopTools_ShapeSet_AddGeometry(self, *args)

    def AddShapes(self, *args) -> "void":
        r"""
        Inserts the shape <s2> in the shape <s1>. this method must be redefined to use the correct builder.

        Parameters
        ----------
        S1: TopoDS_Shape
        S2: TopoDS_Shape

        Returns
        -------
        None

        """
        return _TopTools.TopTools_ShapeSet_AddShapes(self, *args)

    def ChangeLocations(self, *args) -> "TopTools_LocationSet &":
        r"""
        No available documentation.

        Returns
        -------
        TopTools_LocationSet

        """
        return _TopTools.TopTools_ShapeSet_ChangeLocations(self, *args)

    def Check(self, *args) -> "void":
        r"""
        This method is called after each new completed shape. <t> is the type. <s> is the shape. in this class it does nothing, but it gives the opportunity in derived classes to perform extra treatment on shapes.

        Parameters
        ----------
        T: TopAbs_ShapeEnum
        S: TopoDS_Shape

        Returns
        -------
        None

        """
        return _TopTools.TopTools_ShapeSet_Check(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clears the content of the set. this method can be redefined.

        Returns
        -------
        None

        """
        return _TopTools.TopTools_ShapeSet_Clear(self, *args)

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TopTools_ShapeSet self) -> std::string"""
        return _TopTools.TopTools_ShapeSet_DumpToString(self)

    def DumpExtentToString(self) -> "std::string":
        r"""DumpExtentToString(TopTools_ShapeSet self) -> std::string"""
        return _TopTools.TopTools_ShapeSet_DumpExtentToString(self)

    def DumpExtent(self, *args) -> "void":
        r"""
        Dumps the number of objects in me in the string s (number of shapes of each type).

        Parameters
        ----------
        S: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _TopTools.TopTools_ShapeSet_DumpExtent(self, *args)

    def DumpGeometryToString(self) -> "std::string":
        r"""DumpGeometryToString(TopTools_ShapeSet self) -> std::string"""
        return _TopTools.TopTools_ShapeSet_DumpGeometryToString(self)

    def FormatNb(self, *args) -> "Standard_Integer":
        r"""
        Two formats available for the moment: first: does not write curveonsurface uv points into the file on reading calls check() method. second: stores curveonsurface uv points. on reading format is recognized from version string.

        Returns
        -------
        int

        """
        return _TopTools.TopTools_ShapeSet_FormatNb(self, *args)

    def Index(self, *args) -> "Standard_Integer":
        r"""
        Returns the index of <s>.

        Parameters
        ----------
        S: TopoDS_Shape

        Returns
        -------
        int

        """
        return _TopTools.TopTools_ShapeSet_Index(self, *args)

    def Locations(self, *args) -> "TopTools_LocationSet const &":
        r"""
        No available documentation.

        Returns
        -------
        TopTools_LocationSet

        """
        return _TopTools.TopTools_ShapeSet_Locations(self, *args)

    def NbShapes(self, *args) -> "Standard_Integer":
        r"""
        Returns number of shapes read from file.

        Returns
        -------
        int

        """
        return _TopTools.TopTools_ShapeSet_NbShapes(self, *args)

    def ReadFromString(self, src: "std::string") -> "void":
        r"""ReadFromString(TopTools_ShapeSet self, std::string src)"""
        return _TopTools.TopTools_ShapeSet_ReadFromString(self, src)

    def ReadGeometryFromString(self, src: "std::string") -> "void":
        r"""ReadGeometryFromString(TopTools_ShapeSet self, std::string src)"""
        return _TopTools.TopTools_ShapeSet_ReadGeometryFromString(self, src)

    def SetFormatNb(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        theFormatNb: int

        Returns
        -------
        None

        """
        return _TopTools.TopTools_ShapeSet_SetFormatNb(self, *args)

    def Shape(self, *args) -> "TopoDS_Shape const":
        r"""
        Returns the sub-shape of index <i>.

        Parameters
        ----------
        I: int

        Returns
        -------
        TopoDS_Shape

        """
        return _TopTools.TopTools_ShapeSet_Shape(self, *args)

    def WriteToString(self) -> "std::string":
        r"""WriteToString(TopTools_ShapeSet self) -> std::string"""
        return _TopTools.TopTools_ShapeSet_WriteToString(self)

    def WriteGeometryToString(self) -> "std::string":
        r"""WriteGeometryToString(TopTools_ShapeSet self) -> std::string"""
        return _TopTools.TopTools_ShapeSet_WriteGeometryToString(self)

    __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))

    def Array1(self) -> "TopTools_Array1OfShape const &":
        return _TopTools.TopTools_HArray1OfShape_Array1(self)

    def ChangeArray1(self) -> "TopTools_Array1OfShape &":
        return _TopTools.TopTools_HArray1OfShape_ChangeArray1(self)


    @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))

    def Array1(self) -> "TopTools_Array1OfListOfShape const &":
        return _TopTools.TopTools_HArray1OfListOfShape_Array1(self)

    def ChangeArray1(self) -> "TopTools_Array1OfListOfShape &":
        return _TopTools.TopTools_HArray1OfListOfShape_ChangeArray1(self)


    @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))

    def Array2(self) -> "TopTools_Array2OfShape const &":
        return _TopTools.TopTools_HArray2OfShape_Array2(self)

    def ChangeArray2(self) -> "TopTools_Array2OfShape &":
        return _TopTools.TopTools_HArray2OfShape_ChangeArray2(self)


    @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))

    def Sequence(self) -> "TopTools_SequenceOfShape const &":
        return _TopTools.TopTools_HSequenceOfShape_Sequence(self)

    def Append(self, *args) -> "void":
        return _TopTools.TopTools_HSequenceOfShape_Append(self, *args)

    def ChangeSequence(self) -> "TopTools_SequenceOfShape &":
        return _TopTools.TopTools_HSequenceOfShape_ChangeSequence(self)


    @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)





