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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

_swig_new_instance_method = _BRepMesh.SWIG_PyInstanceMethod_New
_swig_new_static_method = _BRepMesh.SWIG_PyStaticMethod_New

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


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


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


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


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


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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _BRepMesh.delete_SwigPyIterator
    value = _swig_new_instance_method(_BRepMesh.SwigPyIterator_value)
    incr = _swig_new_instance_method(_BRepMesh.SwigPyIterator_incr)
    decr = _swig_new_instance_method(_BRepMesh.SwigPyIterator_decr)
    distance = _swig_new_instance_method(_BRepMesh.SwigPyIterator_distance)
    equal = _swig_new_instance_method(_BRepMesh.SwigPyIterator_equal)
    copy = _swig_new_instance_method(_BRepMesh.SwigPyIterator_copy)
    next = _swig_new_instance_method(_BRepMesh.SwigPyIterator_next)
    __next__ = _swig_new_instance_method(_BRepMesh.SwigPyIterator___next__)
    previous = _swig_new_instance_method(_BRepMesh.SwigPyIterator_previous)
    advance = _swig_new_instance_method(_BRepMesh.SwigPyIterator_advance)
    __eq__ = _swig_new_instance_method(_BRepMesh.SwigPyIterator___eq__)
    __ne__ = _swig_new_instance_method(_BRepMesh.SwigPyIterator___ne__)
    __iadd__ = _swig_new_instance_method(_BRepMesh.SwigPyIterator___iadd__)
    __isub__ = _swig_new_instance_method(_BRepMesh.SwigPyIterator___isub__)
    __add__ = _swig_new_instance_method(_BRepMesh.SwigPyIterator___add__)
    __sub__ = _swig_new_instance_method(_BRepMesh.SwigPyIterator___sub__)
    def __iter__(self):
        return self

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


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


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

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.IMeshTools
import OCC.Core.IMeshData
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.BRepAdaptor
import OCC.Core.Adaptor3d
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.Bnd
import OCC.Core.BVH
BRepMesh_FE_NOERROR = _BRepMesh.BRepMesh_FE_NOERROR
BRepMesh_FE_LIBRARYNOTFOUND = _BRepMesh.BRepMesh_FE_LIBRARYNOTFOUND
BRepMesh_FE_FUNCTIONNOTFOUND = _BRepMesh.BRepMesh_FE_FUNCTIONNOTFOUND
BRepMesh_FE_CANNOTCREATEALGO = _BRepMesh.BRepMesh_FE_CANNOTCREATEALGO
BRepMesh_Free = _BRepMesh.BRepMesh_Free
BRepMesh_InVolume = _BRepMesh.BRepMesh_InVolume
BRepMesh_OnSurface = _BRepMesh.BRepMesh_OnSurface
BRepMesh_OnCurve = _BRepMesh.BRepMesh_OnCurve
BRepMesh_Fixed = _BRepMesh.BRepMesh_Fixed
BRepMesh_Frontier = _BRepMesh.BRepMesh_Frontier
BRepMesh_Deleted = _BRepMesh.BRepMesh_Deleted
Handle_BRepMesh_Classifier_Create = _BRepMesh.Handle_BRepMesh_Classifier_Create
Handle_BRepMesh_Classifier_DownCast = _BRepMesh.Handle_BRepMesh_Classifier_DownCast
Handle_BRepMesh_Classifier_IsNull = _BRepMesh.Handle_BRepMesh_Classifier_IsNull
Handle_BRepMesh_DataStructureOfDelaun_Create = _BRepMesh.Handle_BRepMesh_DataStructureOfDelaun_Create
Handle_BRepMesh_DataStructureOfDelaun_DownCast = _BRepMesh.Handle_BRepMesh_DataStructureOfDelaun_DownCast
Handle_BRepMesh_DataStructureOfDelaun_IsNull = _BRepMesh.Handle_BRepMesh_DataStructureOfDelaun_IsNull
Handle_BRepMesh_Deflection_Create = _BRepMesh.Handle_BRepMesh_Deflection_Create
Handle_BRepMesh_Deflection_DownCast = _BRepMesh.Handle_BRepMesh_Deflection_DownCast
Handle_BRepMesh_Deflection_IsNull = _BRepMesh.Handle_BRepMesh_Deflection_IsNull
Handle_BRepMesh_DiscretRoot_Create = _BRepMesh.Handle_BRepMesh_DiscretRoot_Create
Handle_BRepMesh_DiscretRoot_DownCast = _BRepMesh.Handle_BRepMesh_DiscretRoot_DownCast
Handle_BRepMesh_DiscretRoot_IsNull = _BRepMesh.Handle_BRepMesh_DiscretRoot_IsNull
Handle_BRepMesh_FaceChecker_Create = _BRepMesh.Handle_BRepMesh_FaceChecker_Create
Handle_BRepMesh_FaceChecker_DownCast = _BRepMesh.Handle_BRepMesh_FaceChecker_DownCast
Handle_BRepMesh_FaceChecker_IsNull = _BRepMesh.Handle_BRepMesh_FaceChecker_IsNull
Handle_BRepMesh_MeshTool_Create = _BRepMesh.Handle_BRepMesh_MeshTool_Create
Handle_BRepMesh_MeshTool_DownCast = _BRepMesh.Handle_BRepMesh_MeshTool_DownCast
Handle_BRepMesh_MeshTool_IsNull = _BRepMesh.Handle_BRepMesh_MeshTool_IsNull
Handle_BRepMesh_SelectorOfDataStructureOfDelaun_Create = _BRepMesh.Handle_BRepMesh_SelectorOfDataStructureOfDelaun_Create
Handle_BRepMesh_SelectorOfDataStructureOfDelaun_DownCast = _BRepMesh.Handle_BRepMesh_SelectorOfDataStructureOfDelaun_DownCast
Handle_BRepMesh_SelectorOfDataStructureOfDelaun_IsNull = _BRepMesh.Handle_BRepMesh_SelectorOfDataStructureOfDelaun_IsNull
Handle_BRepMesh_ShapeTool_Create = _BRepMesh.Handle_BRepMesh_ShapeTool_Create
Handle_BRepMesh_ShapeTool_DownCast = _BRepMesh.Handle_BRepMesh_ShapeTool_DownCast
Handle_BRepMesh_ShapeTool_IsNull = _BRepMesh.Handle_BRepMesh_ShapeTool_IsNull
Handle_BRepMesh_VertexTool_Create = _BRepMesh.Handle_BRepMesh_VertexTool_Create
Handle_BRepMesh_VertexTool_DownCast = _BRepMesh.Handle_BRepMesh_VertexTool_DownCast
Handle_BRepMesh_VertexTool_IsNull = _BRepMesh.Handle_BRepMesh_VertexTool_IsNull
Handle_BRepMesh_IncrementalMesh_Create = _BRepMesh.Handle_BRepMesh_IncrementalMesh_Create
Handle_BRepMesh_IncrementalMesh_DownCast = _BRepMesh.Handle_BRepMesh_IncrementalMesh_DownCast
Handle_BRepMesh_IncrementalMesh_IsNull = _BRepMesh.Handle_BRepMesh_IncrementalMesh_IsNull
class BRepMesh_BaseMeshAlgo(OCC.Core.IMeshTools.IMeshTools_MeshAlgo):
    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")
    __repr__ = _swig_repr

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_BaseMeshAlgo

