# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.4.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://dev.opencascade.org/doc/occt-7.9.0/refman/html/package_intpatch.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _IntPatch
else:
    import _IntPatch

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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 == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(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

    def value(self):
        return _IntPatch.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _IntPatch.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _IntPatch.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _IntPatch.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _IntPatch.SwigPyIterator_equal(self, x)

    def copy(self):
        return _IntPatch.SwigPyIterator_copy(self)

    def next(self):
        return _IntPatch.SwigPyIterator_next(self)

    def __next__(self):
        return _IntPatch.SwigPyIterator___next__(self)

    def previous(self):
        return _IntPatch.SwigPyIterator_previous(self)

    def advance(self, n):
        return _IntPatch.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _IntPatch.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _IntPatch.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _IntPatch.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _IntPatch.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _IntPatch.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _IntPatch.SwigPyIterator___sub__(self, *args)
    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


def process_exception(error, method_name, class_name):
    return _IntPatch.process_exception(error, method_name, class_name)

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

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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    erase_event = _IntPatch.ios_base_erase_event
    imbue_event = _IntPatch.ios_base_imbue_event
    copyfmt_event = _IntPatch.ios_base_copyfmt_event

    def register_callback(self, __fn, __index):
        return _IntPatch.ios_base_register_callback(self, __fn, __index)

    def flags(self, *args):
        return _IntPatch.ios_base_flags(self, *args)

    def setf(self, *args):
        return _IntPatch.ios_base_setf(self, *args)

    def unsetf(self, __mask):
        return _IntPatch.ios_base_unsetf(self, __mask)

    def precision(self, *args):
        return _IntPatch.ios_base_precision(self, *args)

    def width(self, *args):
        return _IntPatch.ios_base_width(self, *args)

    @staticmethod
    def sync_with_stdio(__sync=True):
        return _IntPatch.ios_base_sync_with_stdio(__sync)

    def imbue(self, __loc):
        return _IntPatch.ios_base_imbue(self, __loc)

    def getloc(self):
        return _IntPatch.ios_base_getloc(self)

    @staticmethod
    def xalloc():
        return _IntPatch.ios_base_xalloc()

    def iword(self, __ix):
        return _IntPatch.ios_base_iword(self, __ix)

    def pword(self, __ix):
        return _IntPatch.ios_base_pword(self, __ix)
    __swig_destroy__ = _IntPatch.delete_ios_base

# Register ios_base in _IntPatch:
_IntPatch.ios_base_swigregister(ios_base)
cvar = _IntPatch.cvar
ios_base.boolalpha = _IntPatch.cvar.ios_base_boolalpha
ios_base.dec = _IntPatch.cvar.ios_base_dec
ios_base.fixed = _IntPatch.cvar.ios_base_fixed
ios_base.hex = _IntPatch.cvar.ios_base_hex
ios_base.internal = _IntPatch.cvar.ios_base_internal
ios_base.left = _IntPatch.cvar.ios_base_left
ios_base.oct = _IntPatch.cvar.ios_base_oct
ios_base.right = _IntPatch.cvar.ios_base_right
ios_base.scientific = _IntPatch.cvar.ios_base_scientific
ios_base.showbase = _IntPatch.cvar.ios_base_showbase
ios_base.showpoint = _IntPatch.cvar.ios_base_showpoint
ios_base.showpos = _IntPatch.cvar.ios_base_showpos
ios_base.skipws = _IntPatch.cvar.ios_base_skipws
ios_base.unitbuf = _IntPatch.cvar.ios_base_unitbuf
ios_base.uppercase = _IntPatch.cvar.ios_base_uppercase
ios_base.adjustfield = _IntPatch.cvar.ios_base_adjustfield
ios_base.basefield = _IntPatch.cvar.ios_base_basefield
ios_base.floatfield = _IntPatch.cvar.ios_base_floatfield
ios_base.badbit = _IntPatch.cvar.ios_base_badbit
ios_base.eofbit = _IntPatch.cvar.ios_base_eofbit
ios_base.failbit = _IntPatch.cvar.ios_base_failbit
ios_base.goodbit = _IntPatch.cvar.ios_base_goodbit
ios_base.app = _IntPatch.cvar.ios_base_app
ios_base.ate = _IntPatch.cvar.ios_base_ate
ios_base.binary = _IntPatch.cvar.ios_base_binary
ios_base.ios_base_in = _IntPatch.cvar.ios_base_ios_base_in
ios_base.out = _IntPatch.cvar.ios_base_out
ios_base.trunc = _IntPatch.cvar.ios_base_trunc
ios_base.beg = _IntPatch.cvar.ios_base_beg
ios_base.cur = _IntPatch.cvar.ios_base_cur
ios_base.end = _IntPatch.cvar.ios_base_end

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

    def rdstate(self):
        return _IntPatch.ios_rdstate(self)

    def clear(self, *args):
        return _IntPatch.ios_clear(self, *args)

    def setstate(self, __state):
        return _IntPatch.ios_setstate(self, __state)

    def good(self):
        return _IntPatch.ios_good(self)

    def eof(self):
        return _IntPatch.ios_eof(self)

    def fail(self):
        return _IntPatch.ios_fail(self)

    def bad(self):
        return _IntPatch.ios_bad(self)

    def exceptions(self, *args):
        return _IntPatch.ios_exceptions(self, *args)

    def __init__(self, __sb):
        _IntPatch.ios_swiginit(self, _IntPatch.new_ios(__sb))
    __swig_destroy__ = _IntPatch.delete_ios

    def tie(self, *args):
        return _IntPatch.ios_tie(self, *args)

    def rdbuf(self, *args):
        return _IntPatch.ios_rdbuf(self, *args)

    def copyfmt(self, __rhs):
        return _IntPatch.ios_copyfmt(self, __rhs)

    def fill(self, *args):
        return _IntPatch.ios_fill(self, *args)

    def imbue(self, __loc):
        return _IntPatch.ios_imbue(self, __loc)

    def narrow(self, __c, __dfault):
        return _IntPatch.ios_narrow(self, __c, __dfault)

    def widen(self, __c):
        return _IntPatch.ios_widen(self, __c)

# Register ios in _IntPatch:
_IntPatch.ios_swigregister(ios)
class ostream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _IntPatch.ostream_swiginit(self, _IntPatch.new_ostream(__sb))
    __swig_destroy__ = _IntPatch.delete_ostream

    def __lshift__(self, *args):
        return _IntPatch.ostream___lshift__(self, *args)

    def put(self, __c):
        return _IntPatch.ostream_put(self, __c)

    def write(self, __s, __n):
        return _IntPatch.ostream_write(self, __s, __n)

    def flush(self):
        return _IntPatch.ostream_flush(self)

    def tellp(self):
        return _IntPatch.ostream_tellp(self)

    def seekp(self, *args):
        return _IntPatch.ostream_seekp(self, *args)

# Register ostream in _IntPatch:
_IntPatch.ostream_swigregister(ostream)
class istream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _IntPatch.istream_swiginit(self, _IntPatch.new_istream(__sb))
    __swig_destroy__ = _IntPatch.delete_istream

    def __rshift__(self, *args):
        return _IntPatch.istream___rshift__(self, *args)

    def gcount(self):
        return _IntPatch.istream_gcount(self)

    def get(self, *args):
        return _IntPatch.istream_get(self, *args)

    def getline(self, *args):
        return _IntPatch.istream_getline(self, *args)

    def ignore(self, *args):
        return _IntPatch.istream_ignore(self, *args)

    def peek(self):
        return _IntPatch.istream_peek(self)

    def read(self, __s, __n):
        return _IntPatch.istream_read(self, __s, __n)

    def readsome(self, __s, __n):
        return _IntPatch.istream_readsome(self, __s, __n)

    def putback(self, __c):
        return _IntPatch.istream_putback(self, __c)

    def unget(self):
        return _IntPatch.istream_unget(self)

    def sync(self):
        return _IntPatch.istream_sync(self)

    def tellg(self):
        return _IntPatch.istream_tellg(self)

    def seekg(self, *args):
        return _IntPatch.istream_seekg(self, *args)

# Register istream in _IntPatch:
_IntPatch.istream_swigregister(istream)
class iostream(istream, ostream):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _IntPatch.iostream_swiginit(self, _IntPatch.new_iostream(__sb))
    __swig_destroy__ = _IntPatch.delete_iostream

# Register iostream in _IntPatch:
_IntPatch.iostream_swigregister(iostream)
cin = cvar.cin
cout = cvar.cout
cerr = cvar.cerr
clog = cvar.clog

endl_cb_ptr = _IntPatch.endl_cb_ptr
endl = _IntPatch.endl
ends_cb_ptr = _IntPatch.ends_cb_ptr
ends = _IntPatch.ends
flush_cb_ptr = _IntPatch.flush_cb_ptr
flush = _IntPatch.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.Intf
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Bnd
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.OSD
import OCC.Core.IntSurf
import OCC.Core.IntAna

from enum import IntEnum
from OCC.Core.Exception import *

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


class IntPatch_IType(IntEnum):
	IntPatch_Lin = 0
	IntPatch_Circle = 1
	IntPatch_Ellipse = 2
	IntPatch_Parabola = 3
	IntPatch_Hyperbola = 4
	IntPatch_Analytic = 5
	IntPatch_Walking = 6
	IntPatch_Restriction = 7
IntPatch_Lin = IntPatch_IType.IntPatch_Lin
IntPatch_Circle = IntPatch_IType.IntPatch_Circle
IntPatch_Ellipse = IntPatch_IType.IntPatch_Ellipse
IntPatch_Parabola = IntPatch_IType.IntPatch_Parabola
IntPatch_Hyperbola = IntPatch_IType.IntPatch_Hyperbola
IntPatch_Analytic = IntPatch_IType.IntPatch_Analytic
IntPatch_Walking = IntPatch_IType.IntPatch_Walking
IntPatch_Restriction = IntPatch_IType.IntPatch_Restriction

class IntPatch_SpecPntType(IntEnum):
	IntPatch_SPntNone = 0
	IntPatch_SPntSeamU = 1
	IntPatch_SPntSeamV = 2
	IntPatch_SPntSeamUV = 3
	IntPatch_SPntPoleSeamU = 4
	IntPatch_SPntPole = 5
IntPatch_SPntNone = IntPatch_SpecPntType.IntPatch_SPntNone
IntPatch_SPntSeamU = IntPatch_SpecPntType.IntPatch_SPntSeamU
IntPatch_SPntSeamV = IntPatch_SpecPntType.IntPatch_SPntSeamV
IntPatch_SPntSeamUV = IntPatch_SpecPntType.IntPatch_SPntSeamUV
IntPatch_SPntPoleSeamU = IntPatch_SpecPntType.IntPatch_SPntPoleSeamU
IntPatch_SPntPole = IntPatch_SpecPntType.IntPatch_SPntPole


def Handle_IntPatch_Line_Create():
    return _IntPatch.Handle_IntPatch_Line_Create()

def Handle_IntPatch_Line_DownCast(t):
    return _IntPatch.Handle_IntPatch_Line_DownCast(t)

def Handle_IntPatch_Line_IsNull(t):
    return _IntPatch.Handle_IntPatch_Line_IsNull(t)

def Handle_IntPatch_TheIWLineOfTheIWalking_Create():
    return _IntPatch.Handle_IntPatch_TheIWLineOfTheIWalking_Create()

def Handle_IntPatch_TheIWLineOfTheIWalking_DownCast(t):
    return _IntPatch.Handle_IntPatch_TheIWLineOfTheIWalking_DownCast(t)

def Handle_IntPatch_TheIWLineOfTheIWalking_IsNull(t):
    return _IntPatch.Handle_IntPatch_TheIWLineOfTheIWalking_IsNull(t)

def Handle_IntPatch_ALine_Create():
    return _IntPatch.Handle_IntPatch_ALine_Create()

def Handle_IntPatch_ALine_DownCast(t):
    return _IntPatch.Handle_IntPatch_ALine_DownCast(t)

def Handle_IntPatch_ALine_IsNull(t):
    return _IntPatch.Handle_IntPatch_ALine_IsNull(t)

def Handle_IntPatch_GLine_Create():
    return _IntPatch.Handle_IntPatch_GLine_Create()

def Handle_IntPatch_GLine_DownCast(t):
    return _IntPatch.Handle_IntPatch_GLine_DownCast(t)

def Handle_IntPatch_GLine_IsNull(t):
    return _IntPatch.Handle_IntPatch_GLine_IsNull(t)

def Handle_IntPatch_PointLine_Create():
    return _IntPatch.Handle_IntPatch_PointLine_Create()

def Handle_IntPatch_PointLine_DownCast(t):
    return _IntPatch.Handle_IntPatch_PointLine_DownCast(t)

def Handle_IntPatch_PointLine_IsNull(t):
    return _IntPatch.Handle_IntPatch_PointLine_IsNull(t)

def Handle_IntPatch_RLine_Create():
    return _IntPatch.Handle_IntPatch_RLine_Create()

def Handle_IntPatch_RLine_DownCast(t):
    return _IntPatch.Handle_IntPatch_RLine_DownCast(t)

def Handle_IntPatch_RLine_IsNull(t):
    return _IntPatch.Handle_IntPatch_RLine_IsNull(t)

def Handle_IntPatch_WLine_Create():
    return _IntPatch.Handle_IntPatch_WLine_Create()

def Handle_IntPatch_WLine_DownCast(t):
    return _IntPatch.Handle_IntPatch_WLine_DownCast(t)

def Handle_IntPatch_WLine_IsNull(t):
    return _IntPatch.Handle_IntPatch_WLine_IsNull(t)
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

    def begin(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_begin(self)

    def end(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_end(self)

    def cbegin(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_cbegin(self)

    def cend(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_cend(self)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_swiginit(self, _IntPatch.new_IntPatch_SequenceOfIWLineOfTheIWalking(*args))

    def Size(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Size(self)

    def Length(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Length(self)

    def Lower(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Lower(self)

    def Upper(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Upper(self)

    def IsEmpty(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_IsEmpty(self)

    def Reverse(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Reverse(self)

    def Exchange(self, I, J):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Assign(self, theOther)

    def Set(self, *args):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Set(self, *args)

    def Remove(self, *args):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Remove(self, *args)

    def Append(self, *args):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Append(self, *args)

    def Prepend(self, *args):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Split(self, theIndex, theSeq)

    def First(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_First(self)

    def ChangeFirst(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_ChangeFirst(self)

    def Last(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Last(self)

    def ChangeLast(self):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_ChangeLast(self)

    def Value(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfIWLineOfTheIWalking

    def __len__(self):
        return self.Size()


# Register IntPatch_SequenceOfIWLineOfTheIWalking in _IntPatch:
_IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_swigregister(IntPatch_SequenceOfIWLineOfTheIWalking)
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

    def begin(self):
        return _IntPatch.IntPatch_SequenceOfLine_begin(self)

    def end(self):
        return _IntPatch.IntPatch_SequenceOfLine_end(self)

    def cbegin(self):
        return _IntPatch.IntPatch_SequenceOfLine_cbegin(self)

    def cend(self):
        return _IntPatch.IntPatch_SequenceOfLine_cend(self)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfLine_swiginit(self, _IntPatch.new_IntPatch_SequenceOfLine(*args))

    def Size(self):
        return _IntPatch.IntPatch_SequenceOfLine_Size(self)

    def Length(self):
        return _IntPatch.IntPatch_SequenceOfLine_Length(self)

    def Lower(self):
        return _IntPatch.IntPatch_SequenceOfLine_Lower(self)

    def Upper(self):
        return _IntPatch.IntPatch_SequenceOfLine_Upper(self)

    def IsEmpty(self):
        return _IntPatch.IntPatch_SequenceOfLine_IsEmpty(self)

    def Reverse(self):
        return _IntPatch.IntPatch_SequenceOfLine_Reverse(self)

    def Exchange(self, I, J):
        return _IntPatch.IntPatch_SequenceOfLine_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _IntPatch.IntPatch_SequenceOfLine_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _IntPatch.IntPatch_SequenceOfLine_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _IntPatch.IntPatch_SequenceOfLine_Assign(self, theOther)

    def Set(self, *args):
        return _IntPatch.IntPatch_SequenceOfLine_Set(self, *args)

    def Remove(self, *args):
        return _IntPatch.IntPatch_SequenceOfLine_Remove(self, *args)

    def Append(self, *args):
        return _IntPatch.IntPatch_SequenceOfLine_Append(self, *args)

    def Prepend(self, *args):
        return _IntPatch.IntPatch_SequenceOfLine_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _IntPatch.IntPatch_SequenceOfLine_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntPatch.IntPatch_SequenceOfLine_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _IntPatch.IntPatch_SequenceOfLine_Split(self, theIndex, theSeq)

    def First(self):
        return _IntPatch.IntPatch_SequenceOfLine_First(self)

    def ChangeFirst(self):
        return _IntPatch.IntPatch_SequenceOfLine_ChangeFirst(self)

    def Last(self):
        return _IntPatch.IntPatch_SequenceOfLine_Last(self)

    def ChangeLast(self):
        return _IntPatch.IntPatch_SequenceOfLine_ChangeLast(self)

    def Value(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfLine_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfLine_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _IntPatch.IntPatch_SequenceOfLine___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _IntPatch.IntPatch_SequenceOfLine_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfLine

    def __len__(self):
        return self.Size()


# Register IntPatch_SequenceOfLine in _IntPatch:
_IntPatch.IntPatch_SequenceOfLine_swigregister(IntPatch_SequenceOfLine)
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

    def begin(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_begin(self)

    def end(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_end(self)

    def cbegin(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_cbegin(self)

    def cend(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_cend(self)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_SequenceOfPathPointOfTheSOnBounds(*args))

    def Size(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Size(self)

    def Length(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Length(self)

    def Lower(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Lower(self)

    def Upper(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Upper(self)

    def IsEmpty(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_IsEmpty(self)

    def Reverse(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Reverse(self)

    def Exchange(self, I, J):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Assign(self, theOther)

    def Set(self, *args):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Set(self, *args)

    def Remove(self, *args):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Remove(self, *args)

    def Append(self, *args):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Append(self, *args)

    def Prepend(self, *args):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Split(self, theIndex, theSeq)

    def First(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_First(self)

    def ChangeFirst(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_ChangeFirst(self)

    def Last(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Last(self)

    def ChangeLast(self):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_ChangeLast(self)

    def Value(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfPathPointOfTheSOnBounds

    def __len__(self):
        return self.Size()


# Register IntPatch_SequenceOfPathPointOfTheSOnBounds in _IntPatch:
_IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_swigregister(IntPatch_SequenceOfPathPointOfTheSOnBounds)
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

    def begin(self):
        return _IntPatch.IntPatch_SequenceOfPoint_begin(self)

    def end(self):
        return _IntPatch.IntPatch_SequenceOfPoint_end(self)

    def cbegin(self):
        return _IntPatch.IntPatch_SequenceOfPoint_cbegin(self)

    def cend(self):
        return _IntPatch.IntPatch_SequenceOfPoint_cend(self)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfPoint_swiginit(self, _IntPatch.new_IntPatch_SequenceOfPoint(*args))

    def Size(self):
        return _IntPatch.IntPatch_SequenceOfPoint_Size(self)

    def Length(self):
        return _IntPatch.IntPatch_SequenceOfPoint_Length(self)

    def Lower(self):
        return _IntPatch.IntPatch_SequenceOfPoint_Lower(self)

    def Upper(self):
        return _IntPatch.IntPatch_SequenceOfPoint_Upper(self)

    def IsEmpty(self):
        return _IntPatch.IntPatch_SequenceOfPoint_IsEmpty(self)

    def Reverse(self):
        return _IntPatch.IntPatch_SequenceOfPoint_Reverse(self)

    def Exchange(self, I, J):
        return _IntPatch.IntPatch_SequenceOfPoint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _IntPatch.IntPatch_SequenceOfPoint_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _IntPatch.IntPatch_SequenceOfPoint_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _IntPatch.IntPatch_SequenceOfPoint_Assign(self, theOther)

    def Set(self, *args):
        return _IntPatch.IntPatch_SequenceOfPoint_Set(self, *args)

    def Remove(self, *args):
        return _IntPatch.IntPatch_SequenceOfPoint_Remove(self, *args)

    def Append(self, *args):
        return _IntPatch.IntPatch_SequenceOfPoint_Append(self, *args)

    def Prepend(self, *args):
        return _IntPatch.IntPatch_SequenceOfPoint_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _IntPatch.IntPatch_SequenceOfPoint_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntPatch.IntPatch_SequenceOfPoint_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _IntPatch.IntPatch_SequenceOfPoint_Split(self, theIndex, theSeq)

    def First(self):
        return _IntPatch.IntPatch_SequenceOfPoint_First(self)

    def ChangeFirst(self):
        return _IntPatch.IntPatch_SequenceOfPoint_ChangeFirst(self)

    def Last(self):
        return _IntPatch.IntPatch_SequenceOfPoint_Last(self)

    def ChangeLast(self):
        return _IntPatch.IntPatch_SequenceOfPoint_ChangeLast(self)

    def Value(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfPoint_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfPoint_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _IntPatch.IntPatch_SequenceOfPoint___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _IntPatch.IntPatch_SequenceOfPoint_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfPoint

    def __len__(self):
        return self.Size()


# Register IntPatch_SequenceOfPoint in _IntPatch:
_IntPatch.IntPatch_SequenceOfPoint_swigregister(IntPatch_SequenceOfPoint)
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

    def begin(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_begin(self)

    def end(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_end(self)

    def cbegin(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_cbegin(self)

    def cend(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_cend(self)

    def __init__(self, *args):
        _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_SequenceOfSegmentOfTheSOnBounds(*args))

    def Size(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Size(self)

    def Length(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Length(self)

    def Lower(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Lower(self)

    def Upper(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Upper(self)

    def IsEmpty(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_IsEmpty(self)

    def Reverse(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Reverse(self)

    def Exchange(self, I, J):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Assign(self, theOther)

    def Set(self, *args):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Set(self, *args)

    def Remove(self, *args):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Remove(self, *args)

    def Append(self, *args):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Append(self, *args)

    def Prepend(self, *args):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Split(self, theIndex, theSeq)

    def First(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_First(self)

    def ChangeFirst(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_ChangeFirst(self)

    def Last(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Last(self)

    def ChangeLast(self):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_ChangeLast(self)

    def Value(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _IntPatch.delete_IntPatch_SequenceOfSegmentOfTheSOnBounds

    def __len__(self):
        return self.Size()


# Register IntPatch_SequenceOfSegmentOfTheSOnBounds in _IntPatch:
_IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_swigregister(IntPatch_SequenceOfSegmentOfTheSOnBounds)
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"""

        Parameters
        ----------
        theS1: Adaptor3d_Surface
        theS2: Adaptor3d_Surface
        theNbPoints: int (optional, default to 200)

        Return
        -------
        None

        Description
        -----------
        Constructor.

        """
        _IntPatch.IntPatch_ALineToWLine_swiginit(self, _IntPatch.new_IntPatch_ALineToWLine(*args))

    def MakeWLine(self, *args):
        r"""

        Parameters
        ----------
        aline: IntPatch_ALine
        theLines: IntPatch_SequenceOfLine

        Return
        -------
        None

        Description
        -----------
        Converts aline to the set of Walking-lines and adds them in theLines.

        Parameters
        ----------
        aline: IntPatch_ALine
        paraminf: float
        paramsup: float
        theLines: IntPatch_SequenceOfLine

        Return
        -------
        None

        Description
        -----------
        Converts aline (limited by paraminf and paramsup) to the set of Walking-lines and adds them in theLines.

        """
        return _IntPatch.IntPatch_ALineToWLine_MakeWLine(self, *args)

    def SetTol3D(self, *args):
        r"""

        Parameters
        ----------
        aT: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALineToWLine_SetTol3D(self, *args)

    def SetTolOpenDomain(self, *args):
        r"""

        Parameters
        ----------
        aT: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALineToWLine_SetTolOpenDomain(self, *args)

    def SetTolTransition(self, *args):
        r"""

        Parameters
        ----------
        aT: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALineToWLine_SetTolTransition(self, *args)

    def Tol3D(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALineToWLine_Tol3D(self, *args)

    def TolOpenDomain(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALineToWLine_TolOpenDomain(self, *args)

    def TolTransition(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALineToWLine_TolTransition(self, *args)

    __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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_ArcFunction_swiginit(self, _IntPatch.new_IntPatch_ArcFunction(*args))

    def Arc(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ArcFunction_Arc(self, *args)

    def LastComputedPoint(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the point, which has been computed while the last calling Value() method.

        """
        return _IntPatch.IntPatch_ArcFunction_LastComputedPoint(self, *args)

    def NbSamples(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ArcFunction_NbSamples(self, *args)

    def Quadric(self, *args):
        r"""
        Return
        -------
        IntSurf_Quadric

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ArcFunction_Quadric(self, *args)

    def Set(self, *args):
        r"""

        Parameters
        ----------
        A: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ArcFunction_Set(self, *args)

    def SetQuadric(self, *args):
        r"""

        Parameters
        ----------
        Q: IntSurf_Quadric

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ArcFunction_SetQuadric(self, *args)

    def Surface(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ArcFunction_Surface(self, *args)

    def Valpoint(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Pnt

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ArcFunction_Valpoint(self, *args)

    __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

    def __init__(self, *args):
        r"""

        Parameters
        ----------
        S1: Adaptor3d_Surface
        C: Adaptor2d_Curve2d
        S2: Adaptor3d_Surface

        Return
        -------
        None

        Description
        -----------
        S1 is the surface on which the intersection is searched. C is a curve on the surface S2.

        """
        _IntPatch.IntPatch_CSFunction_swiginit(self, _IntPatch.new_IntPatch_CSFunction(*args))

    def AuxillarCurve(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_CSFunction_AuxillarCurve(self, *args)

    def AuxillarSurface(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_CSFunction_AuxillarSurface(self, *args)

    def Point(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_CSFunction_Point(self, *args)

    def Root(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_CSFunction_Root(self, *args)

    __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

    def __init__(self, *args):
        r"""

        Parameters
        ----------
        U: float
        V: float
        W: float
        F: IntPatch_CSFunction
        TolTangency: float
        MarginCoef: float (optional, default to 0.0)

        Return
        -------
        None

        Description
        -----------
        compute the solution point with the close point MarginCoef is the coefficient for extension of UV bounds. Ex., UFirst -= MarginCoef*(ULast-UFirst).

        Parameters
        ----------
        F: IntPatch_CSFunction
        TolTangency: float

        Return
        -------
        None

        Description
        -----------
        initialize the parameters to compute the solution.

        """
        _IntPatch.IntPatch_CurvIntSurf_swiginit(self, _IntPatch.new_IntPatch_CurvIntSurf(*args))

    def Function(self, *args):
        r"""
        Return
        -------
        IntPatch_CSFunction

        Description
        -----------
        return the math function which is used to compute the intersection.

        """
        return _IntPatch.IntPatch_CurvIntSurf_Function(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the creation completed without failure.

        """
        return _IntPatch.IntPatch_CurvIntSurf_IsDone(self, *args)

    def IsEmpty(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_CurvIntSurf_IsEmpty(self, *args)

    def ParameterOnCurve(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_CurvIntSurf_ParameterOnCurve(self, *args)

    def ParameterOnSurface(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        U: float
        V: float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_CurvIntSurf_ParameterOnSurface(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        U: float
        V: float
        W: float
        Rsnld: math_FunctionSetRoot
        u0: float
        v0: float
        u1: float
        v1: float
        w0: float
        w1: float

        Return
        -------
        None

        Description
        -----------
        compute the solution it's possible to write to optimize: IntImp_IntCS inter(S1,C1,Toltangency) math_FunctionSetRoot rsnld(Inter.function()) while ...{ u=... v=... w=... inter.Perform(u,v,w,rsnld) } or IntImp_IntCS inter(Toltangency) inter.SetSurface(S); math_FunctionSetRoot rsnld(Inter.function()) while ...{ C=... inter.SetCurve(C); u=... v=... w=... inter.Perform(u,v,w,rsnld) }.

        """
        return _IntPatch.IntPatch_CurvIntSurf_Perform(self, *args)

    def Point(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        returns the intersection point The exception NotDone is raised if IsDone is false. The exception DomainError is raised if IsEmpty is true.

        """
        return _IntPatch.IntPatch_CurvIntSurf_Point(self, *args)

    __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

    @staticmethod
    def BSpline(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        opencascade::handle<Geom2d_BSplineCurve>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_BSpline(*args)

    @staticmethod
    def Bezier(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        opencascade::handle<Geom2d_BezierCurve>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Bezier(*args)

    @staticmethod
    def Circle(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Circ2d

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Circle(*args)

    @staticmethod
    def Continuity(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        GeomAbs_Shape

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Continuity(*args)

    @staticmethod
    def D0(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        Computes the point of parameter U on the curve.

        """
        return _IntPatch.IntPatch_HCurve2dTool_D0(*args)

    @staticmethod
    def D1(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d
        V: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Computes the point of parameter U on the curve with its first derivative. Raised if the continuity of the current interval is not C1.

        """
        return _IntPatch.IntPatch_HCurve2dTool_D1(*args)

    @staticmethod
    def D2(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Returns the point P of parameter U, the first and second derivatives V1 and V2. Raised if the continuity of the current interval is not C2.

        """
        return _IntPatch.IntPatch_HCurve2dTool_D2(*args)

    @staticmethod
    def D3(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d
        V3: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Returns the point P of parameter U, the first, the second and the third derivative. Raised if the continuity of the current interval is not C3.

        """
        return _IntPatch.IntPatch_HCurve2dTool_D3(*args)

    @staticmethod
    def DN(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        N: int

        Return
        -------
        gp_Vec2d

        Description
        -----------
        The returned vector gives the value of the derivative for the order of derivation N. Raised if the continuity of the current interval is not CN. Raised if N < 1.

        """
        return _IntPatch.IntPatch_HCurve2dTool_DN(*args)

    @staticmethod
    def Ellipse(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Elips2d

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Ellipse(*args)

    @staticmethod
    def FirstParameter(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_FirstParameter(*args)

    @staticmethod
    def GetType(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        GeomAbs_CurveType

        Description
        -----------
        Returns the type of the curve in the current interval: Line, Circle, Ellipse, Hyperbola, Parabola, BezierCurve, BSplineCurve, OtherCurve.

        """
        return _IntPatch.IntPatch_HCurve2dTool_GetType(*args)

    @staticmethod
    def Hyperbola(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Hypr2d

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Hyperbola(*args)

    @staticmethod
    def Intervals(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        T: TColStd_Array1OfReal
        S: GeomAbs_Shape

        Return
        -------
        None

        Description
        -----------
        Stores in <T> the parameters bounding the intervals of continuity <S>. //! The array must provide enough room to accommodate for the parameters. i.e. T.Length() > NbIntervals().

        """
        return _IntPatch.IntPatch_HCurve2dTool_Intervals(*args)

    @staticmethod
    def IsClosed(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_IsClosed(*args)

    @staticmethod
    def IsPeriodic(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_IsPeriodic(*args)

    @staticmethod
    def LastParameter(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_LastParameter(*args)

    @staticmethod
    def Line(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Lin2d

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Line(*args)

    @staticmethod
    def NbIntervals(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        S: GeomAbs_Shape

        Return
        -------
        int

        Description
        -----------
        Returns the number of intervals for continuity <S>. May be one if Continuity(myclass) >= <S>.

        """
        return _IntPatch.IntPatch_HCurve2dTool_NbIntervals(*args)

    @staticmethod
    def NbSamples(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U0: float
        U1: float

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_NbSamples(*args)

    @staticmethod
    def Parabola(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Parab2d

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Parabola(*args)

    @staticmethod
    def Period(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Period(*args)

    @staticmethod
    def Resolution(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        R3d: float

        Return
        -------
        float

        Description
        -----------
        Returns the parametric resolution corresponding to the real space resolution <R3d>.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Resolution(*args)

    @staticmethod
    def Value(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float

        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Computes the point of parameter U on the curve.

        """
        return _IntPatch.IntPatch_HCurve2dTool_Value(*args)

    __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)
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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_HInterTool_swiginit(self, _IntPatch.new_IntPatch_HInterTool(*args))

    @staticmethod
    def Bounds(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        Ufirst: float
        Ulast: float

        Description
        -----------
        Returns the parametric limits on the arc C. These limits must be finite: they are either the real limits of the arc, for a finite arc, or a bounding box for an infinite arc.

        """
        return _IntPatch.IntPatch_HInterTool_Bounds(*args)

    @staticmethod
    def HasBeenSeen(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        bool

        Description
        -----------
        Returns True if all the intersection point and edges are known on the Arc. The intersection point are given as vertices. The intersection edges are given as intervals between two vertices.

        """
        return _IntPatch.IntPatch_HInterTool_HasBeenSeen(*args)

    @staticmethod
    def HasFirstPoint(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Index: int

        Return
        -------
        IndFirst: int

        Description
        -----------
        Returns True when the segment of range Index is not open at the left side. In that case, IndFirst is the range in the list intersection points (see NbPoints) of the one which defines the left bound of the segment. Otherwise, the method has to return False, and IndFirst has no meaning.

        """
        return _IntPatch.IntPatch_HInterTool_HasFirstPoint(*args)

    @staticmethod
    def HasLastPoint(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Index: int

        Return
        -------
        IndLast: int

        Description
        -----------
        Returns True when the segment of range Index is not open at the right side. In that case, IndLast is the range in the list intersection points (see NbPoints) of the one which defines the right bound of the segment. Otherwise, the method has to return False, and IndLast has no meaning.

        """
        return _IntPatch.IntPatch_HInterTool_HasLastPoint(*args)

    @staticmethod
    def IsAllSolution(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        bool

        Description
        -----------
        Returns True when the whole restriction is solution of the intersection problem.

        """
        return _IntPatch.IntPatch_HInterTool_IsAllSolution(*args)

    @staticmethod
    def IsVertex(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Index: int

        Return
        -------
        bool

        Description
        -----------
        Returns True if the intersection point of range Index corresponds with a vertex on the arc A.

        """
        return _IntPatch.IntPatch_HInterTool_IsVertex(*args)

    @staticmethod
    def NbPoints(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        int

        Description
        -----------
        Returns the number of intersection points on the arc A.

        """
        return _IntPatch.IntPatch_HInterTool_NbPoints(*args)

    def NbSamplePoints(self, *args):
        r"""

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HInterTool_NbSamplePoints(self, *args)

    @staticmethod
    def NbSamplesOnArc(*args):
        r"""

        Parameters
        ----------
        A: Adaptor2d_Curve2d

        Return
        -------
        int

        Description
        -----------
        returns the number of points which is used to make a sample on the arc. this number is a function of the Surface and the CurveOnSurface complexity.

        """
        return _IntPatch.IntPatch_HInterTool_NbSamplesOnArc(*args)

    @staticmethod
    def NbSamplesU(*args):
        r"""

        Parameters
        ----------
        S: Adaptor3d_Surface
        u1: float
        u2: float

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HInterTool_NbSamplesU(*args)

    @staticmethod
    def NbSamplesV(*args):
        r"""

        Parameters
        ----------
        S: Adaptor3d_Surface
        v1: float
        v2: float

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HInterTool_NbSamplesV(*args)

    @staticmethod
    def NbSegments(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        int

        Description
        -----------
        returns the number of part of A solution of the of intersection problem.

        """
        return _IntPatch.IntPatch_HInterTool_NbSegments(*args)

    @staticmethod
    def Parameter(*args):
        r"""

        Parameters
        ----------
        V: Adaptor3d_HVertex
        C: Adaptor2d_Curve2d

        Return
        -------
        float

        Description
        -----------
        Returns the parameter of the vertex V on the arc A.

        """
        return _IntPatch.IntPatch_HInterTool_Parameter(*args)

    @staticmethod
    def Project(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        P: gp_Pnt2d
        Ptproj: gp_Pnt2d

        Return
        -------
        Paramproj: float

        Description
        -----------
        Projects the point P on the arc C. If the methods returns Standard_True, the projection is successful, and Paramproj is the parameter on the arc of the projected point, Ptproj is the projected Point. If the method returns Standard_False, Param proj and Ptproj are not significant.

        """
        return _IntPatch.IntPatch_HInterTool_Project(*args)

    def SamplePoint(self, *args):
        r"""

        Parameters
        ----------
        S: Adaptor3d_Surface
        Index: int

        Return
        -------
        U: float
        V: float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HInterTool_SamplePoint(self, *args)

    @staticmethod
    def SingularOnUMax(*args):
        r"""

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HInterTool_SingularOnUMax(*args)

    @staticmethod
    def SingularOnUMin(*args):
        r"""

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HInterTool_SingularOnUMin(*args)

    @staticmethod
    def SingularOnVMax(*args):
        r"""

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HInterTool_SingularOnVMax(*args)

    @staticmethod
    def SingularOnVMin(*args):
        r"""

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_HInterTool_SingularOnVMin(*args)

    @staticmethod
    def Tolerance(*args):
        r"""

        Parameters
        ----------
        V: Adaptor3d_HVertex
        C: Adaptor2d_Curve2d

        Return
        -------
        float

        Description
        -----------
        Returns the parametric tolerance used to consider that the vertex and another point meet, i-e if Abs(parameter(Vertex) - parameter(OtherPnt))<= Tolerance, the points are 'merged'.

        """
        return _IntPatch.IntPatch_HInterTool_Tolerance(*args)

    @staticmethod
    def Value(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Index: int
        Pt: gp_Pnt

        Return
        -------
        Tol: float
        U: float

        Description
        -----------
        Returns the value (Pt), the tolerance (Tol), and the parameter (U) on the arc A , of the intersection point of range Index.

        """
        return _IntPatch.IntPatch_HInterTool_Value(*args)

    @staticmethod
    def Vertex(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Index: int
        V: Adaptor3d_HVertex

        Return
        -------
        None

        Description
        -----------
        When IsVertex returns True, this method returns the vertex on the arc A.

        """
        return _IntPatch.IntPatch_HInterTool_Vertex(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPatch.delete_IntPatch_HInterTool

# Register IntPatch_HInterTool in _IntPatch:
_IntPatch.IntPatch_HInterTool_swigregister(IntPatch_HInterTool)
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
    IntStatus_OK = _IntPatch.IntPatch_ImpImpIntersection_IntStatus_OK
    IntStatus_InfiniteSectionCurve = _IntPatch.IntPatch_ImpImpIntersection_IntStatus_InfiniteSectionCurve
    IntStatus_Fail = _IntPatch.IntPatch_ImpImpIntersection_IntStatus_Fail


    class IntStatus(IntEnum):
    	IntStatus_OK = 0
    	IntStatus_InfiniteSectionCurve = 1
    	IntStatus_Fail = 2
    IntStatus_OK = IntStatus.IntStatus_OK
    IntStatus_InfiniteSectionCurve = IntStatus.IntStatus_InfiniteSectionCurve
    IntStatus_Fail = IntStatus.IntStatus_Fail


    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        theIsReqToKeepRLine: bool (optional, default to Standard_False)

        Return
        -------
        None

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

        """
        _IntPatch.IntPatch_ImpImpIntersection_swiginit(self, _IntPatch.new_IntPatch_ImpImpIntersection(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the calculus was successful.

        """
        return _IntPatch.IntPatch_ImpImpIntersection_IsDone(self, *args)

    def IsEmpty(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the is no intersection.

        """
        return _IntPatch.IntPatch_ImpImpIntersection_IsEmpty(self, *args)

    def Line(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<IntPatch_Line>

        Description
        -----------
        Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.

        """
        return _IntPatch.IntPatch_ImpImpIntersection_Line(self, *args)

    def NbLines(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of intersection lines.

        """
        return _IntPatch.IntPatch_ImpImpIntersection_NbLines(self, *args)

    def NbPnts(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of 'single' points.

        """
        return _IntPatch.IntPatch_ImpImpIntersection_NbPnts(self, *args)

    def OppositeFaces(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True when the TangentFaces returns True and the normal vectors evaluated at a point on the first and the second surface are opposite. The exception DomainError is raised if TangentFaces returns False.

        """
        return _IntPatch.IntPatch_ImpImpIntersection_OppositeFaces(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        theIsReqToKeepRLine: bool (optional, default to Standard_False)

        Return
        -------
        None

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

        """
        return _IntPatch.IntPatch_ImpImpIntersection_Perform(self, *args)

    def Point(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.

        """
        return _IntPatch.IntPatch_ImpImpIntersection_Point(self, *args)

    def TangentFaces(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the two patches are considered as entirely tangent, i.e every restriction arc of one patch is inside the geometric base of the other patch.

        """
        return _IntPatch.IntPatch_ImpImpIntersection_TangentFaces(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def GetStatus(self):
    	pass

    __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"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        Surf1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        Surf2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        Fleche: float
        Pas: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_ImpPrmIntersection_swiginit(self, _IntPatch.new_IntPatch_ImpPrmIntersection(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the calculus was successful.

        """
        return _IntPatch.IntPatch_ImpPrmIntersection_IsDone(self, *args)

    def IsEmpty(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the is no intersection.

        """
        return _IntPatch.IntPatch_ImpPrmIntersection_IsEmpty(self, *args)

    def Line(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<IntPatch_Line>

        Description
        -----------
        Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.

        """
        return _IntPatch.IntPatch_ImpPrmIntersection_Line(self, *args)

    def NbLines(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of intersection lines.

        """
        return _IntPatch.IntPatch_ImpPrmIntersection_NbLines(self, *args)

    def NbPnts(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of 'single' points.

        """
        return _IntPatch.IntPatch_ImpPrmIntersection_NbPnts(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Surf1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        Surf2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        Fleche: float
        Pas: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ImpPrmIntersection_Perform(self, *args)

    def Point(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.

        """
        return _IntPatch.IntPatch_ImpPrmIntersection_Point(self, *args)

    def SetStartPoint(self, *args):
        r"""

        Parameters
        ----------
        U: float
        V: float

        Return
        -------
        None

        Description
        -----------
        to search for solution from the given point.

        """
        return _IntPatch.IntPatch_ImpPrmIntersection_SetStartPoint(self, *args)

    __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"""
        Return
        -------
        None

        Description
        -----------
        Constructs an empty interference of Polyhedron.

        Parameters
        ----------
        Obje1: IntPatch_Polyhedron
        Obje2: IntPatch_Polyhedron

        Return
        -------
        None

        Description
        -----------
        Constructs and computes an interference between the two Polyhedra.

        Parameters
        ----------
        Obje: IntPatch_Polyhedron

        Return
        -------
        None

        Description
        -----------
        Constructs and computes the self interference of a Polyhedron.

        """
        _IntPatch.IntPatch_InterferencePolyhedron_swiginit(self, _IntPatch.new_IntPatch_InterferencePolyhedron(*args))

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Obje1: IntPatch_Polyhedron
        Obje2: IntPatch_Polyhedron

        Return
        -------
        None

        Description
        -----------
        Computes the interference between the two Polyhedra.

        Parameters
        ----------
        Obje: IntPatch_Polyhedron

        Return
        -------
        None

        Description
        -----------
        Computes the self interference of a Polyhedron.

        """
        return _IntPatch.IntPatch_InterferencePolyhedron_Perform(self, *args)

    __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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_Intersection_swiginit(self, _IntPatch.new_IntPatch_Intersection(*args))

    @staticmethod
    def CheckSingularPoints(*args):
        r"""

        Parameters
        ----------
        theS1: Adaptor3d_Surface
        theD1: Adaptor3d_TopolTool
        theS2: Adaptor3d_Surface

        Return
        -------
        theDist: float

        Description
        -----------
        Checks if surface theS1 has degenerated boundary (dS/du or dS/dv = 0) and calculates minimal distance between corresponding singular points and surface theS2 If singular point exists the method returns 'true' and stores minimal distance in theDist.

        """
        return _IntPatch.IntPatch_Intersection_CheckSingularPoints(*args)

    @staticmethod
    def DefineUVMaxStep(*args):
        r"""

        Parameters
        ----------
        theS1: Adaptor3d_Surface
        theD1: Adaptor3d_TopolTool
        theS2: Adaptor3d_Surface
        theD2: Adaptor3d_TopolTool

        Return
        -------
        float

        Description
        -----------
        Calculates recommended value for myUVMaxStep depending on surfaces and their domains.

        """
        return _IntPatch.IntPatch_Intersection_DefineUVMaxStep(*args)

    def Dump(self, *args):
        r"""

        Parameters
        ----------
        Mode: int
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool

        Return
        -------
        None

        Description
        -----------
        Dump of each result line. Mode for more accurate dumps.

        """
        return _IntPatch.IntPatch_Intersection_Dump(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the calculus was successful.

        """
        return _IntPatch.IntPatch_Intersection_IsDone(self, *args)

    def IsEmpty(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the is no intersection.

        """
        return _IntPatch.IntPatch_Intersection_IsEmpty(self, *args)

    def Line(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<IntPatch_Line>

        Description
        -----------
        Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.

        """
        return _IntPatch.IntPatch_Intersection_Line(self, *args)

    def NbLines(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of intersection lines.

        """
        return _IntPatch.IntPatch_Intersection_NbLines(self, *args)

    def NbPnts(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of 'single' points.

        """
        return _IntPatch.IntPatch_Intersection_NbPnts(self, *args)

    def OppositeFaces(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True when the TangentFaces returns True and the normal vectors evaluated at a point on the first and the second surface are opposite. The exception DomainError is raised if TangentFaces returns False.

        """
        return _IntPatch.IntPatch_Intersection_OppositeFaces(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        isGeomInt: bool (optional, default to Standard_True)
        theIsReqToKeepRLine: bool (optional, default to Standard_False)
        theIsReqToPostWLProc: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        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. Flag theIsReqToPostWLProc has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. If theIsReqToPostWLProc == False, then we will work with Walking-line obtained after intersection algorithm directly (without any post-processing).

        Parameters
        ----------
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        LOfPnts: IntSurf_ListOfPntOn2S
        isGeomInt: bool (optional, default to Standard_True)
        theIsReqToKeepRLine: bool (optional, default to Standard_False)
        theIsReqToPostWLProc: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        If isGeomInt == Standard_False, then method Param-Param intersection will be used. 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. Flag theIsReqToPostWLProc has been entered only for compatibility with TopOpeBRep package. It shall be deleted after deleting TopOpeBRep. If theIsReqToPostWLProc == False, then we will work with Walking-line obtained after intersection algorithm directly (without any post-processing).

        Parameters
        ----------
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool
        U1: float
        V1: float
        U2: float
        V2: float
        TolArc: float
        TolTang: float

        Return
        -------
        None

        Description
        -----------
        Perform with start point.

        Parameters
        ----------
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float

        Return
        -------
        None

        Description
        -----------
        Uses for finding self-intersected surfaces.

        """
        return _IntPatch.IntPatch_Intersection_Perform(self, *args)

    def Point(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the point of range Index. An exception is raised if Index<=0 or Index>NbPnt.

        """
        return _IntPatch.IntPatch_Intersection_Point(self, *args)

    @staticmethod
    def PrepareSurfaces(*args):
        r"""

        Parameters
        ----------
        theS1: Adaptor3d_Surface
        theD1: Adaptor3d_TopolTool
        theS2: Adaptor3d_Surface
        theD2: Adaptor3d_TopolTool
        Tol: float
        theSeqHS1: Adaptor3d_Surface
        theSeqHS2: Adaptor3d_Surface

        Return
        -------
        None

        Description
        -----------
        Prepares surfaces for intersection.

        """
        return _IntPatch.IntPatch_Intersection_PrepareSurfaces(*args)

    def SequenceOfLine(self, *args):
        r"""
        Return
        -------
        IntPatch_SequenceOfLine

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_Intersection_SequenceOfLine(self, *args)

    def SetTolerances(self, *args):
        r"""

        Parameters
        ----------
        TolArc: float
        TolTang: float
        UVMaxStep: float
        Fleche: float

        Return
        -------
        None

        Description
        -----------
        Set the tolerances used by the algorithms: --- Implicit - Parametric --- Parametric - Parametric --- Implicit - Implicit //! TolArc is used to compute the intersections between the restrictions of a surface and a walking line. //! TolTang is used to compute the points on a walking line, and in geometric algorithms. //! Fleche is a parameter used in the walking algorithms to provide small curvatures on a line. //! UVMaxStep is a parameter used in the walking algorithms to compute the distance between to points in their respective parametric spaces.

        """
        return _IntPatch.IntPatch_Intersection_SetTolerances(self, *args)

    def TangentFaces(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the two patches are considered as entirely tangent, i-e every restriction arc of one patch is inside the geometric base of the other patch.

        """
        return _IntPatch.IntPatch_Intersection_TangentFaces(self, *args)

    __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

    def ArcType(self, *args):
        r"""
        Return
        -------
        IntPatch_IType

        Description
        -----------
        Returns the type of geometry 3d (Line, Circle, Parabola, Hyperbola, Ellipse, Analytic, Walking, Restriction).

        """
        return _IntPatch.IntPatch_Line_ArcType(self, *args)

    def IsTangent(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the intersection is a line of tangency between the 2 patches.

        """
        return _IntPatch.IntPatch_Line_IsTangent(self, *args)

    def IsUIsoOnS1(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the intersection is a U isoparametric curve on the first patch.

        """
        return _IntPatch.IntPatch_Line_IsUIsoOnS1(self, *args)

    def IsUIsoOnS2(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the intersection is a U isoparametric curve on the second patch.

        """
        return _IntPatch.IntPatch_Line_IsUIsoOnS2(self, *args)

    def IsVIsoOnS1(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the intersection is a V isoparametric curve on the first patch.

        """
        return _IntPatch.IntPatch_Line_IsVIsoOnS1(self, *args)

    def IsVIsoOnS2(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the intersection is a V isoparametric curve on the second patch.

        """
        return _IntPatch.IntPatch_Line_IsVIsoOnS2(self, *args)

    def SetValue(self, *args):
        r"""

        Parameters
        ----------
        Uiso1: bool
        Viso1: bool
        Uiso2: bool
        Viso2: bool

        Return
        -------
        None

        Description
        -----------
        To set the values returned by IsUIsoS1,.... The default values are False.

        """
        return _IntPatch.IntPatch_Line_SetValue(self, *args)

    def SituationS1(self, *args):
        r"""
        Return
        -------
        IntSurf_Situation

        Description
        -----------
        Returns the situation (INSIDE/OUTSIDE/UNKNOWN) of the first patch compared to the second one, when TransitionOnS1 or TransitionOnS2 returns TOUCH. Otherwise, an exception is raised.

        """
        return _IntPatch.IntPatch_Line_SituationS1(self, *args)

    def SituationS2(self, *args):
        r"""
        Return
        -------
        IntSurf_Situation

        Description
        -----------
        Returns the situation (INSIDE/OUTSIDE/UNKNOWN) of the second patch compared to the first one, when TransitionOnS1 or TransitionOnS2 returns TOUCH. Otherwise, an exception is raised.

        """
        return _IntPatch.IntPatch_Line_SituationS2(self, *args)

    def TransitionOnS1(self, *args):
        r"""
        Return
        -------
        IntSurf_TypeTrans

        Description
        -----------
        Returns the type of the transition of the line for the first surface. The transition is 'constant' along the line. The transition is IN if the line is oriented in such a way that the system of vector (N1,N2,T) is right-handed, where N1 is the normal to the first surface at a point P, N2 is the normal to the second surface at a point P, T is the tangent to the intersection line at P. If the system of vector is left-handed, the transition is OUT. When N1 and N2 are colinear all along the intersection line, the transition will be - TOUCH, if it is possible to use the 2nd derivatives to determine the position of one surafce compared to the other (see Situation) - UNDECIDED otherwise. //! If one of the transition is TOUCH or UNDECIDED, the other one has got the same value.

        """
        return _IntPatch.IntPatch_Line_TransitionOnS1(self, *args)

    def TransitionOnS2(self, *args):
        r"""
        Return
        -------
        IntSurf_TypeTrans

        Description
        -----------
        Returns the type of the transition of the line for the second surface. The transition is 'constant' along the line.

        """
        return _IntPatch.IntPatch_Line_TransitionOnS2(self, *args)


    @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"""

        Parameters
        ----------
        mode: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_LineConstructor_swiginit(self, _IntPatch.new_IntPatch_LineConstructor(*args))

    def Line(self, *args):
        r"""

        Parameters
        ----------
        index: int

        Return
        -------
        opencascade::handle<IntPatch_Line>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_LineConstructor_Line(self, *args)

    def NbLines(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_LineConstructor_NbLines(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        SL: IntPatch_SequenceOfLine
        L: IntPatch_Line
        S1: Adaptor3d_Surface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_Surface
        D2: Adaptor3d_TopolTool
        Tol: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_LineConstructor_Perform(self, *args)

    __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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Empty constructor.

        """
        _IntPatch.IntPatch_Point_swiginit(self, _IntPatch.new_IntPatch_Point(*args))

    def ArcOnS1(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        Returns the arc of restriction containing the vertex. The exception DomainError is raised if IsOnDomS1 returns False.

        """
        return _IntPatch.IntPatch_Point_ArcOnS1(self, *args)

    def ArcOnS2(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        Returns the arc of restriction containing the vertex. The exception DomainError is raised if IsOnDomS2 returns False.

        """
        return _IntPatch.IntPatch_Point_ArcOnS2(self, *args)

    def Dump(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_Point_Dump(self, *args)

    def IsMultiple(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the point belongs to several intersection lines.

        """
        return _IntPatch.IntPatch_Point_IsMultiple(self, *args)

    def IsOnDomS1(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the point is on a boundary of the domain of the first patch.

        """
        return _IntPatch.IntPatch_Point_IsOnDomS1(self, *args)

    def IsOnDomS2(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the point is on a boundary of the domain of the second patch.

        """
        return _IntPatch.IntPatch_Point_IsOnDomS2(self, *args)

    def IsTangencyPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the Point is a tangency point between the surfaces. If the Point is on one of the domain (IsOnDomS1 returns True or IsOnDomS2 returns True), an exception is raised.

        """
        return _IntPatch.IntPatch_Point_IsTangencyPoint(self, *args)

    def IsVertexOnS1(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the point is a vertex on the initial restriction facet of the first surface.

        """
        return _IntPatch.IntPatch_Point_IsVertexOnS1(self, *args)

    def IsVertexOnS2(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the point is a vertex on the initial restriction facet of the first surface.

        """
        return _IntPatch.IntPatch_Point_IsVertexOnS2(self, *args)

    def ParameterOnArc1(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the parameter of the point on the arc returned by the method ArcOnS2. The exception DomainError is raised if IsOnDomS1 returns False.

        """
        return _IntPatch.IntPatch_Point_ParameterOnArc1(self, *args)

    def ParameterOnArc2(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the parameter of the point on the arc returned by the method ArcOnS2. The exception DomainError is raised if IsOnDomS2 returns False.

        """
        return _IntPatch.IntPatch_Point_ParameterOnArc2(self, *args)

    def ParameterOnLine(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        This method returns the parameter of the point on the intersection line. If the points does not belong to an intersection line, the value returned does not have any sens.

        """
        return _IntPatch.IntPatch_Point_ParameterOnLine(self, *args)

    def Parameters(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        U1: float
        V1: float
        U2: float
        V2: float

        Description
        -----------
        Returns the parameters on the first and on the second surface of the point.

        """
        return _IntPatch.IntPatch_Point_Parameters(self, *args)

    def ParametersOnS1(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        U1: float
        V1: float

        Description
        -----------
        Returns the parameters on the first surface of the point.

        """
        return _IntPatch.IntPatch_Point_ParametersOnS1(self, *args)

    def ParametersOnS2(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        U2: float
        V2: float

        Description
        -----------
        Returns the parameters on the second surface of the point.

        """
        return _IntPatch.IntPatch_Point_ParametersOnS2(self, *args)

    def PntOn2S(self, *args):
        r"""
        Return
        -------
        IntSurf_PntOn2S

        Description
        -----------
        Returns the PntOn2S (geometric Point and the parameters).

        """
        return _IntPatch.IntPatch_Point_PntOn2S(self, *args)

    def ReverseTransition(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_Point_ReverseTransition(self, *args)

    def SetArc(self, *args):
        r"""

        Parameters
        ----------
        OnFirst: bool
        A: Adaptor2d_Curve2d
        Param: float
        TLine: IntSurf_Transition
        TArc: IntSurf_Transition

        Return
        -------
        None

        Description
        -----------
        Sets the values of a point which is on one of the domain, when both surfaces are implicit ones. If OnFirst is True, the point is on the domain of the first patch, otherwise the point is on the domain of the second surface.

        """
        return _IntPatch.IntPatch_Point_SetArc(self, *args)

    def SetMultiple(self, *args):
        r"""

        Parameters
        ----------
        IsMult: bool

        Return
        -------
        None

        Description
        -----------
        Sets (or unsets) the point as a point on several intersection line.

        """
        return _IntPatch.IntPatch_Point_SetMultiple(self, *args)

    def SetParameter(self, *args):
        r"""

        Parameters
        ----------
        Para: float

        Return
        -------
        None

        Description
        -----------
        Set the value of the parameter on the intersection line.

        """
        return _IntPatch.IntPatch_Point_SetParameter(self, *args)

    def SetParameters(self, *args):
        r"""

        Parameters
        ----------
        U1: float
        V1: float
        U2: float
        V2: float

        Return
        -------
        None

        Description
        -----------
        Sets the values of the parameters of the point on each surface.

        """
        return _IntPatch.IntPatch_Point_SetParameters(self, *args)

    def SetTolerance(self, *args):
        r"""

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_Point_SetTolerance(self, *args)

    def SetValue(self, *args):
        r"""

        Parameters
        ----------
        Pt: gp_Pnt
        Tol: float
        Tangent: bool

        Return
        -------
        None

        Description
        -----------
        Sets the values of a point which is on no domain, when both surfaces are implicit ones. If Tangent is True, the point is a point of tangency between the surfaces.

        Parameters
        ----------
        Pt: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        thePOn2S: IntSurf_PntOn2S

        Return
        -------
        None

        Description
        -----------
        Sets the value of <pt> member.

        """
        return _IntPatch.IntPatch_Point_SetValue(self, *args)

    def SetVertex(self, *args):
        r"""

        Parameters
        ----------
        OnFirst: bool
        V: Adaptor3d_HVertex

        Return
        -------
        None

        Description
        -----------
        Sets the values of a point which is a vertex on the initial facet of restriction of one of the surface. If OnFirst is True, the point is on the domain of the first patch, otherwise the point is on the domain of the second surface.

        """
        return _IntPatch.IntPatch_Point_SetVertex(self, *args)

    def Tolerance(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        This method returns the fuzziness on the point.

        """
        return _IntPatch.IntPatch_Point_Tolerance(self, *args)

    def TransitionLineArc1(self, *args):
        r"""
        Return
        -------
        IntSurf_Transition

        Description
        -----------
        Returns the transition of the point on the intersection line with the arc on S1. The exception DomainError is raised if IsOnDomS1 returns False.

        """
        return _IntPatch.IntPatch_Point_TransitionLineArc1(self, *args)

    def TransitionLineArc2(self, *args):
        r"""
        Return
        -------
        IntSurf_Transition

        Description
        -----------
        Returns the transition of the point on the intersection line with the arc on S2. The exception DomainError is raised if IsOnDomS2 returns False.

        """
        return _IntPatch.IntPatch_Point_TransitionLineArc2(self, *args)

    def TransitionOnS1(self, *args):
        r"""
        Return
        -------
        IntSurf_Transition

        Description
        -----------
        Returns the transition between the intersection line returned by the method Line and the arc on S1 returned by ArcOnS1(). The exception DomainError is raised if IsOnDomS1 returns False.

        """
        return _IntPatch.IntPatch_Point_TransitionOnS1(self, *args)

    def TransitionOnS2(self, *args):
        r"""
        Return
        -------
        IntSurf_Transition

        Description
        -----------
        Returns the transition between the intersection line returned by the method Line and the arc on S2 returned by ArcOnS2. The exception DomainError is raised if IsOnDomS2 returns False.

        """
        return _IntPatch.IntPatch_Point_TransitionOnS2(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the intersection point (geometric information).

        """
        return _IntPatch.IntPatch_Point_Value(self, *args)

    def VertexOnS1(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_HVertex>

        Description
        -----------
        Returns the information about the point when it is on the domain of the first patch, i-e when the function IsVertexOnS1 returns True. Otherwise, an exception is raised.

        """
        return _IntPatch.IntPatch_Point_VertexOnS1(self, *args)

    def VertexOnS2(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_HVertex>

        Description
        -----------
        Returns the information about the point when it is on the domain of the second patch, i-e when the function IsVertexOnS2 returns True. Otherwise, an exception is raised.

        """
        return _IntPatch.IntPatch_Point_VertexOnS2(self, *args)

    __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

    def Dump(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_Polygo_Dump(self, *args)

    def Error(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_Polygo_Error(self, *args)

    def NbPoints(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_Polygo_NbPoints(self, *args)

    def Point(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Pnt2d

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_Polygo_Point(self, *args)

    __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

    @staticmethod
    def Bounding(*args):
        r"""

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron

        Return
        -------
        Bnd_Box

        Description
        -----------
        Give the bounding box of the Polyhedron.

        """
        return _IntPatch.IntPatch_PolyhedronTool_Bounding(*args)

    @staticmethod
    def ComponentsBounding(*args):
        r"""

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron

        Return
        -------
        opencascade::handle<Bnd_HArray1OfBox>

        Description
        -----------
        Give the array of boxes. The box <n> corresponding to the triangle <n>.

        """
        return _IntPatch.IntPatch_PolyhedronTool_ComponentsBounding(*args)

    @staticmethod
    def DeflectionOverEstimation(*args):
        r"""

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron

        Return
        -------
        float

        Description
        -----------
        Give the tolerance of the polygon.

        """
        return _IntPatch.IntPatch_PolyhedronTool_DeflectionOverEstimation(*args)

    @staticmethod
    def NbTriangles(*args):
        r"""

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron

        Return
        -------
        int

        Description
        -----------
        Give the number of triangles in this polyhedral surface.

        """
        return _IntPatch.IntPatch_PolyhedronTool_NbTriangles(*args)

    @staticmethod
    def Point(*args):
        r"""

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron
        Index: int

        Return
        -------
        gp_Pnt

        Description
        -----------
        Give the point of index i in the polyhedral surface.

        """
        return _IntPatch.IntPatch_PolyhedronTool_Point(*args)

    @staticmethod
    def TriConnex(*args):
        r"""

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron
        Triang: int
        Pivot: int
        Pedge: int

        Return
        -------
        TriCon: int
        OtherP: int

        Description
        -----------
        Gives the address Tricon of the triangle connexe to the triangle of address Triang by the edge Pivot Pedge and the third point of this connexe triangle. When we are on a free edge TriCon==0 but the function return the value of the triangle in the other side of Pivot on the free edge. Used to turn around a vertex.

        """
        return _IntPatch.IntPatch_PolyhedronTool_TriConnex(*args)

    @staticmethod
    def Triangle(*args):
        r"""

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron
        Index: int

        Return
        -------
        P1: int
        P2: int
        P3: int

        Description
        -----------
        Give the indices of the 3 points of the triangle of address Index in the Polyhedron.

        """
        return _IntPatch.IntPatch_PolyhedronTool_Triangle(*args)

    __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)
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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Empty Constructor.

        """
        _IntPatch.IntPatch_PrmPrmIntersection_swiginit(self, _IntPatch.new_IntPatch_PrmPrmIntersection(*args))

    def CodeReject(self, *args):
        r"""

        Parameters
        ----------
        x1: float
        y1: float
        z1: float
        x2: float
        y2: float
        z2: float
        x3: float
        y3: float
        z3: float

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_CodeReject(self, *args)

    def DansGrille(self, *args):
        r"""

        Parameters
        ----------
        t: int

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_DansGrille(self, *args)

    def GrilleInteger(self, *args):
        r"""

        Parameters
        ----------
        ix: int
        iy: int
        iz: int

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_GrilleInteger(self, *args)

    def IntegerGrille(self, *args):
        r"""

        Parameters
        ----------
        t: int

        Return
        -------
        ix: int
        iy: int
        iz: int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_IntegerGrille(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the calculus was successful.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_IsDone(self, *args)

    def IsEmpty(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the is no intersection.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_IsEmpty(self, *args)

    def Line(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<IntPatch_Line>

        Description
        -----------
        Returns the line of range Index. An exception is raised if Index<=0 or Index>NbLine.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_Line(self, *args)

    def NbLines(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of intersection lines.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_NbLines(self, *args)

    def NbPointsGrille(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_NbPointsGrille(self, *args)

    def NewLine(self, *args):
        r"""

        Parameters
        ----------
        Caro1: Adaptor3d_Surface
        Caro2: Adaptor3d_Surface
        IndexLine: int
        LowPoint: int
        HighPoint: int
        NbPoints: int

        Return
        -------
        opencascade::handle<IntPatch_Line>

        Description
        -----------
        Computes about <NbPoints> Intersection Points on the Line <IndexLine> between the Points of Index <LowPoint> and <HighPoint>. //! All the points of the line of index <IndexLine> with an index between <LowPoint> and <HighPoint> are in the returned line. New Points are inserted between existing points if those points are not too closed. //! An exception is raised if Index<=0 or Index>NbLine. or if IsDone returns False.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_NewLine(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Caro1: Adaptor3d_Surface
        Polyhedron1: IntPatch_Polyhedron
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_Surface
        Polyhedron2: IntPatch_Polyhedron
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Return
        -------
        None

        Description
        -----------
        Performs the intersection between <Caro1> and <Caro2>. Associated Polyhedrons <Polyhedron1> and <Polyhedron2> are given.

        Parameters
        ----------
        Caro1: Adaptor3d_Surface
        Polyhedron1: IntPatch_Polyhedron
        Domain1: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        Caro1: Adaptor3d_Surface
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_Surface
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float
        ClearFlag: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.

        Parameters
        ----------
        Caro1: Adaptor3d_Surface
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_Surface
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float
        ListOfPnts: IntSurf_ListOfPntOn2S

        Return
        -------
        None

        Description
        -----------
        Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.

        Parameters
        ----------
        Caro1: Adaptor3d_Surface
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_Surface
        Domain2: Adaptor3d_TopolTool
        U1: float
        V1: float
        U2: float
        V2: float
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Return
        -------
        None

        Description
        -----------
        Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.

        Parameters
        ----------
        Caro1: Adaptor3d_Surface
        Domain1: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Return
        -------
        None

        Description
        -----------
        Performs the intersection between <Caro1> and <Caro2>. The method computes the polyhedron on each surface.

        Parameters
        ----------
        Caro1: Adaptor3d_Surface
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_Surface
        Polyhedron2: IntPatch_Polyhedron
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Return
        -------
        None

        Description
        -----------
        Performs the intersection between <Caro1> and <Caro2>. //! The polyhedron which approximates <Caro2>, <Polyhedron2> is given. The other one is computed.

        Parameters
        ----------
        Caro1: Adaptor3d_Surface
        Polyhedron1: IntPatch_Polyhedron
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_Surface
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Return
        -------
        None

        Description
        -----------
        Performs the intersection between <Caro1> and <Caro2>. //! The polyhedron which approximates <Caro1>, <Polyhedron1> is given. The other one is computed.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_Perform(self, *args)

    def PointDepart(self, *args):
        r"""

        Parameters
        ----------
        LineOn2S: IntSurf_LineOn2S
        S1: Adaptor3d_Surface
        SU1: int
        SV1: int
        S2: Adaptor3d_Surface
        SU2: int
        SV2: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_PointDepart(self, *args)

    def Remplit(self, *args):
        r"""

        Parameters
        ----------
        a: int
        b: int
        c: int
        Map: IntPatch_PrmPrmIntersection_T3Bits

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_Remplit(self, *args)

    def RemplitLin(self, *args):
        r"""

        Parameters
        ----------
        x1: int
        y1: int
        z1: int
        x2: int
        y2: int
        z2: int
        Map: IntPatch_PrmPrmIntersection_T3Bits

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_RemplitLin(self, *args)

    def RemplitTri(self, *args):
        r"""

        Parameters
        ----------
        x1: int
        y1: int
        z1: int
        x2: int
        y2: int
        z2: int
        x3: int
        y3: int
        z3: int
        Map: IntPatch_PrmPrmIntersection_T3Bits

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_RemplitTri(self, *args)

    __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

    def __init__(self, *args):
        r"""

        Parameters
        ----------
        size: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_PrmPrmIntersection_T3Bits_swiginit(self, _IntPatch.new_IntPatch_PrmPrmIntersection_T3Bits(*args))

    def Add(self, *args):
        r"""

        Parameters
        ----------
        t: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_T3Bits_Add(self, *args)

    def And(self, *args):
        r"""

        Parameters
        ----------
        Oth: IntPatch_PrmPrmIntersection_T3Bits

        Return
        -------
        indiceprecedent: int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_T3Bits_And(self, *args)

    def Raz(self, *args):
        r"""

        Parameters
        ----------
        t: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_T3Bits_Raz(self, *args)

    def ResetAnd(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_T3Bits_ResetAnd(self, *args)

    def Val(self, *args):
        r"""

        Parameters
        ----------
        t: int

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PrmPrmIntersection_T3Bits_Val(self, *args)

    __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

    @staticmethod
    def PutVertexOnLine(*args):
        r"""

        Parameters
        ----------
        L: IntPatch_Line
        Surf: Adaptor3d_Surface
        Domain: Adaptor3d_TopolTool
        OtherSurf: Adaptor3d_Surface
        OnFirst: bool
        Tol: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RstInt_PutVertexOnLine(*args)

    __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)
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

    @staticmethod
    def AddCrossUVIsoPoint(*args):
        r"""

        Parameters
        ----------
        theQSurf: Adaptor3d_Surface
        thePSurf: Adaptor3d_Surface
        theRefPt: IntSurf_PntOn2S
        theTol3d: float
        theAddedPoint: IntSurf_PntOn2S
        theIsReversed: bool (optional, default to Standard_False)

        Return
        -------
        bool

        Description
        -----------
        Adds the point defined as intersection of two isolines (U = 0 and V = 0) on theQSurf in theLine. theRefPt is used to correct adjusting parameters. If theIsReversed is True then theQSurf correspond to the second (otherwise, the first) surface while forming intersection point IntSurf_PntOn2S.

        """
        return _IntPatch.IntPatch_SpecialPoints_AddCrossUVIsoPoint(*args)

    @staticmethod
    def AddPointOnUorVIso(*args):
        r"""

        Parameters
        ----------
        theQSurf: Adaptor3d_Surface
        thePSurf: Adaptor3d_Surface
        theRefPt: IntSurf_PntOn2S
        theIsU: bool
        theIsoParameter: float
        theToler: math_VectorBase<double >
        theInitPoint: math_VectorBase<double >
        theInfBound: math_VectorBase<double >
        theSupBound: math_VectorBase<double >
        theAddedPoint: IntSurf_PntOn2S
        theIsReversed: bool (optional, default to Standard_False)

        Return
        -------
        bool

        Description
        -----------
        Adds the point lain strictly in the isoline U = 0 or V = 0 of theQSurf, in theLine. theRefPt is used to correct adjusting parameters. If theIsReversed is True then theQSurf corresponds to the second (otherwise, the first) surface while forming intersection point IntSurf_PntOn2S. All math_Vector-objects must be filled as follows: [1] - U-parameter of thePSurf; [2] - V-parameter of thePSurf; [3] - U- (if V-isoline is considered) or V-parameter (if U-isoline is considered) of theQSurf.

        """
        return _IntPatch.IntPatch_SpecialPoints_AddPointOnUorVIso(*args)

    @staticmethod
    def AddSingularPole(*args):
        r"""

        Parameters
        ----------
        theQSurf: Adaptor3d_Surface
        thePSurf: Adaptor3d_Surface
        thePtIso: IntSurf_PntOn2S
        theVertex: IntPatch_Point
        theAddedPoint: IntSurf_PntOn2S
        theIsReversed: bool (optional, default to Standard_False)
        theIsReqRefCheck: bool (optional, default to Standard_False)

        Return
        -------
        bool

        Description
        -----------
        Computes the pole of sphere to add it in the intersection line. Stores the result in theAddedPoint variable (does not add in the line). At that, cone and sphere (with singularity) must be set in theQSurf parameter. By default (if theIsReversed == False), theQSurf is the first surface of the Walking line. If it is not, theIsReversed parameter must be set to True. theIsReqRefCheck is True if and only if 3D-point of theRefPt must be pole or apex for check (e.g. if it is vertex). thePtIso is the reference point for obtaining isoline where must be placed the Apex/Pole. //! ATTENTION!!! theVertex must be initialized before calling the method .

        """
        return _IntPatch.IntPatch_SpecialPoints_AddSingularPole(*args)

    @staticmethod
    def AdjustPointAndVertex(*args):
        r"""

        Parameters
        ----------
        theRefPoint: IntSurf_PntOn2S
        theArrPeriods: float
        theNewPoint: IntSurf_PntOn2S
        theVertex: IntPatch_Point * (optional, default to 0)

        Return
        -------
        None

        Description
        -----------
        Sets theNewPoint parameters in 2D-space the closest to theRefPoint with help of adding/subtracting corresponding periods. theArrPeriods must be filled as follows: {<U-period of 1st surface>, <V-period of 1st surface>, <U-period of 2nd surface>, <V-period of 2nd surface>}. If theVertex != 0 then its parameters will be filled as corresponding parameters of theNewPoint. //! ATTENTION!!! theNewPoint is not only Output parameter. It is Input/Output one. I.e. theNewPoint is reference point together with theRefPt.

        """
        return _IntPatch.IntPatch_SpecialPoints_AdjustPointAndVertex(*args)

    @staticmethod
    def ContinueAfterSpecialPoint(*args):
        r"""

        Parameters
        ----------
        theQSurf: Adaptor3d_Surface
        thePSurf: Adaptor3d_Surface
        theRefPt: IntSurf_PntOn2S
        theSPType: IntPatch_SpecPntType
        theTol2D: float
        theNewPoint: IntSurf_PntOn2S
        theIsReversed: bool (optional, default to Standard_False)

        Return
        -------
        bool

        Description
        -----------
        Special point has already been added in the line. Now, we need in correct prolongation of the line or in start new line. This function returns new point. //! ATTENTION!!! theNewPoint is not only Output parameter. It is Input/Output one. I.e. theNewPoint is reference point together with theRefPt.

        """
        return _IntPatch.IntPatch_SpecialPoints_ContinueAfterSpecialPoint(*args)

    __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)
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

    def __init__(self, *args):
        r"""

        Parameters
        ----------
        theAllocator: IntSurf_Allocator (optional, default to 0)

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_TheIWLineOfTheIWalking_swiginit(self, _IntPatch.new_IntPatch_TheIWLineOfTheIWalking(*args))

    def AddIndexPassing(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        None

        Description
        -----------
        associer a l 'indice du point sur la ligne l'indice du point passant dans l'iterateur de depart.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_AddIndexPassing(self, *args)

    def AddPoint(self, *args):
        r"""

        Parameters
        ----------
        P: IntSurf_PntOn2S

        Return
        -------
        None

        Description
        -----------
        Add a point in the line.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_AddPoint(self, *args)

    def AddStatusFirst(self, *args):
        r"""

        Parameters
        ----------
        Closed: bool
        HasFirst: bool

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        Closed: bool
        HasLast: bool
        Index: int
        P: IntSurf_PathPoint

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_AddStatusFirst(self, *args)

    def AddStatusFirstLast(self, *args):
        r"""

        Parameters
        ----------
        Closed: bool
        HasFirst: bool
        HasLast: bool

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_AddStatusFirstLast(self, *args)

    def AddStatusLast(self, *args):
        r"""

        Parameters
        ----------
        HasLast: bool

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        HasLast: bool
        Index: int
        P: IntSurf_PathPoint

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_AddStatusLast(self, *args)

    def Cut(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        None

        Description
        -----------
        Cut the line at the point of rank Index.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_Cut(self, *args)

    def FirstPoint(self, *args):
        r"""
        Return
        -------
        IntSurf_PathPoint

        Description
        -----------
        Returns the first point of the line when it is a marching point. An exception is raised if HasFirstPoint returns False.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_FirstPoint(self, *args)

    def FirstPointIndex(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the Index of first point of the line when it is a marching point.This index is the index in the PointStartIterator. An exception is raised if HasFirstPoint returns False.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_FirstPointIndex(self, *args)

    def HasFirstPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the first point of the line is a marching point . when is HasFirstPoint==False ,the line begins on the natural bound of the surface.the line can be too long.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_HasFirstPoint(self, *args)

    def HasLastPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the end point of the line is a marching point (Point from IntWS). when is HasFirstPoint==False ,the line ends on the natural bound of the surface.the line can be too long.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_HasLastPoint(self, *args)

    def IsClosed(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the line is closed.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_IsClosed(self, *args)

    def IsTangentAtBegining(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_IsTangentAtBegining(self, *args)

    def IsTangentAtEnd(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_IsTangentAtEnd(self, *args)

    def LastPoint(self, *args):
        r"""
        Return
        -------
        IntSurf_PathPoint

        Description
        -----------
        Returns the last point of the line when it is a marching point. An exception is raised if HasLastPoint returns False.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_LastPoint(self, *args)

    def LastPointIndex(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the index of last point of the line when it is a marching point.This index is the index in the PointStartIterator. An exception is raised if HasLastPoint returns False.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_LastPointIndex(self, *args)

    def Line(self, *args):
        r"""
        Return
        -------
        opencascade::handle<IntSurf_LineOn2S>

        Description
        -----------
        Returns the LineOn2S contained in the walking line.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_Line(self, *args)

    def NbPassingPoint(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        returns the number of points belonging to Pnts1 which are passing point.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_NbPassingPoint(self, *args)

    def NbPoints(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of points of the line (including first point and end point: see HasLastPoint and HasFirstPoint).

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_NbPoints(self, *args)

    def PassingPoint(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IndexLine: int
        IndexPnts: int

        Description
        -----------
        returns the index of the point belonging to the line which is associated to the passing point belonging to Pnts1 an exception is raised if Index > NbPassingPoint().

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_PassingPoint(self, *args)

    def Reverse(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        reverse the points in the line. Hasfirst, HasLast are kept.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_Reverse(self, *args)

    def SetTangencyAtBegining(self, *args):
        r"""

        Parameters
        ----------
        IsTangent: bool

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_SetTangencyAtBegining(self, *args)

    def SetTangencyAtEnd(self, *args):
        r"""

        Parameters
        ----------
        IsTangent: bool

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_SetTangencyAtEnd(self, *args)

    def SetTangentVector(self, *args):
        r"""

        Parameters
        ----------
        V: gp_Vec
        Index: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_SetTangentVector(self, *args)

    def TangentVector(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        Index: int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_TangentVector(self, *args)

    def Value(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntSurf_PntOn2S

        Description
        -----------
        Returns the point of range Index. If index <= 0 or Index > NbPoints, an exception is raised.

        """
        return _IntPatch.IntPatch_TheIWLineOfTheIWalking_Value(self, *args)


    @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"""

        Parameters
        ----------
        Epsilon: float
        Deflection: float
        Step: float
        theToFillHoles: bool (optional, default to Standard_False)

        Return
        -------
        None

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

        """
        _IntPatch.IntPatch_TheIWalking_swiginit(self, _IntPatch.new_IntPatch_TheIWalking(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the calculus was successful.

        """
        return _IntPatch.IntPatch_TheIWalking_IsDone(self, *args)

    def NbLines(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of resulting polylines. An exception is raised if IsDone returns False.

        """
        return _IntPatch.IntPatch_TheIWalking_NbLines(self, *args)

    def NbSinglePnts(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of points belonging to Pnts on which no line starts or ends. An exception is raised if IsDone returns False.

        """
        return _IntPatch.IntPatch_TheIWalking_NbSinglePnts(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Pnts1: IntSurf_SequenceOfPathPoint
        Pnts2: IntSurf_SequenceOfInteriorPoint
        Func: IntPatch_TheSurfFunction
        S: Adaptor3d_Surface
        Reversed: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Searches a set of polylines starting on a point of Pnts1 or Pnts2. Each point on a resulting polyline verifies F(u,v)=0.

        Parameters
        ----------
        Pnts1: IntSurf_SequenceOfPathPoint
        Func: IntPatch_TheSurfFunction
        S: Adaptor3d_Surface
        Reversed: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Searches a set of polylines starting on a point of Pnts1. Each point on a resulting polyline verifies F(u,v)=0.

        """
        return _IntPatch.IntPatch_TheIWalking_Perform(self, *args)

    def SetTolerance(self, *args):
        r"""

        Parameters
        ----------
        Epsilon: float
        Deflection: float
        Step: float

        Return
        -------
        None

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

        """
        return _IntPatch.IntPatch_TheIWalking_SetTolerance(self, *args)

    def SinglePnt(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntSurf_PathPoint

        Description
        -----------
        Returns the point of range Index . An exception is raised if IsDone returns False. An exception is raised if Index<=0 or Index > NbSinglePnts.

        """
        return _IntPatch.IntPatch_TheIWalking_SinglePnt(self, *args)

    def Value(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<IntPatch_TheIWLineOfTheIWalking>

        Description
        -----------
        Returns the polyline of range Index. An exception is raised if IsDone is False. An exception is raised if Index<=0 or Index>NbLines.

        """
        return _IntPatch.IntPatch_TheIWalking_Value(self, *args)

    __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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        V: Adaptor3d_HVertex
        A: Adaptor2d_Curve2d
        Parameter: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        A: Adaptor2d_Curve2d
        Parameter: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_ThePathPointOfTheSOnBounds(*args))

    def Arc(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Arc(self, *args)

    def IsNew(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_IsNew(self, *args)

    def Parameter(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Parameter(self, *args)

    def SetValue(self, *args):
        r"""

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        V: Adaptor3d_HVertex
        A: Adaptor2d_Curve2d
        Parameter: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        A: Adaptor2d_Curve2d
        Parameter: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_SetValue(self, *args)

    def Tolerance(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Tolerance(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Value(self, *args)

    def Vertex(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_HVertex>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_Vertex(self, *args)

    __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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Empty constructor.

        """
        _IntPatch.IntPatch_TheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_TheSOnBounds(*args))

    def AllArcSolution(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all arc of the Arcs are solution (inside the surface). An exception is raised if IsDone returns False.

        """
        return _IntPatch.IntPatch_TheSOnBounds_AllArcSolution(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the calculus was successful.

        """
        return _IntPatch.IntPatch_TheSOnBounds_IsDone(self, *args)

    def NbPoints(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of resulting points. An exception is raised if IsDone returns False (NotDone).

        """
        return _IntPatch.IntPatch_TheSOnBounds_NbPoints(self, *args)

    def NbSegments(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of the resulting segments. An exception is raised if IsDone returns False (NotDone).

        """
        return _IntPatch.IntPatch_TheSOnBounds_NbSegments(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        F: IntPatch_ArcFunction
        Domain: Adaptor3d_TopolTool
        TolBoundary: float
        TolTangency: float
        RecheckOnRegularity: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Algorithm to find the points and parts of curves of Domain (domain of of restriction of a surface) which verify F = 0. TolBoundary defines if a curve is on Q. TolTangency defines if a point is on Q.

        """
        return _IntPatch.IntPatch_TheSOnBounds_Perform(self, *args)

    def Point(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntPatch_ThePathPointOfTheSOnBounds

        Description
        -----------
        Returns the resulting point of range Index. The exception NotDone is raised if IsDone() returns False. The exception OutOfRange is raised if Index <= 0 or Index > NbPoints.

        """
        return _IntPatch.IntPatch_TheSOnBounds_Point(self, *args)

    def Segment(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntPatch_TheSegmentOfTheSOnBounds

        Description
        -----------
        Returns the resulting segment of range Index. The exception NotDone is raised if IsDone() returns False. The exception OutOfRange is raised if Index <= 0 or Index > NbPoints.

        """
        return _IntPatch.IntPatch_TheSOnBounds_Segment(self, *args)

    __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"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        F: IntPatch_TheSurfFunction
        Surf: Adaptor3d_Surface
        T: Adaptor3d_TopolTool
        Epsilon: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_TheSearchInside_swiginit(self, _IntPatch.new_IntPatch_TheSearchInside(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSearchInside_IsDone(self, *args)

    def NbPoints(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of points. The exception NotDone if raised if IsDone returns False.

        """
        return _IntPatch.IntPatch_TheSearchInside_NbPoints(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        F: IntPatch_TheSurfFunction
        Surf: Adaptor3d_Surface
        T: Adaptor3d_TopolTool
        Epsilon: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        F: IntPatch_TheSurfFunction
        Surf: Adaptor3d_Surface
        UStart: float
        VStart: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSearchInside_Perform(self, *args)

    def Value(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntSurf_InteriorPoint

        Description
        -----------
        Returns the point of range Index. The exception NotDone if raised if IsDone returns False. The exception OutOfRange if raised if Index <= 0 or Index > NbPoints.

        """
        return _IntPatch.IntPatch_TheSearchInside_Value(self, *args)

    __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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Empty constructor.

        """
        _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_TheSegmentOfTheSOnBounds(*args))

    def Curve(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        Returns the geometric curve on the surface 's domain which is solution.

        """
        return _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_Curve(self, *args)

    def FirstPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_ThePathPointOfTheSOnBounds

        Description
        -----------
        Returns the first point.

        """
        return _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_FirstPoint(self, *args)

    def HasFirstPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if there is a vertex (ThePathPoint) defining the lowest valid parameter on the arc.

        """
        return _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_HasFirstPoint(self, *args)

    def HasLastPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if there is a vertex (ThePathPoint) defining the greatest valid parameter on the arc.

        """
        return _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_HasLastPoint(self, *args)

    def LastPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_ThePathPointOfTheSOnBounds

        Description
        -----------
        Returns the last point.

        """
        return _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_LastPoint(self, *args)

    def SetLimitPoint(self, *args):
        r"""

        Parameters
        ----------
        V: IntPatch_ThePathPointOfTheSOnBounds
        First: bool

        Return
        -------
        None

        Description
        -----------
        Defines the first point or the last point, depending on the value of the boolean First.

        """
        return _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_SetLimitPoint(self, *args)

    def SetValue(self, *args):
        r"""

        Parameters
        ----------
        A: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        Defines the concerned arc.

        """
        return _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_SetValue(self, *args)

    __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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        PS: Adaptor3d_Surface
        IS: IntSurf_Quadric

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        IS: IntSurf_Quadric

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_TheSurfFunction_swiginit(self, _IntPatch.new_IntPatch_TheSurfFunction(*args))

    def Direction2d(self, *args):
        r"""
        Return
        -------
        gp_Dir2d

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSurfFunction_Direction2d(self, *args)

    def Direction3d(self, *args):
        r"""
        Return
        -------
        gp_Vec

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSurfFunction_Direction3d(self, *args)

    def ISurface(self, *args):
        r"""
        Return
        -------
        IntSurf_Quadric

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSurfFunction_ISurface(self, *args)

    def IsTangent(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSurfFunction_IsTangent(self, *args)

    def PSurface(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSurfFunction_PSurface(self, *args)

    def Point(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSurfFunction_Point(self, *args)

    def Root(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSurfFunction_Root(self, *args)

    def Set(self, *args):
        r"""

        Parameters
        ----------
        PS: Adaptor3d_Surface

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSurfFunction_Set(self, *args)

    def SetImplicitSurface(self, *args):
        r"""

        Parameters
        ----------
        IS: IntSurf_Quadric

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_TheSurfFunction_SetImplicitSurface(self, *args)

    def Tolerance(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the value Tol so that if Abs(Func.Root())<Tol the function is considered null.

        """
        return _IntPatch.IntPatch_TheSurfFunction_Tolerance(self, *args)

    __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

    @staticmethod
    def ComputePurgedWLine(*args):
        r"""

        Parameters
        ----------
        theWLine: IntPatch_WLine
        theS1: Adaptor3d_Surface
        theS2: Adaptor3d_Surface
        theDom1: Adaptor3d_TopolTool
        theDom2: Adaptor3d_TopolTool

        Return
        -------
        opencascade::handle<IntPatch_WLine>

        Description
        -----------
        I Removes equal points (leave one of equal points) from theWLine and recompute vertex parameters. //! II Removes point out of borders in case of non periodic surfaces. //! III Removes exceed points using tube criteria: delete 7D point if it lies near to expected lines in 2d and 3d. Each task (2d, 2d, 3d) have its own tolerance and checked separately. //! Returns new WLine or null WLine if the number of the points is less than 2.

        """
        return _IntPatch.IntPatch_WLineTool_ComputePurgedWLine(*args)

    @staticmethod
    def ExtendTwoWLines(*args):
        r"""

        Parameters
        ----------
        theSlin: IntPatch_SequenceOfLine
        theS1: Adaptor3d_Surface
        theS2: Adaptor3d_Surface
        theToler3D: float
        theArrPeriods: float *
        theBoxS1: Bnd_Box2d
        theBoxS2: Bnd_Box2d
        theListOfCriticalPoints: NCollection_List<gp_Pnt>

        Return
        -------
        None

        Description
        -----------
        Extends every line from theSlin (if it is possible) to be started/finished in strictly determined point (in the place of joint of two lines). As result, some gaps between two lines will vanish. The Walking lines are supposed (algorithm will do nothing for not-Walking line) to be computed as a result of intersection. Both theS1 and theS2 must be quadrics. Other cases are not supported. theArrPeriods must be filled as follows (every value must not be negative; if the surface is not periodic the period must be equal to 0.0 strictly): {<U-period of 1st surface>, <V-period of 1st surface>, <U-period of 2nd surface>, <V-period of 2nd surface>}. theListOfCriticalPoints must contain 3D-points where joining is disabled.

        """
        return _IntPatch.IntPatch_WLineTool_ExtendTwoWLines(*args)

    @staticmethod
    def JoinWLines(*args):
        r"""

        Parameters
        ----------
        theSlin: IntPatch_SequenceOfLine
        theSPnt: IntPatch_SequenceOfPoint
        theS1: Adaptor3d_Surface
        theS2: Adaptor3d_Surface
        theTol3D: float

        Return
        -------
        None

        Description
        -----------
        Joins all WLines from theSlin to one if it is possible and records the result into theSlin again. Lines will be kept to be split if: a) they are separated (has no common points); b) resulted line (after joining) go through seam-edges or surface boundaries. //! In addition, if points in theSPnt lies at least in one of the line in theSlin, this point will be deleted.

        """
        return _IntPatch.IntPatch_WLineTool_JoinWLines(*args)

    __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)
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

    def __init__(self, *args):
        r"""

        Parameters
        ----------
        C: IntAna_Curve
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Creates an analytic intersection line when the transitions are In or Out.

        Parameters
        ----------
        C: IntAna_Curve
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Return
        -------
        None

        Description
        -----------
        Creates an analytic intersection line when the transitions are Touch.

        Parameters
        ----------
        C: IntAna_Curve
        Tang: bool

        Return
        -------
        None

        Description
        -----------
        Creates an analytic intersection line when the transitions are Undecided.

        """
        _IntPatch.IntPatch_ALine_swiginit(self, _IntPatch.new_IntPatch_ALine(*args))

    def AddVertex(self, *args):
        r"""

        Parameters
        ----------
        Pnt: IntPatch_Point

        Return
        -------
        None

        Description
        -----------
        To add a vertex in the list.

        """
        return _IntPatch.IntPatch_ALine_AddVertex(self, *args)

    def ChangeVertex(self, *args):
        r"""

        Parameters
        ----------
        theIndex: int

        Return
        -------
        IntPatch_Point

        Description
        -----------
        Allows modifying the vertex with index theIndex on the line.

        """
        return _IntPatch.IntPatch_ALine_ChangeVertex(self, *args)

    def ComputeVertexParameters(self, *args):
        r"""

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Set the parameters of all the vertex on the line. if a vertex is already in the line, its parameter is modified else a new point in the line is inserted.

        """
        return _IntPatch.IntPatch_ALine_ComputeVertexParameters(self, *args)

    def Curve(self, *args):
        r"""
        Return
        -------
        IntAna_Curve

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALine_Curve(self, *args)

    def D1(self, *args):
        r"""

        Parameters
        ----------
        U: float
        P: gp_Pnt
        Du: gp_Vec

        Return
        -------
        bool

        Description
        -----------
        Returns Standard_True when the derivative at parameter U is defined on the analytic intersection line. In that case, Du is the derivative. Returns Standard_False when it is not possible to evaluate the derivative. In both cases, P is the point at parameter U on the intersection.

        """
        return _IntPatch.IntPatch_ALine_D1(self, *args)

    def FindParameter(self, *args):
        r"""

        Parameters
        ----------
        P: gp_Pnt
        theParams: TColStd_ListOfReal

        Return
        -------
        None

        Description
        -----------
        Tries to find the parameters of the point P on the curve. If the method returns False, the 'projection' is impossible. If the method returns True at least one parameter has been found. theParams is always sorted in ascending order.

        """
        return _IntPatch.IntPatch_ALine_FindParameter(self, *args)

    def FirstParameter(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        IsIncluded: bool

        Description
        -----------
        Returns the first parameter on the intersection line. If IsIncluded returns True, Value and D1 methods can be call with a parameter equal to FirstParameter. Otherwise, the parameter must be greater than FirstParameter.

        """
        return _IntPatch.IntPatch_ALine_FirstParameter(self, *args)

    def FirstPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the IntPoint corresponding to the FirstPoint. An exception is raised when HasFirstPoint returns False.

        """
        return _IntPatch.IntPatch_ALine_FirstPoint(self, *args)

    def HasFirstPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the line has a known First point. This point is given by the method FirstPoint().

        """
        return _IntPatch.IntPatch_ALine_HasFirstPoint(self, *args)

    def HasLastPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the line has a known Last point. This point is given by the method LastPoint().

        """
        return _IntPatch.IntPatch_ALine_HasLastPoint(self, *args)

    def LastParameter(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        IsIncluded: bool

        Description
        -----------
        Returns the last parameter on the intersection line. If IsIncluded returns True, Value and D1 methods can be call with a parameter equal to LastParameter. Otherwise, the parameter must be less than LastParameter.

        """
        return _IntPatch.IntPatch_ALine_LastParameter(self, *args)

    def LastPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the IntPoint corresponding to the LastPoint. An exception is raised when HasLastPoint returns False.

        """
        return _IntPatch.IntPatch_ALine_LastPoint(self, *args)

    def NbVertex(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALine_NbVertex(self, *args)

    def Replace(self, *args):
        r"""

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Return
        -------
        None

        Description
        -----------
        Replaces the element of range Index in the list of points.

        """
        return _IntPatch.IntPatch_ALine_Replace(self, *args)

    def SetFirstPoint(self, *args):
        r"""

        Parameters
        ----------
        IndFirst: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALine_SetFirstPoint(self, *args)

    def SetLastPoint(self, *args):
        r"""

        Parameters
        ----------
        IndLast: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_ALine_SetLastPoint(self, *args)

    def Value(self, *args):
        r"""

        Parameters
        ----------
        U: float

        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the point of parameter U on the analytic intersection line.

        """
        return _IntPatch.IntPatch_ALine_Value(self, *args)

    def Vertex(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the vertex of range Index on the line.

        """
        return _IntPatch.IntPatch_ALine_Vertex(self, *args)


    @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

    def __init__(self, *args):
        r"""

        Parameters
        ----------
        L: gp_Lin
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Creates a Line as intersection line when the transitions are In or Out.

        Parameters
        ----------
        L: gp_Lin
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Return
        -------
        None

        Description
        -----------
        Creates a Line as intersection line when the transitions are Touch.

        Parameters
        ----------
        L: gp_Lin
        Tang: bool

        Return
        -------
        None

        Description
        -----------
        Creates a Line as intersection line when the transitions are Undecided.

        Parameters
        ----------
        C: gp_Circ
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Creates a circle as intersection line when the transitions are In or Out.

        Parameters
        ----------
        C: gp_Circ
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Return
        -------
        None

        Description
        -----------
        Creates a circle as intersection line when the transitions are Touch.

        Parameters
        ----------
        C: gp_Circ
        Tang: bool

        Return
        -------
        None

        Description
        -----------
        Creates a circle as intersection line when the transitions are Undecided.

        Parameters
        ----------
        E: gp_Elips
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Creates an ellipse as intersection line when the transitions are In or Out.

        Parameters
        ----------
        E: gp_Elips
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Return
        -------
        None

        Description
        -----------
        Creates an ellispe as intersection line when the transitions are Touch.

        Parameters
        ----------
        E: gp_Elips
        Tang: bool

        Return
        -------
        None

        Description
        -----------
        Creates an ellipse as intersection line when the transitions are Undecided.

        Parameters
        ----------
        P: gp_Parab
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Creates a parabola as intersection line when the transitions are In or Out.

        Parameters
        ----------
        P: gp_Parab
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Return
        -------
        None

        Description
        -----------
        Creates a parabola as intersection line when the transitions are Touch.

        Parameters
        ----------
        P: gp_Parab
        Tang: bool

        Return
        -------
        None

        Description
        -----------
        Creates a parabola as intersection line when the transitions are Undecided.

        Parameters
        ----------
        H: gp_Hypr
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Creates an hyperbola as intersection line when the transitions are In or Out.

        Parameters
        ----------
        H: gp_Hypr
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Return
        -------
        None

        Description
        -----------
        Creates an hyperbola as intersection line when the transitions are Touch.

        Parameters
        ----------
        H: gp_Hypr
        Tang: bool

        Return
        -------
        None

        Description
        -----------
        Creates an hyperbola as intersection line when the transitions are Undecided.

        """
        _IntPatch.IntPatch_GLine_swiginit(self, _IntPatch.new_IntPatch_GLine(*args))

    def AddVertex(self, *args):
        r"""

        Parameters
        ----------
        Pnt: IntPatch_Point

        Return
        -------
        None

        Description
        -----------
        To add a vertex in the list.

        """
        return _IntPatch.IntPatch_GLine_AddVertex(self, *args)

    def Circle(self, *args):
        r"""
        Return
        -------
        gp_Circ

        Description
        -----------
        Returns the Circ from gp corresponding to the intersection when ArcType returns IntPatch_Circle.

        """
        return _IntPatch.IntPatch_GLine_Circle(self, *args)

    def ComputeVertexParameters(self, *args):
        r"""

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Set the parameters of all the vertex on the line. if a vertex is already in the line, its parameter is modified else a new point in the line is inserted.

        """
        return _IntPatch.IntPatch_GLine_ComputeVertexParameters(self, *args)

    def Ellipse(self, *args):
        r"""
        Return
        -------
        gp_Elips

        Description
        -----------
        Returns the Elips from gp corresponding to the intersection when ArcType returns IntPatch_Ellipse.

        """
        return _IntPatch.IntPatch_GLine_Ellipse(self, *args)

    def FirstPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the IntPoint corresponding to the FirstPoint. An exception is raised when HasFirstPoint returns False.

        """
        return _IntPatch.IntPatch_GLine_FirstPoint(self, *args)

    def HasFirstPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the line has a known First point. This point is given by the method FirstPoint().

        """
        return _IntPatch.IntPatch_GLine_HasFirstPoint(self, *args)

    def HasLastPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the line has a known Last point. This point is given by the method LastPoint().

        """
        return _IntPatch.IntPatch_GLine_HasLastPoint(self, *args)

    def Hyperbola(self, *args):
        r"""
        Return
        -------
        gp_Hypr

        Description
        -----------
        Returns the Hypr from gp corresponding to the intersection when ArcType returns IntPatch_Hyperbola.

        """
        return _IntPatch.IntPatch_GLine_Hyperbola(self, *args)

    def LastPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the IntPoint corresponding to the LastPoint. An exception is raised when HasLastPoint returns False.

        """
        return _IntPatch.IntPatch_GLine_LastPoint(self, *args)

    def Line(self, *args):
        r"""
        Return
        -------
        gp_Lin

        Description
        -----------
        Returns the Lin from gp corresponding to the intersection when ArcType returns IntPatch_Line.

        """
        return _IntPatch.IntPatch_GLine_Line(self, *args)

    def NbVertex(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_GLine_NbVertex(self, *args)

    def Parabola(self, *args):
        r"""
        Return
        -------
        gp_Parab

        Description
        -----------
        Returns the Parab from gp corresponding to the intersection when ArcType returns IntPatch_Parabola.

        """
        return _IntPatch.IntPatch_GLine_Parabola(self, *args)

    def Replace(self, *args):
        r"""

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Return
        -------
        None

        Description
        -----------
        To replace the element of range Index in the list of points.

        """
        return _IntPatch.IntPatch_GLine_Replace(self, *args)

    def SetFirstPoint(self, *args):
        r"""

        Parameters
        ----------
        IndFirst: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_GLine_SetFirstPoint(self, *args)

    def SetLastPoint(self, *args):
        r"""

        Parameters
        ----------
        IndLast: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_GLine_SetLastPoint(self, *args)

    def Vertex(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the vertex of range Index on the line.

        """
        return _IntPatch.IntPatch_GLine_Vertex(self, *args)


    @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

    def AddVertex(self, *args):
        r"""

        Parameters
        ----------
        Pnt: IntPatch_Point
        theIsPrepend: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Adds a vertex in the list. If theIsPrepend == True the new vertex will be added before the first element of vertices sequence. Otherwise, to the end of the sequence.

        """
        return _IntPatch.IntPatch_PointLine_AddVertex(self, *args)

    def ChangeVertex(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the vertex of range Index on the line.

        """
        return _IntPatch.IntPatch_PointLine_ChangeVertex(self, *args)

    def ClearVertexes(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Removes vertices from the line.

        """
        return _IntPatch.IntPatch_PointLine_ClearVertexes(self, *args)

    @staticmethod
    def CurvatureRadiusOfIntersLine(*args):
        r"""

        Parameters
        ----------
        theS1: Adaptor3d_Surface
        theS2: Adaptor3d_Surface
        theUVPoint: IntSurf_PntOn2S

        Return
        -------
        float

        Description
        -----------
        Returns the radius of curvature of the intersection line in given point. Returns negative value if computation is not possible.

        """
        return _IntPatch.IntPatch_PointLine_CurvatureRadiusOfIntersLine(*args)

    def Curve(self, *args):
        r"""
        Return
        -------
        opencascade::handle<IntSurf_LineOn2S>

        Description
        -----------
        Returns set of intersection points.

        """
        return _IntPatch.IntPatch_PointLine_Curve(self, *args)

    def IsOutBox(self, *args):
        r"""

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        bool

        Description
        -----------
        Returns True if P is out of the box built from 3D-points.

        """
        return _IntPatch.IntPatch_PointLine_IsOutBox(self, *args)

    def IsOutSurf1Box(self, *args):
        r"""

        Parameters
        ----------
        P1: gp_Pnt2d

        Return
        -------
        bool

        Description
        -----------
        Returns True if P1 is out of the box built from the points on 1st surface.

        """
        return _IntPatch.IntPatch_PointLine_IsOutSurf1Box(self, *args)

    def IsOutSurf2Box(self, *args):
        r"""

        Parameters
        ----------
        P2: gp_Pnt2d

        Return
        -------
        bool

        Description
        -----------
        Returns True if P2 is out of the box built from the points on 2nd surface.

        """
        return _IntPatch.IntPatch_PointLine_IsOutSurf2Box(self, *args)

    def NbPnts(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of intersection points.

        """
        return _IntPatch.IntPatch_PointLine_NbPnts(self, *args)

    def NbVertex(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns number of vertices (IntPatch_Point) of the line.

        """
        return _IntPatch.IntPatch_PointLine_NbVertex(self, *args)

    def Point(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntSurf_PntOn2S

        Description
        -----------
        Returns the intersection point of range Index.

        """
        return _IntPatch.IntPatch_PointLine_Point(self, *args)

    def RemoveVertex(self, *args):
        r"""

        Parameters
        ----------
        theIndex: int

        Return
        -------
        None

        Description
        -----------
        Removes single vertex from the line.

        """
        return _IntPatch.IntPatch_PointLine_RemoveVertex(self, *args)

    def Vertex(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the vertex of range Index on the line.

        """
        return _IntPatch.IntPatch_PointLine_Vertex(self, *args)


    @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)
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"""

        Parameters
        ----------
        A: Adaptor2d_Curve2d
        NbSample: int
        Pfirst: float
        Plast: float
        BoxOtherPolygon: Bnd_Box2d

        Return
        -------
        None

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

        """
        _IntPatch.IntPatch_PolyArc_swiginit(self, _IntPatch.new_IntPatch_PolyArc(*args))

    def Parameter(self, *args):
        r"""

        Parameters
        ----------
        Index: int

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PolyArc_Parameter(self, *args)

    def SetOffset(self, *args):
        r"""

        Parameters
        ----------
        OffsetX: float
        OffsetY: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PolyArc_SetOffset(self, *args)

    __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"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        InitDefle: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _IntPatch.IntPatch_PolyLine_swiginit(self, _IntPatch.new_IntPatch_PolyLine(*args))

    def ResetError(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PolyLine_ResetError(self, *args)

    def SetRLine(self, *args):
        r"""

        Parameters
        ----------
        OnFirst: bool
        Line: IntPatch_RLine

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PolyLine_SetRLine(self, *args)

    def SetWLine(self, *args):
        r"""

        Parameters
        ----------
        OnFirst: bool
        Line: IntPatch_WLine

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_PolyLine_SetWLine(self, *args)

    __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

    def __init__(self, *args):
        r"""

        Parameters
        ----------
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Creates a restriction as an intersection line when the transitions are In or Out.

        Parameters
        ----------
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Return
        -------
        None

        Description
        -----------
        Creates a restriction as an intersection line when the transitions are Touch.

        Parameters
        ----------
        Tang: bool

        Return
        -------
        None

        Description
        -----------
        Creates a restriction as an intersection line when the transitions are Undecided.

        """
        _IntPatch.IntPatch_RLine_swiginit(self, _IntPatch.new_IntPatch_RLine(*args))

    def Add(self, *args):
        r"""

        Parameters
        ----------
        L: IntSurf_LineOn2S

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RLine_Add(self, *args)

    def ArcOnS1(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        Returns the concerned arc.

        """
        return _IntPatch.IntPatch_RLine_ArcOnS1(self, *args)

    def ArcOnS2(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        Returns the concerned arc.

        """
        return _IntPatch.IntPatch_RLine_ArcOnS2(self, *args)

    def ComputeVertexParameters(self, *args):
        r"""

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Set the parameters of all the vertex on the line. if a vertex is already in the line, its parameter is modified else a new point in the line is inserted.

        """
        return _IntPatch.IntPatch_RLine_ComputeVertexParameters(self, *args)

    def Dump(self, *args):
        r"""

        Parameters
        ----------
        theMode: int

        Return
        -------
        None

        Description
        -----------
        if (theMode == 0) then prints the information about WLine if (theMode == 1) then prints the list of 3d-points if (theMode == 2) then prints the list of 2d-points on the 1st surface Otherwise, prints list of 2d-points on the 2nd surface.

        """
        return _IntPatch.IntPatch_RLine_Dump(self, *args)

    def FirstPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the IntPoint corresponding to the FirstPoint. An exception is raised when HasFirstPoint returns False.

        """
        return _IntPatch.IntPatch_RLine_FirstPoint(self, *args)

    def HasFirstPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the line has a known First point. This point is given by the method FirstPoint().

        """
        return _IntPatch.IntPatch_RLine_HasFirstPoint(self, *args)

    def HasLastPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the line has a known Last point. This point is given by the method LastPoint().

        """
        return _IntPatch.IntPatch_RLine_HasLastPoint(self, *args)

    def HasPolygon(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RLine_HasPolygon(self, *args)

    def IsArcOnS1(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the intersection is on the domain of the first patch. Returns False if the intersection is on the domain of the second patch.

        """
        return _IntPatch.IntPatch_RLine_IsArcOnS1(self, *args)

    def IsArcOnS2(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the intersection is on the domain of the first patch. Returns False if the intersection is on the domain of the second patch.

        """
        return _IntPatch.IntPatch_RLine_IsArcOnS2(self, *args)

    def LastPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the IntPoint corresponding to the LastPoint. An exception is raised when HasLastPoint returns False.

        """
        return _IntPatch.IntPatch_RLine_LastPoint(self, *args)

    def ParamOnS1(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        p1: float
        p2: float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RLine_ParamOnS1(self, *args)

    def ParamOnS2(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        p1: float
        p2: float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RLine_ParamOnS2(self, *args)

    def Replace(self, *args):
        r"""

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Return
        -------
        None

        Description
        -----------
        Replaces the element of range Index in the list of points.

        """
        return _IntPatch.IntPatch_RLine_Replace(self, *args)

    def SetArcOnS1(self, *args):
        r"""

        Parameters
        ----------
        A: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RLine_SetArcOnS1(self, *args)

    def SetArcOnS2(self, *args):
        r"""

        Parameters
        ----------
        A: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RLine_SetArcOnS2(self, *args)

    def SetCurve(self, *args):
        r"""

        Parameters
        ----------
        theNewCurve: IntSurf_LineOn2S

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RLine_SetCurve(self, *args)

    def SetFirstPoint(self, *args):
        r"""

        Parameters
        ----------
        IndFirst: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RLine_SetFirstPoint(self, *args)

    def SetLastPoint(self, *args):
        r"""

        Parameters
        ----------
        IndLast: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_RLine_SetLastPoint(self, *args)

    def SetPoint(self, *args):
        r"""

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Return
        -------
        None

        Description
        -----------
        Set the Point of index <Index> in the LineOn2S.

        """
        return _IntPatch.IntPatch_RLine_SetPoint(self, *args)


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


    __repr__ = _dumps_object

    @methodnotwrapped
    def SetParamOnS1(self):
    	pass

    @methodnotwrapped
    def SetParamOnS2(self):
    	pass

    __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


    class IntPatch_WLType(IntEnum):
    	IntPatch_WLUnknown = 0
    	IntPatch_WLImpImp = 1
    	IntPatch_WLImpPrm = 2
    	IntPatch_WLPrmPrm = 3
    IntPatch_WLUnknown = IntPatch_WLType.IntPatch_WLUnknown
    IntPatch_WLImpImp = IntPatch_WLType.IntPatch_WLImpImp
    IntPatch_WLImpPrm = IntPatch_WLType.IntPatch_WLImpPrm
    IntPatch_WLPrmPrm = IntPatch_WLType.IntPatch_WLPrmPrm


    def __init__(self, *args):
        r"""

        Parameters
        ----------
        Line: IntSurf_LineOn2S
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Creates a WLine as an intersection when the transitions are In or Out.

        Parameters
        ----------
        Line: IntSurf_LineOn2S
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Return
        -------
        None

        Description
        -----------
        Creates a WLine as an intersection when the transitions are Touch.

        Parameters
        ----------
        Line: IntSurf_LineOn2S
        Tang: bool

        Return
        -------
        None

        Description
        -----------
        Creates a WLine as an intersection when the transitions are Undecided.

        """
        _IntPatch.IntPatch_WLine_swiginit(self, _IntPatch.new_IntPatch_WLine(*args))

    def ComputeVertexParameters(self, *args):
        r"""

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Set the parameters of all the vertex on the line. if a vertex is already in the line, its parameter is modified else a new point in the line is inserted.

        """
        return _IntPatch.IntPatch_WLine_ComputeVertexParameters(self, *args)

    def Dump(self, *args):
        r"""

        Parameters
        ----------
        theMode: int

        Return
        -------
        None

        Description
        -----------
        if (theMode == 0) then prints the information about WLine if (theMode == 1) then prints the list of 3d-points if (theMode == 2) then prints the list of 2d-points on the 1st surface Otherwise, prints list of 2d-points on the 2nd surface.

        """
        return _IntPatch.IntPatch_WLine_Dump(self, *args)

    def EnablePurging(self, *args):
        r"""

        Parameters
        ----------
        theIsEnabled: bool

        Return
        -------
        None

        Description
        -----------
        Allows or forbids purging of existing WLine.

        """
        return _IntPatch.IntPatch_WLine_EnablePurging(self, *args)

    def FirstPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the Point corresponding to the FirstPoint.

        Parameters
        ----------

        Return
        -------
        Indfirst: int

        Description
        -----------
        Returns the Point corresponding to the FirstPoint. Indfirst is the index of the first in the list of vertices.

        """
        return _IntPatch.IntPatch_WLine_FirstPoint(self, *args)

    def GetArcOnS1(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_GetArcOnS1(self, *args)

    def GetArcOnS2(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_GetArcOnS2(self, *args)

    def GetCreatingWay(self, *args):
        r"""
        Return
        -------
        IntPatch_WLine::IntPatch_WLType

        Description
        -----------
        Returns the way of <*this> creation.

        """
        return _IntPatch.IntPatch_WLine_GetCreatingWay(self, *args)

    def HasArcOnS1(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_HasArcOnS1(self, *args)

    def HasArcOnS2(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_HasArcOnS2(self, *args)

    def HasFirstPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the line has a known First point. This point is given by the method FirstPoint().

        """
        return _IntPatch.IntPatch_WLine_HasFirstPoint(self, *args)

    def HasLastPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the line has a known Last point. This point is given by the method LastPoint().

        """
        return _IntPatch.IntPatch_WLine_HasLastPoint(self, *args)

    def InsertVertexBefore(self, *args):
        r"""

        Parameters
        ----------
        theIndex: int
        thePnt: IntPatch_Point

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_InsertVertexBefore(self, *args)

    def IsPurgingAllowed(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if purging is allowed or forbidden for existing WLine.

        """
        return _IntPatch.IntPatch_WLine_IsPurgingAllowed(self, *args)

    def LastPoint(self, *args):
        r"""
        Return
        -------
        IntPatch_Point

        Description
        -----------
        Returns the Point corresponding to the LastPoint.

        Parameters
        ----------

        Return
        -------
        Indlast: int

        Description
        -----------
        Returns the Point corresponding to the LastPoint. Indlast is the index of the last in the list of vertices.

        """
        return _IntPatch.IntPatch_WLine_LastPoint(self, *args)

    def Replace(self, *args):
        r"""

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Return
        -------
        None

        Description
        -----------
        Replaces the element of range Index in the list of points. The exception OutOfRange is raised when Index <= 0 or Index > NbVertex.

        """
        return _IntPatch.IntPatch_WLine_Replace(self, *args)

    def SetArcOnS1(self, *args):
        r"""

        Parameters
        ----------
        A: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_SetArcOnS1(self, *args)

    def SetArcOnS2(self, *args):
        r"""

        Parameters
        ----------
        A: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_SetArcOnS2(self, *args)

    def SetCreatingWayInfo(self, *args):
        r"""

        Parameters
        ----------
        theAlgo: IntPatch_WLType

        Return
        -------
        None

        Description
        -----------
        Sets the info about the way of <*this> creation.

        """
        return _IntPatch.IntPatch_WLine_SetCreatingWayInfo(self, *args)

    def SetFirstPoint(self, *args):
        r"""

        Parameters
        ----------
        IndFirst: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_SetFirstPoint(self, *args)

    def SetLastPoint(self, *args):
        r"""

        Parameters
        ----------
        IndLast: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_SetLastPoint(self, *args)

    def SetPeriod(self, *args):
        r"""

        Parameters
        ----------
        pu1: float
        pv1: float
        pu2: float
        pv2: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_SetPeriod(self, *args)

    def SetPoint(self, *args):
        r"""

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Return
        -------
        None

        Description
        -----------
        Set the Point of index <Index> in the LineOn2S.

        """
        return _IntPatch.IntPatch_WLine_SetPoint(self, *args)

    def U1Period(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_U1Period(self, *args)

    def U2Period(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_U2Period(self, *args)

    def V1Period(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_V1Period(self, *args)

    def V2Period(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _IntPatch.IntPatch_WLine_V2Period(self, *args)


    @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)

@classnotwrapped
class IntPatch_Polyhedron:
	pass



IntPatch_SearchPnt=OCC.Core.Intf.Intf_InterferencePolygon2d


@deprecated
def IntPatch_HCurve2dTool_BSpline(*args):
	return IntPatch_HCurve2dTool.BSpline(*args)

@deprecated
def IntPatch_HCurve2dTool_Bezier(*args):
	return IntPatch_HCurve2dTool.Bezier(*args)

@deprecated
def IntPatch_HCurve2dTool_Circle(*args):
	return IntPatch_HCurve2dTool.Circle(*args)

@deprecated
def IntPatch_HCurve2dTool_Continuity(*args):
	return IntPatch_HCurve2dTool.Continuity(*args)

@deprecated
def IntPatch_HCurve2dTool_D0(*args):
	return IntPatch_HCurve2dTool.D0(*args)

@deprecated
def IntPatch_HCurve2dTool_D1(*args):
	return IntPatch_HCurve2dTool.D1(*args)

@deprecated
def IntPatch_HCurve2dTool_D2(*args):
	return IntPatch_HCurve2dTool.D2(*args)

@deprecated
def IntPatch_HCurve2dTool_D3(*args):
	return IntPatch_HCurve2dTool.D3(*args)

@deprecated
def IntPatch_HCurve2dTool_DN(*args):
	return IntPatch_HCurve2dTool.DN(*args)

@deprecated
def IntPatch_HCurve2dTool_Ellipse(*args):
	return IntPatch_HCurve2dTool.Ellipse(*args)

@deprecated
def IntPatch_HCurve2dTool_FirstParameter(*args):
	return IntPatch_HCurve2dTool.FirstParameter(*args)

@deprecated
def IntPatch_HCurve2dTool_GetType(*args):
	return IntPatch_HCurve2dTool.GetType(*args)

@deprecated
def IntPatch_HCurve2dTool_Hyperbola(*args):
	return IntPatch_HCurve2dTool.Hyperbola(*args)

@deprecated
def IntPatch_HCurve2dTool_Intervals(*args):
	return IntPatch_HCurve2dTool.Intervals(*args)

@deprecated
def IntPatch_HCurve2dTool_IsClosed(*args):
	return IntPatch_HCurve2dTool.IsClosed(*args)

@deprecated
def IntPatch_HCurve2dTool_IsPeriodic(*args):
	return IntPatch_HCurve2dTool.IsPeriodic(*args)

@deprecated
def IntPatch_HCurve2dTool_LastParameter(*args):
	return IntPatch_HCurve2dTool.LastParameter(*args)

@deprecated
def IntPatch_HCurve2dTool_Line(*args):
	return IntPatch_HCurve2dTool.Line(*args)

@deprecated
def IntPatch_HCurve2dTool_NbIntervals(*args):
	return IntPatch_HCurve2dTool.NbIntervals(*args)

@deprecated
def IntPatch_HCurve2dTool_NbSamples(*args):
	return IntPatch_HCurve2dTool.NbSamples(*args)

@deprecated
def IntPatch_HCurve2dTool_Parabola(*args):
	return IntPatch_HCurve2dTool.Parabola(*args)

@deprecated
def IntPatch_HCurve2dTool_Period(*args):
	return IntPatch_HCurve2dTool.Period(*args)

@deprecated
def IntPatch_HCurve2dTool_Resolution(*args):
	return IntPatch_HCurve2dTool.Resolution(*args)

@deprecated
def IntPatch_HCurve2dTool_Value(*args):
	return IntPatch_HCurve2dTool.Value(*args)

@deprecated
def IntPatch_HInterTool_Bounds(*args):
	return IntPatch_HInterTool.Bounds(*args)

@deprecated
def IntPatch_HInterTool_HasBeenSeen(*args):
	return IntPatch_HInterTool.HasBeenSeen(*args)

@deprecated
def IntPatch_HInterTool_HasFirstPoint(*args):
	return IntPatch_HInterTool.HasFirstPoint(*args)

@deprecated
def IntPatch_HInterTool_HasLastPoint(*args):
	return IntPatch_HInterTool.HasLastPoint(*args)

@deprecated
def IntPatch_HInterTool_IsAllSolution(*args):
	return IntPatch_HInterTool.IsAllSolution(*args)

@deprecated
def IntPatch_HInterTool_IsVertex(*args):
	return IntPatch_HInterTool.IsVertex(*args)

@deprecated
def IntPatch_HInterTool_NbPoints(*args):
	return IntPatch_HInterTool.NbPoints(*args)

@deprecated
def IntPatch_HInterTool_NbSamplesOnArc(*args):
	return IntPatch_HInterTool.NbSamplesOnArc(*args)

@deprecated
def IntPatch_HInterTool_NbSamplesU(*args):
	return IntPatch_HInterTool.NbSamplesU(*args)

@deprecated
def IntPatch_HInterTool_NbSamplesV(*args):
	return IntPatch_HInterTool.NbSamplesV(*args)

@deprecated
def IntPatch_HInterTool_NbSegments(*args):
	return IntPatch_HInterTool.NbSegments(*args)

@deprecated
def IntPatch_HInterTool_Parameter(*args):
	return IntPatch_HInterTool.Parameter(*args)

@deprecated
def IntPatch_HInterTool_Project(*args):
	return IntPatch_HInterTool.Project(*args)

@deprecated
def IntPatch_HInterTool_SingularOnUMax(*args):
	return IntPatch_HInterTool.SingularOnUMax(*args)

@deprecated
def IntPatch_HInterTool_SingularOnUMin(*args):
	return IntPatch_HInterTool.SingularOnUMin(*args)

@deprecated
def IntPatch_HInterTool_SingularOnVMax(*args):
	return IntPatch_HInterTool.SingularOnVMax(*args)

@deprecated
def IntPatch_HInterTool_SingularOnVMin(*args):
	return IntPatch_HInterTool.SingularOnVMin(*args)

@deprecated
def IntPatch_HInterTool_Tolerance(*args):
	return IntPatch_HInterTool.Tolerance(*args)

@deprecated
def IntPatch_HInterTool_Value(*args):
	return IntPatch_HInterTool.Value(*args)

@deprecated
def IntPatch_HInterTool_Vertex(*args):
	return IntPatch_HInterTool.Vertex(*args)

@deprecated
def IntPatch_Intersection_CheckSingularPoints(*args):
	return IntPatch_Intersection.CheckSingularPoints(*args)

@deprecated
def IntPatch_Intersection_DefineUVMaxStep(*args):
	return IntPatch_Intersection.DefineUVMaxStep(*args)

@deprecated
def IntPatch_Intersection_PrepareSurfaces(*args):
	return IntPatch_Intersection.PrepareSurfaces(*args)

@deprecated
def IntPatch_PolyhedronTool_Bounding(*args):
	return IntPatch_PolyhedronTool.Bounding(*args)

@deprecated
def IntPatch_PolyhedronTool_ComponentsBounding(*args):
	return IntPatch_PolyhedronTool.ComponentsBounding(*args)

@deprecated
def IntPatch_PolyhedronTool_DeflectionOverEstimation(*args):
	return IntPatch_PolyhedronTool.DeflectionOverEstimation(*args)

@deprecated
def IntPatch_PolyhedronTool_NbTriangles(*args):
	return IntPatch_PolyhedronTool.NbTriangles(*args)

@deprecated
def IntPatch_PolyhedronTool_Point(*args):
	return IntPatch_PolyhedronTool.Point(*args)

@deprecated
def IntPatch_PolyhedronTool_TriConnex(*args):
	return IntPatch_PolyhedronTool.TriConnex(*args)

@deprecated
def IntPatch_PolyhedronTool_Triangle(*args):
	return IntPatch_PolyhedronTool.Triangle(*args)

@deprecated
def IntPatch_RstInt_PutVertexOnLine(*args):
	return IntPatch_RstInt.PutVertexOnLine(*args)

@deprecated
def IntPatch_SpecialPoints_AddCrossUVIsoPoint(*args):
	return IntPatch_SpecialPoints.AddCrossUVIsoPoint(*args)

@deprecated
def IntPatch_SpecialPoints_AddPointOnUorVIso(*args):
	return IntPatch_SpecialPoints.AddPointOnUorVIso(*args)

@deprecated
def IntPatch_SpecialPoints_AddSingularPole(*args):
	return IntPatch_SpecialPoints.AddSingularPole(*args)

@deprecated
def IntPatch_SpecialPoints_AdjustPointAndVertex(*args):
	return IntPatch_SpecialPoints.AdjustPointAndVertex(*args)

@deprecated
def IntPatch_SpecialPoints_ContinueAfterSpecialPoint(*args):
	return IntPatch_SpecialPoints.ContinueAfterSpecialPoint(*args)

@deprecated
def IntPatch_WLineTool_ComputePurgedWLine(*args):
	return IntPatch_WLineTool.ComputePurgedWLine(*args)

@deprecated
def IntPatch_WLineTool_ExtendTwoWLines(*args):
	return IntPatch_WLineTool.ExtendTwoWLines(*args)

@deprecated
def IntPatch_WLineTool_JoinWLines(*args):
	return IntPatch_WLineTool.JoinWLines(*args)

@deprecated
def IntPatch_PointLine_CurvatureRadiusOfIntersLine(*args):
	return IntPatch_PointLine.CurvatureRadiusOfIntersLine(*args)



