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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

# Register SwigPyIterator in _BRepOffset:
_BRepOffset.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.Geom
import OCC.Core.gp
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.TopTools
import OCC.Core.BRepAlgo
import OCC.Core.BRepBuilderAPI
import OCC.Core.BRepTools
import OCC.Core.Bnd
import OCC.Core.BVH
import OCC.Core.Geom2d
import OCC.Core.BRep
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.TopOpeBRepBuild
import OCC.Core.TopOpeBRepDS
import OCC.Core.TopOpeBRepTool
import OCC.Core.BRepClass3d
import OCC.Core.IntCurveSurface
import OCC.Core.math
import OCC.Core.Adaptor3d
import OCC.Core.Adaptor2d
import OCC.Core.Intf
import OCC.Core.IntSurf
import OCC.Core.IntCurvesFace
import OCC.Core.BRepAdaptor
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor
import OCC.Core.TopExp
import OCC.Core.Extrema
BRepOffset_NoError = _BRepOffset.BRepOffset_NoError
BRepOffset_UnknownError = _BRepOffset.BRepOffset_UnknownError
BRepOffset_BadNormalsOnGeometry = _BRepOffset.BRepOffset_BadNormalsOnGeometry
BRepOffset_C0Geometry = _BRepOffset.BRepOffset_C0Geometry
BRepOffset_NullOffset = _BRepOffset.BRepOffset_NullOffset
BRepOffset_NotConnectedShell = _BRepOffset.BRepOffset_NotConnectedShell
BRepOffsetSimple_OK = _BRepOffset.BRepOffsetSimple_OK
BRepOffsetSimple_NullInputShape = _BRepOffset.BRepOffsetSimple_NullInputShape
BRepOffsetSimple_ErrorOffsetComputation = _BRepOffset.BRepOffsetSimple_ErrorOffsetComputation
BRepOffsetSimple_ErrorWallFaceComputation = _BRepOffset.BRepOffsetSimple_ErrorWallFaceComputation
BRepOffsetSimple_ErrorInvalidNbShells = _BRepOffset.BRepOffsetSimple_ErrorInvalidNbShells
BRepOffsetSimple_ErrorNonClosedShell = _BRepOffset.BRepOffsetSimple_ErrorNonClosedShell
BRepOffset_Skin = _BRepOffset.BRepOffset_Skin
BRepOffset_Pipe = _BRepOffset.BRepOffset_Pipe
BRepOffset_RectoVerso = _BRepOffset.BRepOffset_RectoVerso
BRepOffset_Concave = _BRepOffset.BRepOffset_Concave
BRepOffset_Convex = _BRepOffset.BRepOffset_Convex
BRepOffset_Tangent = _BRepOffset.BRepOffset_Tangent
BRepOffset_FreeBoundary = _BRepOffset.BRepOffset_FreeBoundary
BRepOffset_Other = _BRepOffset.BRepOffset_Other
BRepOffset_Good = _BRepOffset.BRepOffset_Good
BRepOffset_Reversed = _BRepOffset.BRepOffset_Reversed
BRepOffset_Degenerated = _BRepOffset.BRepOffset_Degenerated
BRepOffset_Unknown = _BRepOffset.BRepOffset_Unknown
Handle_BRepOffset_SimpleOffset_Create = _BRepOffset.Handle_BRepOffset_SimpleOffset_Create
Handle_BRepOffset_SimpleOffset_DownCast = _BRepOffset.Handle_BRepOffset_SimpleOffset_DownCast
Handle_BRepOffset_SimpleOffset_IsNull = _BRepOffset.Handle_BRepOffset_SimpleOffset_IsNull
class BRepOffset_DataMapOfShapeListOfInterval(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(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_begin)
    end = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_end)
    cbegin = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_cbegin)
    cend = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_cend)

    def __init__(self, *args):
        _BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_swiginit(self, _BRepOffset.new_BRepOffset_DataMapOfShapeListOfInterval(*args))
    Exchange = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_Exchange)
    Assign = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_Assign)
    Set = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_Set)
    ReSize = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_ReSize)
    Bind = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_Bind)
    Bound = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_Bound)
    IsBound = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_IsBound)
    UnBind = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_UnBind)
    Seek = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_Seek)
    Find = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_Find)
    ChangeSeek = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_ChangeFind)
    __call__ = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval___call__)
    Clear = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_Clear)
    __swig_destroy__ = _BRepOffset.delete_BRepOffset_DataMapOfShapeListOfInterval
    Size = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_Size)

