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

"""
MAT module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_mat.html
"""

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


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__ = _MAT.delete_SwigPyIterator

    def value(self):
        return _MAT.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _MAT.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _MAT.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _MAT.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _MAT.SwigPyIterator_equal(self, x)

    def copy(self):
        return _MAT.SwigPyIterator_copy(self)

    def next(self):
        return _MAT.SwigPyIterator_next(self)

    def __next__(self):
        return _MAT.SwigPyIterator___next__(self)

    def previous(self):
        return _MAT.SwigPyIterator_previous(self)

    def advance(self, n):
        return _MAT.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _MAT.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _MAT.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _MAT.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _MAT.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _MAT.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _MAT.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _MAT:
_MAT.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, method_name, class_name):
    return _MAT.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

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

MAT_Left = _MAT.MAT_Left
MAT_Right = _MAT.MAT_Right


class MAT_Side(IntEnum):
	MAT_Left = 0
	MAT_Right = 1
MAT_Left = MAT_Side.MAT_Left
MAT_Right = MAT_Side.MAT_Right


def Handle_MAT_Arc_Create():
    return _MAT.Handle_MAT_Arc_Create()

def Handle_MAT_Arc_DownCast(t):
    return _MAT.Handle_MAT_Arc_DownCast(t)

def Handle_MAT_Arc_IsNull(t):
    return _MAT.Handle_MAT_Arc_IsNull(t)

def Handle_MAT_BasicElt_Create():
    return _MAT.Handle_MAT_BasicElt_Create()

def Handle_MAT_BasicElt_DownCast(t):
    return _MAT.Handle_MAT_BasicElt_DownCast(t)

def Handle_MAT_BasicElt_IsNull(t):
    return _MAT.Handle_MAT_BasicElt_IsNull(t)

def Handle_MAT_Bisector_Create():
    return _MAT.Handle_MAT_Bisector_Create()

def Handle_MAT_Bisector_DownCast(t):
    return _MAT.Handle_MAT_Bisector_DownCast(t)

def Handle_MAT_Bisector_IsNull(t):
    return _MAT.Handle_MAT_Bisector_IsNull(t)

def Handle_MAT_Edge_Create():
    return _MAT.Handle_MAT_Edge_Create()

def Handle_MAT_Edge_DownCast(t):
    return _MAT.Handle_MAT_Edge_DownCast(t)

def Handle_MAT_Edge_IsNull(t):
    return _MAT.Handle_MAT_Edge_IsNull(t)

def Handle_MAT_Graph_Create():
    return _MAT.Handle_MAT_Graph_Create()

def Handle_MAT_Graph_DownCast(t):
    return _MAT.Handle_MAT_Graph_DownCast(t)

def Handle_MAT_Graph_IsNull(t):
    return _MAT.Handle_MAT_Graph_IsNull(t)

def Handle_MAT_ListOfBisector_Create():
    return _MAT.Handle_MAT_ListOfBisector_Create()

def Handle_MAT_ListOfBisector_DownCast(t):
    return _MAT.Handle_MAT_ListOfBisector_DownCast(t)

def Handle_MAT_ListOfBisector_IsNull(t):
    return _MAT.Handle_MAT_ListOfBisector_IsNull(t)

def Handle_MAT_ListOfEdge_Create():
    return _MAT.Handle_MAT_ListOfEdge_Create()

def Handle_MAT_ListOfEdge_DownCast(t):
    return _MAT.Handle_MAT_ListOfEdge_DownCast(t)

def Handle_MAT_ListOfEdge_IsNull(t):
    return _MAT.Handle_MAT_ListOfEdge_IsNull(t)

def Handle_MAT_Node_Create():
    return _MAT.Handle_MAT_Node_Create()

def Handle_MAT_Node_DownCast(t):
    return _MAT.Handle_MAT_Node_DownCast(t)

def Handle_MAT_Node_IsNull(t):
    return _MAT.Handle_MAT_Node_IsNull(t)

def Handle_MAT_TListNodeOfListOfBisector_Create():
    return _MAT.Handle_MAT_TListNodeOfListOfBisector_Create()

def Handle_MAT_TListNodeOfListOfBisector_DownCast(t):
    return _MAT.Handle_MAT_TListNodeOfListOfBisector_DownCast(t)

def Handle_MAT_TListNodeOfListOfBisector_IsNull(t):
    return _MAT.Handle_MAT_TListNodeOfListOfBisector_IsNull(t)

def Handle_MAT_TListNodeOfListOfEdge_Create():
    return _MAT.Handle_MAT_TListNodeOfListOfEdge_Create()

def Handle_MAT_TListNodeOfListOfEdge_DownCast(t):
    return _MAT.Handle_MAT_TListNodeOfListOfEdge_DownCast(t)

def Handle_MAT_TListNodeOfListOfEdge_IsNull(t):
    return _MAT.Handle_MAT_TListNodeOfListOfEdge_IsNull(t)

def Handle_MAT_Zone_Create():
    return _MAT.Handle_MAT_Zone_Create()

def Handle_MAT_Zone_DownCast(t):
    return _MAT.Handle_MAT_Zone_DownCast(t)

def Handle_MAT_Zone_IsNull(t):
    return _MAT.Handle_MAT_Zone_IsNull(t)