# Register BRepMesh_BaseMeshAlgo in _BRepMesh:
_BRepMesh.BRepMesh_BaseMeshAlgo_swigregister(BRepMesh_BaseMeshAlgo)

class BRepMesh_Circle(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"""
        * Default constructor.
        	:rtype: None* Constructor. @param theLocation location of a circle. @param theRadius radius of a circle.
        	:param theLocation:
        	:type theLocation: gp_XY
        	:param theRadius:
        	:type theRadius: float
        	:rtype: None
        """
        _BRepMesh.BRepMesh_Circle_swiginit(self, _BRepMesh.new_BRepMesh_Circle(*args))
    Location = _swig_new_instance_method(_BRepMesh.BRepMesh_Circle_Location)
    Radius = _swig_new_instance_method(_BRepMesh.BRepMesh_Circle_Radius)
    SetLocation = _swig_new_instance_method(_BRepMesh.BRepMesh_Circle_SetLocation)
    SetRadius = _swig_new_instance_method(_BRepMesh.BRepMesh_Circle_SetRadius)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_Circle

# Register BRepMesh_Circle in _BRepMesh:
_BRepMesh.BRepMesh_Circle_swigregister(BRepMesh_Circle)

class BRepMesh_CircleInspector(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. @param theTolerance tolerance to be used for identification of shot circles. @param theReservedSize size to be reserved for vector of circles. @param theAllocator memory allocator to be used by internal collections.
        	:param theTolerance:
        	:type theTolerance: float
        	:param theReservedSize:
        	:type theReservedSize: int
        	:param theAllocator:
        	:type theAllocator: NCollection_IncAllocator
        	:rtype: None
        """
        _BRepMesh.BRepMesh_CircleInspector_swiginit(self, _BRepMesh.new_BRepMesh_CircleInspector(*args))
    Bind = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleInspector_Bind)
    Circle = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleInspector_Circle)
    Circles = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleInspector_Circles)
    GetShotCircles = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleInspector_GetShotCircles)
    Inspect = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleInspector_Inspect)
    IsEqual = _swig_new_static_method(_BRepMesh.BRepMesh_CircleInspector_IsEqual)
    SetPoint = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleInspector_SetPoint)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_CircleInspector

# Register BRepMesh_CircleInspector in _BRepMesh:
_BRepMesh.BRepMesh_CircleInspector_swigregister(BRepMesh_CircleInspector)
BRepMesh_CircleInspector_IsEqual = _BRepMesh.BRepMesh_CircleInspector_IsEqual

class BRepMesh_CircleTool(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. @param theAllocator memory allocator to be used by internal structures.
        	:param theAllocator:
        	:type theAllocator: NCollection_IncAllocator
        	:rtype: None* Constructor. @param theReservedSize size to be reserved for vector of circles. @param theAllocator memory allocator to be used by internal structures.
        	:param theReservedSize:
        	:type theReservedSize: int
        	:param theAllocator:
        	:type theAllocator: NCollection_IncAllocator
        	:rtype: None
        """
        _BRepMesh.BRepMesh_CircleTool_swiginit(self, _BRepMesh.new_BRepMesh_CircleTool(*args))
    Bind = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleTool_Bind)
    Delete = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleTool_Delete)
    Init = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleTool_Init)
    IsEmpty = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleTool_IsEmpty)
    MakeCircle = _swig_new_static_method(_BRepMesh.BRepMesh_CircleTool_MakeCircle)
    MocBind = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleTool_MocBind)
    Select = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleTool_Select)
    SetCellSize = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleTool_SetCellSize)
    SetMinMaxSize = _swig_new_instance_method(_BRepMesh.BRepMesh_CircleTool_SetMinMaxSize)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_CircleTool

# Register BRepMesh_CircleTool in _BRepMesh:
_BRepMesh.BRepMesh_CircleTool_swigregister(BRepMesh_CircleTool)
BRepMesh_CircleTool_MakeCircle = _BRepMesh.BRepMesh_CircleTool_MakeCircle