# Register BRepOffset_DataMapOfShapeListOfInterval in _BRepOffset:
_BRepOffset.BRepOffset_DataMapOfShapeListOfInterval_swigregister(BRepOffset_DataMapOfShapeListOfInterval)

class BRepOffset_ListOfInterval(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(_BRepOffset.BRepOffset_ListOfInterval_begin)
    end = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_end)
    cbegin = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_cbegin)
    cend = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_cend)

    def __init__(self, *args):
        _BRepOffset.BRepOffset_ListOfInterval_swiginit(self, _BRepOffset.new_BRepOffset_ListOfInterval(*args))
    Size = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_Size)
    Assign = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_Assign)
    Set = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_Set)
    Clear = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_Clear)
    First = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_First)
    Last = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_Last)
    Append = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_Append)
    Prepend = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_Prepend)
    RemoveFirst = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_RemoveFirst)
    Remove = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_Remove)
    InsertBefore = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_InsertBefore)
    InsertAfter = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_InsertAfter)
    Reverse = _swig_new_instance_method(_BRepOffset.BRepOffset_ListOfInterval_Reverse)
    __swig_destroy__ = _BRepOffset.delete_BRepOffset_ListOfInterval

# Register BRepOffset_ListOfInterval in _BRepOffset:
_BRepOffset.BRepOffset_ListOfInterval_swigregister(BRepOffset_ListOfInterval)

class BRepOffset_ListIteratorOfListOfInterval(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):
        _BRepOffset.BRepOffset_ListIteratorOfListOfInterval_swiginit(self, _BRepOffset.new_BRepOffset_ListIteratorOfListOfInterval(*args))
    More = _swig_new_instance_method(_BRepOffset.BRepOffset_ListIteratorOfListOfInterval_More)
    Next = _swig_new_instance_method(_BRepOffset.BRepOffset_ListIteratorOfListOfInterval_Next)
    Value = _swig_new_instance_method(_BRepOffset.BRepOffset_ListIteratorOfListOfInterval_Value)
    ChangeValue = _swig_new_instance_method(_BRepOffset.BRepOffset_ListIteratorOfListOfInterval_ChangeValue)
    __swig_destroy__ = _BRepOffset.delete_BRepOffset_ListIteratorOfListOfInterval

# Register BRepOffset_ListIteratorOfListOfInterval in _BRepOffset:
_BRepOffset.BRepOffset_ListIteratorOfListOfInterval_swigregister(BRepOffset_ListIteratorOfListOfInterval)

class BRepOffset_DataMapOfShapeOffset(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(_BRepOffset.BRepOffset_DataMapOfShapeOffset_begin)
    end = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_end)
    cbegin = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_cbegin)
    cend = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_cend)

    def __init__(self, *args):
        _BRepOffset.BRepOffset_DataMapOfShapeOffset_swiginit(self, _BRepOffset.new_BRepOffset_DataMapOfShapeOffset(*args))
    Exchange = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_Exchange)
    Assign = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_Assign)
    Set = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_Set)
    ReSize = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_ReSize)
    Bind = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_Bind)
    Bound = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_Bound)
    IsBound = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_IsBound)
    UnBind = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_UnBind)
    Seek = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_Seek)
    Find = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_Find)
    ChangeSeek = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_ChangeFind)
    __call__ = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset___call__)
    Clear = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_Clear)
    __swig_destroy__ = _BRepOffset.delete_BRepOffset_DataMapOfShapeOffset
    Size = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeOffset_Size)

# Register BRepOffset_DataMapOfShapeOffset in _BRepOffset:
_BRepOffset.BRepOffset_DataMapOfShapeOffset_swigregister(BRepOffset_DataMapOfShapeOffset)

class BRepOffset_DataMapOfShapeMapOfShape(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(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_begin)
    end = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_end)
    cbegin = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_cbegin)
    cend = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_cend)

    def __init__(self, *args):
        _BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_swiginit(self, _BRepOffset.new_BRepOffset_DataMapOfShapeMapOfShape(*args))
    Exchange = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_Exchange)
    Assign = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_Assign)
    Set = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_Set)
    ReSize = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_ReSize)
    Bind = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_Bind)
    Bound = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_Bound)
    IsBound = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_IsBound)
    UnBind = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_UnBind)
    Seek = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_Seek)
    Find = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_Find)
    ChangeSeek = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_ChangeFind)
    __call__ = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape___call__)
    Clear = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_Clear)
    __swig_destroy__ = _BRepOffset.delete_BRepOffset_DataMapOfShapeMapOfShape
    Size = _swig_new_instance_method(_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_Size)

