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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

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


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


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

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.IntTools
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.Bnd
import OCC.Core.BVH
import OCC.Core.Geom2dHatch
import OCC.Core.IntRes2d
import OCC.Core.HatchGen
import OCC.Core.Geom2dInt
import OCC.Core.IntCurve
import OCC.Core.Extrema
import OCC.Core.Intf
import OCC.Core.GeomAPI
import OCC.Core.Approx
import OCC.Core.AppCont
import OCC.Core.AppParCurves
import OCC.Core.BRepClass3d
import OCC.Core.IntCurveSurface
import OCC.Core.IntSurf
import OCC.Core.TopTools
import OCC.Core.IntCurvesFace
import OCC.Core.IntPatch
import OCC.Core.IntAna
import OCC.Core.GeomInt
import OCC.Core.IntImp
import OCC.Core.ApproxInt
class BOPTools_ListOfConnexityBlock(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_begin)
    end = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_end)
    cbegin = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_cbegin)
    cend = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_cend)

    def __init__(self, *args):
        _BOPTools.BOPTools_ListOfConnexityBlock_swiginit(self, _BOPTools.new_BOPTools_ListOfConnexityBlock(*args))
    Size = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_Size)
    Assign = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_Assign)
    Set = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_Set)
    Clear = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_Clear)
    First = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_First)
    Last = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_Last)
    Append = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_Append)
    Prepend = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_Prepend)
    RemoveFirst = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_RemoveFirst)
    Remove = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_Remove)
    InsertBefore = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_InsertBefore)
    InsertAfter = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_InsertAfter)
    Reverse = _swig_new_instance_method(_BOPTools.BOPTools_ListOfConnexityBlock_Reverse)
    __swig_destroy__ = _BOPTools.delete_BOPTools_ListOfConnexityBlock

# Register BOPTools_ListOfConnexityBlock in _BOPTools:
_BOPTools.BOPTools_ListOfConnexityBlock_swigregister(BOPTools_ListOfConnexityBlock)

class BOPTools_MapOfSet(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cbegin = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_cbegin)
    cend = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_cend)

    def __init__(self, *args):
        _BOPTools.BOPTools_MapOfSet_swiginit(self, _BOPTools.new_BOPTools_MapOfSet(*args))
    Exchange = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Exchange)
    Assign = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Assign)
    Set = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Set)
    ReSize = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_ReSize)
    Add = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Add)
    Added = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Added)
    Remove = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Remove)
    Clear = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Clear)
    __swig_destroy__ = _BOPTools.delete_BOPTools_MapOfSet
    Size = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Size)
    IsEqual = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_IsEqual)
    Contains = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Contains)
    Union = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Union)
    Unite = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Unite)
    HasIntersection = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_HasIntersection)
    Intersection = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Intersection)
    Intersect = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Intersect)
    Subtraction = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Subtraction)
    Subtract = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Subtract)
    Difference = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Difference)
    Differ = _swig_new_instance_method(_BOPTools.BOPTools_MapOfSet_Differ)

# Register BOPTools_MapOfSet in _BOPTools:
_BOPTools.BOPTools_MapOfSet_swigregister(BOPTools_MapOfSet)

class BOPTools_ListOfCoupleOfShape(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_begin)
    end = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_end)
    cbegin = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_cbegin)
    cend = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_cend)

    def __init__(self, *args):
        _BOPTools.BOPTools_ListOfCoupleOfShape_swiginit(self, _BOPTools.new_BOPTools_ListOfCoupleOfShape(*args))
    Size = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_Size)
    Assign = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_Assign)
    Set = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_Set)
    Clear = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_Clear)
    First = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_First)
    Last = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_Last)
    Append = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_Append)
    Prepend = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_Prepend)
    RemoveFirst = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_RemoveFirst)
    Remove = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_Remove)
    InsertBefore = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_InsertBefore)
    InsertAfter = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_InsertAfter)
    Reverse = _swig_new_instance_method(_BOPTools.BOPTools_ListOfCoupleOfShape_Reverse)
    __swig_destroy__ = _BOPTools.delete_BOPTools_ListOfCoupleOfShape