class BRepMesh_Classifier(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"""
        * Constructor.
        	:rtype: None
        """
        _BRepMesh.BRepMesh_Classifier_swiginit(self, _BRepMesh.new_BRepMesh_Classifier(*args))
    Perform = _swig_new_instance_method(_BRepMesh.BRepMesh_Classifier_Perform)
    RegisterWire = _swig_new_instance_method(_BRepMesh.BRepMesh_Classifier_RegisterWire)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_Classifier

# Register BRepMesh_Classifier in _BRepMesh:
_BRepMesh.BRepMesh_Classifier_swigregister(BRepMesh_Classifier)

class BRepMesh_Context(OCC.Core.IMeshTools.IMeshTools_Context):
    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.
        	:rtype: None
        """
        _BRepMesh.BRepMesh_Context_swiginit(self, _BRepMesh.new_BRepMesh_Context(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_Context

# Register BRepMesh_Context in _BRepMesh:
_BRepMesh.BRepMesh_Context_swigregister(BRepMesh_Context)

class BRepMesh_CurveTessellator(OCC.Core.IMeshTools.IMeshTools_CurveTessellator):
    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.
        	:param theEdge:
        	:type theEdge: IMeshData::IEdgeHandle
        	:param theParameters:
        	:type theParameters: IMeshTools_Parameters
        	:rtype: None* Constructor.
        	:param theEdge:
        	:type theEdge: IMeshData::IEdgeHandle
        	:param theOrientation:
        	:type theOrientation: TopAbs_Orientation
        	:param theFace:
        	:type theFace: IMeshData::IFaceHandle
        	:param theParameters:
        	:type theParameters: IMeshTools_Parameters
        	:rtype: None
        """
        _BRepMesh.BRepMesh_CurveTessellator_swiginit(self, _BRepMesh.new_BRepMesh_CurveTessellator(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_CurveTessellator

# Register BRepMesh_CurveTessellator in _BRepMesh:
_BRepMesh.BRepMesh_CurveTessellator_swigregister(BRepMesh_CurveTessellator)

class BRepMesh_DataStructureOfDelaun(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
    AddElement = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_AddElement)
    AddLink = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_AddLink)
    AddNode = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_AddNode)
    Allocator = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_Allocator)

    def __init__(self, *args):
        r"""
        * Constructor. @param theAllocator memory allocator to be used by internal structures. @param theReservedNodeSize presumed number of nodes in this mesh.
        	:param theAllocator:
        	:type theAllocator: NCollection_IncAllocator
        	:param theReservedNodeSize: default value is 100
        	:type theReservedNodeSize: int
        	:rtype: None
        """
        _BRepMesh.BRepMesh_DataStructureOfDelaun_swiginit(self, _BRepMesh.new_BRepMesh_DataStructureOfDelaun(*args))
    ClearDeleted = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_ClearDeleted)
    ClearDomain = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_ClearDomain)
    Data = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_Data)
    Dump = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_Dump)
    ElementNodes = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_ElementNodes)
    ElementsConnectedTo = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_ElementsConnectedTo)
    ElementsOfDomain = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_ElementsOfDomain)
    GetElement = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_GetElement)
    GetLink = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_GetLink)
    GetNode = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_GetNode)
    IndexOf = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_IndexOf)
    LinksConnectedTo = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_LinksConnectedTo)
    LinksOfDomain = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_LinksOfDomain)
    NbElements = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_NbElements)
    NbLinks = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_NbLinks)
    NbNodes = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_NbNodes)
    RemoveElement = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_RemoveElement)
    RemoveLink = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_RemoveLink)
    RemoveNode = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_RemoveNode)
    StatisticsToString = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_StatisticsToString)
    SubstituteElement = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_SubstituteElement)
    SubstituteLink = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_SubstituteLink)
    SubstituteNode = _swig_new_instance_method(_BRepMesh.BRepMesh_DataStructureOfDelaun_SubstituteNode)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_DataStructureOfDelaun

# Register BRepMesh_DataStructureOfDelaun in _BRepMesh:
_BRepMesh.BRepMesh_DataStructureOfDelaun_swigregister(BRepMesh_DataStructureOfDelaun)

class BRepMesh_Deflection(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
    ComputeAbsoluteDeflection = _swig_new_static_method(_BRepMesh.BRepMesh_Deflection_ComputeAbsoluteDeflection)
    ComputeDeflection = _swig_new_static_method(_BRepMesh.BRepMesh_Deflection_ComputeDeflection)


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


    __repr__ = _dumps_object


    def __init__(self):
        _BRepMesh.BRepMesh_Deflection_swiginit(self, _BRepMesh.new_BRepMesh_Deflection())
    __swig_destroy__ = _BRepMesh.delete_BRepMesh_Deflection

# Register BRepMesh_Deflection in _BRepMesh:
_BRepMesh.BRepMesh_Deflection_swigregister(BRepMesh_Deflection)
BRepMesh_Deflection_ComputeAbsoluteDeflection = _BRepMesh.BRepMesh_Deflection_ComputeAbsoluteDeflection
BRepMesh_Deflection_ComputeDeflection = _BRepMesh.BRepMesh_Deflection_ComputeDeflection

class BRepMesh_Delaun(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AddVertices = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_AddVertices)

    def __init__(self, *args):
        r"""
        * Creates instance of triangulator, but do not run the algorithm automatically.
        	:param theOldMesh:
        	:type theOldMesh: BRepMesh_DataStructureOfDelaun
        	:param theCellsCountU:
        	:type theCellsCountU: int
        	:param theCellsCountV:
        	:type theCellsCountV: int
        	:param isFillCircles:
        	:type isFillCircles: bool
        	:rtype: None* Creates the triangulation with an empty Mesh data structure.
        	:param theVertices:
        	:type theVertices: IMeshData::Array1OfVertexOfDelaun
        	:rtype: None* Creates the triangulation with an existent Mesh data structure.
        	:param theOldMesh:
        	:type theOldMesh: BRepMesh_DataStructureOfDelaun
        	:param theVertices:
        	:type theVertices: IMeshData::Array1OfVertexOfDelaun
        	:rtype: None* Creates the triangulation with an existant Mesh data structure.
        	:param theOldMesh:
        	:type theOldMesh: BRepMesh_DataStructureOfDelaun
        	:param theVertexIndices:
        	:type theVertexIndices: IMeshData::VectorOfInteger
        	:rtype: None* Creates the triangulation with an existant Mesh data structure.
        	:param theOldMesh:
        	:type theOldMesh: BRepMesh_DataStructureOfDelaun
        	:param theVertexIndices:
        	:type theVertexIndices: IMeshData::VectorOfInteger
        	:param theCellsCountU:
        	:type theCellsCountU: int
        	:param theCellsCountV:
        	:type theCellsCountV: int
        	:rtype: None
        """
        _BRepMesh.BRepMesh_Delaun_swiginit(self, _BRepMesh.new_BRepMesh_Delaun(*args))
    Circles = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_Circles)
    Contains = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_Contains)
    GetEdge = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_GetEdge)
    GetTriangle = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_GetTriangle)
    GetVertex = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_GetVertex)
    Init = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_Init)
    InitCirclesTool = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_InitCirclesTool)
    RemoveVertex = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_RemoveVertex)
    Result = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_Result)
    UseEdge = _swig_new_instance_method(_BRepMesh.BRepMesh_Delaun_UseEdge)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_Delaun

