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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

# Register SwigPyIterator in _BRepTools:
_BRepTools.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.Bnd
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.TColgp
import OCC.Core.BVH
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.Geom2d
import OCC.Core.TopTools
import OCC.Core.BRep
import OCC.Core.Poly
import OCC.Core.TShort
Handle_BRepTools_History_Create = _BRepTools.Handle_BRepTools_History_Create
Handle_BRepTools_History_DownCast = _BRepTools.Handle_BRepTools_History_DownCast
Handle_BRepTools_History_IsNull = _BRepTools.Handle_BRepTools_History_IsNull
Handle_BRepTools_Modification_Create = _BRepTools.Handle_BRepTools_Modification_Create
Handle_BRepTools_Modification_DownCast = _BRepTools.Handle_BRepTools_Modification_DownCast
Handle_BRepTools_Modification_IsNull = _BRepTools.Handle_BRepTools_Modification_IsNull
Handle_BRepTools_ReShape_Create = _BRepTools.Handle_BRepTools_ReShape_Create
Handle_BRepTools_ReShape_DownCast = _BRepTools.Handle_BRepTools_ReShape_DownCast
Handle_BRepTools_ReShape_IsNull = _BRepTools.Handle_BRepTools_ReShape_IsNull
Handle_BRepTools_GTrsfModification_Create = _BRepTools.Handle_BRepTools_GTrsfModification_Create
Handle_BRepTools_GTrsfModification_DownCast = _BRepTools.Handle_BRepTools_GTrsfModification_DownCast
Handle_BRepTools_GTrsfModification_IsNull = _BRepTools.Handle_BRepTools_GTrsfModification_IsNull
Handle_BRepTools_NurbsConvertModification_Create = _BRepTools.Handle_BRepTools_NurbsConvertModification_Create
Handle_BRepTools_NurbsConvertModification_DownCast = _BRepTools.Handle_BRepTools_NurbsConvertModification_DownCast
Handle_BRepTools_NurbsConvertModification_IsNull = _BRepTools.Handle_BRepTools_NurbsConvertModification_IsNull
Handle_BRepTools_TrsfModification_Create = _BRepTools.Handle_BRepTools_TrsfModification_Create
Handle_BRepTools_TrsfModification_DownCast = _BRepTools.Handle_BRepTools_TrsfModification_DownCast
Handle_BRepTools_TrsfModification_IsNull = _BRepTools.Handle_BRepTools_TrsfModification_IsNull
class BRepTools_MapOfVertexPnt2d(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(_BRepTools.BRepTools_MapOfVertexPnt2d_begin)
    end = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_end)
    cbegin = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_cbegin)
    cend = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_cend)

    def __init__(self, *args):
        _BRepTools.BRepTools_MapOfVertexPnt2d_swiginit(self, _BRepTools.new_BRepTools_MapOfVertexPnt2d(*args))
    Exchange = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_Exchange)
    Assign = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_Assign)
    Set = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_Set)
    ReSize = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_ReSize)
    Bind = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_Bind)
    Bound = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_Bound)
    IsBound = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_IsBound)
    UnBind = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_UnBind)
    Seek = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_Seek)
    Find = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_Find)
    ChangeSeek = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_ChangeFind)
    __call__ = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d___call__)
    Clear = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_Clear)
    __swig_destroy__ = _BRepTools.delete_BRepTools_MapOfVertexPnt2d
    Size = _swig_new_instance_method(_BRepTools.BRepTools_MapOfVertexPnt2d_Size)

# Register BRepTools_MapOfVertexPnt2d in _BRepTools:
_BRepTools.BRepTools_MapOfVertexPnt2d_swigregister(BRepTools_MapOfVertexPnt2d)