# Register BRepOffset_DataMapOfShapeMapOfShape in _BRepOffset:
_BRepOffset.BRepOffset_DataMapOfShapeMapOfShape_swigregister(BRepOffset_DataMapOfShapeMapOfShape)

class brepoffset(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    CollapseSingularities = _swig_new_static_method(_BRepOffset.brepoffset_CollapseSingularities)
    Surface = _swig_new_static_method(_BRepOffset.brepoffset_Surface)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepOffset.brepoffset_swiginit(self, _BRepOffset.new_brepoffset())
    __swig_destroy__ = _BRepOffset.delete_brepoffset

# Register brepoffset in _BRepOffset:
_BRepOffset.brepoffset_swigregister(brepoffset)
brepoffset_CollapseSingularities = _BRepOffset.brepoffset_CollapseSingularities
brepoffset_Surface = _BRepOffset.brepoffset_Surface

class BRepOffset_Analyse(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AddFaces = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_AddFaces)
    Ancestors = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_Ancestors)

    def __init__(self, *args):
        r"""
        :rtype: None:param S:
        	:type S: TopoDS_Shape
        	:param Angle:
        	:type Angle: float
        	:rtype: None
        """
        _BRepOffset.BRepOffset_Analyse_swiginit(self, _BRepOffset.new_BRepOffset_Analyse(*args))
    Clear = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_Clear)
    Edges = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_Edges)
    Explode = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_Explode)
    HasAncestor = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_HasAncestor)
    IsDone = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_IsDone)
    Perform = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_Perform)
    TangentEdges = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_TangentEdges)
    Type = _swig_new_instance_method(_BRepOffset.BRepOffset_Analyse_Type)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepOffset.delete_BRepOffset_Analyse

# Register BRepOffset_Analyse in _BRepOffset:
_BRepOffset.BRepOffset_Analyse_swigregister(BRepOffset_Analyse)

class BRepOffset_Inter2d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Compute = _swig_new_static_method(_BRepOffset.BRepOffset_Inter2d_Compute)
    ConnexIntByInt = _swig_new_static_method(_BRepOffset.BRepOffset_Inter2d_ConnexIntByInt)
    ConnexIntByIntInVert = _swig_new_static_method(_BRepOffset.BRepOffset_Inter2d_ConnexIntByIntInVert)
    ExtentEdge = _swig_new_static_method(_BRepOffset.BRepOffset_Inter2d_ExtentEdge)
    FuseVertices = _swig_new_static_method(_BRepOffset.BRepOffset_Inter2d_FuseVertices)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepOffset.BRepOffset_Inter2d_swiginit(self, _BRepOffset.new_BRepOffset_Inter2d())
    __swig_destroy__ = _BRepOffset.delete_BRepOffset_Inter2d

# Register BRepOffset_Inter2d in _BRepOffset:
_BRepOffset.BRepOffset_Inter2d_swigregister(BRepOffset_Inter2d)
BRepOffset_Inter2d_Compute = _BRepOffset.BRepOffset_Inter2d_Compute
BRepOffset_Inter2d_ConnexIntByInt = _BRepOffset.BRepOffset_Inter2d_ConnexIntByInt
BRepOffset_Inter2d_ConnexIntByIntInVert = _BRepOffset.BRepOffset_Inter2d_ConnexIntByIntInVert
BRepOffset_Inter2d_ExtentEdge = _BRepOffset.BRepOffset_Inter2d_ExtentEdge
BRepOffset_Inter2d_FuseVertices = _BRepOffset.BRepOffset_Inter2d_FuseVertices

class BRepOffset_Inter3d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AddCommonEdges = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_AddCommonEdges)
    AsDes = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_AsDes)

    def __init__(self, *args):
        r"""
        :param AsDes:
        	:type AsDes: BRepAlgo_AsDes
        	:param Side:
        	:type Side: TopAbs_State
        	:param Tol:
        	:type Tol: float
        	:rtype: None
        """
        _BRepOffset.BRepOffset_Inter3d_swiginit(self, _BRepOffset.new_BRepOffset_Inter3d(*args))
    CompletInt = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_CompletInt)
    ConnexIntByArc = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_ConnexIntByArc)
    ConnexIntByInt = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_ConnexIntByInt)
    ContextIntByArc = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_ContextIntByArc)
    ContextIntByInt = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_ContextIntByInt)
    FaceInter = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_FaceInter)
    IsDone = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_IsDone)
    NewEdges = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_NewEdges)
    SetDone = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_SetDone)
    TouchedFaces = _swig_new_instance_method(_BRepOffset.BRepOffset_Inter3d_TouchedFaces)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepOffset.delete_BRepOffset_Inter3d