# Register BRepMesh_Delaun in _BRepMesh:
_BRepMesh.BRepMesh_Delaun_swigregister(BRepMesh_Delaun)

class BRepMesh_DiscretFactory(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")
    __repr__ = _swig_repr
    DefaultName = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretFactory_DefaultName)
    Discret = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretFactory_Discret)
    ErrorStatus = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretFactory_ErrorStatus)
    FunctionName = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretFactory_FunctionName)
    Get = _swig_new_static_method(_BRepMesh.BRepMesh_DiscretFactory_Get)
    Names = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretFactory_Names)
    SetDefault = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretFactory_SetDefault)
    SetDefaultName = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretFactory_SetDefaultName)
    SetFunctionName = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretFactory_SetFunctionName)

    __repr__ = _dumps_object


# Register BRepMesh_DiscretFactory in _BRepMesh:
_BRepMesh.BRepMesh_DiscretFactory_swigregister(BRepMesh_DiscretFactory)
BRepMesh_DiscretFactory_Get = _BRepMesh.BRepMesh_DiscretFactory_Get

class BRepMesh_DiscretRoot(OCC.Core.Standard.Standard_Transient):
    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")
    __repr__ = _swig_repr
    IsDone = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretRoot_IsDone)
    Perform = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretRoot_Perform)
    SetShape = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretRoot_SetShape)
    Shape = _swig_new_instance_method(_BRepMesh.BRepMesh_DiscretRoot_Shape)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_DiscretRoot

# Register BRepMesh_DiscretRoot in _BRepMesh:
_BRepMesh.BRepMesh_DiscretRoot_swigregister(BRepMesh_DiscretRoot)