# Register BOPTools_ListOfCoupleOfShape in _BOPTools:
_BOPTools.BOPTools_ListOfCoupleOfShape_swigregister(BOPTools_ListOfCoupleOfShape)

class BOPTools_IndexedDataMapOfSetShape(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_begin)
    end = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_end)
    cbegin = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_cbegin)
    cend = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_cend)

    def __init__(self, *args):
        _BOPTools.BOPTools_IndexedDataMapOfSetShape_swiginit(self, _BOPTools.new_BOPTools_IndexedDataMapOfSetShape(*args))
    Exchange = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Exchange)
    Assign = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Assign)
    Set = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Set)
    ReSize = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_ReSize)
    Add = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Add)
    Contains = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Contains)
    Substitute = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Substitute)
    Swap = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Swap)
    RemoveLast = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_RemoveLast)
    RemoveFromIndex = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_RemoveFromIndex)
    RemoveKey = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_RemoveKey)
    FindKey = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_FindKey)
    FindFromIndex = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_FindFromIndex)
    ChangeFromIndex = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_ChangeFromIndex)
    __call__ = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape___call__)
    FindIndex = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_FindIndex)
    ChangeFromKey = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_ChangeFromKey)
    Seek = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Seek)
    ChangeSeek = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_ChangeSeek)
    FindFromKey = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_FindFromKey)
    Clear = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Clear)
    __swig_destroy__ = _BOPTools.delete_BOPTools_IndexedDataMapOfSetShape
    Size = _swig_new_instance_method(_BOPTools.BOPTools_IndexedDataMapOfSetShape_Size)

# Register BOPTools_IndexedDataMapOfSetShape in _BOPTools:
_BOPTools.BOPTools_IndexedDataMapOfSetShape_swigregister(BOPTools_IndexedDataMapOfSetShape)

class BOPTools_AlgoTools(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AreFacesSameDomain = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_AreFacesSameDomain)
    ComputeState = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_ComputeState)
    ComputeStateByOnePoint = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_ComputeStateByOnePoint)
    ComputeTolerance = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_ComputeTolerance)
    ComputeVV = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_ComputeVV)
    CopyEdge = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_CopyEdge)
    CorrectCurveOnSurface = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_CorrectCurveOnSurface)
    CorrectPointOnCurve = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_CorrectPointOnCurve)
    CorrectRange = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_CorrectRange)
    CorrectShapeTolerances = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_CorrectShapeTolerances)
    CorrectTolerances = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_CorrectTolerances)
    Dimension = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_Dimension)
    GetEdgeOff = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_GetEdgeOff)
    GetEdgeOnFace = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_GetEdgeOnFace)
    GetFaceOff = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_GetFaceOff)
    IsBlockInOnFace = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_IsBlockInOnFace)
    IsHole = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_IsHole)
    IsInternalFace = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_IsInternalFace)
    IsInvertedSolid = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_IsInvertedSolid)
    IsMicroEdge = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_IsMicroEdge)
    IsOpenShell = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_IsOpenShell)
    IsSplitToReverse = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_IsSplitToReverse)
    IsSplitToReverseWithWarn = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_IsSplitToReverseWithWarn)
    MakeConnexityBlock = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_MakeConnexityBlock)
    MakeConnexityBlocks = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_MakeConnexityBlocks)
    MakeContainer = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_MakeContainer)
    MakeEdge = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_MakeEdge)
    MakeNewVertex = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_MakeNewVertex)
    MakePCurve = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_MakePCurve)
    MakeSectEdge = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_MakeSectEdge)
    MakeSplitEdge = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_MakeSplitEdge)
    MakeVertex = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_MakeVertex)
    OrientEdgesOnWire = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_OrientEdgesOnWire)
    OrientFacesOnShell = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_OrientFacesOnShell)
    PointOnEdge = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_PointOnEdge)
    Sense = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_Sense)
    UpdateVertex = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools_UpdateVertex)

    __repr__ = _dumps_object


    def __init__(self):
        _BOPTools.BOPTools_AlgoTools_swiginit(self, _BOPTools.new_BOPTools_AlgoTools())
    __swig_destroy__ = _BOPTools.delete_BOPTools_AlgoTools

