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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

# Register SwigPyIterator in _IntPatch:
_IntPatch.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.Intf
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.Adaptor3d
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.IntSurf
import OCC.Core.IntAna
IntPatch_SPntNone = _IntPatch.IntPatch_SPntNone
IntPatch_SPntSeamU = _IntPatch.IntPatch_SPntSeamU
IntPatch_SPntSeamV = _IntPatch.IntPatch_SPntSeamV
IntPatch_SPntSeamUV = _IntPatch.IntPatch_SPntSeamUV
IntPatch_SPntPoleSeamU = _IntPatch.IntPatch_SPntPoleSeamU
IntPatch_SPntPole = _IntPatch.IntPatch_SPntPole
IntPatch_Lin = _IntPatch.IntPatch_Lin
IntPatch_Circle = _IntPatch.IntPatch_Circle
IntPatch_Ellipse = _IntPatch.IntPatch_Ellipse
IntPatch_Parabola = _IntPatch.IntPatch_Parabola
IntPatch_Hyperbola = _IntPatch.IntPatch_Hyperbola
IntPatch_Analytic = _IntPatch.IntPatch_Analytic
IntPatch_Walking = _IntPatch.IntPatch_Walking
IntPatch_Restriction = _IntPatch.IntPatch_Restriction
Handle_IntPatch_Line_Create = _IntPatch.Handle_IntPatch_Line_Create
Handle_IntPatch_Line_DownCast = _IntPatch.Handle_IntPatch_Line_DownCast
Handle_IntPatch_Line_IsNull = _IntPatch.Handle_IntPatch_Line_IsNull
Handle_IntPatch_TheIWLineOfTheIWalking_Create = _IntPatch.Handle_IntPatch_TheIWLineOfTheIWalking_Create
Handle_IntPatch_TheIWLineOfTheIWalking_DownCast = _IntPatch.Handle_IntPatch_TheIWLineOfTheIWalking_DownCast
Handle_IntPatch_TheIWLineOfTheIWalking_IsNull = _IntPatch.Handle_IntPatch_TheIWLineOfTheIWalking_IsNull
Handle_IntPatch_ALine_Create = _IntPatch.Handle_IntPatch_ALine_Create
Handle_IntPatch_ALine_DownCast = _IntPatch.Handle_IntPatch_ALine_DownCast
Handle_IntPatch_ALine_IsNull = _IntPatch.Handle_IntPatch_ALine_IsNull
Handle_IntPatch_GLine_Create = _IntPatch.Handle_IntPatch_GLine_Create
Handle_IntPatch_GLine_DownCast = _IntPatch.Handle_IntPatch_GLine_DownCast
Handle_IntPatch_GLine_IsNull = _IntPatch.Handle_IntPatch_GLine_IsNull
Handle_IntPatch_PointLine_Create = _IntPatch.Handle_IntPatch_PointLine_Create
Handle_IntPatch_PointLine_DownCast = _IntPatch.Handle_IntPatch_PointLine_DownCast
Handle_IntPatch_PointLine_IsNull = _IntPatch.Handle_IntPatch_PointLine_IsNull
Handle_IntPatch_RLine_Create = _IntPatch.Handle_IntPatch_RLine_Create
Handle_IntPatch_RLine_DownCast = _IntPatch.Handle_IntPatch_RLine_DownCast
Handle_IntPatch_RLine_IsNull = _IntPatch.Handle_IntPatch_RLine_IsNull
Handle_IntPatch_WLine_Create = _IntPatch.Handle_IntPatch_WLine_Create
Handle_IntPatch_WLine_DownCast = _IntPatch.Handle_IntPatch_WLine_DownCast
Handle_IntPatch_WLine_IsNull = _IntPatch.Handle_IntPatch_WLine_IsNull
class IntPatch_SequenceOfPoint(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(_IntPatch.IntPatch_SequenceOfPoint_begin)
    end = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_end)
    cbegin = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_cbegin)
    cend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_cend)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfPoint_swiginit(self, _IntPatch.new_IntPatch_SequenceOfPoint(*args))
    Size = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Size)
    Length = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Length)
    Lower = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Lower)
    Upper = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Upper)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_IsEmpty)
    Reverse = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Reverse)
    Exchange = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Exchange)
    delNode = _swig_new_static_method(_IntPatch.IntPatch_SequenceOfPoint_delNode)
    Clear = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Clear)
    Assign = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Assign)
    Set = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Set)
    Remove = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Remove)
    Append = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Append)
    Prepend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Prepend)
    InsertBefore = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_InsertBefore)
    InsertAfter = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_InsertAfter)
    Split = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Split)
    First = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_First)
    ChangeFirst = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_ChangeFirst)
    Last = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Last)
    ChangeLast = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_ChangeLast)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_Value)
    ChangeValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_ChangeValue)
    __call__ = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint___call__)
    SetValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPoint_SetValue)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfPoint

# Register IntPatch_SequenceOfPoint in _IntPatch:
_IntPatch.IntPatch_SequenceOfPoint_swigregister(IntPatch_SequenceOfPoint)
IntPatch_SequenceOfPoint_delNode = _IntPatch.IntPatch_SequenceOfPoint_delNode

class IntPatch_SequenceOfPathPointOfTheSOnBounds(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(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_begin)
    end = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_end)
    cbegin = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_cbegin)
    cend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_cend)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_SequenceOfPathPointOfTheSOnBounds(*args))
    Size = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Size)
    Length = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Length)
    Lower = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Lower)
    Upper = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Upper)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_IsEmpty)
    Reverse = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Reverse)
    Exchange = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Exchange)
    delNode = _swig_new_static_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_delNode)
    Clear = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Clear)
    Assign = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Assign)
    Set = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Set)
    Remove = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Remove)
    Append = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Append)
    Prepend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Prepend)
    InsertBefore = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_InsertBefore)
    InsertAfter = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_InsertAfter)
    Split = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Split)
    First = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_First)
    ChangeFirst = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_ChangeFirst)
    Last = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Last)
    ChangeLast = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_ChangeLast)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Value)
    ChangeValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_ChangeValue)
    __call__ = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds___call__)
    SetValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_SetValue)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfPathPointOfTheSOnBounds

# Register IntPatch_SequenceOfPathPointOfTheSOnBounds in _IntPatch:
_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_swigregister(IntPatch_SequenceOfPathPointOfTheSOnBounds)
IntPatch_SequenceOfPathPointOfTheSOnBounds_delNode = _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_delNode

class IntPatch_SequenceOfSegmentOfTheSOnBounds(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(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_begin)
    end = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_end)
    cbegin = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_cbegin)
    cend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_cend)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_SequenceOfSegmentOfTheSOnBounds(*args))
    Size = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Size)
    Length = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Length)
    Lower = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Lower)
    Upper = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Upper)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_IsEmpty)
    Reverse = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Reverse)
    Exchange = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Exchange)
    delNode = _swig_new_static_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_delNode)
    Clear = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Clear)
    Assign = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Assign)
    Set = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Set)
    Remove = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Remove)
    Append = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Append)
    Prepend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Prepend)
    InsertBefore = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_InsertBefore)
    InsertAfter = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_InsertAfter)
    Split = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Split)
    First = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_First)
    ChangeFirst = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_ChangeFirst)
    Last = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Last)
    ChangeLast = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_ChangeLast)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Value)
    ChangeValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_ChangeValue)
    __call__ = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds___call__)
    SetValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_SetValue)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfSegmentOfTheSOnBounds

# Register IntPatch_SequenceOfSegmentOfTheSOnBounds in _IntPatch:
_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_swigregister(IntPatch_SequenceOfSegmentOfTheSOnBounds)
IntPatch_SequenceOfSegmentOfTheSOnBounds_delNode = _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_delNode

class IntPatch_SequenceOfLine(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(_IntPatch.IntPatch_SequenceOfLine_begin)
    end = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_end)
    cbegin = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_cbegin)
    cend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_cend)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfLine_swiginit(self, _IntPatch.new_IntPatch_SequenceOfLine(*args))
    Size = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Size)
    Length = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Length)
    Lower = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Lower)
    Upper = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Upper)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_IsEmpty)
    Reverse = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Reverse)
    Exchange = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Exchange)
    delNode = _swig_new_static_method(_IntPatch.IntPatch_SequenceOfLine_delNode)
    Clear = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Clear)
    Assign = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Assign)
    Set = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Set)
    Remove = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Remove)
    Append = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Append)
    Prepend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Prepend)
    InsertBefore = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_InsertBefore)
    InsertAfter = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_InsertAfter)
    Split = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Split)
    First = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_First)
    ChangeFirst = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_ChangeFirst)
    Last = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Last)
    ChangeLast = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_ChangeLast)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_Value)
    ChangeValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_ChangeValue)
    __call__ = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine___call__)
    SetValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfLine_SetValue)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfLine

# Register IntPatch_SequenceOfLine in _IntPatch:
_IntPatch.IntPatch_SequenceOfLine_swigregister(IntPatch_SequenceOfLine)
IntPatch_SequenceOfLine_delNode = _IntPatch.IntPatch_SequenceOfLine_delNode

class IntPatch_SequenceOfIWLineOfTheIWalking(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(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_begin)
    end = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_end)
    cbegin = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_cbegin)
    cend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_cend)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_swiginit(self, _IntPatch.new_IntPatch_SequenceOfIWLineOfTheIWalking(*args))
    Size = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Size)
    Length = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Length)
    Lower = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Lower)
    Upper = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Upper)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_IsEmpty)
    Reverse = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Reverse)
    Exchange = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Exchange)
    delNode = _swig_new_static_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_delNode)
    Clear = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Clear)
    Assign = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Assign)
    Set = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Set)
    Remove = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Remove)
    Append = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Append)
    Prepend = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Prepend)
    InsertBefore = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_InsertBefore)
    InsertAfter = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_InsertAfter)
    Split = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Split)
    First = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_First)
    ChangeFirst = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_ChangeFirst)
    Last = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Last)
    ChangeLast = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_ChangeLast)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Value)
    ChangeValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_ChangeValue)
    __call__ = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking___call__)
    SetValue = _swig_new_instance_method(_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_SetValue)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfIWLineOfTheIWalking

# Register IntPatch_SequenceOfIWLineOfTheIWalking in _IntPatch:
_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_swigregister(IntPatch_SequenceOfIWLineOfTheIWalking)
IntPatch_SequenceOfIWLineOfTheIWalking_delNode = _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_delNode

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

    def __init__(self, *args):
        r"""
        * Constructor
        	:param theS1:
        	:type theS1: Adaptor3d_HSurface
        	:param theS2:
        	:type theS2: Adaptor3d_HSurface
        	:param theNbPoints: default value is 200
        	:type theNbPoints: int
        	:rtype: None
        """
        _IntPatch.IntPatch_ALineToWLine_swiginit(self, _IntPatch.new_IntPatch_ALineToWLine(*args))
    MakeWLine = _swig_new_instance_method(_IntPatch.IntPatch_ALineToWLine_MakeWLine)
    SetTol3D = _swig_new_instance_method(_IntPatch.IntPatch_ALineToWLine_SetTol3D)
    SetTolOpenDomain = _swig_new_instance_method(_IntPatch.IntPatch_ALineToWLine_SetTolOpenDomain)
    SetTolTransition = _swig_new_instance_method(_IntPatch.IntPatch_ALineToWLine_SetTolTransition)
    Tol3D = _swig_new_instance_method(_IntPatch.IntPatch_ALineToWLine_Tol3D)
    TolOpenDomain = _swig_new_instance_method(_IntPatch.IntPatch_ALineToWLine_TolOpenDomain)
    TolTransition = _swig_new_instance_method(_IntPatch.IntPatch_ALineToWLine_TolTransition)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_ALineToWLine

# Register IntPatch_ALineToWLine in _IntPatch:
_IntPatch.IntPatch_ALineToWLine_swigregister(IntPatch_ALineToWLine)

class IntPatch_ArcFunction(OCC.Core.math.math_FunctionWithDerivative):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Arc = _swig_new_instance_method(_IntPatch.IntPatch_ArcFunction_Arc)

    def __init__(self, *args):
        r""":rtype: None"""
        _IntPatch.IntPatch_ArcFunction_swiginit(self, _IntPatch.new_IntPatch_ArcFunction(*args))
    LastComputedPoint = _swig_new_instance_method(_IntPatch.IntPatch_ArcFunction_LastComputedPoint)
    NbSamples = _swig_new_instance_method(_IntPatch.IntPatch_ArcFunction_NbSamples)
    Quadric = _swig_new_instance_method(_IntPatch.IntPatch_ArcFunction_Quadric)
    Set = _swig_new_instance_method(_IntPatch.IntPatch_ArcFunction_Set)
    SetQuadric = _swig_new_instance_method(_IntPatch.IntPatch_ArcFunction_SetQuadric)
    Surface = _swig_new_instance_method(_IntPatch.IntPatch_ArcFunction_Surface)
    Valpoint = _swig_new_instance_method(_IntPatch.IntPatch_ArcFunction_Valpoint)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_ArcFunction

# Register IntPatch_ArcFunction in _IntPatch:
_IntPatch.IntPatch_ArcFunction_swigregister(IntPatch_ArcFunction)

class IntPatch_CSFunction(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AuxillarCurve = _swig_new_instance_method(_IntPatch.IntPatch_CSFunction_AuxillarCurve)
    AuxillarSurface = _swig_new_instance_method(_IntPatch.IntPatch_CSFunction_AuxillarSurface)

    def __init__(self, *args):
        r"""
        * S1 is the surface on which the intersection is searched. C is a curve on the surface S2.
        	:param S1:
        	:type S1: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor2d_HCurve2d
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:rtype: None
        """
        _IntPatch.IntPatch_CSFunction_swiginit(self, _IntPatch.new_IntPatch_CSFunction(*args))
    Point = _swig_new_instance_method(_IntPatch.IntPatch_CSFunction_Point)
    Root = _swig_new_instance_method(_IntPatch.IntPatch_CSFunction_Root)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_CSFunction

# Register IntPatch_CSFunction in _IntPatch:
_IntPatch.IntPatch_CSFunction_swigregister(IntPatch_CSFunction)

class IntPatch_CurvIntSurf(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Function = _swig_new_instance_method(_IntPatch.IntPatch_CurvIntSurf_Function)

    def __init__(self, *args):
        r"""
        * compute the solution point with the close point MarginCoef is the coefficient for extension of UV bounds. Ex., UFirst -= MarginCoef*(ULast-UFirst)
        	:param U:
        	:type U: float
        	:param V:
        	:type V: float
        	:param W:
        	:type W: float
        	:param F:
        	:type F: IntPatch_CSFunction
        	:param TolTangency:
        	:type TolTangency: float
        	:param MarginCoef: default value is 0.0
        	:type MarginCoef: float
        	:rtype: None* initialize the parameters to compute the solution
        	:param F:
        	:type F: IntPatch_CSFunction
        	:param TolTangency:
        	:type TolTangency: float
        	:rtype: None
        """
        _IntPatch.IntPatch_CurvIntSurf_swiginit(self, _IntPatch.new_IntPatch_CurvIntSurf(*args))
    IsDone = _swig_new_instance_method(_IntPatch.IntPatch_CurvIntSurf_IsDone)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_CurvIntSurf_IsEmpty)
    ParameterOnCurve = _swig_new_instance_method(_IntPatch.IntPatch_CurvIntSurf_ParameterOnCurve)
    ParameterOnSurface = _swig_new_instance_method(_IntPatch.IntPatch_CurvIntSurf_ParameterOnSurface)
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_CurvIntSurf_Perform)
    Point = _swig_new_instance_method(_IntPatch.IntPatch_CurvIntSurf_Point)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_CurvIntSurf

# Register IntPatch_CurvIntSurf in _IntPatch:
_IntPatch.IntPatch_CurvIntSurf_swigregister(IntPatch_CurvIntSurf)

class IntPatch_HCurve2dTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    BSpline = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_BSpline)
    Bezier = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Bezier)
    Circle = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Circle)
    Continuity = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Continuity)
    D0 = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_D0)
    D1 = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_D1)
    D2 = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_D2)
    D3 = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_D3)
    DN = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_DN)
    Ellipse = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Ellipse)
    FirstParameter = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_FirstParameter)
    GetType = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_GetType)
    Hyperbola = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Hyperbola)
    Intervals = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Intervals)
    IsClosed = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_IsClosed)
    IsPeriodic = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_IsPeriodic)
    LastParameter = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_LastParameter)
    Line = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Line)
    NbIntervals = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_NbIntervals)
    NbSamples = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_NbSamples)
    Parabola = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Parabola)
    Period = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Period)
    Resolution = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Resolution)
    Value = _swig_new_static_method(_IntPatch.IntPatch_HCurve2dTool_Value)

    __repr__ = _dumps_object


    def __init__(self):
        _IntPatch.IntPatch_HCurve2dTool_swiginit(self, _IntPatch.new_IntPatch_HCurve2dTool())
    __swig_destroy__ = _IntPatch.delete_IntPatch_HCurve2dTool