# Register BRepOffset_Inter3d in _BRepOffset:
_BRepOffset.BRepOffset_Inter3d_swigregister(BRepOffset_Inter3d)

class BRepOffset_Interval(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 U1:
        	:type U1: float
        	:param U2:
        	:type U2: float
        	:param Type:
        	:type Type: BRepOffset_Type
        	:rtype: None
        """
        _BRepOffset.BRepOffset_Interval_swiginit(self, _BRepOffset.new_BRepOffset_Interval(*args))
    First = _swig_new_instance_method(_BRepOffset.BRepOffset_Interval_First)
    Last = _swig_new_instance_method(_BRepOffset.BRepOffset_Interval_Last)
    Type = _swig_new_instance_method(_BRepOffset.BRepOffset_Interval_Type)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepOffset.delete_BRepOffset_Interval

# Register BRepOffset_Interval in _BRepOffset:
_BRepOffset.BRepOffset_Interval_swigregister(BRepOffset_Interval)

class BRepOffset_MakeLoops(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"""
        _BRepOffset.BRepOffset_MakeLoops_swiginit(self, _BRepOffset.new_BRepOffset_MakeLoops(*args))
    Build = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeLoops_Build)
    BuildFaces = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeLoops_BuildFaces)
    BuildOnContext = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeLoops_BuildOnContext)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepOffset.delete_BRepOffset_MakeLoops

# Register BRepOffset_MakeLoops in _BRepOffset:
_BRepOffset.BRepOffset_MakeLoops_swigregister(BRepOffset_MakeLoops)

class BRepOffset_MakeOffset(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AddFace = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_AddFace)

    def __init__(self, *args):
        r"""
        :rtype: None:param S:
        	:type S: TopoDS_Shape
        	:param Offset:
        	:type Offset: float
        	:param Tol:
        	:type Tol: float
        	:param Mode: default value is BRepOffset_Skin
        	:type Mode: BRepOffset_Mode
        	:param Intersection: default value is Standard_False
        	:type Intersection: bool
        	:param SelfInter: default value is Standard_False
        	:type SelfInter: bool
        	:param Join: default value is GeomAbs_Arc
        	:type Join: GeomAbs_JoinType
        	:param Thickening: default value is Standard_False
        	:type Thickening: bool
        	:param RemoveIntEdges: default value is Standard_False
        	:type RemoveIntEdges: bool
        	:rtype: None
        """
        _BRepOffset.BRepOffset_MakeOffset_swiginit(self, _BRepOffset.new_BRepOffset_MakeOffset(*args))
    CheckInputData = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_CheckInputData)
    Clear = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_Clear)
    ClosingFaces = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_ClosingFaces)
    Error = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_Error)
    GetBadShape = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_GetBadShape)
    GetJoinType = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_GetJoinType)
    Initialize = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_Initialize)
    IsDone = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_IsDone)
    MakeOffsetShape = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_MakeOffsetShape)
    MakeThickSolid = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_MakeThickSolid)
    OffsetEdgesFromShapes = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_OffsetEdgesFromShapes)
    OffsetFacesFromShapes = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_OffsetFacesFromShapes)
    SetOffsetOnFace = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_SetOffsetOnFace)
    Shape = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeOffset_Shape)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepOffset.delete_BRepOffset_MakeOffset

# Register BRepOffset_MakeOffset in _BRepOffset:
_BRepOffset.BRepOffset_MakeOffset_swigregister(BRepOffset_MakeOffset)