class MAT_DataMapOfIntegerArc(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):
        return _MAT.MAT_DataMapOfIntegerArc_begin(self)

    def end(self):
        return _MAT.MAT_DataMapOfIntegerArc_end(self)

    def cbegin(self):
        return _MAT.MAT_DataMapOfIntegerArc_cbegin(self)

    def cend(self):
        return _MAT.MAT_DataMapOfIntegerArc_cend(self)

    def __init__(self, *args):
        _MAT.MAT_DataMapOfIntegerArc_swiginit(self, _MAT.new_MAT_DataMapOfIntegerArc(*args))

    def Exchange(self, theOther):
        return _MAT.MAT_DataMapOfIntegerArc_Exchange(self, theOther)

    def Assign(self, theOther):
        return _MAT.MAT_DataMapOfIntegerArc_Assign(self, theOther)

    def Set(self, theOther):
        return _MAT.MAT_DataMapOfIntegerArc_Set(self, theOther)

    def ReSize(self, N):
        return _MAT.MAT_DataMapOfIntegerArc_ReSize(self, N)

    def Bind(self, theKey, theItem):
        return _MAT.MAT_DataMapOfIntegerArc_Bind(self, theKey, theItem)

    def Bound(self, theKey, theItem):
        return _MAT.MAT_DataMapOfIntegerArc_Bound(self, theKey, theItem)

    def IsBound(self, theKey):
        return _MAT.MAT_DataMapOfIntegerArc_IsBound(self, theKey)

    def UnBind(self, theKey):
        return _MAT.MAT_DataMapOfIntegerArc_UnBind(self, theKey)

    def Seek(self, theKey):
        return _MAT.MAT_DataMapOfIntegerArc_Seek(self, theKey)

    def Find(self, *args):
        return _MAT.MAT_DataMapOfIntegerArc_Find(self, *args)

    def ChangeSeek(self, theKey):
        return _MAT.MAT_DataMapOfIntegerArc_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey):
        return _MAT.MAT_DataMapOfIntegerArc_ChangeFind(self, theKey)

    def __call__(self, *args):
        return _MAT.MAT_DataMapOfIntegerArc___call__(self, *args)

    def Clear(self, *args):
        return _MAT.MAT_DataMapOfIntegerArc_Clear(self, *args)
    __swig_destroy__ = _MAT.delete_MAT_DataMapOfIntegerArc

    def Size(self):
        return _MAT.MAT_DataMapOfIntegerArc_Size(self)

    def Keys(self):
        return _MAT.MAT_DataMapOfIntegerArc_Keys(self)