# Register IntPatch_HCurve2dTool in _IntPatch:
_IntPatch.IntPatch_HCurve2dTool_swigregister(IntPatch_HCurve2dTool)
IntPatch_HCurve2dTool_BSpline = _IntPatch.IntPatch_HCurve2dTool_BSpline
IntPatch_HCurve2dTool_Bezier = _IntPatch.IntPatch_HCurve2dTool_Bezier
IntPatch_HCurve2dTool_Circle = _IntPatch.IntPatch_HCurve2dTool_Circle
IntPatch_HCurve2dTool_Continuity = _IntPatch.IntPatch_HCurve2dTool_Continuity
IntPatch_HCurve2dTool_D0 = _IntPatch.IntPatch_HCurve2dTool_D0
IntPatch_HCurve2dTool_D1 = _IntPatch.IntPatch_HCurve2dTool_D1
IntPatch_HCurve2dTool_D2 = _IntPatch.IntPatch_HCurve2dTool_D2
IntPatch_HCurve2dTool_D3 = _IntPatch.IntPatch_HCurve2dTool_D3
IntPatch_HCurve2dTool_DN = _IntPatch.IntPatch_HCurve2dTool_DN
IntPatch_HCurve2dTool_Ellipse = _IntPatch.IntPatch_HCurve2dTool_Ellipse
IntPatch_HCurve2dTool_FirstParameter = _IntPatch.IntPatch_HCurve2dTool_FirstParameter
IntPatch_HCurve2dTool_GetType = _IntPatch.IntPatch_HCurve2dTool_GetType
IntPatch_HCurve2dTool_Hyperbola = _IntPatch.IntPatch_HCurve2dTool_Hyperbola
IntPatch_HCurve2dTool_Intervals = _IntPatch.IntPatch_HCurve2dTool_Intervals
IntPatch_HCurve2dTool_IsClosed = _IntPatch.IntPatch_HCurve2dTool_IsClosed
IntPatch_HCurve2dTool_IsPeriodic = _IntPatch.IntPatch_HCurve2dTool_IsPeriodic
IntPatch_HCurve2dTool_LastParameter = _IntPatch.IntPatch_HCurve2dTool_LastParameter
IntPatch_HCurve2dTool_Line = _IntPatch.IntPatch_HCurve2dTool_Line
IntPatch_HCurve2dTool_NbIntervals = _IntPatch.IntPatch_HCurve2dTool_NbIntervals
IntPatch_HCurve2dTool_NbSamples = _IntPatch.IntPatch_HCurve2dTool_NbSamples
IntPatch_HCurve2dTool_Parabola = _IntPatch.IntPatch_HCurve2dTool_Parabola
IntPatch_HCurve2dTool_Period = _IntPatch.IntPatch_HCurve2dTool_Period
IntPatch_HCurve2dTool_Resolution = _IntPatch.IntPatch_HCurve2dTool_Resolution
IntPatch_HCurve2dTool_Value = _IntPatch.IntPatch_HCurve2dTool_Value

class IntPatch_HInterTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Bounds = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_Bounds)
    HasBeenSeen = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_HasBeenSeen)
    HasFirstPoint = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_HasFirstPoint)
    HasLastPoint = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_HasLastPoint)

    def __init__(self, *args):
        r""":rtype: None"""
        _IntPatch.IntPatch_HInterTool_swiginit(self, _IntPatch.new_IntPatch_HInterTool(*args))
    IsAllSolution = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_IsAllSolution)
    IsVertex = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_IsVertex)
    NbPoints = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_NbPoints)
    NbSamplePoints = _swig_new_instance_method(_IntPatch.IntPatch_HInterTool_NbSamplePoints)
    NbSamplesOnArc = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_NbSamplesOnArc)
    NbSamplesU = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_NbSamplesU)
    NbSamplesV = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_NbSamplesV)
    NbSegments = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_NbSegments)
    Parameter = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_Parameter)
    Project = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_Project)
    SamplePoint = _swig_new_instance_method(_IntPatch.IntPatch_HInterTool_SamplePoint)
    SingularOnUMax = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_SingularOnUMax)
    SingularOnUMin = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_SingularOnUMin)
    SingularOnVMax = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_SingularOnVMax)
    SingularOnVMin = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_SingularOnVMin)
    Tolerance = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_Tolerance)
    Value = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_Value)
    Vertex = _swig_new_static_method(_IntPatch.IntPatch_HInterTool_Vertex)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_HInterTool

# Register IntPatch_HInterTool in _IntPatch:
_IntPatch.IntPatch_HInterTool_swigregister(IntPatch_HInterTool)
IntPatch_HInterTool_Bounds = _IntPatch.IntPatch_HInterTool_Bounds
IntPatch_HInterTool_HasBeenSeen = _IntPatch.IntPatch_HInterTool_HasBeenSeen
IntPatch_HInterTool_HasFirstPoint = _IntPatch.IntPatch_HInterTool_HasFirstPoint
IntPatch_HInterTool_HasLastPoint = _IntPatch.IntPatch_HInterTool_HasLastPoint
IntPatch_HInterTool_IsAllSolution = _IntPatch.IntPatch_HInterTool_IsAllSolution
IntPatch_HInterTool_IsVertex = _IntPatch.IntPatch_HInterTool_IsVertex
IntPatch_HInterTool_NbPoints = _IntPatch.IntPatch_HInterTool_NbPoints
IntPatch_HInterTool_NbSamplesOnArc = _IntPatch.IntPatch_HInterTool_NbSamplesOnArc
IntPatch_HInterTool_NbSamplesU = _IntPatch.IntPatch_HInterTool_NbSamplesU
IntPatch_HInterTool_NbSamplesV = _IntPatch.IntPatch_HInterTool_NbSamplesV
IntPatch_HInterTool_NbSegments = _IntPatch.IntPatch_HInterTool_NbSegments
IntPatch_HInterTool_Parameter = _IntPatch.IntPatch_HInterTool_Parameter
IntPatch_HInterTool_Project = _IntPatch.IntPatch_HInterTool_Project
IntPatch_HInterTool_SingularOnUMax = _IntPatch.IntPatch_HInterTool_SingularOnUMax
IntPatch_HInterTool_SingularOnUMin = _IntPatch.IntPatch_HInterTool_SingularOnUMin
IntPatch_HInterTool_SingularOnVMax = _IntPatch.IntPatch_HInterTool_SingularOnVMax
IntPatch_HInterTool_SingularOnVMin = _IntPatch.IntPatch_HInterTool_SingularOnVMin
IntPatch_HInterTool_Tolerance = _IntPatch.IntPatch_HInterTool_Tolerance
IntPatch_HInterTool_Value = _IntPatch.IntPatch_HInterTool_Value
IntPatch_HInterTool_Vertex = _IntPatch.IntPatch_HInterTool_Vertex

class IntPatch_ImpImpIntersection(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* Flag theIsReqToKeepRLine has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. When intersection result returns IntPatch_RLine and another IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==True) will always keep both lines even if they are coincided.
        	:param S1:
        	:type S1: Adaptor3d_HSurface
        	:param D1:
        	:type D1: Adaptor3d_TopolTool
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param D2:
        	:type D2: Adaptor3d_TopolTool
        	:param TolArc:
        	:type TolArc: float
        	:param TolTang:
        	:type TolTang: float
        	:param theIsReqToKeepRLine: default value is Standard_False
        	:type theIsReqToKeepRLine: bool
        	:rtype: None
        """
        _IntPatch.IntPatch_ImpImpIntersection_swiginit(self, _IntPatch.new_IntPatch_ImpImpIntersection(*args))
    IsDone = _swig_new_instance_method(_IntPatch.IntPatch_ImpImpIntersection_IsDone)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_ImpImpIntersection_IsEmpty)
    Line = _swig_new_instance_method(_IntPatch.IntPatch_ImpImpIntersection_Line)
    NbLines = _swig_new_instance_method(_IntPatch.IntPatch_ImpImpIntersection_NbLines)
    NbPnts = _swig_new_instance_method(_IntPatch.IntPatch_ImpImpIntersection_NbPnts)
    OppositeFaces = _swig_new_instance_method(_IntPatch.IntPatch_ImpImpIntersection_OppositeFaces)
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_ImpImpIntersection_Perform)
    Point = _swig_new_instance_method(_IntPatch.IntPatch_ImpImpIntersection_Point)
    TangentFaces = _swig_new_instance_method(_IntPatch.IntPatch_ImpImpIntersection_TangentFaces)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_ImpImpIntersection

# Register IntPatch_ImpImpIntersection in _IntPatch:
_IntPatch.IntPatch_ImpImpIntersection_swigregister(IntPatch_ImpImpIntersection)

class IntPatch_ImpPrmIntersection(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 Surf1:
        	:type Surf1: Adaptor3d_HSurface
        	:param D1:
        	:type D1: Adaptor3d_TopolTool
        	:param Surf2:
        	:type Surf2: Adaptor3d_HSurface
        	:param D2:
        	:type D2: Adaptor3d_TopolTool
        	:param TolArc:
        	:type TolArc: float
        	:param TolTang:
        	:type TolTang: float
        	:param Fleche:
        	:type Fleche: float
        	:param Pas:
        	:type Pas: float
        	:rtype: None
        """
        _IntPatch.IntPatch_ImpPrmIntersection_swiginit(self, _IntPatch.new_IntPatch_ImpPrmIntersection(*args))
    IsDone = _swig_new_instance_method(_IntPatch.IntPatch_ImpPrmIntersection_IsDone)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_ImpPrmIntersection_IsEmpty)
    Line = _swig_new_instance_method(_IntPatch.IntPatch_ImpPrmIntersection_Line)
    NbLines = _swig_new_instance_method(_IntPatch.IntPatch_ImpPrmIntersection_NbLines)
    NbPnts = _swig_new_instance_method(_IntPatch.IntPatch_ImpPrmIntersection_NbPnts)
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_ImpPrmIntersection_Perform)
    Point = _swig_new_instance_method(_IntPatch.IntPatch_ImpPrmIntersection_Point)
    SetStartPoint = _swig_new_instance_method(_IntPatch.IntPatch_ImpPrmIntersection_SetStartPoint)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_ImpPrmIntersection