class BRepOffset_MakeSimpleOffset(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. Does nothing.
        	:rtype: None* Constructor.
        	:param theInputShape:
        	:type theInputShape: TopoDS_Shape
        	:param theOffsetValue:
        	:type theOffsetValue: float
        	:rtype: None
        """
        _BRepOffset.BRepOffset_MakeSimpleOffset_swiginit(self, _BRepOffset.new_BRepOffset_MakeSimpleOffset(*args))
    Generated = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_Generated)
    GetBuildSolidFlag = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_GetBuildSolidFlag)
    GetError = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_GetError)
    GetErrorMessage = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_GetErrorMessage)
    GetOffsetValue = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_GetOffsetValue)
    GetResultShape = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_GetResultShape)
    GetTolerance = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_GetTolerance)
    Initialize = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_Initialize)
    IsDone = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_IsDone)
    Modified = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_Modified)
    Perform = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_Perform)
    SetBuildSolidFlag = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_SetBuildSolidFlag)
    SetOffsetValue = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_SetOffsetValue)
    SetTolerance = _swig_new_instance_method(_BRepOffset.BRepOffset_MakeSimpleOffset_SetTolerance)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepOffset.delete_BRepOffset_MakeSimpleOffset

# Register BRepOffset_MakeSimpleOffset in _BRepOffset:
_BRepOffset.BRepOffset_MakeSimpleOffset_swigregister(BRepOffset_MakeSimpleOffset)

class BRepOffset_Offset(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 Face:
        	:type Face: TopoDS_Face
        	:param Offset:
        	:type Offset: float
        	:param OffsetOutside: default value is Standard_True
        	:type OffsetOutside: bool
        	:param JoinType: default value is GeomAbs_Arc
        	:type JoinType: GeomAbs_JoinType
        	:rtype: None* This method will be called when you want to share the edges soon generated from an other face. e.g. when two faces are tangents the common edge will generate only one edge ( no pipe). //! The Map will be fill as follow: //! Created(E) = E' with: E = an edge of <Face> E' = the image of E in the offseting of another face sharing E with a continuity at least G1
        	:param Face:
        	:type Face: TopoDS_Face
        	:param Offset:
        	:type Offset: float
        	:param Created:
        	:type Created: TopTools_DataMapOfShapeShape
        	:param OffsetOutside: default value is Standard_True
        	:type OffsetOutside: bool
        	:param JoinType: default value is GeomAbs_Arc
        	:type JoinType: GeomAbs_JoinType
        	:rtype: None:param Path:
        	:type Path: TopoDS_Edge
        	:param Edge1:
        	:type Edge1: TopoDS_Edge
        	:param Edge2:
        	:type Edge2: TopoDS_Edge
        	:param Offset:
        	:type Offset: float
        	:param Polynomial: default value is Standard_False
        	:type Polynomial: bool
        	:param Tol: default value is 1.0e-4
        	:type Tol: float
        	:param Conti: default value is GeomAbs_C1
        	:type Conti: GeomAbs_Shape
        	:rtype: None:param Path:
        	:type Path: TopoDS_Edge
        	:param Edge1:
        	:type Edge1: TopoDS_Edge
        	:param Edge2:
        	:type Edge2: TopoDS_Edge
        	:param Offset:
        	:type Offset: float
        	:param FirstEdge:
        	:type FirstEdge: TopoDS_Edge
        	:param LastEdge:
        	:type LastEdge: TopoDS_Edge
        	:param Polynomial: default value is Standard_False
        	:type Polynomial: bool
        	:param Tol: default value is 1.0e-4
        	:type Tol: float
        	:param Conti: default value is GeomAbs_C1
        	:type Conti: GeomAbs_Shape
        	:rtype: None* Tol and Conti are only used if Polynomial is True (Used to perfrom the approximation)
        	:param Vertex:
        	:type Vertex: TopoDS_Vertex
        	:param LEdge:
        	:type LEdge: TopTools_ListOfShape
        	:param Offset:
        	:type Offset: float
        	:param Polynomial: default value is Standard_False
        	:type Polynomial: bool
        	:param Tol: default value is 1.0e-4
        	:type Tol: float
        	:param Conti: default value is GeomAbs_C1
        	:type Conti: GeomAbs_Shape
        	:rtype: None
        """
        _BRepOffset.BRepOffset_Offset_swiginit(self, _BRepOffset.new_BRepOffset_Offset(*args))
    Face = _swig_new_instance_method(_BRepOffset.BRepOffset_Offset_Face)
    Generated = _swig_new_instance_method(_BRepOffset.BRepOffset_Offset_Generated)
    Init = _swig_new_instance_method(_BRepOffset.BRepOffset_Offset_Init)
    InitialShape = _swig_new_instance_method(_BRepOffset.BRepOffset_Offset_InitialShape)
    Status = _swig_new_instance_method(_BRepOffset.BRepOffset_Offset_Status)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepOffset.delete_BRepOffset_Offset

# Register BRepOffset_Offset in _BRepOffset:
_BRepOffset.BRepOffset_Offset_swigregister(BRepOffset_Offset)

class BRepOffset_SimpleOffset(OCC.Core.BRepTools.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"""
        * Constructor. @param theInputShape shape to be offset @param theOffsetValue offset distance (signed) @param theTolerance tolerance for handling singular points
        	:param theInputShape:
        	:type theInputShape: TopoDS_Shape
        	:param theOffsetValue:
        	:type theOffsetValue: float
        	:param theTolerance:
        	:type theTolerance: float
        	:rtype: None
        """
        _BRepOffset.BRepOffset_SimpleOffset_swiginit(self, _BRepOffset.new_BRepOffset_SimpleOffset(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepOffset.delete_BRepOffset_SimpleOffset

# Register BRepOffset_SimpleOffset in _BRepOffset:
_BRepOffset.BRepOffset_SimpleOffset_swigregister(BRepOffset_SimpleOffset)

class BRepOffset_Tool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    BuildNeighbour = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_BuildNeighbour)
    CheckBounds = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_CheckBounds)
    CheckPlanesNormals = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_CheckPlanesNormals)
    CorrectOrientation = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_CorrectOrientation)
    Deboucle3D = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_Deboucle3D)
    EdgeVertices = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_EdgeVertices)
    EnLargeFace = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_EnLargeFace)
    ExtentFace = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_ExtentFace)
    FindCommonShapes = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_FindCommonShapes)
    Gabarit = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_Gabarit)
    Inter2d = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_Inter2d)
    Inter3D = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_Inter3D)
    InterOrExtent = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_InterOrExtent)
    MapVertexEdges = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_MapVertexEdges)
    OriEdgeInFace = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_OriEdgeInFace)
    OrientSection = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_OrientSection)
    PipeInter = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_PipeInter)
    TryProject = _swig_new_static_method(_BRepOffset.BRepOffset_Tool_TryProject)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepOffset.BRepOffset_Tool_swiginit(self, _BRepOffset.new_BRepOffset_Tool())
    __swig_destroy__ = _BRepOffset.delete_BRepOffset_Tool