# Register BOPTools_AlgoTools in _BOPTools:
_BOPTools.BOPTools_AlgoTools_swigregister(BOPTools_AlgoTools)
BOPTools_AlgoTools_AreFacesSameDomain = _BOPTools.BOPTools_AlgoTools_AreFacesSameDomain
BOPTools_AlgoTools_ComputeState = _BOPTools.BOPTools_AlgoTools_ComputeState
BOPTools_AlgoTools_ComputeStateByOnePoint = _BOPTools.BOPTools_AlgoTools_ComputeStateByOnePoint
BOPTools_AlgoTools_ComputeTolerance = _BOPTools.BOPTools_AlgoTools_ComputeTolerance
BOPTools_AlgoTools_ComputeVV = _BOPTools.BOPTools_AlgoTools_ComputeVV
BOPTools_AlgoTools_CopyEdge = _BOPTools.BOPTools_AlgoTools_CopyEdge
BOPTools_AlgoTools_CorrectCurveOnSurface = _BOPTools.BOPTools_AlgoTools_CorrectCurveOnSurface
BOPTools_AlgoTools_CorrectPointOnCurve = _BOPTools.BOPTools_AlgoTools_CorrectPointOnCurve
BOPTools_AlgoTools_CorrectRange = _BOPTools.BOPTools_AlgoTools_CorrectRange
BOPTools_AlgoTools_CorrectShapeTolerances = _BOPTools.BOPTools_AlgoTools_CorrectShapeTolerances
BOPTools_AlgoTools_CorrectTolerances = _BOPTools.BOPTools_AlgoTools_CorrectTolerances
BOPTools_AlgoTools_Dimension = _BOPTools.BOPTools_AlgoTools_Dimension
BOPTools_AlgoTools_GetEdgeOff = _BOPTools.BOPTools_AlgoTools_GetEdgeOff
BOPTools_AlgoTools_GetEdgeOnFace = _BOPTools.BOPTools_AlgoTools_GetEdgeOnFace
BOPTools_AlgoTools_GetFaceOff = _BOPTools.BOPTools_AlgoTools_GetFaceOff
BOPTools_AlgoTools_IsBlockInOnFace = _BOPTools.BOPTools_AlgoTools_IsBlockInOnFace
BOPTools_AlgoTools_IsHole = _BOPTools.BOPTools_AlgoTools_IsHole
BOPTools_AlgoTools_IsInternalFace = _BOPTools.BOPTools_AlgoTools_IsInternalFace
BOPTools_AlgoTools_IsInvertedSolid = _BOPTools.BOPTools_AlgoTools_IsInvertedSolid
BOPTools_AlgoTools_IsMicroEdge = _BOPTools.BOPTools_AlgoTools_IsMicroEdge
BOPTools_AlgoTools_IsOpenShell = _BOPTools.BOPTools_AlgoTools_IsOpenShell
BOPTools_AlgoTools_IsSplitToReverse = _BOPTools.BOPTools_AlgoTools_IsSplitToReverse
BOPTools_AlgoTools_IsSplitToReverseWithWarn = _BOPTools.BOPTools_AlgoTools_IsSplitToReverseWithWarn
BOPTools_AlgoTools_MakeConnexityBlock = _BOPTools.BOPTools_AlgoTools_MakeConnexityBlock
BOPTools_AlgoTools_MakeConnexityBlocks = _BOPTools.BOPTools_AlgoTools_MakeConnexityBlocks
BOPTools_AlgoTools_MakeContainer = _BOPTools.BOPTools_AlgoTools_MakeContainer
BOPTools_AlgoTools_MakeEdge = _BOPTools.BOPTools_AlgoTools_MakeEdge
BOPTools_AlgoTools_MakeNewVertex = _BOPTools.BOPTools_AlgoTools_MakeNewVertex
BOPTools_AlgoTools_MakePCurve = _BOPTools.BOPTools_AlgoTools_MakePCurve
BOPTools_AlgoTools_MakeSectEdge = _BOPTools.BOPTools_AlgoTools_MakeSectEdge
BOPTools_AlgoTools_MakeSplitEdge = _BOPTools.BOPTools_AlgoTools_MakeSplitEdge
BOPTools_AlgoTools_MakeVertex = _BOPTools.BOPTools_AlgoTools_MakeVertex
BOPTools_AlgoTools_OrientEdgesOnWire = _BOPTools.BOPTools_AlgoTools_OrientEdgesOnWire
BOPTools_AlgoTools_OrientFacesOnShell = _BOPTools.BOPTools_AlgoTools_OrientFacesOnShell
BOPTools_AlgoTools_PointOnEdge = _BOPTools.BOPTools_AlgoTools_PointOnEdge
BOPTools_AlgoTools_Sense = _BOPTools.BOPTools_AlgoTools_Sense
BOPTools_AlgoTools_UpdateVertex = _BOPTools.BOPTools_AlgoTools_UpdateVertex