# Register IntPatch_ImpPrmIntersection in _IntPatch:
_IntPatch.IntPatch_ImpPrmIntersection_swigregister(IntPatch_ImpPrmIntersection)

class IntPatch_InterferencePolyhedron(OCC.Core.Intf.Intf_Interference):
    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 interference of Polyhedron.
        	:rtype: None* Constructs and computes an interference between the two Polyhedra.
        	:param Obje1:
        	:type Obje1: IntPatch_Polyhedron
        	:param Obje2:
        	:type Obje2: IntPatch_Polyhedron
        	:rtype: None* Constructs and computes the self interference of a Polyhedron.
        	:param Obje:
        	:type Obje: IntPatch_Polyhedron
        	:rtype: None
        """
        _IntPatch.IntPatch_InterferencePolyhedron_swiginit(self, _IntPatch.new_IntPatch_InterferencePolyhedron(*args))
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_InterferencePolyhedron_Perform)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_InterferencePolyhedron

# Register IntPatch_InterferencePolyhedron in _IntPatch:
_IntPatch.IntPatch_InterferencePolyhedron_swigregister(IntPatch_InterferencePolyhedron)

class IntPatch_Intersection(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Dump = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_Dump)

    def __init__(self, *args):
        r"""
        :rtype: None:param S1:
        	:type S1: Adaptor3d_HSurface
        	:param D1:
        	:type D1: Adaptor3d_TopolTool
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param D2:
        	:type D2: Adaptor3d_TopolTool
        	:param TolArc:
        	:type TolArc: float
        	:param TolTang:
        	:type TolTang: float
        	:rtype: None:param S1:
        	:type S1: Adaptor3d_HSurface
        	:param D1:
        	:type D1: Adaptor3d_TopolTool
        	:param TolArc:
        	:type TolArc: float
        	:param TolTang:
        	:type TolTang: float
        	:rtype: None
        """
        _IntPatch.IntPatch_Intersection_swiginit(self, _IntPatch.new_IntPatch_Intersection(*args))
    IsDone = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_IsDone)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_IsEmpty)
    Line = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_Line)
    NbLines = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_NbLines)
    NbPnts = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_NbPnts)
    OppositeFaces = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_OppositeFaces)
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_Perform)
    Point = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_Point)
    SequenceOfLine = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_SequenceOfLine)
    SetTolerances = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_SetTolerances)
    TangentFaces = _swig_new_instance_method(_IntPatch.IntPatch_Intersection_TangentFaces)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_Intersection

# Register IntPatch_Intersection in _IntPatch:
_IntPatch.IntPatch_Intersection_swigregister(IntPatch_Intersection)

class IntPatch_Line(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
    ArcType = _swig_new_instance_method(_IntPatch.IntPatch_Line_ArcType)
    IsTangent = _swig_new_instance_method(_IntPatch.IntPatch_Line_IsTangent)
    IsUIsoOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_Line_IsUIsoOnS1)
    IsUIsoOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_Line_IsUIsoOnS2)
    IsVIsoOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_Line_IsVIsoOnS1)
    IsVIsoOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_Line_IsVIsoOnS2)
    SetValue = _swig_new_instance_method(_IntPatch.IntPatch_Line_SetValue)
    SituationS1 = _swig_new_instance_method(_IntPatch.IntPatch_Line_SituationS1)
    SituationS2 = _swig_new_instance_method(_IntPatch.IntPatch_Line_SituationS2)
    TransitionOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_Line_TransitionOnS1)
    TransitionOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_Line_TransitionOnS2)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_Line

# Register IntPatch_Line in _IntPatch:
_IntPatch.IntPatch_Line_swigregister(IntPatch_Line)

class IntPatch_LineConstructor(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"""
        :param mode:
        	:type mode: int
        	:rtype: None
        """
        _IntPatch.IntPatch_LineConstructor_swiginit(self, _IntPatch.new_IntPatch_LineConstructor(*args))
    Line = _swig_new_instance_method(_IntPatch.IntPatch_LineConstructor_Line)
    NbLines = _swig_new_instance_method(_IntPatch.IntPatch_LineConstructor_NbLines)
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_LineConstructor_Perform)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_LineConstructor

# Register IntPatch_LineConstructor in _IntPatch:
_IntPatch.IntPatch_LineConstructor_swigregister(IntPatch_LineConstructor)

class IntPatch_Point(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ArcOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_Point_ArcOnS1)
    ArcOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_Point_ArcOnS2)
    Dump = _swig_new_instance_method(_IntPatch.IntPatch_Point_Dump)

    def __init__(self, *args):
        r"""
        * Empty constructor.
        	:rtype: None
        """
        _IntPatch.IntPatch_Point_swiginit(self, _IntPatch.new_IntPatch_Point(*args))
    IsMultiple = _swig_new_instance_method(_IntPatch.IntPatch_Point_IsMultiple)
    IsOnDomS1 = _swig_new_instance_method(_IntPatch.IntPatch_Point_IsOnDomS1)
    IsOnDomS2 = _swig_new_instance_method(_IntPatch.IntPatch_Point_IsOnDomS2)
    IsTangencyPoint = _swig_new_instance_method(_IntPatch.IntPatch_Point_IsTangencyPoint)
    IsVertexOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_Point_IsVertexOnS1)
    IsVertexOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_Point_IsVertexOnS2)
    ParameterOnArc1 = _swig_new_instance_method(_IntPatch.IntPatch_Point_ParameterOnArc1)
    ParameterOnArc2 = _swig_new_instance_method(_IntPatch.IntPatch_Point_ParameterOnArc2)
    ParameterOnLine = _swig_new_instance_method(_IntPatch.IntPatch_Point_ParameterOnLine)
    Parameters = _swig_new_instance_method(_IntPatch.IntPatch_Point_Parameters)
    ParametersOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_Point_ParametersOnS1)
    ParametersOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_Point_ParametersOnS2)
    PntOn2S = _swig_new_instance_method(_IntPatch.IntPatch_Point_PntOn2S)
    ReverseTransition = _swig_new_instance_method(_IntPatch.IntPatch_Point_ReverseTransition)
    SetArc = _swig_new_instance_method(_IntPatch.IntPatch_Point_SetArc)
    SetMultiple = _swig_new_instance_method(_IntPatch.IntPatch_Point_SetMultiple)
    SetParameter = _swig_new_instance_method(_IntPatch.IntPatch_Point_SetParameter)
    SetParameters = _swig_new_instance_method(_IntPatch.IntPatch_Point_SetParameters)
    SetTolerance = _swig_new_instance_method(_IntPatch.IntPatch_Point_SetTolerance)
    SetValue = _swig_new_instance_method(_IntPatch.IntPatch_Point_SetValue)
    SetVertex = _swig_new_instance_method(_IntPatch.IntPatch_Point_SetVertex)
    Tolerance = _swig_new_instance_method(_IntPatch.IntPatch_Point_Tolerance)
    TransitionLineArc1 = _swig_new_instance_method(_IntPatch.IntPatch_Point_TransitionLineArc1)
    TransitionLineArc2 = _swig_new_instance_method(_IntPatch.IntPatch_Point_TransitionLineArc2)
    TransitionOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_Point_TransitionOnS1)
    TransitionOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_Point_TransitionOnS2)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_Point_Value)
    VertexOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_Point_VertexOnS1)
    VertexOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_Point_VertexOnS2)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_Point

# Register IntPatch_Point in _IntPatch:
_IntPatch.IntPatch_Point_swigregister(IntPatch_Point)

class IntPatch_Polygo(OCC.Core.Intf.Intf_Polygon2d):
    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
    Dump = _swig_new_instance_method(_IntPatch.IntPatch_Polygo_Dump)
    Error = _swig_new_instance_method(_IntPatch.IntPatch_Polygo_Error)
    NbPoints = _swig_new_instance_method(_IntPatch.IntPatch_Polygo_NbPoints)
    Point = _swig_new_instance_method(_IntPatch.IntPatch_Polygo_Point)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_Polygo

# Register IntPatch_Polygo in _IntPatch:
_IntPatch.IntPatch_Polygo_swigregister(IntPatch_Polygo)

class IntPatch_PolyhedronTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Bounding = _swig_new_static_method(_IntPatch.IntPatch_PolyhedronTool_Bounding)
    ComponentsBounding = _swig_new_static_method(_IntPatch.IntPatch_PolyhedronTool_ComponentsBounding)
    DeflectionOverEstimation = _swig_new_static_method(_IntPatch.IntPatch_PolyhedronTool_DeflectionOverEstimation)
    NbTriangles = _swig_new_static_method(_IntPatch.IntPatch_PolyhedronTool_NbTriangles)
    Point = _swig_new_static_method(_IntPatch.IntPatch_PolyhedronTool_Point)
    TriConnex = _swig_new_static_method(_IntPatch.IntPatch_PolyhedronTool_TriConnex)
    Triangle = _swig_new_static_method(_IntPatch.IntPatch_PolyhedronTool_Triangle)

    __repr__ = _dumps_object


    def __init__(self):
        _IntPatch.IntPatch_PolyhedronTool_swiginit(self, _IntPatch.new_IntPatch_PolyhedronTool())
    __swig_destroy__ = _IntPatch.delete_IntPatch_PolyhedronTool

# Register IntPatch_PolyhedronTool in _IntPatch:
_IntPatch.IntPatch_PolyhedronTool_swigregister(IntPatch_PolyhedronTool)
IntPatch_PolyhedronTool_Bounding = _IntPatch.IntPatch_PolyhedronTool_Bounding
IntPatch_PolyhedronTool_ComponentsBounding = _IntPatch.IntPatch_PolyhedronTool_ComponentsBounding
IntPatch_PolyhedronTool_DeflectionOverEstimation = _IntPatch.IntPatch_PolyhedronTool_DeflectionOverEstimation
IntPatch_PolyhedronTool_NbTriangles = _IntPatch.IntPatch_PolyhedronTool_NbTriangles
IntPatch_PolyhedronTool_Point = _IntPatch.IntPatch_PolyhedronTool_Point
IntPatch_PolyhedronTool_TriConnex = _IntPatch.IntPatch_PolyhedronTool_TriConnex
IntPatch_PolyhedronTool_Triangle = _IntPatch.IntPatch_PolyhedronTool_Triangle

class IntPatch_PrmPrmIntersection(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    CodeReject = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_CodeReject)
    DansGrille = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_DansGrille)
    GrilleInteger = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_GrilleInteger)

    def __init__(self, *args):
        r"""
        * Empty Constructor
        	:rtype: None
        """
        _IntPatch.IntPatch_PrmPrmIntersection_swiginit(self, _IntPatch.new_IntPatch_PrmPrmIntersection(*args))
    IntegerGrille = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_IntegerGrille)
    IsDone = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_IsDone)
    IsEmpty = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_IsEmpty)
    Line = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_Line)
    NbLines = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_NbLines)
    NbPointsGrille = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_NbPointsGrille)
    NewLine = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_NewLine)
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_Perform)
    PointDepart = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_PointDepart)
    Remplit = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_Remplit)
    RemplitLin = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_RemplitLin)
    RemplitTri = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_RemplitTri)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_PrmPrmIntersection

# Register IntPatch_PrmPrmIntersection in _IntPatch:
_IntPatch.IntPatch_PrmPrmIntersection_swigregister(IntPatch_PrmPrmIntersection)

class IntPatch_PrmPrmIntersection_T3Bits(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(_IntPatch.IntPatch_PrmPrmIntersection_T3Bits_Add)
    And = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_T3Bits_And)
    Destroy = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_T3Bits_Destroy)

    def __init__(self, *args):
        r"""
        :param size:
        	:type size: int
        	:rtype: None
        """
        _IntPatch.IntPatch_PrmPrmIntersection_T3Bits_swiginit(self, _IntPatch.new_IntPatch_PrmPrmIntersection_T3Bits(*args))
    Raz = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_T3Bits_Raz)
    ResetAnd = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_T3Bits_ResetAnd)
    Val = _swig_new_instance_method(_IntPatch.IntPatch_PrmPrmIntersection_T3Bits_Val)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_PrmPrmIntersection_T3Bits

# Register IntPatch_PrmPrmIntersection_T3Bits in _IntPatch:
_IntPatch.IntPatch_PrmPrmIntersection_T3Bits_swigregister(IntPatch_PrmPrmIntersection_T3Bits)

class IntPatch_RstInt(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    PutVertexOnLine = _swig_new_static_method(_IntPatch.IntPatch_RstInt_PutVertexOnLine)

    __repr__ = _dumps_object


    def __init__(self):
        _IntPatch.IntPatch_RstInt_swiginit(self, _IntPatch.new_IntPatch_RstInt())
    __swig_destroy__ = _IntPatch.delete_IntPatch_RstInt

# Register IntPatch_RstInt in _IntPatch:
_IntPatch.IntPatch_RstInt_swigregister(IntPatch_RstInt)
IntPatch_RstInt_PutVertexOnLine = _IntPatch.IntPatch_RstInt_PutVertexOnLine

class IntPatch_SpecialPoints(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AddCrossUVIsoPoint = _swig_new_static_method(_IntPatch.IntPatch_SpecialPoints_AddCrossUVIsoPoint)
    AddPointOnUorVIso = _swig_new_static_method(_IntPatch.IntPatch_SpecialPoints_AddPointOnUorVIso)
    AddSingularPole = _swig_new_static_method(_IntPatch.IntPatch_SpecialPoints_AddSingularPole)
    AdjustPointAndVertex = _swig_new_static_method(_IntPatch.IntPatch_SpecialPoints_AdjustPointAndVertex)
    ContinueAfterSpecialPoint = _swig_new_static_method(_IntPatch.IntPatch_SpecialPoints_ContinueAfterSpecialPoint)

    __repr__ = _dumps_object


    def __init__(self):
        _IntPatch.IntPatch_SpecialPoints_swiginit(self, _IntPatch.new_IntPatch_SpecialPoints())
    __swig_destroy__ = _IntPatch.delete_IntPatch_SpecialPoints

# Register IntPatch_SpecialPoints in _IntPatch:
_IntPatch.IntPatch_SpecialPoints_swigregister(IntPatch_SpecialPoints)
IntPatch_SpecialPoints_AddCrossUVIsoPoint = _IntPatch.IntPatch_SpecialPoints_AddCrossUVIsoPoint
IntPatch_SpecialPoints_AddPointOnUorVIso = _IntPatch.IntPatch_SpecialPoints_AddPointOnUorVIso
IntPatch_SpecialPoints_AddSingularPole = _IntPatch.IntPatch_SpecialPoints_AddSingularPole
IntPatch_SpecialPoints_AdjustPointAndVertex = _IntPatch.IntPatch_SpecialPoints_AdjustPointAndVertex
IntPatch_SpecialPoints_ContinueAfterSpecialPoint = _IntPatch.IntPatch_SpecialPoints_ContinueAfterSpecialPoint

class IntPatch_TheIWLineOfTheIWalking(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
    AddIndexPassing = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_AddIndexPassing)
    AddPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_AddPoint)
    AddStatusFirst = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_AddStatusFirst)
    AddStatusFirstLast = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_AddStatusFirstLast)
    AddStatusLast = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_AddStatusLast)
    Cut = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_Cut)
    FirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_FirstPoint)
    FirstPointIndex = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_FirstPointIndex)
    HasFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_HasFirstPoint)
    HasLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_HasLastPoint)

    def __init__(self, *args):
        r"""
        :param theAllocator: default value is 0
        	:type theAllocator: IntSurf_Allocator
        	:rtype: None
        """
        _IntPatch.IntPatch_TheIWLineOfTheIWalking_swiginit(self, _IntPatch.new_IntPatch_TheIWLineOfTheIWalking(*args))
    IsClosed = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_IsClosed)
    IsTangentAtBegining = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_IsTangentAtBegining)
    IsTangentAtEnd = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_IsTangentAtEnd)
    LastPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_LastPoint)
    LastPointIndex = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_LastPointIndex)
    Line = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_Line)
    NbPassingPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_NbPassingPoint)
    NbPoints = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_NbPoints)
    PassingPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_PassingPoint)
    Reverse = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_Reverse)
    SetTangencyAtBegining = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_SetTangencyAtBegining)
    SetTangencyAtEnd = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_SetTangencyAtEnd)
    SetTangentVector = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_SetTangentVector)
    TangentVector = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_TangentVector)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_TheIWLineOfTheIWalking_Value)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_TheIWLineOfTheIWalking

# Register IntPatch_TheIWLineOfTheIWalking in _IntPatch:
_IntPatch.IntPatch_TheIWLineOfTheIWalking_swigregister(IntPatch_TheIWLineOfTheIWalking)

class IntPatch_TheIWalking(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"""
        * Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. Step is the maximum increment admitted between two consecutive points (in 2d space). Epsilon is the tolerance beyond which 2 points are confused. theToFillHoles is the flag defining whether possible holes between resulting curves are filled or not in case of IntPatch walking theToFillHoles is False
        	:param Epsilon:
        	:type Epsilon: float
        	:param Deflection:
        	:type Deflection: float
        	:param Step:
        	:type Step: float
        	:param theToFillHoles: default value is Standard_False
        	:type theToFillHoles: bool
        	:rtype: None
        """
        _IntPatch.IntPatch_TheIWalking_swiginit(self, _IntPatch.new_IntPatch_TheIWalking(*args))
    IsDone = _swig_new_instance_method(_IntPatch.IntPatch_TheIWalking_IsDone)
    NbLines = _swig_new_instance_method(_IntPatch.IntPatch_TheIWalking_NbLines)
    NbSinglePnts = _swig_new_instance_method(_IntPatch.IntPatch_TheIWalking_NbSinglePnts)
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_TheIWalking_Perform)
    SetTolerance = _swig_new_instance_method(_IntPatch.IntPatch_TheIWalking_SetTolerance)
    SinglePnt = _swig_new_instance_method(_IntPatch.IntPatch_TheIWalking_SinglePnt)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_TheIWalking_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_TheIWalking

# Register IntPatch_TheIWalking in _IntPatch:
_IntPatch.IntPatch_TheIWalking_swigregister(IntPatch_TheIWalking)

class IntPatch_ThePathPointOfTheSOnBounds(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Arc = _swig_new_instance_method(_IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Arc)

    def __init__(self, *args):
        r"""
        :rtype: None:param P:
        	:type P: gp_Pnt
        	:param Tol:
        	:type Tol: float
        	:param V:
        	:type V: Adaptor3d_HVertex
        	:param A:
        	:type A: Adaptor2d_HCurve2d
        	:param Parameter:
        	:type Parameter: float
        	:rtype: None:param P:
        	:type P: gp_Pnt
        	:param Tol:
        	:type Tol: float
        	:param A:
        	:type A: Adaptor2d_HCurve2d
        	:param Parameter:
        	:type Parameter: float
        	:rtype: None
        """
        _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_ThePathPointOfTheSOnBounds(*args))
    IsNew = _swig_new_instance_method(_IntPatch.IntPatch_ThePathPointOfTheSOnBounds_IsNew)
    Parameter = _swig_new_instance_method(_IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Parameter)
    SetValue = _swig_new_instance_method(_IntPatch.IntPatch_ThePathPointOfTheSOnBounds_SetValue)
    Tolerance = _swig_new_instance_method(_IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Tolerance)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Value)
    Vertex = _swig_new_instance_method(_IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Vertex)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_ThePathPointOfTheSOnBounds

# Register IntPatch_ThePathPointOfTheSOnBounds in _IntPatch:
_IntPatch.IntPatch_ThePathPointOfTheSOnBounds_swigregister(IntPatch_ThePathPointOfTheSOnBounds)

class IntPatch_TheSOnBounds(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AllArcSolution = _swig_new_instance_method(_IntPatch.IntPatch_TheSOnBounds_AllArcSolution)

    def __init__(self, *args):
        r"""
        * Empty constructor.
        	:rtype: None
        """
        _IntPatch.IntPatch_TheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_TheSOnBounds(*args))
    IsDone = _swig_new_instance_method(_IntPatch.IntPatch_TheSOnBounds_IsDone)
    NbPoints = _swig_new_instance_method(_IntPatch.IntPatch_TheSOnBounds_NbPoints)
    NbSegments = _swig_new_instance_method(_IntPatch.IntPatch_TheSOnBounds_NbSegments)
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_TheSOnBounds_Perform)
    Point = _swig_new_instance_method(_IntPatch.IntPatch_TheSOnBounds_Point)
    Segment = _swig_new_instance_method(_IntPatch.IntPatch_TheSOnBounds_Segment)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_TheSOnBounds

# Register IntPatch_TheSOnBounds in _IntPatch:
_IntPatch.IntPatch_TheSOnBounds_swigregister(IntPatch_TheSOnBounds)

class IntPatch_TheSearchInside(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 F:
        	:type F: IntPatch_TheSurfFunction
        	:param Surf:
        	:type Surf: Adaptor3d_HSurface
        	:param T:
        	:type T: Adaptor3d_TopolTool
        	:param Epsilon:
        	:type Epsilon: float
        	:rtype: None
        """
        _IntPatch.IntPatch_TheSearchInside_swiginit(self, _IntPatch.new_IntPatch_TheSearchInside(*args))
    IsDone = _swig_new_instance_method(_IntPatch.IntPatch_TheSearchInside_IsDone)
    NbPoints = _swig_new_instance_method(_IntPatch.IntPatch_TheSearchInside_NbPoints)
    Perform = _swig_new_instance_method(_IntPatch.IntPatch_TheSearchInside_Perform)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_TheSearchInside_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_TheSearchInside