class BRepMesh_EdgeDiscret(OCC.Core.IMeshTools.IMeshTools_ModelAlgo):
    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.
        	:rtype: None
        """
        _BRepMesh.BRepMesh_EdgeDiscret_swiginit(self, _BRepMesh.new_BRepMesh_EdgeDiscret(*args))
    CreateEdgeTessellationExtractor = _swig_new_static_method(_BRepMesh.BRepMesh_EdgeDiscret_CreateEdgeTessellationExtractor)
    CreateEdgeTessellator = _swig_new_static_method(_BRepMesh.BRepMesh_EdgeDiscret_CreateEdgeTessellator)
    Tessellate2d = _swig_new_static_method(_BRepMesh.BRepMesh_EdgeDiscret_Tessellate2d)
    Tessellate3d = _swig_new_static_method(_BRepMesh.BRepMesh_EdgeDiscret_Tessellate3d)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_EdgeDiscret

# Register BRepMesh_EdgeDiscret in _BRepMesh:
_BRepMesh.BRepMesh_EdgeDiscret_swigregister(BRepMesh_EdgeDiscret)
BRepMesh_EdgeDiscret_CreateEdgeTessellationExtractor = _BRepMesh.BRepMesh_EdgeDiscret_CreateEdgeTessellationExtractor
BRepMesh_EdgeDiscret_CreateEdgeTessellator = _BRepMesh.BRepMesh_EdgeDiscret_CreateEdgeTessellator
BRepMesh_EdgeDiscret_Tessellate2d = _BRepMesh.BRepMesh_EdgeDiscret_Tessellate2d
BRepMesh_EdgeDiscret_Tessellate3d = _BRepMesh.BRepMesh_EdgeDiscret_Tessellate3d

class BRepMesh_FaceChecker(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"""
        * Default constructor
        	:param theFace:
        	:type theFace: IMeshData::IFaceHandle
        	:param theParameters:
        	:type theParameters: IMeshTools_Parameters
        	:rtype: None
        """
        _BRepMesh.BRepMesh_FaceChecker_swiginit(self, _BRepMesh.new_BRepMesh_FaceChecker(*args))
    Perform = _swig_new_instance_method(_BRepMesh.BRepMesh_FaceChecker_Perform)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_FaceChecker

# Register BRepMesh_FaceChecker in _BRepMesh:
_BRepMesh.BRepMesh_FaceChecker_swigregister(BRepMesh_FaceChecker)

class BRepMesh_FaceDiscret(OCC.Core.IMeshTools.IMeshTools_ModelAlgo):
    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.
        	:param theAlgoFactory:
        	:type theAlgoFactory: IMeshTools_MeshAlgoFactory
        	:rtype: None
        """
        _BRepMesh.BRepMesh_FaceDiscret_swiginit(self, _BRepMesh.new_BRepMesh_FaceDiscret(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_FaceDiscret

# Register BRepMesh_FaceDiscret in _BRepMesh:
_BRepMesh.BRepMesh_FaceDiscret_swigregister(BRepMesh_FaceDiscret)

class BRepMesh_GeomTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    NoIntersection = _BRepMesh.BRepMesh_GeomTool_NoIntersection
    Cross = _BRepMesh.BRepMesh_GeomTool_Cross
    EndPointTouch = _BRepMesh.BRepMesh_GeomTool_EndPointTouch
    PointOnSegment = _BRepMesh.BRepMesh_GeomTool_PointOnSegment
    Glued = _BRepMesh.BRepMesh_GeomTool_Glued
    Same = _BRepMesh.BRepMesh_GeomTool_Same
    AddPoint = _swig_new_instance_method(_BRepMesh.BRepMesh_GeomTool_AddPoint)

    def __init__(self, *args):
        r"""
        * Constructor. Initiates discretization of the given geometric curve. @param theCurve curve to be discretized. @param theFirstParam first parameter of the curve. @param theLastParam last parameter of the curve. @param theLinDeflection linear deflection. @param theAngDeflection angular deflection. @param theMinPointsNb minimum nuber of points to be produced.
        	:param theCurve:
        	:type theCurve: BRepAdaptor_Curve
        	:param theFirstParam:
        	:type theFirstParam: float
        	:param theLastParam:
        	:type theLastParam: float
        	:param theLinDeflection:
        	:type theLinDeflection: float
        	:param theAngDeflection:
        	:type theAngDeflection: float
        	:param theMinPointsNb: default value is 2
        	:type theMinPointsNb: int
        	:param theMinSize: default value is Precision::Confusion()
        	:type theMinSize: float
        	:rtype: None* Constructor. Initiates discretization of geometric curve corresponding to iso curve of the given surface. @param theSurface surface the iso curve to be taken from. @param theIsoType type of iso curve to be used, U or V. @param theParamIso parameter on the surface specifying the iso curve. @param theFirstParam first parameter of the curve. @param theLastParam last parameter of the curve. @param theLinDeflection linear deflection. @param theAngDeflection angular deflection. @param theMinPointsNb minimum nuber of points to be produced.
        	:param theSurface:
        	:type theSurface: BRepAdaptor_HSurface
        	:param theIsoType:
        	:type theIsoType: GeomAbs_IsoType
        	:param theParamIso:
        	:type theParamIso: float
        	:param theFirstParam:
        	:type theFirstParam: float
        	:param theLastParam:
        	:type theLastParam: float
        	:param theLinDeflection:
        	:type theLinDeflection: float
        	:param theAngDeflection:
        	:type theAngDeflection: float
        	:param theMinPointsNb: default value is 2
        	:type theMinPointsNb: int
        	:param theMinSize: default value is Precision::Confusion()
        	:type theMinSize: float
        	:rtype: None
        """
        _BRepMesh.BRepMesh_GeomTool_swiginit(self, _BRepMesh.new_BRepMesh_GeomTool(*args))
    CellsCount = _swig_new_static_method(_BRepMesh.BRepMesh_GeomTool_CellsCount)
    NbPoints = _swig_new_instance_method(_BRepMesh.BRepMesh_GeomTool_NbPoints)
    SquareDeflectionOfSegment = _swig_new_static_method(_BRepMesh.BRepMesh_GeomTool_SquareDeflectionOfSegment)
    Value = _swig_new_instance_method(_BRepMesh.BRepMesh_GeomTool_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_GeomTool

# Register BRepMesh_GeomTool in _BRepMesh:
_BRepMesh.BRepMesh_GeomTool_swigregister(BRepMesh_GeomTool)
BRepMesh_GeomTool_CellsCount = _BRepMesh.BRepMesh_GeomTool_CellsCount
BRepMesh_GeomTool_SquareDeflectionOfSegment = _BRepMesh.BRepMesh_GeomTool_SquareDeflectionOfSegment

class BRepMesh_MeshAlgoFactory(OCC.Core.IMeshTools.IMeshTools_MeshAlgoFactory):
    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.
        	:rtype: None
        """
        _BRepMesh.BRepMesh_MeshAlgoFactory_swiginit(self, _BRepMesh.new_BRepMesh_MeshAlgoFactory(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_MeshAlgoFactory

# Register BRepMesh_MeshAlgoFactory in _BRepMesh:
_BRepMesh.BRepMesh_MeshAlgoFactory_swigregister(BRepMesh_MeshAlgoFactory)

class BRepMesh_MeshTool(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
    AddAndLegalizeTriangle = _swig_new_instance_method(_BRepMesh.BRepMesh_MeshTool_AddAndLegalizeTriangle)
    AddLink = _swig_new_instance_method(_BRepMesh.BRepMesh_MeshTool_AddLink)
    AddTriangle = _swig_new_instance_method(_BRepMesh.BRepMesh_MeshTool_AddTriangle)

    def __init__(self, *args):
        r"""
        * Constructor. Initializes tool by the given data structure.
        	:param theStructure:
        	:type theStructure: BRepMesh_DataStructureOfDelaun
        	:rtype: None
        """
        _BRepMesh.BRepMesh_MeshTool_swiginit(self, _BRepMesh.new_BRepMesh_MeshTool(*args))
    CleanFrontierLinks = _swig_new_instance_method(_BRepMesh.BRepMesh_MeshTool_CleanFrontierLinks)
    EraseFreeLinks = _swig_new_instance_method(_BRepMesh.BRepMesh_MeshTool_EraseFreeLinks)
    EraseItemsConnectedTo = _swig_new_instance_method(_BRepMesh.BRepMesh_MeshTool_EraseItemsConnectedTo)
    EraseTriangle = _swig_new_instance_method(_BRepMesh.BRepMesh_MeshTool_EraseTriangle)
    GetStructure = _swig_new_instance_method(_BRepMesh.BRepMesh_MeshTool_GetStructure)
    Legalize = _swig_new_instance_method(_BRepMesh.BRepMesh_MeshTool_Legalize)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_MeshTool

# Register BRepMesh_MeshTool in _BRepMesh:
_BRepMesh.BRepMesh_MeshTool_swigregister(BRepMesh_MeshTool)

class BRepMesh_ModelBuilder(OCC.Core.IMeshTools.IMeshTools_ModelBuilder):
    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.
        	:rtype: None
        """
        _BRepMesh.BRepMesh_ModelBuilder_swiginit(self, _BRepMesh.new_BRepMesh_ModelBuilder(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_ModelBuilder

# Register BRepMesh_ModelBuilder in _BRepMesh:
_BRepMesh.BRepMesh_ModelBuilder_swigregister(BRepMesh_ModelBuilder)

class BRepMesh_ModelHealer(OCC.Core.IMeshTools.IMeshTools_ModelAlgo):
    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.
        	:rtype: None
        """
        _BRepMesh.BRepMesh_ModelHealer_swiginit(self, _BRepMesh.new_BRepMesh_ModelHealer(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_ModelHealer

# Register BRepMesh_ModelHealer in _BRepMesh:
_BRepMesh.BRepMesh_ModelHealer_swigregister(BRepMesh_ModelHealer)

class BRepMesh_ModelPostProcessor(OCC.Core.IMeshTools.IMeshTools_ModelAlgo):
    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.
        	:rtype: None
        """
        _BRepMesh.BRepMesh_ModelPostProcessor_swiginit(self, _BRepMesh.new_BRepMesh_ModelPostProcessor(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_ModelPostProcessor

# Register BRepMesh_ModelPostProcessor in _BRepMesh:
_BRepMesh.BRepMesh_ModelPostProcessor_swigregister(BRepMesh_ModelPostProcessor)

class BRepMesh_ModelPreProcessor(OCC.Core.IMeshTools.IMeshTools_ModelAlgo):
    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.
        	:rtype: None
        """
        _BRepMesh.BRepMesh_ModelPreProcessor_swiginit(self, _BRepMesh.new_BRepMesh_ModelPreProcessor(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_ModelPreProcessor

# Register BRepMesh_ModelPreProcessor in _BRepMesh:
_BRepMesh.BRepMesh_ModelPreProcessor_swigregister(BRepMesh_ModelPreProcessor)

class BRepMesh_OrientedEdge(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"""
        * Default constructor.
        	:rtype: None* Constructs a link between two vertices.
        	:param theFirstNode:
        	:type theFirstNode: int
        	:param theLastNode:
        	:type theLastNode: int
        	:rtype: None
        """
        _BRepMesh.BRepMesh_OrientedEdge_swiginit(self, _BRepMesh.new_BRepMesh_OrientedEdge(*args))
    FirstNode = _swig_new_instance_method(_BRepMesh.BRepMesh_OrientedEdge_FirstNode)
    HashCode = _swig_new_instance_method(_BRepMesh.BRepMesh_OrientedEdge_HashCode)
    __hash__ = _swig_new_instance_method(_BRepMesh.BRepMesh_OrientedEdge___hash__)
    IsEqual = _swig_new_instance_method(_BRepMesh.BRepMesh_OrientedEdge_IsEqual)
    LastNode = _swig_new_instance_method(_BRepMesh.BRepMesh_OrientedEdge_LastNode)
    __eq_wrapper__ = _swig_new_instance_method(_BRepMesh.BRepMesh_OrientedEdge___eq_wrapper__)

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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_OrientedEdge

# Register BRepMesh_OrientedEdge in _BRepMesh:
_BRepMesh.BRepMesh_OrientedEdge_swigregister(BRepMesh_OrientedEdge)

class BRepMesh_PairOfIndex(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Append = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_Append)

    def __init__(self, *args):
        r"""
        * Default constructor
        	:rtype: None
        """
        _BRepMesh.BRepMesh_PairOfIndex_swiginit(self, _BRepMesh.new_BRepMesh_PairOfIndex(*args))
    Clear = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_Clear)
    Extent = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_Extent)
    FirstIndex = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_FirstIndex)
    Index = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_Index)
    IsEmpty = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_IsEmpty)
    LastIndex = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_LastIndex)
    Prepend = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_Prepend)
    RemoveIndex = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_RemoveIndex)
    SetIndex = _swig_new_instance_method(_BRepMesh.BRepMesh_PairOfIndex_SetIndex)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_PairOfIndex

# Register BRepMesh_PairOfIndex in _BRepMesh:
_BRepMesh.BRepMesh_PairOfIndex_swigregister(BRepMesh_PairOfIndex)

class BRepMesh_SelectorOfDataStructureOfDelaun(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
    AddNeighbours = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_AddNeighbours)

    def __init__(self, *args):
        r"""
        * Default constructor.
        	:rtype: None* Constructor. Initializes selector by the mesh.
        	:param theMesh:
        	:type theMesh: BRepMesh_DataStructureOfDelaun
        	:rtype: None
        """
        _BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_swiginit(self, _BRepMesh.new_BRepMesh_SelectorOfDataStructureOfDelaun(*args))
    Elements = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_Elements)
    FrontierLinks = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_FrontierLinks)
    Initialize = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_Initialize)
    Links = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_Links)
    NeighboursByEdgeOf = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_NeighboursByEdgeOf)
    NeighboursOf = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_NeighboursOf)
    NeighboursOfElement = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_NeighboursOfElement)
    NeighboursOfLink = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_NeighboursOfLink)
    NeighboursOfNode = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_NeighboursOfNode)
    Nodes = _swig_new_instance_method(_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_Nodes)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_SelectorOfDataStructureOfDelaun

# Register BRepMesh_SelectorOfDataStructureOfDelaun in _BRepMesh:
_BRepMesh.BRepMesh_SelectorOfDataStructureOfDelaun_swigregister(BRepMesh_SelectorOfDataStructureOfDelaun)

class BRepMesh_ShapeTool(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
    AddInFace = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_AddInFace)
    BoxMaxDimension = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_BoxMaxDimension)
    CheckAndUpdateFlags = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_CheckAndUpdateFlags)
    MaxFaceTolerance = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_MaxFaceTolerance)
    NullifyEdge = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_NullifyEdge)
    NullifyFace = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_NullifyFace)
    Range = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_Range)
    UVPoints = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_UVPoints)
    UpdateEdge = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_UpdateEdge)
    UseLocation = _swig_new_static_method(_BRepMesh.BRepMesh_ShapeTool_UseLocation)


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


    __repr__ = _dumps_object


    def __init__(self):
        _BRepMesh.BRepMesh_ShapeTool_swiginit(self, _BRepMesh.new_BRepMesh_ShapeTool())
    __swig_destroy__ = _BRepMesh.delete_BRepMesh_ShapeTool

# Register BRepMesh_ShapeTool in _BRepMesh:
_BRepMesh.BRepMesh_ShapeTool_swigregister(BRepMesh_ShapeTool)
BRepMesh_ShapeTool_AddInFace = _BRepMesh.BRepMesh_ShapeTool_AddInFace
BRepMesh_ShapeTool_BoxMaxDimension = _BRepMesh.BRepMesh_ShapeTool_BoxMaxDimension
BRepMesh_ShapeTool_CheckAndUpdateFlags = _BRepMesh.BRepMesh_ShapeTool_CheckAndUpdateFlags
BRepMesh_ShapeTool_MaxFaceTolerance = _BRepMesh.BRepMesh_ShapeTool_MaxFaceTolerance
BRepMesh_ShapeTool_NullifyEdge = _BRepMesh.BRepMesh_ShapeTool_NullifyEdge
BRepMesh_ShapeTool_NullifyFace = _BRepMesh.BRepMesh_ShapeTool_NullifyFace
BRepMesh_ShapeTool_Range = _BRepMesh.BRepMesh_ShapeTool_Range
BRepMesh_ShapeTool_UVPoints = _BRepMesh.BRepMesh_ShapeTool_UVPoints
BRepMesh_ShapeTool_UpdateEdge = _BRepMesh.BRepMesh_ShapeTool_UpdateEdge
BRepMesh_ShapeTool_UseLocation = _BRepMesh.BRepMesh_ShapeTool_UseLocation

class BRepMesh_ShapeVisitor(OCC.Core.IMeshTools.IMeshTools_ShapeVisitor):
    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.
        	:param theModel:
        	:type theModel: IMeshData_Model
        	:rtype: None
        """
        _BRepMesh.BRepMesh_ShapeVisitor_swiginit(self, _BRepMesh.new_BRepMesh_ShapeVisitor(*args))
    Visit = _swig_new_instance_method(_BRepMesh.BRepMesh_ShapeVisitor_Visit)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_ShapeVisitor

# Register BRepMesh_ShapeVisitor in _BRepMesh:
_BRepMesh.BRepMesh_ShapeVisitor_swigregister(BRepMesh_ShapeVisitor)

class BRepMesh_Triangle(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    myEdges = property(_BRepMesh.BRepMesh_Triangle_myEdges_get, _BRepMesh.BRepMesh_Triangle_myEdges_set)
    myOrientations = property(_BRepMesh.BRepMesh_Triangle_myOrientations_get, _BRepMesh.BRepMesh_Triangle_myOrientations_set)
    myMovability = property(_BRepMesh.BRepMesh_Triangle_myMovability_get, _BRepMesh.BRepMesh_Triangle_myMovability_set)

    def __init__(self, *args):
        r"""
        * Default constructor.
        	:rtype: None* Constructor. @param theEdges array of edges of triangle. @param theOrientations array of edge's orientations. @param theMovability movability of triangle.
        	:param ):
        	:type ): int (  theEdges
        	:param ):
        	:type ): bool (  theOrientations
        	:param theMovability:
        	:type theMovability: BRepMesh_DegreeOfFreedom
        	:rtype: None
        """
        _BRepMesh.BRepMesh_Triangle_swiginit(self, _BRepMesh.new_BRepMesh_Triangle(*args))
    Edges = _swig_new_instance_method(_BRepMesh.BRepMesh_Triangle_Edges)
    HashCode = _swig_new_instance_method(_BRepMesh.BRepMesh_Triangle_HashCode)
    __hash__ = _swig_new_instance_method(_BRepMesh.BRepMesh_Triangle___hash__)
    Initialize = _swig_new_instance_method(_BRepMesh.BRepMesh_Triangle_Initialize)
    IsEqual = _swig_new_instance_method(_BRepMesh.BRepMesh_Triangle_IsEqual)
    Movability = _swig_new_instance_method(_BRepMesh.BRepMesh_Triangle_Movability)
    SetMovability = _swig_new_instance_method(_BRepMesh.BRepMesh_Triangle_SetMovability)
    __eq_wrapper__ = _swig_new_instance_method(_BRepMesh.BRepMesh_Triangle___eq_wrapper__)

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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_Triangle

# Register BRepMesh_Triangle in _BRepMesh:
_BRepMesh.BRepMesh_Triangle_swigregister(BRepMesh_Triangle)

class BRepMesh_Vertex(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"""
        * Default constructor
        	:rtype: None* Creates vertex associated with point in 3d space. @param theUV position of vertex in parametric space. @param theLocation3d index of 3d point to be associated with vertex. @param theMovability movability of the vertex.
        	:param theUV:
        	:type theUV: gp_XY
        	:param theLocation3d:
        	:type theLocation3d: int
        	:param theMovability:
        	:type theMovability: BRepMesh_DegreeOfFreedom
        	:rtype: None* Creates vertex without association with point in 3d space. @param theU U position of vertex in parametric space. @param theV V position of vertex in parametric space. @param theMovability movability of the vertex.
        	:param theU:
        	:type theU: float
        	:param theV:
        	:type theV: float
        	:param theMovability:
        	:type theMovability: BRepMesh_DegreeOfFreedom
        	:rtype: None
        """
        _BRepMesh.BRepMesh_Vertex_swiginit(self, _BRepMesh.new_BRepMesh_Vertex(*args))
    ChangeCoord = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex_ChangeCoord)
    Coord = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex_Coord)
    HashCode = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex_HashCode)
    __hash__ = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex___hash__)
    Initialize = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex_Initialize)
    IsEqual = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex_IsEqual)
    Location3d = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex_Location3d)
    Movability = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex_Movability)
    SetMovability = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex_SetMovability)
    __eq_wrapper__ = _swig_new_instance_method(_BRepMesh.BRepMesh_Vertex___eq_wrapper__)

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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_Vertex