class BOPTools_AlgoTools2D(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AdjustPCurveOnFace = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_AdjustPCurveOnFace)
    AdjustPCurveOnSurf = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_AdjustPCurveOnSurf)
    AttachExistingPCurve = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_AttachExistingPCurve)
    BuildPCurveForEdgeOnFace = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_BuildPCurveForEdgeOnFace)
    EdgeTangent = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_EdgeTangent)
    HasCurveOnSurface = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_HasCurveOnSurface)
    IntermediatePoint = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_IntermediatePoint)
    IsEdgeIsoline = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_IsEdgeIsoline)
    Make2D = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_Make2D)
    MakePCurveOnFace = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_MakePCurveOnFace)
    PointOnSurface = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools2D_PointOnSurface)

    __repr__ = _dumps_object


    def __init__(self):
        _BOPTools.BOPTools_AlgoTools2D_swiginit(self, _BOPTools.new_BOPTools_AlgoTools2D())
    __swig_destroy__ = _BOPTools.delete_BOPTools_AlgoTools2D

# Register BOPTools_AlgoTools2D in _BOPTools:
_BOPTools.BOPTools_AlgoTools2D_swigregister(BOPTools_AlgoTools2D)
BOPTools_AlgoTools2D_AdjustPCurveOnFace = _BOPTools.BOPTools_AlgoTools2D_AdjustPCurveOnFace
BOPTools_AlgoTools2D_AdjustPCurveOnSurf = _BOPTools.BOPTools_AlgoTools2D_AdjustPCurveOnSurf
BOPTools_AlgoTools2D_AttachExistingPCurve = _BOPTools.BOPTools_AlgoTools2D_AttachExistingPCurve
BOPTools_AlgoTools2D_BuildPCurveForEdgeOnFace = _BOPTools.BOPTools_AlgoTools2D_BuildPCurveForEdgeOnFace
BOPTools_AlgoTools2D_EdgeTangent = _BOPTools.BOPTools_AlgoTools2D_EdgeTangent
BOPTools_AlgoTools2D_HasCurveOnSurface = _BOPTools.BOPTools_AlgoTools2D_HasCurveOnSurface
BOPTools_AlgoTools2D_IntermediatePoint = _BOPTools.BOPTools_AlgoTools2D_IntermediatePoint
BOPTools_AlgoTools2D_IsEdgeIsoline = _BOPTools.BOPTools_AlgoTools2D_IsEdgeIsoline
BOPTools_AlgoTools2D_Make2D = _BOPTools.BOPTools_AlgoTools2D_Make2D
BOPTools_AlgoTools2D_MakePCurveOnFace = _BOPTools.BOPTools_AlgoTools2D_MakePCurveOnFace
BOPTools_AlgoTools2D_PointOnSurface = _BOPTools.BOPTools_AlgoTools2D_PointOnSurface