# Register IntPatch_TheSearchInside in _IntPatch:
_IntPatch.IntPatch_TheSearchInside_swigregister(IntPatch_TheSearchInside)

class IntPatch_TheSegmentOfTheSOnBounds(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Curve = _swig_new_instance_method(_IntPatch.IntPatch_TheSegmentOfTheSOnBounds_Curve)
    FirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheSegmentOfTheSOnBounds_FirstPoint)
    HasFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheSegmentOfTheSOnBounds_HasFirstPoint)
    HasLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheSegmentOfTheSOnBounds_HasLastPoint)

    def __init__(self, *args):
        r"""
        * Empty constructor.
        	:rtype: None
        """
        _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_TheSegmentOfTheSOnBounds(*args))
    LastPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheSegmentOfTheSOnBounds_LastPoint)
    SetLimitPoint = _swig_new_instance_method(_IntPatch.IntPatch_TheSegmentOfTheSOnBounds_SetLimitPoint)
    SetValue = _swig_new_instance_method(_IntPatch.IntPatch_TheSegmentOfTheSOnBounds_SetValue)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_TheSegmentOfTheSOnBounds

# Register IntPatch_TheSegmentOfTheSOnBounds in _IntPatch:
_IntPatch.IntPatch_TheSegmentOfTheSOnBounds_swigregister(IntPatch_TheSegmentOfTheSOnBounds)