# Register BRepOffset_Tool in _BRepOffset:
_BRepOffset.BRepOffset_Tool_swigregister(BRepOffset_Tool)
BRepOffset_Tool_BuildNeighbour = _BRepOffset.BRepOffset_Tool_BuildNeighbour
BRepOffset_Tool_CheckBounds = _BRepOffset.BRepOffset_Tool_CheckBounds
BRepOffset_Tool_CheckPlanesNormals = _BRepOffset.BRepOffset_Tool_CheckPlanesNormals
BRepOffset_Tool_CorrectOrientation = _BRepOffset.BRepOffset_Tool_CorrectOrientation
BRepOffset_Tool_Deboucle3D = _BRepOffset.BRepOffset_Tool_Deboucle3D
BRepOffset_Tool_EdgeVertices = _BRepOffset.BRepOffset_Tool_EdgeVertices
BRepOffset_Tool_EnLargeFace = _BRepOffset.BRepOffset_Tool_EnLargeFace
BRepOffset_Tool_ExtentFace = _BRepOffset.BRepOffset_Tool_ExtentFace
BRepOffset_Tool_FindCommonShapes = _BRepOffset.BRepOffset_Tool_FindCommonShapes
BRepOffset_Tool_Gabarit = _BRepOffset.BRepOffset_Tool_Gabarit
BRepOffset_Tool_Inter2d = _BRepOffset.BRepOffset_Tool_Inter2d
BRepOffset_Tool_Inter3D = _BRepOffset.BRepOffset_Tool_Inter3D
BRepOffset_Tool_InterOrExtent = _BRepOffset.BRepOffset_Tool_InterOrExtent
BRepOffset_Tool_MapVertexEdges = _BRepOffset.BRepOffset_Tool_MapVertexEdges
BRepOffset_Tool_OriEdgeInFace = _BRepOffset.BRepOffset_Tool_OriEdgeInFace
BRepOffset_Tool_OrientSection = _BRepOffset.BRepOffset_Tool_OrientSection
BRepOffset_Tool_PipeInter = _BRepOffset.BRepOffset_Tool_PipeInter
BRepOffset_Tool_TryProject = _BRepOffset.BRepOffset_Tool_TryProject