# Register BRepMesh_Vertex in _BRepMesh:
_BRepMesh.BRepMesh_Vertex_swigregister(BRepMesh_Vertex)

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

    def __init__(self, *args):
        r"""
        * Constructor. @param theAllocator memory allocator to be used by internal collections.
        	:param theAllocator:
        	:type theAllocator: NCollection_IncAllocator
        	:rtype: None
        """
        _BRepMesh.BRepMesh_VertexInspector_swiginit(self, _BRepMesh.new_BRepMesh_VertexInspector(*args))
    Clear = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexInspector_Clear)
    Delete = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexInspector_Delete)
    GetCoincidentPoint = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexInspector_GetCoincidentPoint)
    GetListOfDelPoints = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexInspector_GetListOfDelPoints)
    GetVertex = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexInspector_GetVertex)
    Inspect = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexInspector_Inspect)
    IsEqual = _swig_new_static_method(_BRepMesh.BRepMesh_VertexInspector_IsEqual)
    NbVertices = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexInspector_NbVertices)
    SetPoint = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexInspector_SetPoint)
    SetTolerance = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexInspector_SetTolerance)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_VertexInspector

# Register BRepMesh_VertexInspector in _BRepMesh:
_BRepMesh.BRepMesh_VertexInspector_swigregister(BRepMesh_VertexInspector)
BRepMesh_VertexInspector_IsEqual = _BRepMesh.BRepMesh_VertexInspector_IsEqual