# Register MAT_DataMapOfIntegerArc in _MAT:
_MAT.MAT_DataMapOfIntegerArc_swigregister(MAT_DataMapOfIntegerArc)
class MAT_DataMapOfIntegerBasicElt(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):
        return _MAT.MAT_DataMapOfIntegerBasicElt_begin(self)

    def end(self):
        return _MAT.MAT_DataMapOfIntegerBasicElt_end(self)

    def cbegin(self):
        return _MAT.MAT_DataMapOfIntegerBasicElt_cbegin(self)

    def cend(self):
        return _MAT.MAT_DataMapOfIntegerBasicElt_cend(self)

    def __init__(self, *args):
        _MAT.MAT_DataMapOfIntegerBasicElt_swiginit(self, _MAT.new_MAT_DataMapOfIntegerBasicElt(*args))

    def Exchange(self, theOther):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Exchange(self, theOther)

    def Assign(self, theOther):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Assign(self, theOther)

    def Set(self, theOther):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Set(self, theOther)

    def ReSize(self, N):
        return _MAT.MAT_DataMapOfIntegerBasicElt_ReSize(self, N)

    def Bind(self, theKey, theItem):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Bind(self, theKey, theItem)

    def Bound(self, theKey, theItem):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Bound(self, theKey, theItem)

    def IsBound(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBasicElt_IsBound(self, theKey)

    def UnBind(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBasicElt_UnBind(self, theKey)

    def Seek(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Seek(self, theKey)

    def Find(self, *args):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Find(self, *args)

    def ChangeSeek(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBasicElt_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBasicElt_ChangeFind(self, theKey)

    def __call__(self, *args):
        return _MAT.MAT_DataMapOfIntegerBasicElt___call__(self, *args)

    def Clear(self, *args):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Clear(self, *args)
    __swig_destroy__ = _MAT.delete_MAT_DataMapOfIntegerBasicElt

    def Size(self):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Size(self)

    def Keys(self):
        return _MAT.MAT_DataMapOfIntegerBasicElt_Keys(self)

# Register MAT_DataMapOfIntegerBasicElt in _MAT:
_MAT.MAT_DataMapOfIntegerBasicElt_swigregister(MAT_DataMapOfIntegerBasicElt)
class MAT_DataMapOfIntegerBisector(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):
        return _MAT.MAT_DataMapOfIntegerBisector_begin(self)

    def end(self):
        return _MAT.MAT_DataMapOfIntegerBisector_end(self)

    def cbegin(self):
        return _MAT.MAT_DataMapOfIntegerBisector_cbegin(self)

    def cend(self):
        return _MAT.MAT_DataMapOfIntegerBisector_cend(self)

    def __init__(self, *args):
        _MAT.MAT_DataMapOfIntegerBisector_swiginit(self, _MAT.new_MAT_DataMapOfIntegerBisector(*args))

    def Exchange(self, theOther):
        return _MAT.MAT_DataMapOfIntegerBisector_Exchange(self, theOther)

    def Assign(self, theOther):
        return _MAT.MAT_DataMapOfIntegerBisector_Assign(self, theOther)

    def Set(self, theOther):
        return _MAT.MAT_DataMapOfIntegerBisector_Set(self, theOther)

    def ReSize(self, N):
        return _MAT.MAT_DataMapOfIntegerBisector_ReSize(self, N)

    def Bind(self, theKey, theItem):
        return _MAT.MAT_DataMapOfIntegerBisector_Bind(self, theKey, theItem)

    def Bound(self, theKey, theItem):
        return _MAT.MAT_DataMapOfIntegerBisector_Bound(self, theKey, theItem)

    def IsBound(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBisector_IsBound(self, theKey)

    def UnBind(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBisector_UnBind(self, theKey)

    def Seek(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBisector_Seek(self, theKey)

    def Find(self, *args):
        return _MAT.MAT_DataMapOfIntegerBisector_Find(self, *args)

    def ChangeSeek(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBisector_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey):
        return _MAT.MAT_DataMapOfIntegerBisector_ChangeFind(self, theKey)

    def __call__(self, *args):
        return _MAT.MAT_DataMapOfIntegerBisector___call__(self, *args)

    def Clear(self, *args):
        return _MAT.MAT_DataMapOfIntegerBisector_Clear(self, *args)
    __swig_destroy__ = _MAT.delete_MAT_DataMapOfIntegerBisector

    def Size(self):
        return _MAT.MAT_DataMapOfIntegerBisector_Size(self)

    def Keys(self):
        return _MAT.MAT_DataMapOfIntegerBisector_Keys(self)

# Register MAT_DataMapOfIntegerBisector in _MAT:
_MAT.MAT_DataMapOfIntegerBisector_swigregister(MAT_DataMapOfIntegerBisector)
class MAT_DataMapOfIntegerNode(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):
        return _MAT.MAT_DataMapOfIntegerNode_begin(self)

    def end(self):
        return _MAT.MAT_DataMapOfIntegerNode_end(self)

    def cbegin(self):
        return _MAT.MAT_DataMapOfIntegerNode_cbegin(self)

    def cend(self):
        return _MAT.MAT_DataMapOfIntegerNode_cend(self)

    def __init__(self, *args):
        _MAT.MAT_DataMapOfIntegerNode_swiginit(self, _MAT.new_MAT_DataMapOfIntegerNode(*args))

    def Exchange(self, theOther):
        return _MAT.MAT_DataMapOfIntegerNode_Exchange(self, theOther)

    def Assign(self, theOther):
        return _MAT.MAT_DataMapOfIntegerNode_Assign(self, theOther)

    def Set(self, theOther):
        return _MAT.MAT_DataMapOfIntegerNode_Set(self, theOther)

    def ReSize(self, N):
        return _MAT.MAT_DataMapOfIntegerNode_ReSize(self, N)

    def Bind(self, theKey, theItem):
        return _MAT.MAT_DataMapOfIntegerNode_Bind(self, theKey, theItem)

    def Bound(self, theKey, theItem):
        return _MAT.MAT_DataMapOfIntegerNode_Bound(self, theKey, theItem)

    def IsBound(self, theKey):
        return _MAT.MAT_DataMapOfIntegerNode_IsBound(self, theKey)

    def UnBind(self, theKey):
        return _MAT.MAT_DataMapOfIntegerNode_UnBind(self, theKey)

    def Seek(self, theKey):
        return _MAT.MAT_DataMapOfIntegerNode_Seek(self, theKey)

    def Find(self, *args):
        return _MAT.MAT_DataMapOfIntegerNode_Find(self, *args)

    def ChangeSeek(self, theKey):
        return _MAT.MAT_DataMapOfIntegerNode_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey):
        return _MAT.MAT_DataMapOfIntegerNode_ChangeFind(self, theKey)

    def __call__(self, *args):
        return _MAT.MAT_DataMapOfIntegerNode___call__(self, *args)

    def Clear(self, *args):
        return _MAT.MAT_DataMapOfIntegerNode_Clear(self, *args)
    __swig_destroy__ = _MAT.delete_MAT_DataMapOfIntegerNode

    def Size(self):
        return _MAT.MAT_DataMapOfIntegerNode_Size(self)

    def Keys(self):
        return _MAT.MAT_DataMapOfIntegerNode_Keys(self)

# Register MAT_DataMapOfIntegerNode in _MAT:
_MAT.MAT_DataMapOfIntegerNode_swigregister(MAT_DataMapOfIntegerNode)
class MAT_SequenceOfArc(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):
        return _MAT.MAT_SequenceOfArc_begin(self)

    def end(self):
        return _MAT.MAT_SequenceOfArc_end(self)

    def cbegin(self):
        return _MAT.MAT_SequenceOfArc_cbegin(self)

    def cend(self):
        return _MAT.MAT_SequenceOfArc_cend(self)

    def __init__(self, *args):
        _MAT.MAT_SequenceOfArc_swiginit(self, _MAT.new_MAT_SequenceOfArc(*args))

    def Size(self):
        return _MAT.MAT_SequenceOfArc_Size(self)

    def Length(self):
        return _MAT.MAT_SequenceOfArc_Length(self)

    def Lower(self):
        return _MAT.MAT_SequenceOfArc_Lower(self)

    def Upper(self):
        return _MAT.MAT_SequenceOfArc_Upper(self)

    def IsEmpty(self):
        return _MAT.MAT_SequenceOfArc_IsEmpty(self)

    def Reverse(self):
        return _MAT.MAT_SequenceOfArc_Reverse(self)

    def Exchange(self, I, J):
        return _MAT.MAT_SequenceOfArc_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _MAT.MAT_SequenceOfArc_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _MAT.MAT_SequenceOfArc_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _MAT.MAT_SequenceOfArc_Assign(self, theOther)

    def Set(self, theOther):
        return _MAT.MAT_SequenceOfArc_Set(self, theOther)

    def Remove(self, *args):
        return _MAT.MAT_SequenceOfArc_Remove(self, *args)

    def Append(self, *args):
        return _MAT.MAT_SequenceOfArc_Append(self, *args)

    def Prepend(self, *args):
        return _MAT.MAT_SequenceOfArc_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _MAT.MAT_SequenceOfArc_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _MAT.MAT_SequenceOfArc_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _MAT.MAT_SequenceOfArc_Split(self, theIndex, theSeq)

    def First(self):
        return _MAT.MAT_SequenceOfArc_First(self)

    def ChangeFirst(self):
        return _MAT.MAT_SequenceOfArc_ChangeFirst(self)

    def Last(self):
        return _MAT.MAT_SequenceOfArc_Last(self)

    def ChangeLast(self):
        return _MAT.MAT_SequenceOfArc_ChangeLast(self)

    def Value(self, theIndex):
        return _MAT.MAT_SequenceOfArc_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _MAT.MAT_SequenceOfArc_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _MAT.MAT_SequenceOfArc___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _MAT.MAT_SequenceOfArc_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _MAT.delete_MAT_SequenceOfArc

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


# Register MAT_SequenceOfArc in _MAT:
_MAT.MAT_SequenceOfArc_swigregister(MAT_SequenceOfArc)
class MAT_SequenceOfBasicElt(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):
        return _MAT.MAT_SequenceOfBasicElt_begin(self)

    def end(self):
        return _MAT.MAT_SequenceOfBasicElt_end(self)

    def cbegin(self):
        return _MAT.MAT_SequenceOfBasicElt_cbegin(self)

    def cend(self):
        return _MAT.MAT_SequenceOfBasicElt_cend(self)

    def __init__(self, *args):
        _MAT.MAT_SequenceOfBasicElt_swiginit(self, _MAT.new_MAT_SequenceOfBasicElt(*args))

    def Size(self):
        return _MAT.MAT_SequenceOfBasicElt_Size(self)

    def Length(self):
        return _MAT.MAT_SequenceOfBasicElt_Length(self)

    def Lower(self):
        return _MAT.MAT_SequenceOfBasicElt_Lower(self)

    def Upper(self):
        return _MAT.MAT_SequenceOfBasicElt_Upper(self)

    def IsEmpty(self):
        return _MAT.MAT_SequenceOfBasicElt_IsEmpty(self)

    def Reverse(self):
        return _MAT.MAT_SequenceOfBasicElt_Reverse(self)

    def Exchange(self, I, J):
        return _MAT.MAT_SequenceOfBasicElt_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _MAT.MAT_SequenceOfBasicElt_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _MAT.MAT_SequenceOfBasicElt_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _MAT.MAT_SequenceOfBasicElt_Assign(self, theOther)

    def Set(self, theOther):
        return _MAT.MAT_SequenceOfBasicElt_Set(self, theOther)

    def Remove(self, *args):
        return _MAT.MAT_SequenceOfBasicElt_Remove(self, *args)

    def Append(self, *args):
        return _MAT.MAT_SequenceOfBasicElt_Append(self, *args)

    def Prepend(self, *args):
        return _MAT.MAT_SequenceOfBasicElt_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _MAT.MAT_SequenceOfBasicElt_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _MAT.MAT_SequenceOfBasicElt_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _MAT.MAT_SequenceOfBasicElt_Split(self, theIndex, theSeq)

    def First(self):
        return _MAT.MAT_SequenceOfBasicElt_First(self)

    def ChangeFirst(self):
        return _MAT.MAT_SequenceOfBasicElt_ChangeFirst(self)

    def Last(self):
        return _MAT.MAT_SequenceOfBasicElt_Last(self)

    def ChangeLast(self):
        return _MAT.MAT_SequenceOfBasicElt_ChangeLast(self)

    def Value(self, theIndex):
        return _MAT.MAT_SequenceOfBasicElt_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _MAT.MAT_SequenceOfBasicElt_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _MAT.MAT_SequenceOfBasicElt___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _MAT.MAT_SequenceOfBasicElt_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _MAT.delete_MAT_SequenceOfBasicElt

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


# Register MAT_SequenceOfBasicElt in _MAT:
_MAT.MAT_SequenceOfBasicElt_swigregister(MAT_SequenceOfBasicElt)
class MAT_Arc(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):
        r"""

        Parameters
        ----------
        ArcIndex: int
        GeomIndex: int
        FirstElement: MAT_BasicElt
        SecondElement: MAT_BasicElt

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _MAT.MAT_Arc_swiginit(self, _MAT.new_MAT_Arc(*args))

    def FirstElement(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_BasicElt>

        Description
        -----------
        Returns one of the basicelt equidistant from <self>.

        """
        return _MAT.MAT_Arc_FirstElement(self, *args)

    def FirstNode(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Node>

        Description
        -----------
        Returns one node extremity of <self>.

        """
        return _MAT.MAT_Arc_FirstNode(self, *args)

    def GeomIndex(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the index associated of the geometric representation of <self>.

        """
        return _MAT.MAT_Arc_GeomIndex(self, *args)

    def HasNeighbour(self, *args):
        r"""

        Parameters
        ----------
        aNode: MAT_Node
        aSide: MAT_Side

        Return
        -------
        bool

        Description
        -----------
        Returnst true is there is an arc linked to the node <anode> located on the side <aside> of <self>; if <anode> is not on <self>.

        """
        return _MAT.MAT_Arc_HasNeighbour(self, *args)

    def Index(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the index of <self> in graph.thearcs.

        """
        return _MAT.MAT_Arc_Index(self, *args)

    def Neighbour(self, *args):
        r"""

        Parameters
        ----------
        aNode: MAT_Node
        aSide: MAT_Side

        Return
        -------
        opencascade::handle<MAT_Arc>

        Description
        -----------
        Returns the first arc linked to the node <anode> located on the side <aside> of <self>; if hasneighbour() returns false.

        """
        return _MAT.MAT_Arc_Neighbour(self, *args)

    def SecondElement(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_BasicElt>

        Description
        -----------
        Returns the other basicelt equidistant from <self>.

        """
        return _MAT.MAT_Arc_SecondElement(self, *args)

    def SecondNode(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Node>

        Description
        -----------
        Returns the other node extremity of <self>.

        """
        return _MAT.MAT_Arc_SecondNode(self, *args)

    def SetFirstArc(self, *args):
        r"""

        Parameters
        ----------
        aSide: MAT_Side
        anArc: MAT_Arc

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Arc_SetFirstArc(self, *args)

    def SetFirstElement(self, *args):
        r"""

        Parameters
        ----------
        aBasicElt: MAT_BasicElt

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Arc_SetFirstElement(self, *args)

    def SetFirstNode(self, *args):
        r"""

        Parameters
        ----------
        aNode: MAT_Node

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Arc_SetFirstNode(self, *args)

    def SetGeomIndex(self, *args):
        r"""

        Parameters
        ----------
        anInteger: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Arc_SetGeomIndex(self, *args)

    def SetIndex(self, *args):
        r"""

        Parameters
        ----------
        anInteger: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Arc_SetIndex(self, *args)

    def SetNeighbour(self, *args):
        r"""

        Parameters
        ----------
        aSide: MAT_Side
        aNode: MAT_Node
        anArc: MAT_Arc

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Arc_SetNeighbour(self, *args)

    def SetSecondArc(self, *args):
        r"""

        Parameters
        ----------
        aSide: MAT_Side
        anArc: MAT_Arc

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Arc_SetSecondArc(self, *args)

    def SetSecondElement(self, *args):
        r"""

        Parameters
        ----------
        aBasicElt: MAT_BasicElt

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Arc_SetSecondElement(self, *args)

    def SetSecondNode(self, *args):
        r"""

        Parameters
        ----------
        aNode: MAT_Node

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Arc_SetSecondNode(self, *args)

    def TheOtherNode(self, *args):
        r"""

        Parameters
        ----------
        aNode: MAT_Node

        Return
        -------
        opencascade::handle<MAT_Node>

        Description
        -----------
        An arc has two node, if <anode> egal one returns the other. //! if <anode> is not oh <self>.

        """
        return _MAT.MAT_Arc_TheOtherNode(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_Arc

# Register MAT_Arc in _MAT:
_MAT.MAT_Arc_swigregister(MAT_Arc)
class MAT_BasicElt(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):
        r"""

        Parameters
        ----------
        anInteger: int

        Return
        -------
        None

        Description
        -----------
        Constructor, <aninteger> is the <index> of <self>.

        """
        _MAT.MAT_BasicElt_swiginit(self, _MAT.new_MAT_BasicElt(*args))

    def EndArc(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Arc>

        Description
        -----------
        Return <endarcleft> or <endarcright> corresponding to <aside>.

        """
        return _MAT.MAT_BasicElt_EndArc(self, *args)

    def GeomIndex(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the <geomindex> of <self>.

        """
        return _MAT.MAT_BasicElt_GeomIndex(self, *args)

    def Index(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the <index> of <self> in graph.thebasicelts.

        """
        return _MAT.MAT_BasicElt_Index(self, *args)

    def SetEndArc(self, *args):
        r"""

        Parameters
        ----------
        anArc: MAT_Arc

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_BasicElt_SetEndArc(self, *args)

    def SetGeomIndex(self, *args):
        r"""

        Parameters
        ----------
        anInteger: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_BasicElt_SetGeomIndex(self, *args)

    def SetIndex(self, *args):
        r"""

        Parameters
        ----------
        anInteger: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_BasicElt_SetIndex(self, *args)

    def SetStartArc(self, *args):
        r"""

        Parameters
        ----------
        anArc: MAT_Arc

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_BasicElt_SetStartArc(self, *args)

    def StartArc(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Arc>

        Description
        -----------
        Return <startarcleft> or <startarcright> corresponding to <aside>.

        """
        return _MAT.MAT_BasicElt_StartArc(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_BasicElt

# Register MAT_BasicElt in _MAT:
_MAT.MAT_BasicElt_swigregister(MAT_BasicElt)
class MAT_Bisector(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):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _MAT.MAT_Bisector_swiginit(self, _MAT.new_MAT_Bisector(*args))

    def AddBisector(self, *args):
        r"""

        Parameters
        ----------
        abisector: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_AddBisector(self, *args)

    def BisectorNumber(self, *args):
        r"""

        Parameters
        ----------
        anumber: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_BisectorNumber(self, *args)

    def DistIssuePoint(self, *args):
        r"""

        Parameters
        ----------
        areal: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_DistIssuePoint(self, *args)

    def Dump(self, *args):
        r"""

        Parameters
        ----------
        ashift: int
        alevel: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_Dump(self, *args)

    def EndPoint(self, *args):
        r"""

        Parameters
        ----------
        apoint: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_EndPoint(self, *args)

    def FirstBisector(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_FirstBisector(self, *args)

    def FirstEdge(self, *args):
        r"""

        Parameters
        ----------
        anedge: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        opencascade::handle<MAT_Edge>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_FirstEdge(self, *args)

    def FirstParameter(self, *args):
        r"""

        Parameters
        ----------
        aparameter: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_FirstParameter(self, *args)

    def FirstVector(self, *args):
        r"""

        Parameters
        ----------
        avector: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_FirstVector(self, *args)

    def IndexNumber(self, *args):
        r"""

        Parameters
        ----------
        anumber: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_IndexNumber(self, *args)

    def IssuePoint(self, *args):
        r"""

        Parameters
        ----------
        apoint: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_IssuePoint(self, *args)

    def LastBisector(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_LastBisector(self, *args)

    def List(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_ListOfBisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_List(self, *args)

    def SecondEdge(self, *args):
        r"""

        Parameters
        ----------
        anedge: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        opencascade::handle<MAT_Edge>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_SecondEdge(self, *args)

    def SecondParameter(self, *args):
        r"""

        Parameters
        ----------
        aparameter: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_SecondParameter(self, *args)

    def SecondVector(self, *args):
        r"""

        Parameters
        ----------
        avector: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_SecondVector(self, *args)

    def Sense(self, *args):
        r"""

        Parameters
        ----------
        asense: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Bisector_Sense(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_Bisector

# Register MAT_Bisector in _MAT:
_MAT.MAT_Bisector_swigregister(MAT_Bisector)
class MAT_Edge(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):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _MAT.MAT_Edge_swiginit(self, _MAT.new_MAT_Edge(*args))

    def Distance(self, *args):
        r"""

        Parameters
        ----------
        adistance: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Edge_Distance(self, *args)

    def Dump(self, *args):
        r"""

        Parameters
        ----------
        ashift: int
        alevel: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Edge_Dump(self, *args)

    def EdgeNumber(self, *args):
        r"""

        Parameters
        ----------
        anumber: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Edge_EdgeNumber(self, *args)

    def FirstBisector(self, *args):
        r"""

        Parameters
        ----------
        abisector: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Edge_FirstBisector(self, *args)

    def IntersectionPoint(self, *args):
        r"""

        Parameters
        ----------
        apoint: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Edge_IntersectionPoint(self, *args)

    def SecondBisector(self, *args):
        r"""

        Parameters
        ----------
        abisector: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Edge_SecondBisector(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_Edge

# Register MAT_Edge in _MAT:
_MAT.MAT_Edge_swigregister(MAT_Edge)
class MAT_Graph(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):
        r"""
        Return
        -------
        None

        Description
        -----------
        Empty constructor.

        """
        _MAT.MAT_Graph_swiginit(self, _MAT.new_MAT_Graph(*args))

    def Arc(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<MAT_Arc>

        Description
        -----------
        Return the arc of index <index> in <thearcs>.

        """
        return _MAT.MAT_Graph_Arc(self, *args)

    def BasicElt(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<MAT_BasicElt>

        Description
        -----------
        Return the basicelt of index <index> in <thebasicelts>.

        """
        return _MAT.MAT_Graph_BasicElt(self, *args)

    def ChangeBasicElt(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<MAT_BasicElt>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Graph_ChangeBasicElt(self, *args)

    def ChangeBasicElts(self, *args):
        r"""

        Parameters
        ----------
        NewMap: MAT_DataMapOfIntegerBasicElt

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Graph_ChangeBasicElts(self, *args)

    def CompactArcs(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Graph_CompactArcs(self, *args)

    def CompactNodes(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Graph_CompactNodes(self, *args)

    def FusionOfBasicElts(self, *args):
        r"""

        Parameters
        ----------
        IndexElt1: int
        IndexElt2: int

        Return
        -------
        MergeArc1: bool
        GeomIndexArc1: int
        GeomIndexArc2: int
        MergeArc2: bool
        GeomIndexArc3: int
        GeomIndexArc4: int

        Description
        -----------
        Merge two basicelts. the end of the basicelt elt1 of indexelt1 becomes the end of the basicelt elt2 of indexelt2. elt2 is replaced in the arcs by elt1, elt2 is eliminated. //! <mergearc1> is true if the fusion of the basicelts => a fusion of two arcs which separated the same elements. in this case <geomindexarc1> and <geomindexarc2> are the geometric index of this arcs. //! if the basicelt corresponds to a close line , the startarc and the endarc of elt1 can separate the same elements . in this case there is a fusion of this arcs, <mergearc2> is true and <geomindexarc3> and <geomindexarc4> are the geometric index of this arcs.

        """
        return _MAT.MAT_Graph_FusionOfBasicElts(self, *args)

    def Node(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<MAT_Node>

        Description
        -----------
        Return the node of index <index> in <thenodes>.

        """
        return _MAT.MAT_Graph_Node(self, *args)

    def NumberOfArcs(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the number of arcs of <self>.

        """
        return _MAT.MAT_Graph_NumberOfArcs(self, *args)

    def NumberOfBasicElts(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the number of basic elements of <self>.

        """
        return _MAT.MAT_Graph_NumberOfBasicElts(self, *args)

    def NumberOfInfiniteNodes(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the number of infinites nodes of <self>.

        """
        return _MAT.MAT_Graph_NumberOfInfiniteNodes(self, *args)

    def NumberOfNodes(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the number of nodes of <self>.

        """
        return _MAT.MAT_Graph_NumberOfNodes(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        SemiInfinite: bool
        TheRoots: MAT_ListOfBisector
        NbBasicElts: int
        NbArcs: int

        Return
        -------
        None

        Description
        -----------
        Construct <self> from the result of the method <createmat> of the class <mat> from <mat>. //! <semiinfinite>: if some bisector are infinites. <theroots>: set of the bisectors. <nbbasicelts>: number of basic elements. <nbarcs>: number of arcs = number of bisectors.

        """
        return _MAT.MAT_Graph_Perform(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_Graph

# Register MAT_Graph in _MAT:
_MAT.MAT_Graph_swigregister(MAT_Graph)
class MAT_ListOfBisector(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):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _MAT.MAT_ListOfBisector_swiginit(self, _MAT.new_MAT_ListOfBisector(*args))

    def BackAdd(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_BackAdd(self, *args)

    def Brackets(self, *args):
        r"""

        Parameters
        ----------
        anindex: int

        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Brackets(self, *args)

    def Current(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        anitem: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Current(self, *args)

    def Dump(self, *args):
        r"""

        Parameters
        ----------
        ashift: int
        alevel: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Dump(self, *args)

    def First(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_First(self, *args)

    def FirstItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_FirstItem(self, *args)

    def FrontAdd(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_FrontAdd(self, *args)

    def Index(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Index(self, *args)

    def Init(self, *args):
        r"""

        Parameters
        ----------
        aniten: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Init(self, *args)

    def IsEmpty(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_IsEmpty(self, *args)

    def Last(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Last(self, *args)

    def LastItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_LastItem(self, *args)

    def LinkAfter(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_LinkAfter(self, *args)

    def LinkBefore(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_LinkBefore(self, *args)

    def Loop(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Loop(self, *args)

    def More(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_More(self, *args)

    def Next(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Next(self, *args)

    def NextItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_NextItem(self, *args)

    def Number(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Number(self, *args)

    def Permute(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Permute(self, *args)

    def Previous(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Previous(self, *args)

    def PreviousItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_PreviousItem(self, *args)

    def Unlink(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfBisector_Unlink(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_ListOfBisector

# Register MAT_ListOfBisector in _MAT:
_MAT.MAT_ListOfBisector_swigregister(MAT_ListOfBisector)
class MAT_ListOfEdge(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):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _MAT.MAT_ListOfEdge_swiginit(self, _MAT.new_MAT_ListOfEdge(*args))

    def BackAdd(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_BackAdd(self, *args)

    def Brackets(self, *args):
        r"""

        Parameters
        ----------
        anindex: int

        Return
        -------
        opencascade::handle<MAT_Edge>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Brackets(self, *args)

    def Current(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Edge>

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        anitem: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Current(self, *args)

    def Dump(self, *args):
        r"""

        Parameters
        ----------
        ashift: int
        alevel: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Dump(self, *args)

    def First(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_First(self, *args)

    def FirstItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Edge>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_FirstItem(self, *args)

    def FrontAdd(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_FrontAdd(self, *args)

    def Index(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Index(self, *args)

    def Init(self, *args):
        r"""

        Parameters
        ----------
        aniten: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Init(self, *args)

    def IsEmpty(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_IsEmpty(self, *args)

    def Last(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Last(self, *args)

    def LastItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Edge>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_LastItem(self, *args)

    def LinkAfter(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_LinkAfter(self, *args)

    def LinkBefore(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_LinkBefore(self, *args)

    def Loop(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Loop(self, *args)

    def More(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_More(self, *args)

    def Next(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Next(self, *args)

    def NextItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Edge>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_NextItem(self, *args)

    def Number(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Number(self, *args)

    def Permute(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Permute(self, *args)

    def Previous(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Previous(self, *args)

    def PreviousItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Edge>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_PreviousItem(self, *args)

    def Unlink(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_ListOfEdge_Unlink(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_ListOfEdge

# Register MAT_ListOfEdge in _MAT:
_MAT.MAT_ListOfEdge_swigregister(MAT_ListOfEdge)
class MAT_Node(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):
        r"""

        Parameters
        ----------
        GeomIndex: int
        LinkedArc: MAT_Arc
        Distance: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _MAT.MAT_Node_swiginit(self, _MAT.new_MAT_Node(*args))

    def Distance(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Node_Distance(self, *args)

    def GeomIndex(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the index associated of the geometric representation of <self>.

        """
        return _MAT.MAT_Node_GeomIndex(self, *args)

    def Index(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the index associated of the node.

        """
        return _MAT.MAT_Node_Index(self, *args)

    def Infinite(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the distance of <self> is infinite.

        """
        return _MAT.MAT_Node_Infinite(self, *args)

    def LinkedArcs(self, *args):
        r"""

        Parameters
        ----------
        S: MAT_SequenceOfArc

        Return
        -------
        None

        Description
        -----------
        Returns in <s> the arcs linked to <self>.

        """
        return _MAT.MAT_Node_LinkedArcs(self, *args)

    def NearElts(self, *args):
        r"""

        Parameters
        ----------
        S: MAT_SequenceOfBasicElt

        Return
        -------
        None

        Description
        -----------
        Returns in <s> the basicelts equidistant to <self>.

        """
        return _MAT.MAT_Node_NearElts(self, *args)

    def OnBasicElt(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if <self> belongs to the figure.

        """
        return _MAT.MAT_Node_OnBasicElt(self, *args)

    def PendingNode(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if <self> is a pending node. (ie: the number of arc linked = 1).

        """
        return _MAT.MAT_Node_PendingNode(self, *args)

    def SetIndex(self, *args):
        r"""

        Parameters
        ----------
        anIndex: int

        Return
        -------
        None

        Description
        -----------
        Set the index associated of the node.

        """
        return _MAT.MAT_Node_SetIndex(self, *args)

    def SetLinkedArc(self, *args):
        r"""

        Parameters
        ----------
        anArc: MAT_Arc

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_Node_SetLinkedArc(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_Node

# Register MAT_Node in _MAT:
_MAT.MAT_Node_swigregister(MAT_Node)
class MAT_TListNodeOfListOfBisector(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):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        anitem: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _MAT.MAT_TListNodeOfListOfBisector_swiginit(self, _MAT.new_MAT_TListNodeOfListOfBisector(*args))

    def Dummy(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfBisector_Dummy(self, *args)

    def GetItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Bisector>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfBisector_GetItem(self, *args)

    def Next(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_TListNodeOfListOfBisector>

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        atlistnode: MAT_TListNodeOfListOfBisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfBisector_Next(self, *args)

    def Previous(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_TListNodeOfListOfBisector>

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        atlistnode: MAT_TListNodeOfListOfBisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfBisector_Previous(self, *args)

    def SetItem(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Bisector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfBisector_SetItem(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_TListNodeOfListOfBisector

# Register MAT_TListNodeOfListOfBisector in _MAT:
_MAT.MAT_TListNodeOfListOfBisector_swigregister(MAT_TListNodeOfListOfBisector)
class MAT_TListNodeOfListOfEdge(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):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        anitem: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _MAT.MAT_TListNodeOfListOfEdge_swiginit(self, _MAT.new_MAT_TListNodeOfListOfEdge(*args))

    def Dummy(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfEdge_Dummy(self, *args)

    def GetItem(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_Edge>

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfEdge_GetItem(self, *args)

    def Next(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_TListNodeOfListOfEdge>

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        atlistnode: MAT_TListNodeOfListOfEdge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfEdge_Next(self, *args)

    def Previous(self, *args):
        r"""
        Return
        -------
        opencascade::handle<MAT_TListNodeOfListOfEdge>

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        atlistnode: MAT_TListNodeOfListOfEdge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfEdge_Previous(self, *args)

    def SetItem(self, *args):
        r"""

        Parameters
        ----------
        anitem: MAT_Edge

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _MAT.MAT_TListNodeOfListOfEdge_SetItem(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_TListNodeOfListOfEdge

# Register MAT_TListNodeOfListOfEdge in _MAT:
_MAT.MAT_TListNodeOfListOfEdge_swigregister(MAT_TListNodeOfListOfEdge)
class MAT_Zone(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):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        aBasicElt: MAT_BasicElt

        Return
        -------
        None

        Description
        -----------
        Compute the frontier of the zone of proximity.

        """
        _MAT.MAT_Zone_swiginit(self, _MAT.new_MAT_Zone(*args))

    def ArcOnFrontier(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<MAT_Arc>

        Description
        -----------
        Return the arc number <index> on the frontier. of <self>.

        """
        return _MAT.MAT_Zone_ArcOnFrontier(self, *args)

    def Limited(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Return true if <self> is limited.

        """
        return _MAT.MAT_Zone_Limited(self, *args)

    def NoEmptyZone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Return true if <self> is not empty .

        """
        return _MAT.MAT_Zone_NoEmptyZone(self, *args)

    def NumberOfArcs(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the number of arcs on the frontier of <self>.

        """
        return _MAT.MAT_Zone_NumberOfArcs(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        aBasicElt: MAT_BasicElt

        Return
        -------
        None

        Description
        -----------
        Compute the frontier of the zone of proximity.

        """
        return _MAT.MAT_Zone_Perform(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _MAT.delete_MAT_Zone

# Register MAT_Zone in _MAT:
_MAT.MAT_Zone_swigregister(MAT_Zone)