class IntPatch_TheSurfFunction(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Direction2d = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_Direction2d)
    Direction3d = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_Direction3d)
    ISurface = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_ISurface)

    def __init__(self, *args):
        r"""
        :rtype: None:param PS:
        	:type PS: Adaptor3d_HSurface
        	:param IS:
        	:type IS: IntSurf_Quadric
        	:rtype: None:param IS:
        	:type IS: IntSurf_Quadric
        	:rtype: None
        """
        _IntPatch.IntPatch_TheSurfFunction_swiginit(self, _IntPatch.new_IntPatch_TheSurfFunction(*args))
    IsTangent = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_IsTangent)
    PSurface = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_PSurface)
    Point = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_Point)
    Root = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_Root)
    Set = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_Set)
    SetImplicitSurface = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_SetImplicitSurface)
    Tolerance = _swig_new_instance_method(_IntPatch.IntPatch_TheSurfFunction_Tolerance)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_TheSurfFunction

# Register IntPatch_TheSurfFunction in _IntPatch:
_IntPatch.IntPatch_TheSurfFunction_swigregister(IntPatch_TheSurfFunction)

class IntPatch_WLineTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ComputePurgedWLine = _swig_new_static_method(_IntPatch.IntPatch_WLineTool_ComputePurgedWLine)
    ExtendTwoWLines = _swig_new_static_method(_IntPatch.IntPatch_WLineTool_ExtendTwoWLines)
    JoinWLines = _swig_new_static_method(_IntPatch.IntPatch_WLineTool_JoinWLines)

    __repr__ = _dumps_object


    def __init__(self):
        _IntPatch.IntPatch_WLineTool_swiginit(self, _IntPatch.new_IntPatch_WLineTool())
    __swig_destroy__ = _IntPatch.delete_IntPatch_WLineTool

# Register IntPatch_WLineTool in _IntPatch:
_IntPatch.IntPatch_WLineTool_swigregister(IntPatch_WLineTool)
IntPatch_WLineTool_ComputePurgedWLine = _IntPatch.IntPatch_WLineTool_ComputePurgedWLine
IntPatch_WLineTool_ExtendTwoWLines = _IntPatch.IntPatch_WLineTool_ExtendTwoWLines
IntPatch_WLineTool_JoinWLines = _IntPatch.IntPatch_WLineTool_JoinWLines