class BRepMesh_VertexTool(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
    Add = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_Add)

    def __init__(self, *args):
        r"""
        * Constructor. @param theAllocator memory allocator to be used by internal collections.
        	:param theAllocator:
        	:type theAllocator: NCollection_IncAllocator
        	:rtype: None
        """
        _BRepMesh.BRepMesh_VertexTool_swiginit(self, _BRepMesh.new_BRepMesh_VertexTool(*args))
    DeleteVertex = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_DeleteVertex)
    Extent = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_Extent)
    FindIndex = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_FindIndex)
    FindKey = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_FindKey)
    GetListOfDelNodes = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_GetListOfDelNodes)
    GetTolerance = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_GetTolerance)
    IsEmpty = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_IsEmpty)
    RemoveLast = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_RemoveLast)
    SetCellSize = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_SetCellSize)
    SetTolerance = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_SetTolerance)
    StatisticsToString = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_StatisticsToString)
    Substitute = _swig_new_instance_method(_BRepMesh.BRepMesh_VertexTool_Substitute)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_VertexTool

# Register BRepMesh_VertexTool in _BRepMesh:
_BRepMesh.BRepMesh_VertexTool_swigregister(BRepMesh_VertexTool)

class BRepMesh_Edge(BRepMesh_OrientedEdge):
    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"""
        * Default constructor.
        	:rtype: None* Constructs a link between two vertices.
        	:param theFirstNode:
        	:type theFirstNode: int
        	:param theLastNode:
        	:type theLastNode: int
        	:param theMovability:
        	:type theMovability: BRepMesh_DegreeOfFreedom
        	:rtype: None
        """
        _BRepMesh.BRepMesh_Edge_swiginit(self, _BRepMesh.new_BRepMesh_Edge(*args))
    IsEqual = _swig_new_instance_method(_BRepMesh.BRepMesh_Edge_IsEqual)
    IsSameOrientation = _swig_new_instance_method(_BRepMesh.BRepMesh_Edge_IsSameOrientation)
    Movability = _swig_new_instance_method(_BRepMesh.BRepMesh_Edge_Movability)
    SetMovability = _swig_new_instance_method(_BRepMesh.BRepMesh_Edge_SetMovability)
    __eq_wrapper__ = _swig_new_instance_method(_BRepMesh.BRepMesh_Edge___eq_wrapper__)

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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_Edge