class BOPTools_AlgoTools3D(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    DoSplitSEAMOnFace = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_DoSplitSEAMOnFace)
    GetApproxNormalToFaceOnEdge = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_GetApproxNormalToFaceOnEdge)
    GetNormalToFaceOnEdge = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_GetNormalToFaceOnEdge)
    GetNormalToSurface = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_GetNormalToSurface)
    IsEmptyShape = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_IsEmptyShape)
    MinStepIn2d = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_MinStepIn2d)
    OrientEdgeOnFace = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_OrientEdgeOnFace)
    PointInFace = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_PointInFace)
    PointNearEdge = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_PointNearEdge)
    SenseFlag = _swig_new_static_method(_BOPTools.BOPTools_AlgoTools3D_SenseFlag)

    __repr__ = _dumps_object


    def __init__(self):
        _BOPTools.BOPTools_AlgoTools3D_swiginit(self, _BOPTools.new_BOPTools_AlgoTools3D())
    __swig_destroy__ = _BOPTools.delete_BOPTools_AlgoTools3D

# Register BOPTools_AlgoTools3D in _BOPTools:
_BOPTools.BOPTools_AlgoTools3D_swigregister(BOPTools_AlgoTools3D)
BOPTools_AlgoTools3D_DoSplitSEAMOnFace = _BOPTools.BOPTools_AlgoTools3D_DoSplitSEAMOnFace
BOPTools_AlgoTools3D_GetApproxNormalToFaceOnEdge = _BOPTools.BOPTools_AlgoTools3D_GetApproxNormalToFaceOnEdge
BOPTools_AlgoTools3D_GetNormalToFaceOnEdge = _BOPTools.BOPTools_AlgoTools3D_GetNormalToFaceOnEdge
BOPTools_AlgoTools3D_GetNormalToSurface = _BOPTools.BOPTools_AlgoTools3D_GetNormalToSurface
BOPTools_AlgoTools3D_IsEmptyShape = _BOPTools.BOPTools_AlgoTools3D_IsEmptyShape
BOPTools_AlgoTools3D_MinStepIn2d = _BOPTools.BOPTools_AlgoTools3D_MinStepIn2d
BOPTools_AlgoTools3D_OrientEdgeOnFace = _BOPTools.BOPTools_AlgoTools3D_OrientEdgeOnFace
BOPTools_AlgoTools3D_PointInFace = _BOPTools.BOPTools_AlgoTools3D_PointInFace
BOPTools_AlgoTools3D_PointNearEdge = _BOPTools.BOPTools_AlgoTools3D_PointNearEdge
BOPTools_AlgoTools3D_SenseFlag = _BOPTools.BOPTools_AlgoTools3D_SenseFlag