class IntPatch_ALine(IntPatch_Line):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AddVertex = _swig_new_instance_method(_IntPatch.IntPatch_ALine_AddVertex)
    ChangeVertex = _swig_new_instance_method(_IntPatch.IntPatch_ALine_ChangeVertex)
    ComputeVertexParameters = _swig_new_instance_method(_IntPatch.IntPatch_ALine_ComputeVertexParameters)
    Curve = _swig_new_instance_method(_IntPatch.IntPatch_ALine_Curve)
    D1 = _swig_new_instance_method(_IntPatch.IntPatch_ALine_D1)
    FindParameter = _swig_new_instance_method(_IntPatch.IntPatch_ALine_FindParameter)
    FirstParameter = _swig_new_instance_method(_IntPatch.IntPatch_ALine_FirstParameter)
    FirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_ALine_FirstPoint)
    HasFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_ALine_HasFirstPoint)
    HasLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_ALine_HasLastPoint)

    def __init__(self, *args):
        r"""
        * Creates an analytic intersection line when the transitions are In or Out.
        	:param C:
        	:type C: IntAna_Curve
        	:param Tang:
        	:type Tang: bool
        	:param Trans1:
        	:type Trans1: IntSurf_TypeTrans
        	:param Trans2:
        	:type Trans2: IntSurf_TypeTrans
        	:rtype: None* Creates an analytic intersection line when the transitions are Touch.
        	:param C:
        	:type C: IntAna_Curve
        	:param Tang:
        	:type Tang: bool
        	:param Situ1:
        	:type Situ1: IntSurf_Situation
        	:param Situ2:
        	:type Situ2: IntSurf_Situation
        	:rtype: None* Creates an analytic intersection line when the transitions are Undecided.
        	:param C:
        	:type C: IntAna_Curve
        	:param Tang:
        	:type Tang: bool
        	:rtype: None
        """
        _IntPatch.IntPatch_ALine_swiginit(self, _IntPatch.new_IntPatch_ALine(*args))
    LastParameter = _swig_new_instance_method(_IntPatch.IntPatch_ALine_LastParameter)
    LastPoint = _swig_new_instance_method(_IntPatch.IntPatch_ALine_LastPoint)
    NbVertex = _swig_new_instance_method(_IntPatch.IntPatch_ALine_NbVertex)
    Replace = _swig_new_instance_method(_IntPatch.IntPatch_ALine_Replace)
    SetFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_ALine_SetFirstPoint)
    SetLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_ALine_SetLastPoint)
    Value = _swig_new_instance_method(_IntPatch.IntPatch_ALine_Value)
    Vertex = _swig_new_instance_method(_IntPatch.IntPatch_ALine_Vertex)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_ALine

# Register IntPatch_ALine in _IntPatch:
_IntPatch.IntPatch_ALine_swigregister(IntPatch_ALine)

class IntPatch_GLine(IntPatch_Line):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AddVertex = _swig_new_instance_method(_IntPatch.IntPatch_GLine_AddVertex)
    Circle = _swig_new_instance_method(_IntPatch.IntPatch_GLine_Circle)
    ComputeVertexParameters = _swig_new_instance_method(_IntPatch.IntPatch_GLine_ComputeVertexParameters)
    Ellipse = _swig_new_instance_method(_IntPatch.IntPatch_GLine_Ellipse)
    FirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_GLine_FirstPoint)
    HasFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_GLine_HasFirstPoint)
    HasLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_GLine_HasLastPoint)
    Hyperbola = _swig_new_instance_method(_IntPatch.IntPatch_GLine_Hyperbola)

    def __init__(self, *args):
        r"""
        * Creates a Line as intersection line when the transitions are In or Out.
        	:param L:
        	:type L: gp_Lin
        	:param Tang:
        	:type Tang: bool
        	:param Trans1:
        	:type Trans1: IntSurf_TypeTrans
        	:param Trans2:
        	:type Trans2: IntSurf_TypeTrans
        	:rtype: None* Creates a Line as intersection line when the transitions are Touch.
        	:param L:
        	:type L: gp_Lin
        	:param Tang:
        	:type Tang: bool
        	:param Situ1:
        	:type Situ1: IntSurf_Situation
        	:param Situ2:
        	:type Situ2: IntSurf_Situation
        	:rtype: None* Creates a Line as intersection line when the transitions are Undecided.
        	:param L:
        	:type L: gp_Lin
        	:param Tang:
        	:type Tang: bool
        	:rtype: None* Creates a circle as intersection line when the transitions are In or Out.
        	:param C:
        	:type C: gp_Circ
        	:param Tang:
        	:type Tang: bool
        	:param Trans1:
        	:type Trans1: IntSurf_TypeTrans
        	:param Trans2:
        	:type Trans2: IntSurf_TypeTrans
        	:rtype: None* Creates a circle as intersection line when the transitions are Touch.
        	:param C:
        	:type C: gp_Circ
        	:param Tang:
        	:type Tang: bool
        	:param Situ1:
        	:type Situ1: IntSurf_Situation
        	:param Situ2:
        	:type Situ2: IntSurf_Situation
        	:rtype: None* Creates a circle as intersection line when the transitions are Undecided.
        	:param C:
        	:type C: gp_Circ
        	:param Tang:
        	:type Tang: bool
        	:rtype: None* Creates an ellipse as intersection line when the transitions are In or Out.
        	:param E:
        	:type E: gp_Elips
        	:param Tang:
        	:type Tang: bool
        	:param Trans1:
        	:type Trans1: IntSurf_TypeTrans
        	:param Trans2:
        	:type Trans2: IntSurf_TypeTrans
        	:rtype: None* Creates an ellispe as intersection line when the transitions are Touch.
        	:param E:
        	:type E: gp_Elips
        	:param Tang:
        	:type Tang: bool
        	:param Situ1:
        	:type Situ1: IntSurf_Situation
        	:param Situ2:
        	:type Situ2: IntSurf_Situation
        	:rtype: None* Creates an ellipse as intersection line when the transitions are Undecided.
        	:param E:
        	:type E: gp_Elips
        	:param Tang:
        	:type Tang: bool
        	:rtype: None* Creates a parabola as intersection line when the transitions are In or Out.
        	:param P:
        	:type P: gp_Parab
        	:param Tang:
        	:type Tang: bool
        	:param Trans1:
        	:type Trans1: IntSurf_TypeTrans
        	:param Trans2:
        	:type Trans2: IntSurf_TypeTrans
        	:rtype: None* Creates a parabola as intersection line when the transitions are Touch.
        	:param P:
        	:type P: gp_Parab
        	:param Tang:
        	:type Tang: bool
        	:param Situ1:
        	:type Situ1: IntSurf_Situation
        	:param Situ2:
        	:type Situ2: IntSurf_Situation
        	:rtype: None* Creates a parabola as intersection line when the transitions are Undecided.
        	:param P:
        	:type P: gp_Parab
        	:param Tang:
        	:type Tang: bool
        	:rtype: None* Creates an hyperbola as intersection line when the transitions are In or Out.
        	:param H:
        	:type H: gp_Hypr
        	:param Tang:
        	:type Tang: bool
        	:param Trans1:
        	:type Trans1: IntSurf_TypeTrans
        	:param Trans2:
        	:type Trans2: IntSurf_TypeTrans
        	:rtype: None* Creates an hyperbola as intersection line when the transitions are Touch.
        	:param H:
        	:type H: gp_Hypr
        	:param Tang:
        	:type Tang: bool
        	:param Situ1:
        	:type Situ1: IntSurf_Situation
        	:param Situ2:
        	:type Situ2: IntSurf_Situation
        	:rtype: None* Creates an hyperbola as intersection line when the transitions are Undecided.
        	:param H:
        	:type H: gp_Hypr
        	:param Tang:
        	:type Tang: bool
        	:rtype: None
        """
        _IntPatch.IntPatch_GLine_swiginit(self, _IntPatch.new_IntPatch_GLine(*args))
    LastPoint = _swig_new_instance_method(_IntPatch.IntPatch_GLine_LastPoint)
    Line = _swig_new_instance_method(_IntPatch.IntPatch_GLine_Line)
    NbVertex = _swig_new_instance_method(_IntPatch.IntPatch_GLine_NbVertex)
    Parabola = _swig_new_instance_method(_IntPatch.IntPatch_GLine_Parabola)
    Replace = _swig_new_instance_method(_IntPatch.IntPatch_GLine_Replace)
    SetFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_GLine_SetFirstPoint)
    SetLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_GLine_SetLastPoint)
    Vertex = _swig_new_instance_method(_IntPatch.IntPatch_GLine_Vertex)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_GLine

# Register IntPatch_GLine in _IntPatch:
_IntPatch.IntPatch_GLine_swigregister(IntPatch_GLine)

class IntPatch_PointLine(IntPatch_Line):
    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
    AddVertex = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_AddVertex)
    ChangeVertex = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_ChangeVertex)
    ClearVertexes = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_ClearVertexes)
    CurvatureRadiusOfIntersLine = _swig_new_static_method(_IntPatch.IntPatch_PointLine_CurvatureRadiusOfIntersLine)
    Curve = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_Curve)
    IsOutBox = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_IsOutBox)
    IsOutSurf1Box = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_IsOutSurf1Box)
    IsOutSurf2Box = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_IsOutSurf2Box)
    NbPnts = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_NbPnts)
    NbVertex = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_NbVertex)
    Point = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_Point)
    RemoveVertex = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_RemoveVertex)
    Vertex = _swig_new_instance_method(_IntPatch.IntPatch_PointLine_Vertex)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_PointLine