# Register BRepMesh_Edge in _BRepMesh:
_BRepMesh.BRepMesh_Edge_swigregister(BRepMesh_Edge)

class BRepMesh_IncrementalMesh(BRepMesh_DiscretRoot):
    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"""
        * @name mesher API Default constructor
        	:rtype: None* Constructor. Automatically calls method Perform. @param theShape shape to be meshed. @param theLinDeflection linear deflection. @param isRelative if True deflection used for discretization of each edge will be <theLinDeflection> * <size of edge>. Deflection used for the faces will be the maximum deflection of their edges. @param theAngDeflection angular deflection. @param isInParallel if True shape will be meshed in parallel.
        	:param theShape:
        	:type theShape: TopoDS_Shape
        	:param theLinDeflection:
        	:type theLinDeflection: float
        	:param isRelative: default value is Standard_False
        	:type isRelative: bool
        	:param theAngDeflection: default value is 0.5
        	:type theAngDeflection: float
        	:param isInParallel: default value is Standard_False
        	:type isInParallel: bool
        	:rtype: None* Constructor. Automatically calls method Perform. @param theShape shape to be meshed. @param theParameters - parameters of meshing
        	:param theShape:
        	:type theShape: TopoDS_Shape
        	:param theParameters:
        	:type theParameters: IMeshTools_Parameters
        	:rtype: None
        """
        _BRepMesh.BRepMesh_IncrementalMesh_swiginit(self, _BRepMesh.new_BRepMesh_IncrementalMesh(*args))
    ChangeParameters = _swig_new_instance_method(_BRepMesh.BRepMesh_IncrementalMesh_ChangeParameters)
    Discret = _swig_new_static_method(_BRepMesh.BRepMesh_IncrementalMesh_Discret)
    GetStatusFlags = _swig_new_instance_method(_BRepMesh.BRepMesh_IncrementalMesh_GetStatusFlags)
    IsModified = _swig_new_instance_method(_BRepMesh.BRepMesh_IncrementalMesh_IsModified)
    IsParallelDefault = _swig_new_static_method(_BRepMesh.BRepMesh_IncrementalMesh_IsParallelDefault)
    Parameters = _swig_new_instance_method(_BRepMesh.BRepMesh_IncrementalMesh_Parameters)
    Perform = _swig_new_instance_method(_BRepMesh.BRepMesh_IncrementalMesh_Perform)
    SetParallelDefault = _swig_new_static_method(_BRepMesh.BRepMesh_IncrementalMesh_SetParallelDefault)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_IncrementalMesh

# Register BRepMesh_IncrementalMesh in _BRepMesh:
_BRepMesh.BRepMesh_IncrementalMesh_swigregister(BRepMesh_IncrementalMesh)
BRepMesh_IncrementalMesh_Discret = _BRepMesh.BRepMesh_IncrementalMesh_Discret
BRepMesh_IncrementalMesh_IsParallelDefault = _BRepMesh.BRepMesh_IncrementalMesh_IsParallelDefault
BRepMesh_IncrementalMesh_SetParallelDefault = _BRepMesh.BRepMesh_IncrementalMesh_SetParallelDefault

class BRepMesh_DelaunayBaseMeshAlgo(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.
        	:rtype: None
        """
        _BRepMesh.BRepMesh_DelaunayBaseMeshAlgo_swiginit(self, _BRepMesh.new_BRepMesh_DelaunayBaseMeshAlgo(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepMesh.delete_BRepMesh_DelaunayBaseMeshAlgo

# Register BRepMesh_DelaunayBaseMeshAlgo in _BRepMesh:
_BRepMesh.BRepMesh_DelaunayBaseMeshAlgo_swigregister(BRepMesh_DelaunayBaseMeshAlgo)