class BOPTools_ConnexityBlock(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"""
        :rtype: None:param theAllocator:
        	:type theAllocator: NCollection_BaseAllocator
        	:rtype: None
        """
        _BOPTools.BOPTools_ConnexityBlock_swiginit(self, _BOPTools.new_BOPTools_ConnexityBlock(*args))
    ChangeLoops = _swig_new_instance_method(_BOPTools.BOPTools_ConnexityBlock_ChangeLoops)
    ChangeShapes = _swig_new_instance_method(_BOPTools.BOPTools_ConnexityBlock_ChangeShapes)
    IsRegular = _swig_new_instance_method(_BOPTools.BOPTools_ConnexityBlock_IsRegular)
    Loops = _swig_new_instance_method(_BOPTools.BOPTools_ConnexityBlock_Loops)
    SetRegular = _swig_new_instance_method(_BOPTools.BOPTools_ConnexityBlock_SetRegular)
    Shapes = _swig_new_instance_method(_BOPTools.BOPTools_ConnexityBlock_Shapes)

    __repr__ = _dumps_object

    __swig_destroy__ = _BOPTools.delete_BOPTools_ConnexityBlock

# Register BOPTools_ConnexityBlock in _BOPTools:
_BOPTools.BOPTools_ConnexityBlock_swigregister(BOPTools_ConnexityBlock)

class BOPTools_CoupleOfShape(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""":rtype: None"""
        _BOPTools.BOPTools_CoupleOfShape_swiginit(self, _BOPTools.new_BOPTools_CoupleOfShape(*args))
    SetShape1 = _swig_new_instance_method(_BOPTools.BOPTools_CoupleOfShape_SetShape1)
    SetShape2 = _swig_new_instance_method(_BOPTools.BOPTools_CoupleOfShape_SetShape2)
    Shape1 = _swig_new_instance_method(_BOPTools.BOPTools_CoupleOfShape_Shape1)
    Shape2 = _swig_new_instance_method(_BOPTools.BOPTools_CoupleOfShape_Shape2)

    __repr__ = _dumps_object

    __swig_destroy__ = _BOPTools.delete_BOPTools_CoupleOfShape

# Register BOPTools_CoupleOfShape in _BOPTools:
_BOPTools.BOPTools_CoupleOfShape_swigregister(BOPTools_CoupleOfShape)

class BOPTools_Set(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(_BOPTools.BOPTools_Set_Add)
    Assign = _swig_new_instance_method(_BOPTools.BOPTools_Set_Assign)

    def __init__(self, *args):
        r"""
        :rtype: None:param theAllocator:
        	:type theAllocator: NCollection_BaseAllocator
        	:rtype: None
        """
        _BOPTools.BOPTools_Set_swiginit(self, _BOPTools.new_BOPTools_Set(*args))
    HashCode = _swig_new_instance_method(_BOPTools.BOPTools_Set_HashCode)
    __hash__ = _swig_new_instance_method(_BOPTools.BOPTools_Set___hash__)
    IsEqual = _swig_new_instance_method(_BOPTools.BOPTools_Set_IsEqual)
    NbShapes = _swig_new_instance_method(_BOPTools.BOPTools_Set_NbShapes)
    Shape = _swig_new_instance_method(_BOPTools.BOPTools_Set_Shape)
    Set = _swig_new_instance_method(_BOPTools.BOPTools_Set_Set)

    __repr__ = _dumps_object

    __swig_destroy__ = _BOPTools.delete_BOPTools_Set

# Register BOPTools_Set in _BOPTools:
_BOPTools.BOPTools_Set_swigregister(BOPTools_Set)

class BOPTools_SetMapHasher(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    HashCode = _swig_new_static_method(_BOPTools.BOPTools_SetMapHasher_HashCode)
    IsEqual = _swig_new_static_method(_BOPTools.BOPTools_SetMapHasher_IsEqual)

    __repr__ = _dumps_object


    def __init__(self):
        _BOPTools.BOPTools_SetMapHasher_swiginit(self, _BOPTools.new_BOPTools_SetMapHasher())
    __swig_destroy__ = _BOPTools.delete_BOPTools_SetMapHasher

# Register BOPTools_SetMapHasher in _BOPTools:
_BOPTools.BOPTools_SetMapHasher_swigregister(BOPTools_SetMapHasher)
BOPTools_SetMapHasher_HashCode = _BOPTools.BOPTools_SetMapHasher_HashCode
BOPTools_SetMapHasher_IsEqual = _BOPTools.BOPTools_SetMapHasher_IsEqual