# Register IntPatch_PointLine in _IntPatch:
_IntPatch.IntPatch_PointLine_swigregister(IntPatch_PointLine)
IntPatch_PointLine_CurvatureRadiusOfIntersLine = _IntPatch.IntPatch_PointLine_CurvatureRadiusOfIntersLine

class IntPatch_PolyArc(IntPatch_Polygo):
    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 the polygon of the arc A on the surface S. The arc is limited by the parameters Pfirst and Plast. None of these parameters can be infinite.
        	:param A:
        	:type A: Adaptor2d_HCurve2d
        	:param NbSample:
        	:type NbSample: int
        	:param Pfirst:
        	:type Pfirst: float
        	:param Plast:
        	:type Plast: float
        	:param BoxOtherPolygon:
        	:type BoxOtherPolygon: Bnd_Box2d
        	:rtype: None
        """
        _IntPatch.IntPatch_PolyArc_swiginit(self, _IntPatch.new_IntPatch_PolyArc(*args))
    Parameter = _swig_new_instance_method(_IntPatch.IntPatch_PolyArc_Parameter)
    SetOffset = _swig_new_instance_method(_IntPatch.IntPatch_PolyArc_SetOffset)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_PolyArc

# Register IntPatch_PolyArc in _IntPatch:
_IntPatch.IntPatch_PolyArc_swigregister(IntPatch_PolyArc)

class IntPatch_PolyLine(IntPatch_Polygo):
    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 InitDefle:
        	:type InitDefle: float
        	:rtype: None
        """
        _IntPatch.IntPatch_PolyLine_swiginit(self, _IntPatch.new_IntPatch_PolyLine(*args))
    ResetError = _swig_new_instance_method(_IntPatch.IntPatch_PolyLine_ResetError)
    SetRLine = _swig_new_instance_method(_IntPatch.IntPatch_PolyLine_SetRLine)
    SetWLine = _swig_new_instance_method(_IntPatch.IntPatch_PolyLine_SetWLine)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_PolyLine

# Register IntPatch_PolyLine in _IntPatch:
_IntPatch.IntPatch_PolyLine_swigregister(IntPatch_PolyLine)

class IntPatch_RLine(IntPatch_PointLine):
    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(_IntPatch.IntPatch_RLine_Add)
    ArcOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_RLine_ArcOnS1)
    ArcOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_RLine_ArcOnS2)
    ChangeVertex = _swig_new_instance_method(_IntPatch.IntPatch_RLine_ChangeVertex)
    ComputeVertexParameters = _swig_new_instance_method(_IntPatch.IntPatch_RLine_ComputeVertexParameters)
    Dump = _swig_new_instance_method(_IntPatch.IntPatch_RLine_Dump)
    FirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_RLine_FirstPoint)
    HasFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_RLine_HasFirstPoint)
    HasLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_RLine_HasLastPoint)
    HasPolygon = _swig_new_instance_method(_IntPatch.IntPatch_RLine_HasPolygon)

    def __init__(self, *args):
        r"""
        * Creates a restriction as an intersection line when the transitions are In or Out.
        	:param Tang:
        	:type Tang: bool
        	:param Trans1:
        	:type Trans1: IntSurf_TypeTrans
        	:param Trans2:
        	:type Trans2: IntSurf_TypeTrans
        	:rtype: None* Creates a restriction as an intersection line when the transitions are Touch.
        	:param Tang:
        	:type Tang: bool
        	:param Situ1:
        	:type Situ1: IntSurf_Situation
        	:param Situ2:
        	:type Situ2: IntSurf_Situation
        	:rtype: None* Creates a restriction as an intersection line when the transitions are Undecided.
        	:param Tang:
        	:type Tang: bool
        	:rtype: None
        """
        _IntPatch.IntPatch_RLine_swiginit(self, _IntPatch.new_IntPatch_RLine(*args))
    IsArcOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_RLine_IsArcOnS1)
    IsArcOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_RLine_IsArcOnS2)
    LastPoint = _swig_new_instance_method(_IntPatch.IntPatch_RLine_LastPoint)
    ParamOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_RLine_ParamOnS1)
    ParamOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_RLine_ParamOnS2)
    Replace = _swig_new_instance_method(_IntPatch.IntPatch_RLine_Replace)
    SetArcOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_RLine_SetArcOnS1)
    SetArcOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_RLine_SetArcOnS2)
    SetCurve = _swig_new_instance_method(_IntPatch.IntPatch_RLine_SetCurve)
    SetFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_RLine_SetFirstPoint)
    SetLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_RLine_SetLastPoint)
    SetPoint = _swig_new_instance_method(_IntPatch.IntPatch_RLine_SetPoint)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_RLine

# Register IntPatch_RLine in _IntPatch:
_IntPatch.IntPatch_RLine_swigregister(IntPatch_RLine)

class IntPatch_WLine(IntPatch_PointLine):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    IntPatch_WLUnknown = _IntPatch.IntPatch_WLine_IntPatch_WLUnknown
    IntPatch_WLImpImp = _IntPatch.IntPatch_WLine_IntPatch_WLImpImp
    IntPatch_WLImpPrm = _IntPatch.IntPatch_WLine_IntPatch_WLImpPrm
    IntPatch_WLPrmPrm = _IntPatch.IntPatch_WLine_IntPatch_WLPrmPrm
    ChangeVertex = _swig_new_instance_method(_IntPatch.IntPatch_WLine_ChangeVertex)
    ComputeVertexParameters = _swig_new_instance_method(_IntPatch.IntPatch_WLine_ComputeVertexParameters)
    Dump = _swig_new_instance_method(_IntPatch.IntPatch_WLine_Dump)
    EnablePurging = _swig_new_instance_method(_IntPatch.IntPatch_WLine_EnablePurging)
    FirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_WLine_FirstPoint)
    GetArcOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_WLine_GetArcOnS1)
    GetArcOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_WLine_GetArcOnS2)
    GetCreatingWay = _swig_new_instance_method(_IntPatch.IntPatch_WLine_GetCreatingWay)
    HasArcOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_WLine_HasArcOnS1)
    HasArcOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_WLine_HasArcOnS2)
    HasFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_WLine_HasFirstPoint)
    HasLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_WLine_HasLastPoint)
    InsertVertexBefore = _swig_new_instance_method(_IntPatch.IntPatch_WLine_InsertVertexBefore)

    def __init__(self, *args):
        r"""
        * Creates a WLine as an intersection when the transitions are In or Out.
        	:param Line:
        	:type Line: IntSurf_LineOn2S
        	:param Tang:
        	:type Tang: bool
        	:param Trans1:
        	:type Trans1: IntSurf_TypeTrans
        	:param Trans2:
        	:type Trans2: IntSurf_TypeTrans
        	:rtype: None* Creates a WLine as an intersection when the transitions are Touch.
        	:param Line:
        	:type Line: IntSurf_LineOn2S
        	:param Tang:
        	:type Tang: bool
        	:param Situ1:
        	:type Situ1: IntSurf_Situation
        	:param Situ2:
        	:type Situ2: IntSurf_Situation
        	:rtype: None* Creates a WLine as an intersection when the transitions are Undecided.
        	:param Line:
        	:type Line: IntSurf_LineOn2S
        	:param Tang:
        	:type Tang: bool
        	:rtype: None
        """
        _IntPatch.IntPatch_WLine_swiginit(self, _IntPatch.new_IntPatch_WLine(*args))
    IsPurgingAllowed = _swig_new_instance_method(_IntPatch.IntPatch_WLine_IsPurgingAllowed)
    LastPoint = _swig_new_instance_method(_IntPatch.IntPatch_WLine_LastPoint)
    Replace = _swig_new_instance_method(_IntPatch.IntPatch_WLine_Replace)
    SetArcOnS1 = _swig_new_instance_method(_IntPatch.IntPatch_WLine_SetArcOnS1)
    SetArcOnS2 = _swig_new_instance_method(_IntPatch.IntPatch_WLine_SetArcOnS2)
    SetCreatingWayInfo = _swig_new_instance_method(_IntPatch.IntPatch_WLine_SetCreatingWayInfo)
    SetFirstPoint = _swig_new_instance_method(_IntPatch.IntPatch_WLine_SetFirstPoint)
    SetLastPoint = _swig_new_instance_method(_IntPatch.IntPatch_WLine_SetLastPoint)
    SetPeriod = _swig_new_instance_method(_IntPatch.IntPatch_WLine_SetPeriod)
    SetPoint = _swig_new_instance_method(_IntPatch.IntPatch_WLine_SetPoint)
    U1Period = _swig_new_instance_method(_IntPatch.IntPatch_WLine_U1Period)
    U2Period = _swig_new_instance_method(_IntPatch.IntPatch_WLine_U2Period)
    V1Period = _swig_new_instance_method(_IntPatch.IntPatch_WLine_V1Period)
    V2Period = _swig_new_instance_method(_IntPatch.IntPatch_WLine_V2Period)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_WLine

# Register IntPatch_WLine in _IntPatch:
_IntPatch.IntPatch_WLine_swigregister(IntPatch_WLine)