class breptools(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AddUVBounds = _swig_new_static_method(_BRepTools.breptools_AddUVBounds)
    Clean = _swig_new_static_method(_BRepTools.breptools_Clean)
    CleanGeometry = _swig_new_static_method(_BRepTools.breptools_CleanGeometry)
    Compare = _swig_new_static_method(_BRepTools.breptools_Compare)
    DetectClosedness = _swig_new_static_method(_BRepTools.breptools_DetectClosedness)
    Dump = _swig_new_static_method(_BRepTools.breptools_Dump)
    EvalAndUpdateTol = _swig_new_static_method(_BRepTools.breptools_EvalAndUpdateTol)
    IsReallyClosed = _swig_new_static_method(_BRepTools.breptools_IsReallyClosed)
    Map3DEdges = _swig_new_static_method(_BRepTools.breptools_Map3DEdges)
    OuterWire = _swig_new_static_method(_BRepTools.breptools_OuterWire)
    Read = _swig_new_static_method(_BRepTools.breptools_Read)
    RemoveUnusedPCurves = _swig_new_static_method(_BRepTools.breptools_RemoveUnusedPCurves)
    Triangulation = _swig_new_static_method(_BRepTools.breptools_Triangulation)
    UVBounds = _swig_new_static_method(_BRepTools.breptools_UVBounds)
    Update = _swig_new_static_method(_BRepTools.breptools_Update)
    UpdateFaceUVPoints = _swig_new_static_method(_BRepTools.breptools_UpdateFaceUVPoints)
    Write = _swig_new_static_method(_BRepTools.breptools_Write)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepTools.breptools_swiginit(self, _BRepTools.new_breptools())
    __swig_destroy__ = _BRepTools.delete_breptools

# Register breptools in _BRepTools:
_BRepTools.breptools_swigregister(breptools)
breptools_AddUVBounds = _BRepTools.breptools_AddUVBounds
breptools_Clean = _BRepTools.breptools_Clean
breptools_CleanGeometry = _BRepTools.breptools_CleanGeometry
breptools_Compare = _BRepTools.breptools_Compare
breptools_DetectClosedness = _BRepTools.breptools_DetectClosedness
breptools_Dump = _BRepTools.breptools_Dump
breptools_EvalAndUpdateTol = _BRepTools.breptools_EvalAndUpdateTol
breptools_IsReallyClosed = _BRepTools.breptools_IsReallyClosed
breptools_Map3DEdges = _BRepTools.breptools_Map3DEdges
breptools_OuterWire = _BRepTools.breptools_OuterWire
breptools_Read = _BRepTools.breptools_Read
breptools_RemoveUnusedPCurves = _BRepTools.breptools_RemoveUnusedPCurves
breptools_Triangulation = _BRepTools.breptools_Triangulation
breptools_UVBounds = _BRepTools.breptools_UVBounds
breptools_Update = _BRepTools.breptools_Update
breptools_UpdateFaceUVPoints = _BRepTools.breptools_UpdateFaceUVPoints
breptools_Write = _BRepTools.breptools_Write

class BRepTools_History(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
    TRelationType_Removed = _BRepTools.BRepTools_History_TRelationType_Removed
    TRelationType_Generated = _BRepTools.BRepTools_History_TRelationType_Generated
    TRelationType_Modified = _BRepTools.BRepTools_History_TRelationType_Modified
    AddGenerated = _swig_new_instance_method(_BRepTools.BRepTools_History_AddGenerated)
    AddModified = _swig_new_instance_method(_BRepTools.BRepTools_History_AddModified)
    Clear = _swig_new_instance_method(_BRepTools.BRepTools_History_Clear)
    DumpToString = _swig_new_instance_method(_BRepTools.BRepTools_History_DumpToString)
    Generated = _swig_new_instance_method(_BRepTools.BRepTools_History_Generated)
    HasGenerated = _swig_new_instance_method(_BRepTools.BRepTools_History_HasGenerated)
    HasModified = _swig_new_instance_method(_BRepTools.BRepTools_History_HasModified)
    HasRemoved = _swig_new_instance_method(_BRepTools.BRepTools_History_HasRemoved)
    IsRemoved = _swig_new_instance_method(_BRepTools.BRepTools_History_IsRemoved)
    IsSupportedType = _swig_new_static_method(_BRepTools.BRepTools_History_IsSupportedType)
    Modified = _swig_new_instance_method(_BRepTools.BRepTools_History_Modified)
    Remove = _swig_new_instance_method(_BRepTools.BRepTools_History_Remove)
    ReplaceGenerated = _swig_new_instance_method(_BRepTools.BRepTools_History_ReplaceGenerated)
    ReplaceModified = _swig_new_instance_method(_BRepTools.BRepTools_History_ReplaceModified)


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


    __repr__ = _dumps_object


    def __init__(self):
        r"""__init__(BRepTools_History self) -> BRepTools_History"""
        _BRepTools.BRepTools_History_swiginit(self, _BRepTools.new_BRepTools_History())
    __swig_destroy__ = _BRepTools.delete_BRepTools_History

# Register BRepTools_History in _BRepTools:
_BRepTools.BRepTools_History_swigregister(BRepTools_History)
BRepTools_History_IsSupportedType = _BRepTools.BRepTools_History_IsSupportedType

class BRepTools_Modification(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
    Continuity = _swig_new_instance_method(_BRepTools.BRepTools_Modification_Continuity)
    NewCurve = _swig_new_instance_method(_BRepTools.BRepTools_Modification_NewCurve)
    NewCurve2d = _swig_new_instance_method(_BRepTools.BRepTools_Modification_NewCurve2d)
    NewParameter = _swig_new_instance_method(_BRepTools.BRepTools_Modification_NewParameter)
    NewPoint = _swig_new_instance_method(_BRepTools.BRepTools_Modification_NewPoint)
    NewPolygon = _swig_new_instance_method(_BRepTools.BRepTools_Modification_NewPolygon)
    NewPolygonOnTriangulation = _swig_new_instance_method(_BRepTools.BRepTools_Modification_NewPolygonOnTriangulation)
    NewSurface = _swig_new_instance_method(_BRepTools.BRepTools_Modification_NewSurface)
    NewTriangulation = _swig_new_instance_method(_BRepTools.BRepTools_Modification_NewTriangulation)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_Modification

# Register BRepTools_Modification in _BRepTools:
_BRepTools.BRepTools_Modification_swigregister(BRepTools_Modification)

class BRepTools_Modifier(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"""
        * Creates an empty Modifier.
        	:param theMutableInput: default value is Standard_False
        	:type theMutableInput: bool
        	:rtype: None* Creates a modifier on the shape <S>.
        	:param S:
        	:type S: TopoDS_Shape
        	:rtype: None* Creates a modifier on the shape <S>, and performs the modifications described by <M>.
        	:param S:
        	:type S: TopoDS_Shape
        	:param M:
        	:type M: BRepTools_Modification
        	:rtype: None
        """
        _BRepTools.BRepTools_Modifier_swiginit(self, _BRepTools.new_BRepTools_Modifier(*args))
    Init = _swig_new_instance_method(_BRepTools.BRepTools_Modifier_Init)
    IsDone = _swig_new_instance_method(_BRepTools.BRepTools_Modifier_IsDone)
    IsMutableInput = _swig_new_instance_method(_BRepTools.BRepTools_Modifier_IsMutableInput)
    ModifiedShape = _swig_new_instance_method(_BRepTools.BRepTools_Modifier_ModifiedShape)
    Perform = _swig_new_instance_method(_BRepTools.BRepTools_Modifier_Perform)
    SetMutableInput = _swig_new_instance_method(_BRepTools.BRepTools_Modifier_SetMutableInput)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_Modifier

# Register BRepTools_Modifier in _BRepTools:
_BRepTools.BRepTools_Modifier_swigregister(BRepTools_Modifier)

class BRepTools_Quilt(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(_BRepTools.BRepTools_Quilt_Add)

    def __init__(self, *args):
        r""":rtype: None"""
        _BRepTools.BRepTools_Quilt_swiginit(self, _BRepTools.new_BRepTools_Quilt(*args))
    Bind = _swig_new_instance_method(_BRepTools.BRepTools_Quilt_Bind)
    Copy = _swig_new_instance_method(_BRepTools.BRepTools_Quilt_Copy)
    IsCopied = _swig_new_instance_method(_BRepTools.BRepTools_Quilt_IsCopied)
    Shells = _swig_new_instance_method(_BRepTools.BRepTools_Quilt_Shells)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_Quilt

# Register BRepTools_Quilt in _BRepTools:
_BRepTools.BRepTools_Quilt_swigregister(BRepTools_Quilt)

class BRepTools_ReShape(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
    Apply = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_Apply)

    def __init__(self, *args):
        r"""
        * Returns an empty Reshape
        	:rtype: None
        """
        _BRepTools.BRepTools_ReShape_swiginit(self, _BRepTools.new_BRepTools_ReShape(*args))
    Clear = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_Clear)
    CopyVertex = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_CopyVertex)
    History = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_History)
    IsNewShape = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_IsNewShape)
    IsRecorded = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_IsRecorded)
    GetModeConsiderLocation = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_GetModeConsiderLocation)
    SetModeConsiderLocation = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_SetModeConsiderLocation)
    Remove = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_Remove)
    Replace = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_Replace)
    Status = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_Status)
    Value = _swig_new_instance_method(_BRepTools.BRepTools_ReShape_Value)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_ReShape

# Register BRepTools_ReShape in _BRepTools:
_BRepTools.BRepTools_ReShape_swigregister(BRepTools_ReShape)

class BRepTools_ShapeSet(OCC.Core.TopTools.TopTools_ShapeSet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        * Builds an empty ShapeSet. Parameter <isWithTriangles> is added for XML Persistence
        	:param isWithTriangles: default value is Standard_True
        	:type isWithTriangles: bool
        	:rtype: None* Builds an empty ShapeSet. Parameter <isWithTriangles> is added for XML Persistence
        	:param B:
        	:type B: BRep_Builder
        	:param isWithTriangles: default value is Standard_True
        	:type isWithTriangles: bool
        	:rtype: None
        """
        _BRepTools.BRepTools_ShapeSet_swiginit(self, _BRepTools.new_BRepTools_ShapeSet(*args))
    DumpGeometryToString = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_DumpGeometryToString)
    DumpPolygon3DToString = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_DumpPolygon3DToString)
    DumpPolygonOnTriangulationToString = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_DumpPolygonOnTriangulationToString)
    DumpTriangulationToString = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_DumpTriangulationToString)
    ReadGeometryFromString = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_ReadGeometryFromString)
    ReadPolygon3DFromString = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_ReadPolygon3DFromString)
    ReadPolygonOnTriangulationFromString = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_ReadPolygonOnTriangulationFromString)
    ReadTriangulationFromString = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_ReadTriangulationFromString)
    WriteGeometryToString = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_WriteGeometryToString)
    WritePolygon3D = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_WritePolygon3D)
    WritePolygonOnTriangulation = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_WritePolygonOnTriangulation)
    WriteTriangulation = _swig_new_instance_method(_BRepTools.BRepTools_ShapeSet_WriteTriangulation)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_ShapeSet

# Register BRepTools_ShapeSet in _BRepTools:
_BRepTools.BRepTools_ShapeSet_swigregister(BRepTools_ShapeSet)

class BRepTools_Substitution(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"""
        _BRepTools.BRepTools_Substitution_swiginit(self, _BRepTools.new_BRepTools_Substitution(*args))
    Build = _swig_new_instance_method(_BRepTools.BRepTools_Substitution_Build)
    Clear = _swig_new_instance_method(_BRepTools.BRepTools_Substitution_Clear)
    Copy = _swig_new_instance_method(_BRepTools.BRepTools_Substitution_Copy)
    IsCopied = _swig_new_instance_method(_BRepTools.BRepTools_Substitution_IsCopied)
    Substitute = _swig_new_instance_method(_BRepTools.BRepTools_Substitution_Substitute)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_Substitution

# Register BRepTools_Substitution in _BRepTools:
_BRepTools.BRepTools_Substitution_swigregister(BRepTools_Substitution)

class BRepTools_WireExplorer(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"""
        * Constructs an empty explorer (which can be initialized using Init)
        	:rtype: None* IInitializes an exploration of the wire <W>.
        	:param W:
        	:type W: TopoDS_Wire
        	:rtype: None* Initializes an exploration of the wire <W>. F is used to select the edge connected to the previous in the parametric representation of <F>.
        	:param W:
        	:type W: TopoDS_Wire
        	:param F:
        	:type F: TopoDS_Face
        	:rtype: None
        """
        _BRepTools.BRepTools_WireExplorer_swiginit(self, _BRepTools.new_BRepTools_WireExplorer(*args))
    Clear = _swig_new_instance_method(_BRepTools.BRepTools_WireExplorer_Clear)
    Current = _swig_new_instance_method(_BRepTools.BRepTools_WireExplorer_Current)
    CurrentVertex = _swig_new_instance_method(_BRepTools.BRepTools_WireExplorer_CurrentVertex)
    Init = _swig_new_instance_method(_BRepTools.BRepTools_WireExplorer_Init)
    More = _swig_new_instance_method(_BRepTools.BRepTools_WireExplorer_More)
    Next = _swig_new_instance_method(_BRepTools.BRepTools_WireExplorer_Next)
    Orientation = _swig_new_instance_method(_BRepTools.BRepTools_WireExplorer_Orientation)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_WireExplorer

# Register BRepTools_WireExplorer in _BRepTools:
_BRepTools.BRepTools_WireExplorer_swigregister(BRepTools_WireExplorer)

class BRepTools_GTrsfModification(BRepTools_Modification):
    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"""
        :param T:
        	:type T: gp_GTrsf
        	:rtype: None
        """
        _BRepTools.BRepTools_GTrsfModification_swiginit(self, _BRepTools.new_BRepTools_GTrsfModification(*args))
    GTrsf = _swig_new_instance_method(_BRepTools.BRepTools_GTrsfModification_GTrsf)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_GTrsfModification

# Register BRepTools_GTrsfModification in _BRepTools:
_BRepTools.BRepTools_GTrsfModification_swigregister(BRepTools_GTrsfModification)

class BRepTools_NurbsConvertModification(BRepTools_Modification):
    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"""
        _BRepTools.BRepTools_NurbsConvertModification_swiginit(self, _BRepTools.new_BRepTools_NurbsConvertModification(*args))
    GetUpdatedEdges = _swig_new_instance_method(_BRepTools.BRepTools_NurbsConvertModification_GetUpdatedEdges)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_NurbsConvertModification

# Register BRepTools_NurbsConvertModification in _BRepTools:
_BRepTools.BRepTools_NurbsConvertModification_swigregister(BRepTools_NurbsConvertModification)

class BRepTools_TrsfModification(BRepTools_Modification):
    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"""
        :param T:
        	:type T: gp_Trsf
        	:rtype: None
        """
        _BRepTools.BRepTools_TrsfModification_swiginit(self, _BRepTools.new_BRepTools_TrsfModification(*args))
    Trsf = _swig_new_instance_method(_BRepTools.BRepTools_TrsfModification_Trsf)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepTools.delete_BRepTools_TrsfModification

# Register BRepTools_TrsfModification in _BRepTools:
_BRepTools.BRepTools_TrsfModification_swigregister(BRepTools_TrsfModification)



