# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

"""
IntPatch module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_intpatch.html
"""

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _IntPatch
else:
    import _IntPatch

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _IntPatch.delete_SwigPyIterator

    def value(self) -> "PyObject *":
        return _IntPatch.SwigPyIterator_value(self)

    def incr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _IntPatch.SwigPyIterator_incr(self, n)

    def decr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _IntPatch.SwigPyIterator_decr(self, n)

    def distance(self, x: "SwigPyIterator") -> "ptrdiff_t":
        return _IntPatch.SwigPyIterator_distance(self, x)

    def equal(self, x: "SwigPyIterator") -> "bool":
        return _IntPatch.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _IntPatch.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _IntPatch.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _IntPatch.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _IntPatch.SwigPyIterator_previous(self)

    def advance(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _IntPatch.SwigPyIterator_advance(self, n)

    def __eq__(self, x: "SwigPyIterator") -> "bool":
        return _IntPatch.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: "SwigPyIterator") -> "bool":
        return _IntPatch.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _IntPatch.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _IntPatch.SwigPyIterator___isub__(self, n)

    def __add__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _IntPatch.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        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: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _IntPatch.process_exception(error, method_name, class_name)

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

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.Intf
import OCC.Core.gp
import OCC.Core.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_SPntNone = _IntPatch.IntPatch_SPntNone
IntPatch_SPntSeamU = _IntPatch.IntPatch_SPntSeamU
IntPatch_SPntSeamV = _IntPatch.IntPatch_SPntSeamV
IntPatch_SPntSeamUV = _IntPatch.IntPatch_SPntSeamUV
IntPatch_SPntPoleSeamU = _IntPatch.IntPatch_SPntPoleSeamU
IntPatch_SPntPole = _IntPatch.IntPatch_SPntPole
IntPatch_Lin = _IntPatch.IntPatch_Lin
IntPatch_Circle = _IntPatch.IntPatch_Circle
IntPatch_Ellipse = _IntPatch.IntPatch_Ellipse
IntPatch_Parabola = _IntPatch.IntPatch_Parabola
IntPatch_Hyperbola = _IntPatch.IntPatch_Hyperbola
IntPatch_Analytic = _IntPatch.IntPatch_Analytic
IntPatch_Walking = _IntPatch.IntPatch_Walking
IntPatch_Restriction = _IntPatch.IntPatch_Restriction


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

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


def Handle_IntPatch_Line_Create() -> "opencascade::handle< IntPatch_Line >":
    return _IntPatch.Handle_IntPatch_Line_Create()

def Handle_IntPatch_Line_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< IntPatch_Line >":
    return _IntPatch.Handle_IntPatch_Line_DownCast(t)

def Handle_IntPatch_Line_IsNull(t: "opencascade::handle< IntPatch_Line > const &") -> "bool":
    return _IntPatch.Handle_IntPatch_Line_IsNull(t)

def Handle_IntPatch_TheIWLineOfTheIWalking_Create() -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking >":
    return _IntPatch.Handle_IntPatch_TheIWLineOfTheIWalking_Create()

def Handle_IntPatch_TheIWLineOfTheIWalking_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking >":
    return _IntPatch.Handle_IntPatch_TheIWLineOfTheIWalking_DownCast(t)

def Handle_IntPatch_TheIWLineOfTheIWalking_IsNull(t: "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > const &") -> "bool":
    return _IntPatch.Handle_IntPatch_TheIWLineOfTheIWalking_IsNull(t)

def Handle_IntPatch_ALine_Create() -> "opencascade::handle< IntPatch_ALine >":
    return _IntPatch.Handle_IntPatch_ALine_Create()

def Handle_IntPatch_ALine_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< IntPatch_ALine >":
    return _IntPatch.Handle_IntPatch_ALine_DownCast(t)

def Handle_IntPatch_ALine_IsNull(t: "opencascade::handle< IntPatch_ALine > const &") -> "bool":
    return _IntPatch.Handle_IntPatch_ALine_IsNull(t)

def Handle_IntPatch_GLine_Create() -> "opencascade::handle< IntPatch_GLine >":
    return _IntPatch.Handle_IntPatch_GLine_Create()

def Handle_IntPatch_GLine_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< IntPatch_GLine >":
    return _IntPatch.Handle_IntPatch_GLine_DownCast(t)

def Handle_IntPatch_GLine_IsNull(t: "opencascade::handle< IntPatch_GLine > const &") -> "bool":
    return _IntPatch.Handle_IntPatch_GLine_IsNull(t)

def Handle_IntPatch_PointLine_Create() -> "opencascade::handle< IntPatch_PointLine >":
    return _IntPatch.Handle_IntPatch_PointLine_Create()

def Handle_IntPatch_PointLine_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< IntPatch_PointLine >":
    return _IntPatch.Handle_IntPatch_PointLine_DownCast(t)

def Handle_IntPatch_PointLine_IsNull(t: "opencascade::handle< IntPatch_PointLine > const &") -> "bool":
    return _IntPatch.Handle_IntPatch_PointLine_IsNull(t)

def Handle_IntPatch_RLine_Create() -> "opencascade::handle< IntPatch_RLine >":
    return _IntPatch.Handle_IntPatch_RLine_Create()

def Handle_IntPatch_RLine_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< IntPatch_RLine >":
    return _IntPatch.Handle_IntPatch_RLine_DownCast(t)

def Handle_IntPatch_RLine_IsNull(t: "opencascade::handle< IntPatch_RLine > const &") -> "bool":
    return _IntPatch.Handle_IntPatch_RLine_IsNull(t)

def Handle_IntPatch_WLine_Create() -> "opencascade::handle< IntPatch_WLine >":
    return _IntPatch.Handle_IntPatch_WLine_Create()

def Handle_IntPatch_WLine_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< IntPatch_WLine >":
    return _IntPatch.Handle_IntPatch_WLine_DownCast(t)

def Handle_IntPatch_WLine_IsNull(t: "opencascade::handle< IntPatch_WLine > const &") -> "bool":
    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) -> "NCollection_Sequence< opencascade::handle< IntPatch_TheIWLineOfTheIWalking > >::iterator":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< IntPatch_TheIWLineOfTheIWalking > >::iterator":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< IntPatch_TheIWLineOfTheIWalking > >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< IntPatch_TheIWLineOfTheIWalking > >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_cend(self)

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

    def Size(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Size(self)

    def Length(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_IsEmpty(self)

    def Reverse(self) -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Clear(self, theAllocator)

    def Assign(self, theOther: "IntPatch_SequenceOfIWLineOfTheIWalking") -> "NCollection_Sequence< opencascade::handle< IntPatch_TheIWLineOfTheIWalking > > &":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Assign(self, theOther)

    def Set(self, theOther: "IntPatch_SequenceOfIWLineOfTheIWalking") -> "NCollection_Sequence< opencascade::handle< IntPatch_TheIWLineOfTheIWalking > > &":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "IntPatch_SequenceOfIWLineOfTheIWalking") -> "void":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > const &":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_First(self)

    def ChangeFirst(self) -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > &":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > const &":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Last(self)

    def ChangeLast(self) -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > &":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > const &":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > &":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > &":
        return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > const &") -> "void":
        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)

def IntPatch_SequenceOfIWLineOfTheIWalking_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _IntPatch.IntPatch_SequenceOfIWLineOfTheIWalking_delNode(theNode, theAl)

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) -> "NCollection_Sequence< opencascade::handle< IntPatch_Line > >::iterator":
        return _IntPatch.IntPatch_SequenceOfLine_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< IntPatch_Line > >::iterator":
        return _IntPatch.IntPatch_SequenceOfLine_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< IntPatch_Line > >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfLine_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< IntPatch_Line > >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfLine_cend(self)

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

    def Size(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfLine_Size(self)

    def Length(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfLine_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfLine_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfLine_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _IntPatch.IntPatch_SequenceOfLine_IsEmpty(self)

    def Reverse(self) -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_Clear(self, theAllocator)

    def Assign(self, theOther: "IntPatch_SequenceOfLine") -> "NCollection_Sequence< opencascade::handle< IntPatch_Line > > &":
        return _IntPatch.IntPatch_SequenceOfLine_Assign(self, theOther)

    def Set(self, theOther: "IntPatch_SequenceOfLine") -> "NCollection_Sequence< opencascade::handle< IntPatch_Line > > &":
        return _IntPatch.IntPatch_SequenceOfLine_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "IntPatch_SequenceOfLine") -> "void":
        return _IntPatch.IntPatch_SequenceOfLine_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< IntPatch_Line > const &":
        return _IntPatch.IntPatch_SequenceOfLine_First(self)

    def ChangeFirst(self) -> "opencascade::handle< IntPatch_Line > &":
        return _IntPatch.IntPatch_SequenceOfLine_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< IntPatch_Line > const &":
        return _IntPatch.IntPatch_SequenceOfLine_Last(self)

    def ChangeLast(self) -> "opencascade::handle< IntPatch_Line > &":
        return _IntPatch.IntPatch_SequenceOfLine_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< IntPatch_Line > const &":
        return _IntPatch.IntPatch_SequenceOfLine_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< IntPatch_Line > &":
        return _IntPatch.IntPatch_SequenceOfLine_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< IntPatch_Line > &":
        return _IntPatch.IntPatch_SequenceOfLine___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< IntPatch_Line > const &") -> "void":
        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)

def IntPatch_SequenceOfLine_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _IntPatch.IntPatch_SequenceOfLine_delNode(theNode, theAl)

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) -> "NCollection_Sequence< IntPatch_ThePathPointOfTheSOnBounds >::iterator":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_begin(self)

    def end(self) -> "NCollection_Sequence< IntPatch_ThePathPointOfTheSOnBounds >::iterator":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_end(self)

    def cbegin(self) -> "NCollection_Sequence< IntPatch_ThePathPointOfTheSOnBounds >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_cbegin(self)

    def cend(self) -> "NCollection_Sequence< IntPatch_ThePathPointOfTheSOnBounds >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_cend(self)

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

    def Size(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Size(self)

    def Length(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_IsEmpty(self)

    def Reverse(self) -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Clear(self, theAllocator)

    def Assign(self, theOther: "IntPatch_SequenceOfPathPointOfTheSOnBounds") -> "NCollection_Sequence< IntPatch_ThePathPointOfTheSOnBounds > &":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Assign(self, theOther)

    def Set(self, theOther: "IntPatch_SequenceOfPathPointOfTheSOnBounds") -> "NCollection_Sequence< IntPatch_ThePathPointOfTheSOnBounds > &":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "IntPatch_SequenceOfPathPointOfTheSOnBounds") -> "void":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Split(self, theIndex, theSeq)

    def First(self) -> "IntPatch_ThePathPointOfTheSOnBounds const &":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_First(self)

    def ChangeFirst(self) -> "IntPatch_ThePathPointOfTheSOnBounds &":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_ChangeFirst(self)

    def Last(self) -> "IntPatch_ThePathPointOfTheSOnBounds const &":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Last(self)

    def ChangeLast(self) -> "IntPatch_ThePathPointOfTheSOnBounds &":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "IntPatch_ThePathPointOfTheSOnBounds const &":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "IntPatch_ThePathPointOfTheSOnBounds &":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "IntPatch_ThePathPointOfTheSOnBounds &":
        return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "IntPatch_ThePathPointOfTheSOnBounds") -> "void":
        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)

def IntPatch_SequenceOfPathPointOfTheSOnBounds_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _IntPatch.IntPatch_SequenceOfPathPointOfTheSOnBounds_delNode(theNode, theAl)

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) -> "NCollection_Sequence< IntPatch_Point >::iterator":
        return _IntPatch.IntPatch_SequenceOfPoint_begin(self)

    def end(self) -> "NCollection_Sequence< IntPatch_Point >::iterator":
        return _IntPatch.IntPatch_SequenceOfPoint_end(self)

    def cbegin(self) -> "NCollection_Sequence< IntPatch_Point >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfPoint_cbegin(self)

    def cend(self) -> "NCollection_Sequence< IntPatch_Point >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfPoint_cend(self)

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

    def Size(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfPoint_Size(self)

    def Length(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfPoint_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfPoint_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfPoint_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _IntPatch.IntPatch_SequenceOfPoint_IsEmpty(self)

    def Reverse(self) -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_Clear(self, theAllocator)

    def Assign(self, theOther: "IntPatch_SequenceOfPoint") -> "NCollection_Sequence< IntPatch_Point > &":
        return _IntPatch.IntPatch_SequenceOfPoint_Assign(self, theOther)

    def Set(self, theOther: "IntPatch_SequenceOfPoint") -> "NCollection_Sequence< IntPatch_Point > &":
        return _IntPatch.IntPatch_SequenceOfPoint_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "IntPatch_SequenceOfPoint") -> "void":
        return _IntPatch.IntPatch_SequenceOfPoint_Split(self, theIndex, theSeq)

    def First(self) -> "IntPatch_Point const &":
        return _IntPatch.IntPatch_SequenceOfPoint_First(self)

    def ChangeFirst(self) -> "IntPatch_Point &":
        return _IntPatch.IntPatch_SequenceOfPoint_ChangeFirst(self)

    def Last(self) -> "IntPatch_Point const &":
        return _IntPatch.IntPatch_SequenceOfPoint_Last(self)

    def ChangeLast(self) -> "IntPatch_Point &":
        return _IntPatch.IntPatch_SequenceOfPoint_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "IntPatch_Point const &":
        return _IntPatch.IntPatch_SequenceOfPoint_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "IntPatch_Point &":
        return _IntPatch.IntPatch_SequenceOfPoint_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "IntPatch_Point &":
        return _IntPatch.IntPatch_SequenceOfPoint___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "IntPatch_Point") -> "void":
        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)

def IntPatch_SequenceOfPoint_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _IntPatch.IntPatch_SequenceOfPoint_delNode(theNode, theAl)

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) -> "NCollection_Sequence< IntPatch_TheSegmentOfTheSOnBounds >::iterator":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_begin(self)

    def end(self) -> "NCollection_Sequence< IntPatch_TheSegmentOfTheSOnBounds >::iterator":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_end(self)

    def cbegin(self) -> "NCollection_Sequence< IntPatch_TheSegmentOfTheSOnBounds >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_cbegin(self)

    def cend(self) -> "NCollection_Sequence< IntPatch_TheSegmentOfTheSOnBounds >::const_iterator":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_cend(self)

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

    def Size(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Size(self)

    def Length(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_IsEmpty(self)

    def Reverse(self) -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Clear(self, theAllocator)

    def Assign(self, theOther: "IntPatch_SequenceOfSegmentOfTheSOnBounds") -> "NCollection_Sequence< IntPatch_TheSegmentOfTheSOnBounds > &":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Assign(self, theOther)

    def Set(self, theOther: "IntPatch_SequenceOfSegmentOfTheSOnBounds") -> "NCollection_Sequence< IntPatch_TheSegmentOfTheSOnBounds > &":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "IntPatch_SequenceOfSegmentOfTheSOnBounds") -> "void":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Split(self, theIndex, theSeq)

    def First(self) -> "IntPatch_TheSegmentOfTheSOnBounds const &":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_First(self)

    def ChangeFirst(self) -> "IntPatch_TheSegmentOfTheSOnBounds &":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_ChangeFirst(self)

    def Last(self) -> "IntPatch_TheSegmentOfTheSOnBounds const &":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Last(self)

    def ChangeLast(self) -> "IntPatch_TheSegmentOfTheSOnBounds &":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "IntPatch_TheSegmentOfTheSOnBounds const &":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "IntPatch_TheSegmentOfTheSOnBounds &":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "IntPatch_TheSegmentOfTheSOnBounds &":
        return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "IntPatch_TheSegmentOfTheSOnBounds") -> "void":
        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)

def IntPatch_SequenceOfSegmentOfTheSOnBounds_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _IntPatch.IntPatch_SequenceOfSegmentOfTheSOnBounds_delNode(theNode, theAl)

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

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

        Parameters
        ----------
        theS1: Adaptor3d_HSurface
        theS2: Adaptor3d_HSurface
        theNbPoints: int,optional
        	default value is 200

        Returns
        -------
        None

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

    def MakeWLine(self, *args) -> "void":
        r"""
        Converts aline to the set of walking-lines and adds them in thelines.

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

        Returns
        -------
        None
        Converts aline (limitted by paraminf and paramsup) to the set of walking-lines and adds them in thelines.

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

        Returns
        -------
        None

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

    def SetTol3D(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def SetTolOpenDomain(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def SetTolTransition(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def Tol3D(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def TolOpenDomain(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def TolTransition(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

        """
        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"""
        No available documentation.

        Returns
        -------
        None

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

    def Arc(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def LastComputedPoint(self, *args) -> "gp_Pnt const":
        r"""
        Returns the point, which has been computed while the last calling value() method.

        Returns
        -------
        gp_Pnt

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

    def NbSamples(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

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

    def Quadric(self, *args) -> "IntSurf_Quadric const &":
        r"""
        No available documentation.

        Returns
        -------
        IntSurf_Quadric

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

    def Set(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface

        Returns
        -------
        None

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

    def SetQuadric(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def Surface(self, *args) -> "opencascade::handle< Adaptor3d_HSurface > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HSurface>

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

    def Valpoint(self, *args) -> "gp_Pnt const":
        r"""
        No available documentation.

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

        Returns
        -------
        gp_Pnt

        """
        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"""
        S1 is the surface on which the intersection is searched. c is a curve on the surface s2.

        Parameters
        ----------
        S1: Adaptor3d_HSurface
        C: Adaptor2d_HCurve2d
        S2: Adaptor3d_HSurface

        Returns
        -------
        None

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

    def AuxillarCurve(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def AuxillarSurface(self, *args) -> "opencascade::handle< Adaptor3d_HSurface > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HSurface>

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

    def Point(self, *args) -> "gp_Pnt const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Pnt

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

    def Root(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

        """
        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"""
        Compute the solution point with the close point margincoef is the coefficient for extension of uv bounds. ex., ufirst -= margincoef*(ulast-ufirst).

        Parameters
        ----------
        U: float
        V: float
        W: float
        F: IntPatch_CSFunction
        TolTangency: float
        MarginCoef: float,optional
        	default value is 0.0

        Returns
        -------
        None
        Initialize the parameters to compute the solution.

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

        Returns
        -------
        None

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

    def Function(self, *args) -> "IntPatch_CSFunction &":
        r"""
        Return the math function which is used to compute the intersection.

        Returns
        -------
        IntPatch_CSFunction

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the creation completed without failure.

        Returns
        -------
        bool

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

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def ParameterOnCurve(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def ParameterOnSurface(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------

        Returns
        -------
        U: float
        V: float

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

    def Perform(self, *args) -> "void":
        r"""
        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) }.

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

        Returns
        -------
        None

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

    def Point(self, *args) -> "gp_Pnt const":
        r"""
        Returns the intersection point the exception notdone is raised if isdone is false. the exception domainerror is raised if isempty is true.

        Returns
        -------
        gp_Pnt

        """
        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) -> "opencascade::handle< Geom2d_BSplineCurve >":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        opencascade::handle<Geom2d_BSplineCurve>

        """
        return _IntPatch.IntPatch_HCurve2dTool_BSpline(*args)

    @staticmethod
    def Bezier(*args) -> "opencascade::handle< Geom2d_BezierCurve >":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        opencascade::handle<Geom2d_BezierCurve>

        """
        return _IntPatch.IntPatch_HCurve2dTool_Bezier(*args)

    @staticmethod
    def Circle(*args) -> "gp_Circ2d":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Circ2d

        """
        return _IntPatch.IntPatch_HCurve2dTool_Circle(*args)

    @staticmethod
    def Continuity(*args) -> "GeomAbs_Shape":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        GeomAbs_Shape

        """
        return _IntPatch.IntPatch_HCurve2dTool_Continuity(*args)

    @staticmethod
    def D0(*args) -> "void":
        r"""
        Computes the point of parameter u on the curve.

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

        Returns
        -------
        None

        """
        return _IntPatch.IntPatch_HCurve2dTool_D0(*args)

    @staticmethod
    def D1(*args) -> "void":
        r"""
        Computes the point of parameter u on the curve with its first derivative. raised if the continuity of the current interval is not c1.

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

        Returns
        -------
        None

        """
        return _IntPatch.IntPatch_HCurve2dTool_D1(*args)

    @staticmethod
    def D2(*args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

        """
        return _IntPatch.IntPatch_HCurve2dTool_D2(*args)

    @staticmethod
    def D3(*args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

        """
        return _IntPatch.IntPatch_HCurve2dTool_D3(*args)

    @staticmethod
    def DN(*args) -> "gp_Vec2d":
        r"""
        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.

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

        Returns
        -------
        gp_Vec2d

        """
        return _IntPatch.IntPatch_HCurve2dTool_DN(*args)

    @staticmethod
    def Ellipse(*args) -> "gp_Elips2d":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Elips2d

        """
        return _IntPatch.IntPatch_HCurve2dTool_Ellipse(*args)

    @staticmethod
    def FirstParameter(*args) -> "Standard_Real":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _IntPatch.IntPatch_HCurve2dTool_FirstParameter(*args)

    @staticmethod
    def GetType(*args) -> "GeomAbs_CurveType":
        r"""
        Returns the type of the curve in the current interval : line, circle, ellipse, hyperbola, parabola, beziercurve, bsplinecurve, othercurve.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        GeomAbs_CurveType

        """
        return _IntPatch.IntPatch_HCurve2dTool_GetType(*args)

    @staticmethod
    def Hyperbola(*args) -> "gp_Hypr2d":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Hypr2d

        """
        return _IntPatch.IntPatch_HCurve2dTool_Hyperbola(*args)

    @staticmethod
    def Intervals(*args) -> "void":
        r"""
        Stores in <t> the parameters bounding the intervals of continuity <s>. //! the array must provide enough room to accomodate for the parameters. i.e. t.length() > nbintervals().

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

        Returns
        -------
        None

        """
        return _IntPatch.IntPatch_HCurve2dTool_Intervals(*args)

    @staticmethod
    def IsClosed(*args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_HCurve2dTool_IsClosed(*args)

    @staticmethod
    def IsPeriodic(*args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_HCurve2dTool_IsPeriodic(*args)

    @staticmethod
    def LastParameter(*args) -> "Standard_Real":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _IntPatch.IntPatch_HCurve2dTool_LastParameter(*args)

    @staticmethod
    def Line(*args) -> "gp_Lin2d":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Lin2d

        """
        return _IntPatch.IntPatch_HCurve2dTool_Line(*args)

    @staticmethod
    def NbIntervals(*args) -> "Standard_Integer":
        r"""
        Returns the number of intervals for continuity <s>. may be one if continuity(myclass) >= <s>.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        S: GeomAbs_Shape

        Returns
        -------
        int

        """
        return _IntPatch.IntPatch_HCurve2dTool_NbIntervals(*args)

    @staticmethod
    def NbSamples(*args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        U0: float
        U1: float

        Returns
        -------
        int

        """
        return _IntPatch.IntPatch_HCurve2dTool_NbSamples(*args)

    @staticmethod
    def Parabola(*args) -> "gp_Parab2d":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Parab2d

        """
        return _IntPatch.IntPatch_HCurve2dTool_Parabola(*args)

    @staticmethod
    def Period(*args) -> "Standard_Real":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _IntPatch.IntPatch_HCurve2dTool_Period(*args)

    @staticmethod
    def Resolution(*args) -> "Standard_Real":
        r"""
        Returns the parametric resolution corresponding to the real space resolution <r3d>.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        R3d: float

        Returns
        -------
        float

        """
        return _IntPatch.IntPatch_HCurve2dTool_Resolution(*args)

    @staticmethod
    def Value(*args) -> "gp_Pnt2d":
        r"""
        Computes the point of parameter u on the curve.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        U: float

        Returns
        -------
        gp_Pnt2d

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

def IntPatch_HCurve2dTool_BSpline(*args) -> "opencascade::handle< Geom2d_BSplineCurve >":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    opencascade::handle<Geom2d_BSplineCurve>

    """
    return _IntPatch.IntPatch_HCurve2dTool_BSpline(*args)

def IntPatch_HCurve2dTool_Bezier(*args) -> "opencascade::handle< Geom2d_BezierCurve >":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    opencascade::handle<Geom2d_BezierCurve>

    """
    return _IntPatch.IntPatch_HCurve2dTool_Bezier(*args)

def IntPatch_HCurve2dTool_Circle(*args) -> "gp_Circ2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Circ2d

    """
    return _IntPatch.IntPatch_HCurve2dTool_Circle(*args)

def IntPatch_HCurve2dTool_Continuity(*args) -> "GeomAbs_Shape":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    GeomAbs_Shape

    """
    return _IntPatch.IntPatch_HCurve2dTool_Continuity(*args)

def IntPatch_HCurve2dTool_D0(*args) -> "void":
    r"""
    Computes the point of parameter u on the curve.

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

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_HCurve2dTool_D0(*args)

def IntPatch_HCurve2dTool_D1(*args) -> "void":
    r"""
    Computes the point of parameter u on the curve with its first derivative. raised if the continuity of the current interval is not c1.

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

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_HCurve2dTool_D1(*args)

def IntPatch_HCurve2dTool_D2(*args) -> "void":
    r"""
    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.

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

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_HCurve2dTool_D2(*args)

def IntPatch_HCurve2dTool_D3(*args) -> "void":
    r"""
    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.

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

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_HCurve2dTool_D3(*args)

def IntPatch_HCurve2dTool_DN(*args) -> "gp_Vec2d":
    r"""
    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.

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

    Returns
    -------
    gp_Vec2d

    """
    return _IntPatch.IntPatch_HCurve2dTool_DN(*args)

def IntPatch_HCurve2dTool_Ellipse(*args) -> "gp_Elips2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Elips2d

    """
    return _IntPatch.IntPatch_HCurve2dTool_Ellipse(*args)

def IntPatch_HCurve2dTool_FirstParameter(*args) -> "Standard_Real":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _IntPatch.IntPatch_HCurve2dTool_FirstParameter(*args)

def IntPatch_HCurve2dTool_GetType(*args) -> "GeomAbs_CurveType":
    r"""
    Returns the type of the curve in the current interval : line, circle, ellipse, hyperbola, parabola, beziercurve, bsplinecurve, othercurve.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    GeomAbs_CurveType

    """
    return _IntPatch.IntPatch_HCurve2dTool_GetType(*args)

def IntPatch_HCurve2dTool_Hyperbola(*args) -> "gp_Hypr2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Hypr2d

    """
    return _IntPatch.IntPatch_HCurve2dTool_Hyperbola(*args)

def IntPatch_HCurve2dTool_Intervals(*args) -> "void":
    r"""
    Stores in <t> the parameters bounding the intervals of continuity <s>. //! the array must provide enough room to accomodate for the parameters. i.e. t.length() > nbintervals().

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

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_HCurve2dTool_Intervals(*args)

def IntPatch_HCurve2dTool_IsClosed(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_HCurve2dTool_IsClosed(*args)

def IntPatch_HCurve2dTool_IsPeriodic(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_HCurve2dTool_IsPeriodic(*args)

def IntPatch_HCurve2dTool_LastParameter(*args) -> "Standard_Real":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _IntPatch.IntPatch_HCurve2dTool_LastParameter(*args)

def IntPatch_HCurve2dTool_Line(*args) -> "gp_Lin2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Lin2d

    """
    return _IntPatch.IntPatch_HCurve2dTool_Line(*args)

def IntPatch_HCurve2dTool_NbIntervals(*args) -> "Standard_Integer":
    r"""
    Returns the number of intervals for continuity <s>. may be one if continuity(myclass) >= <s>.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    S: GeomAbs_Shape

    Returns
    -------
    int

    """
    return _IntPatch.IntPatch_HCurve2dTool_NbIntervals(*args)

def IntPatch_HCurve2dTool_NbSamples(*args) -> "Standard_Integer":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    U0: float
    U1: float

    Returns
    -------
    int

    """
    return _IntPatch.IntPatch_HCurve2dTool_NbSamples(*args)

def IntPatch_HCurve2dTool_Parabola(*args) -> "gp_Parab2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Parab2d

    """
    return _IntPatch.IntPatch_HCurve2dTool_Parabola(*args)

def IntPatch_HCurve2dTool_Period(*args) -> "Standard_Real":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _IntPatch.IntPatch_HCurve2dTool_Period(*args)

def IntPatch_HCurve2dTool_Resolution(*args) -> "Standard_Real":
    r"""
    Returns the parametric resolution corresponding to the real space resolution <r3d>.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    R3d: float

    Returns
    -------
    float

    """
    return _IntPatch.IntPatch_HCurve2dTool_Resolution(*args)

def IntPatch_HCurve2dTool_Value(*args) -> "gp_Pnt2d":
    r"""
    Computes the point of parameter u on the curve.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    U: float

    Returns
    -------
    gp_Pnt2d

    """
    return _IntPatch.IntPatch_HCurve2dTool_Value(*args)

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"""
        No available documentation.

        Returns
        -------
        None

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

    @staticmethod
    def Bounds(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        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.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        Ufirst: float
        Ulast: float

        """
        return _IntPatch.IntPatch_HInterTool_Bounds(*args)

    @staticmethod
    def HasBeenSeen(*args) -> "Standard_Boolean":
        r"""
        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.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_HInterTool_HasBeenSeen(*args)

    @staticmethod
    def HasFirstPoint(*args) -> "Standard_Integer &":
        r"""
        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.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        Index: int

        Returns
        -------
        IndFirst: int

        """
        return _IntPatch.IntPatch_HInterTool_HasFirstPoint(*args)

    @staticmethod
    def HasLastPoint(*args) -> "Standard_Integer &":
        r"""
        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.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        Index: int

        Returns
        -------
        IndLast: int

        """
        return _IntPatch.IntPatch_HInterTool_HasLastPoint(*args)

    @staticmethod
    def IsAllSolution(*args) -> "Standard_Boolean":
        r"""
        Returns true when the whole restriction is solution of the intersection problem.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_HInterTool_IsAllSolution(*args)

    @staticmethod
    def IsVertex(*args) -> "Standard_Boolean":
        r"""
        Returns true if the intersection point of range index corresponds with a vertex on the arc a.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        Index: int

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_HInterTool_IsVertex(*args)

    @staticmethod
    def NbPoints(*args) -> "Standard_Integer":
        r"""
        Returns the number of intersection points on the arc a.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        int

        """
        return _IntPatch.IntPatch_HInterTool_NbPoints(*args)

    def NbSamplePoints(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface

        Returns
        -------
        int

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

    @staticmethod
    def NbSamplesOnArc(*args) -> "Standard_Integer":
        r"""
        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.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        int

        """
        return _IntPatch.IntPatch_HInterTool_NbSamplesOnArc(*args)

    @staticmethod
    def NbSamplesU(*args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        u1: float
        u2: float

        Returns
        -------
        int

        """
        return _IntPatch.IntPatch_HInterTool_NbSamplesU(*args)

    @staticmethod
    def NbSamplesV(*args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        v1: float
        v2: float

        Returns
        -------
        int

        """
        return _IntPatch.IntPatch_HInterTool_NbSamplesV(*args)

    @staticmethod
    def NbSegments(*args) -> "Standard_Integer":
        r"""
        Returns the number of part of a solution of the of intersection problem.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        int

        """
        return _IntPatch.IntPatch_HInterTool_NbSegments(*args)

    @staticmethod
    def Parameter(*args) -> "Standard_Real":
        r"""
        Returns the parameter of the vertex v on the arc a.

        Parameters
        ----------
        V: Adaptor3d_HVertex
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _IntPatch.IntPatch_HInterTool_Parameter(*args)

    @staticmethod
    def Project(*args) -> "Standard_Real &":
        r"""
        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.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        P: gp_Pnt2d
        Ptproj: gp_Pnt2d

        Returns
        -------
        Paramproj: float

        """
        return _IntPatch.IntPatch_HInterTool_Project(*args)

    def SamplePoint(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        Index: int

        Returns
        -------
        U: float
        V: float

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

    @staticmethod
    def SingularOnUMax(*args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_HInterTool_SingularOnUMax(*args)

    @staticmethod
    def SingularOnUMin(*args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_HInterTool_SingularOnUMin(*args)

    @staticmethod
    def SingularOnVMax(*args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_HInterTool_SingularOnVMax(*args)

    @staticmethod
    def SingularOnVMin(*args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_HInterTool_SingularOnVMin(*args)

    @staticmethod
    def Tolerance(*args) -> "Standard_Real":
        r"""
        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'.

        Parameters
        ----------
        V: Adaptor3d_HVertex
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _IntPatch.IntPatch_HInterTool_Tolerance(*args)

    @staticmethod
    def Value(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Returns the value (pt), the tolerance (tol), and the parameter (u) on the arc a , of the intersection point of range index.

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

        Returns
        -------
        Tol: float
        U: float

        """
        return _IntPatch.IntPatch_HInterTool_Value(*args)

    @staticmethod
    def Vertex(*args) -> "void":
        r"""
        When isvertex returns true, this method returns the vertex on the arc a.

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

        Returns
        -------
        None

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

def IntPatch_HInterTool_Bounds(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    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.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    Ufirst: float
    Ulast: float

    """
    return _IntPatch.IntPatch_HInterTool_Bounds(*args)

def IntPatch_HInterTool_HasBeenSeen(*args) -> "Standard_Boolean":
    r"""
    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.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_HInterTool_HasBeenSeen(*args)

def IntPatch_HInterTool_HasFirstPoint(*args) -> "Standard_Integer &":
    r"""
    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.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    Index: int

    Returns
    -------
    IndFirst: int

    """
    return _IntPatch.IntPatch_HInterTool_HasFirstPoint(*args)

def IntPatch_HInterTool_HasLastPoint(*args) -> "Standard_Integer &":
    r"""
    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.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    Index: int

    Returns
    -------
    IndLast: int

    """
    return _IntPatch.IntPatch_HInterTool_HasLastPoint(*args)

def IntPatch_HInterTool_IsAllSolution(*args) -> "Standard_Boolean":
    r"""
    Returns true when the whole restriction is solution of the intersection problem.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_HInterTool_IsAllSolution(*args)

def IntPatch_HInterTool_IsVertex(*args) -> "Standard_Boolean":
    r"""
    Returns true if the intersection point of range index corresponds with a vertex on the arc a.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    Index: int

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_HInterTool_IsVertex(*args)

def IntPatch_HInterTool_NbPoints(*args) -> "Standard_Integer":
    r"""
    Returns the number of intersection points on the arc a.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    int

    """
    return _IntPatch.IntPatch_HInterTool_NbPoints(*args)

def IntPatch_HInterTool_NbSamplesOnArc(*args) -> "Standard_Integer":
    r"""
    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.

    Parameters
    ----------
    A: Adaptor2d_HCurve2d

    Returns
    -------
    int

    """
    return _IntPatch.IntPatch_HInterTool_NbSamplesOnArc(*args)

def IntPatch_HInterTool_NbSamplesU(*args) -> "Standard_Integer":
    r"""
    No available documentation.

    Parameters
    ----------
    S: Adaptor3d_HSurface
    u1: float
    u2: float

    Returns
    -------
    int

    """
    return _IntPatch.IntPatch_HInterTool_NbSamplesU(*args)

def IntPatch_HInterTool_NbSamplesV(*args) -> "Standard_Integer":
    r"""
    No available documentation.

    Parameters
    ----------
    S: Adaptor3d_HSurface
    v1: float
    v2: float

    Returns
    -------
    int

    """
    return _IntPatch.IntPatch_HInterTool_NbSamplesV(*args)

def IntPatch_HInterTool_NbSegments(*args) -> "Standard_Integer":
    r"""
    Returns the number of part of a solution of the of intersection problem.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    int

    """
    return _IntPatch.IntPatch_HInterTool_NbSegments(*args)

def IntPatch_HInterTool_Parameter(*args) -> "Standard_Real":
    r"""
    Returns the parameter of the vertex v on the arc a.

    Parameters
    ----------
    V: Adaptor3d_HVertex
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _IntPatch.IntPatch_HInterTool_Parameter(*args)

def IntPatch_HInterTool_Project(*args) -> "Standard_Real &":
    r"""
    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.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    P: gp_Pnt2d
    Ptproj: gp_Pnt2d

    Returns
    -------
    Paramproj: float

    """
    return _IntPatch.IntPatch_HInterTool_Project(*args)

def IntPatch_HInterTool_SingularOnUMax(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    S: Adaptor3d_HSurface

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_HInterTool_SingularOnUMax(*args)

def IntPatch_HInterTool_SingularOnUMin(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    S: Adaptor3d_HSurface

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_HInterTool_SingularOnUMin(*args)

def IntPatch_HInterTool_SingularOnVMax(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    S: Adaptor3d_HSurface

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_HInterTool_SingularOnVMax(*args)

def IntPatch_HInterTool_SingularOnVMin(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    S: Adaptor3d_HSurface

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_HInterTool_SingularOnVMin(*args)

def IntPatch_HInterTool_Tolerance(*args) -> "Standard_Real":
    r"""
    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'.

    Parameters
    ----------
    V: Adaptor3d_HVertex
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _IntPatch.IntPatch_HInterTool_Tolerance(*args)

def IntPatch_HInterTool_Value(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Returns the value (pt), the tolerance (tol), and the parameter (u) on the arc a , of the intersection point of range index.

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

    Returns
    -------
    Tol: float
    U: float

    """
    return _IntPatch.IntPatch_HInterTool_Value(*args)

def IntPatch_HInterTool_Vertex(*args) -> "void":
    r"""
    When isvertex returns true, this method returns the vertex on the arc a.

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

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_HInterTool_Vertex(*args)

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"""
        No available documentation.

        Returns
        -------
        None
        Flag theisreqtokeeprline has been entered only for compatibility with topopebrep package. it shall be deleted after deleting topopebrep. when intersection result returns intpatch_rline and another intpatch_line (not restriction) we (in case of theisreqtokeeprline==true) will always keep both lines even if they are coincided.

        Parameters
        ----------
        S1: Adaptor3d_HSurface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_HSurface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        theIsReqToKeepRLine: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the calculus was successful.

        Returns
        -------
        bool

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

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the is no intersection.

        Returns
        -------
        bool

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

    def Line(self, *args) -> "opencascade::handle< IntPatch_Line > const &":
        r"""
        Returns the line of range index. an exception is raised if index<=0 or index>nbline.

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

        Returns
        -------
        opencascade::handle<IntPatch_Line>

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

    def NbLines(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of intersection lines.

        Returns
        -------
        int

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

    def NbPnts(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of 'single' points.

        Returns
        -------
        int

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

    def OppositeFaces(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Returns
        -------
        bool

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

    def Perform(self, *args) -> "void":
        r"""
        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.

        Parameters
        ----------
        S1: Adaptor3d_HSurface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_HSurface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        theIsReqToKeepRLine: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

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

    def Point(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the point of range index. an exception is raised if index<=0 or index>nbpnt.

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

        Returns
        -------
        IntPatch_Point

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

    def TangentFaces(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Returns
        -------
        bool

        """
        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"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

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

        Returns
        -------
        None

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the calculus was succesfull.

        Returns
        -------
        bool

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

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the is no intersection.

        Returns
        -------
        bool

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

    def Line(self, *args) -> "opencascade::handle< IntPatch_Line > const &":
        r"""
        Returns the line of range index. an exception is raised if index<=0 or index>nbline.

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

        Returns
        -------
        opencascade::handle<IntPatch_Line>

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

    def NbLines(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of intersection lines.

        Returns
        -------
        int

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

    def NbPnts(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of 'single' points.

        Returns
        -------
        int

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

    def Perform(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def Point(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the point of range index. an exception is raised if index<=0 or index>nbpnt.

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

        Returns
        -------
        IntPatch_Point

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

    def SetStartPoint(self, *args) -> "void":
        r"""
        To search for solution from the given point.

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

        Returns
        -------
        None

        """
        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"""
        Constructs an empty interference of polyhedron.

        Returns
        -------
        None
        Constructs and computes an interference between the two polyhedra.

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

        Returns
        -------
        None
        Constructs and computes the self interference of a polyhedron.

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

        Returns
        -------
        None

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

    def Perform(self, *args) -> "void":
        r"""
        Computes the interference between the two polyhedra.

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

        Returns
        -------
        None
        Computes the self interference of a polyhedron.

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

        Returns
        -------
        None

        """
        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"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

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

        Returns
        -------
        None
        No available documentation.

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

        Returns
        -------
        None

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

    def Dump(self, *args) -> "void":
        r"""
        Dump of each result line. mode for more accurate dumps.

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

        Returns
        -------
        None

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the calculus was successful.

        Returns
        -------
        bool

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

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the is no intersection.

        Returns
        -------
        bool

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

    def Line(self, *args) -> "opencascade::handle< IntPatch_Line > const &":
        r"""
        Returns the line of range index. an exception is raised if index<=0 or index>nbline.

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

        Returns
        -------
        opencascade::handle<IntPatch_Line>

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

    def NbLines(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of intersection lines.

        Returns
        -------
        int

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

    def NbPnts(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of 'single' points.

        Returns
        -------
        int

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

    def OppositeFaces(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Returns
        -------
        bool

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

    def Perform(self, *args) -> "void":
        r"""
        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 (wothout any post-processing). .

        Parameters
        ----------
        S1: Adaptor3d_HSurface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_HSurface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        isGeomInt: bool,optional
        	default value is Standard_True
        theIsReqToKeepRLine: bool,optional
        	default value is Standard_False
        theIsReqToPostWLProc: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        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_HSurface
        D1: Adaptor3d_TopolTool
        S2: Adaptor3d_HSurface
        D2: Adaptor3d_TopolTool
        TolArc: float
        TolTang: float
        LOfPnts: IntSurf_ListOfPntOn2S
        isGeomInt: bool,optional
        	default value is Standard_True
        theIsReqToKeepRLine: bool,optional
        	default value is Standard_False
        theIsReqToPostWLProc: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        Perform with start point.

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

        Returns
        -------
        None
        Uses for finding self-intersected surfaces.

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

        Returns
        -------
        None

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

    def Point(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the point of range index. an exception is raised if index<=0 or index>nbpnt.

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

        Returns
        -------
        IntPatch_Point

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

    def SequenceOfLine(self, *args) -> "IntPatch_SequenceOfLine const &":
        r"""
        No available documentation.

        Returns
        -------
        IntPatch_SequenceOfLine

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

    def SetTolerances(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def TangentFaces(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Returns
        -------
        bool

        """
        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) -> "IntPatch_IType":
        r"""
        Returns the type of geometry 3d (line, circle, parabola, hyperbola, ellipse, analytic, walking, restriction).

        Returns
        -------
        IntPatch_IType

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

    def IsTangent(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the intersection is a line of tangency between the 2 patches.

        Returns
        -------
        bool

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

    def IsUIsoOnS1(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the intersection is a u isoparametric curve on the first patch.

        Returns
        -------
        bool

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

    def IsUIsoOnS2(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the intersection is a u isoparametric curve on the second patch.

        Returns
        -------
        bool

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

    def IsVIsoOnS1(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the intersection is a v isoparametric curve on the first patch.

        Returns
        -------
        bool

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

    def IsVIsoOnS2(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the intersection is a v isoparametric curve on the second patch.

        Returns
        -------
        bool

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

    def SetValue(self, *args) -> "void":
        r"""
        To set the values returned by isuisos1,.... the default values are false.

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

        Returns
        -------
        None

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

    def SituationS1(self, *args) -> "IntSurf_Situation":
        r"""
        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.

        Returns
        -------
        IntSurf_Situation

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

    def SituationS2(self, *args) -> "IntSurf_Situation":
        r"""
        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.

        Returns
        -------
        IntSurf_Situation

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

    def TransitionOnS1(self, *args) -> "IntSurf_TypeTrans":
        r"""
        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.

        Returns
        -------
        IntSurf_TypeTrans

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

    def TransitionOnS2(self, *args) -> "IntSurf_TypeTrans":
        r"""
        Returns the type of the transition of the line for the second surface. the transition is 'constant' along the line.

        Returns
        -------
        IntSurf_TypeTrans

        """
        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"""
        No available documentation.

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

        Returns
        -------
        None

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

    def Line(self, *args) -> "opencascade::handle< IntPatch_Line >":
        r"""
        No available documentation.

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

        Returns
        -------
        opencascade::handle<IntPatch_Line>

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

    def NbLines(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

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

    def Perform(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        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"""
        Empty constructor.

        Returns
        -------
        None

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

    def ArcOnS1(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        Returns the arc of restriction containing the vertex. the exception domainerror is raised if isondoms1 returns false.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def ArcOnS2(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        Returns the arc of restriction containing the vertex. the exception domainerror is raised if isondoms2 returns false.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def Dump(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

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

    def IsMultiple(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the point belongs to several intersection lines.

        Returns
        -------
        bool

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

    def IsOnDomS1(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the point is on a boundary of the domain of the first patch.

        Returns
        -------
        bool

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

    def IsOnDomS2(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the point is on a boundary of the domain of the second patch.

        Returns
        -------
        bool

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

    def IsTangencyPoint(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Returns
        -------
        bool

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

    def IsVertexOnS1(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the point is a vertex on the initial restriction facet of the first surface.

        Returns
        -------
        bool

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

    def IsVertexOnS2(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the point is a vertex on the initial restriction facet of the first surface.

        Returns
        -------
        bool

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

    def ParameterOnArc1(self, *args) -> "Standard_Real":
        r"""
        Returns the parameter of the point on the arc returned by the method arcons2. the exception domainerror is raised if isondoms1 returns false.

        Returns
        -------
        float

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

    def ParameterOnArc2(self, *args) -> "Standard_Real":
        r"""
        Returns the parameter of the point on the arc returned by the method arcons2. the exception domainerror is raised if isondoms2 returns false.

        Returns
        -------
        float

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

    def ParameterOnLine(self, *args) -> "Standard_Real":
        r"""
        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.

        Returns
        -------
        float

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

    def Parameters(self, *args) -> "void":
        r"""
        Returns the parameters on the first and on the second surface of the point.

        Parameters
        ----------

        Returns
        -------
        U1: float
        V1: float
        U2: float
        V2: float

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

    def ParametersOnS1(self, *args) -> "void":
        r"""
        Returns the parameters on the first surface of the point.

        Parameters
        ----------

        Returns
        -------
        U1: float
        V1: float

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

    def ParametersOnS2(self, *args) -> "void":
        r"""
        Returns the parameters on the second surface of the point.

        Parameters
        ----------

        Returns
        -------
        U2: float
        V2: float

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

    def PntOn2S(self, *args) -> "IntSurf_PntOn2S const &":
        r"""
        Returns the pnton2s (geometric point and the parameters).

        Returns
        -------
        IntSurf_PntOn2S

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

    def ReverseTransition(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

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

    def SetArc(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def SetMultiple(self, *args) -> "void":
        r"""
        Sets (or unsets) the point as a point on several intersection line.

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

        Returns
        -------
        None

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

    def SetParameter(self, *args) -> "void":
        r"""
        Set the value of the parameter on the intersection line.

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

        Returns
        -------
        None

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

    def SetParameters(self, *args) -> "void":
        r"""
        Sets the values of the parameters of the point on each surface.

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

        Returns
        -------
        None

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

    def SetTolerance(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def SetValue(self, *args) -> "void":
        r"""
        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
        Tol: float
        Tangent: bool

        Returns
        -------
        None
        No available documentation.

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

        Returns
        -------
        None
        Sets the value of <pt> member.

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

        Returns
        -------
        None

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

    def SetVertex(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def Tolerance(self, *args) -> "Standard_Real":
        r"""
        This method returns the fuzziness on the point.

        Returns
        -------
        float

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

    def TransitionLineArc1(self, *args) -> "IntSurf_Transition const &":
        r"""
        Returns the transition of the point on the intersection line with the arc on s1. the exception domainerror is raised if isondoms1 returns false.

        Returns
        -------
        IntSurf_Transition

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

    def TransitionLineArc2(self, *args) -> "IntSurf_Transition const &":
        r"""
        Returns the transition of the point on the intersection line with the arc on s2. the exception domainerror is raised if isondoms2 returns false.

        Returns
        -------
        IntSurf_Transition

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

    def TransitionOnS1(self, *args) -> "IntSurf_Transition const &":
        r"""
        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.

        Returns
        -------
        IntSurf_Transition

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

    def TransitionOnS2(self, *args) -> "IntSurf_Transition const &":
        r"""
        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.

        Returns
        -------
        IntSurf_Transition

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

    def Value(self, *args) -> "gp_Pnt const":
        r"""
        Returns the intersection point (geometric information).

        Returns
        -------
        gp_Pnt

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

    def VertexOnS1(self, *args) -> "opencascade::handle< Adaptor3d_HVertex > const &":
        r"""
        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.

        Returns
        -------
        opencascade::handle<Adaptor3d_HVertex>

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

    def VertexOnS2(self, *args) -> "opencascade::handle< Adaptor3d_HVertex > const &":
        r"""
        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.

        Returns
        -------
        opencascade::handle<Adaptor3d_HVertex>

        """
        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) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

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

    def Error(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def NbPoints(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

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

    def Point(self, *args) -> "gp_Pnt2d":
        r"""
        No available documentation.

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

        Returns
        -------
        gp_Pnt2d

        """
        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) -> "Bnd_Box const &":
        r"""
        Give the bounding box of the polyhedron.

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron

        Returns
        -------
        Bnd_Box

        """
        return _IntPatch.IntPatch_PolyhedronTool_Bounding(*args)

    @staticmethod
    def ComponentsBounding(*args) -> "opencascade::handle< Bnd_HArray1OfBox > const &":
        r"""
        Give the array of boxes. the box <n> corresponding to the triangle <n>.

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron

        Returns
        -------
        opencascade::handle<Bnd_HArray1OfBox>

        """
        return _IntPatch.IntPatch_PolyhedronTool_ComponentsBounding(*args)

    @staticmethod
    def DeflectionOverEstimation(*args) -> "Standard_Real":
        r"""
        Give the tolerance of the polygon.

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron

        Returns
        -------
        float

        """
        return _IntPatch.IntPatch_PolyhedronTool_DeflectionOverEstimation(*args)

    @staticmethod
    def NbTriangles(*args) -> "Standard_Integer":
        r"""
        Give the number of triangles in this polyedral surface.

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron

        Returns
        -------
        int

        """
        return _IntPatch.IntPatch_PolyhedronTool_NbTriangles(*args)

    @staticmethod
    def Point(*args) -> "gp_Pnt const":
        r"""
        Give the point of index i in the polyedral surface.

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron
        Index: int

        Returns
        -------
        gp_Pnt

        """
        return _IntPatch.IntPatch_PolyhedronTool_Point(*args)

    @staticmethod
    def TriConnex(*args) -> "Standard_Integer &, Standard_Integer &":
        r"""
        Gives the addresse 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.

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron
        Triang: int
        Pivot: int
        Pedge: int

        Returns
        -------
        TriCon: int
        OtherP: int

        """
        return _IntPatch.IntPatch_PolyhedronTool_TriConnex(*args)

    @staticmethod
    def Triangle(*args) -> "Standard_Integer &, Standard_Integer &, Standard_Integer &":
        r"""
        Give the indices of the 3 points of the triangle of address index in the polyhedron.

        Parameters
        ----------
        thePolyh: IntPatch_Polyhedron
        Index: int

        Returns
        -------
        P1: int
        P2: int
        P3: int

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

def IntPatch_PolyhedronTool_Bounding(*args) -> "Bnd_Box const &":
    r"""
    Give the bounding box of the polyhedron.

    Parameters
    ----------
    thePolyh: IntPatch_Polyhedron

    Returns
    -------
    Bnd_Box

    """
    return _IntPatch.IntPatch_PolyhedronTool_Bounding(*args)

def IntPatch_PolyhedronTool_ComponentsBounding(*args) -> "opencascade::handle< Bnd_HArray1OfBox > const &":
    r"""
    Give the array of boxes. the box <n> corresponding to the triangle <n>.

    Parameters
    ----------
    thePolyh: IntPatch_Polyhedron

    Returns
    -------
    opencascade::handle<Bnd_HArray1OfBox>

    """
    return _IntPatch.IntPatch_PolyhedronTool_ComponentsBounding(*args)

def IntPatch_PolyhedronTool_DeflectionOverEstimation(*args) -> "Standard_Real":
    r"""
    Give the tolerance of the polygon.

    Parameters
    ----------
    thePolyh: IntPatch_Polyhedron

    Returns
    -------
    float

    """
    return _IntPatch.IntPatch_PolyhedronTool_DeflectionOverEstimation(*args)

def IntPatch_PolyhedronTool_NbTriangles(*args) -> "Standard_Integer":
    r"""
    Give the number of triangles in this polyedral surface.

    Parameters
    ----------
    thePolyh: IntPatch_Polyhedron

    Returns
    -------
    int

    """
    return _IntPatch.IntPatch_PolyhedronTool_NbTriangles(*args)

def IntPatch_PolyhedronTool_Point(*args) -> "gp_Pnt const":
    r"""
    Give the point of index i in the polyedral surface.

    Parameters
    ----------
    thePolyh: IntPatch_Polyhedron
    Index: int

    Returns
    -------
    gp_Pnt

    """
    return _IntPatch.IntPatch_PolyhedronTool_Point(*args)

def IntPatch_PolyhedronTool_TriConnex(*args) -> "Standard_Integer &, Standard_Integer &":
    r"""
    Gives the addresse 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.

    Parameters
    ----------
    thePolyh: IntPatch_Polyhedron
    Triang: int
    Pivot: int
    Pedge: int

    Returns
    -------
    TriCon: int
    OtherP: int

    """
    return _IntPatch.IntPatch_PolyhedronTool_TriConnex(*args)

def IntPatch_PolyhedronTool_Triangle(*args) -> "Standard_Integer &, Standard_Integer &, Standard_Integer &":
    r"""
    Give the indices of the 3 points of the triangle of address index in the polyhedron.

    Parameters
    ----------
    thePolyh: IntPatch_Polyhedron
    Index: int

    Returns
    -------
    P1: int
    P2: int
    P3: int

    """
    return _IntPatch.IntPatch_PolyhedronTool_Triangle(*args)

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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_PrmPrmIntersection_swiginit(self, _IntPatch.new_IntPatch_PrmPrmIntersection(*args))

    def CodeReject(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        x1: float
        y1: float
        z1: float
        x2: float
        y2: float
        z2: float
        x3: float
        y3: float
        z3: float

        Returns
        -------
        int

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

    def DansGrille(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        t: int

        Returns
        -------
        int

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

    def GrilleInteger(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        ix: int
        iy: int
        iz: int

        Returns
        -------
        int

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

    def IntegerGrille(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        t: int

        Returns
        -------
        ix: int
        iy: int
        iz: int

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the calculus was succesfull.

        Returns
        -------
        bool

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

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the is no intersection.

        Returns
        -------
        bool

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

    def Line(self, *args) -> "opencascade::handle< IntPatch_Line > const &":
        r"""
        Returns the line of range index. an exception is raised if index<=0 or index>nbline.

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

        Returns
        -------
        opencascade::handle<IntPatch_Line>

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

    def NbLines(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of intersection lines.

        Returns
        -------
        int

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

    def NbPointsGrille(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

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

    def NewLine(self, *args) -> "opencascade::handle< IntPatch_Line >":
        r"""
        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.

        Parameters
        ----------
        Caro1: Adaptor3d_HSurface
        Caro2: Adaptor3d_HSurface
        IndexLine: int
        LowPoint: int
        HighPoint: int
        NbPoints: int

        Returns
        -------
        opencascade::handle<IntPatch_Line>

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

    def Perform(self, *args) -> "void":
        r"""
        Performs the intersection between <caro1> and <caro2>. associated polyhedrons <polyhedron1> and <polyhedron2> are given.

        Parameters
        ----------
        Caro1: Adaptor3d_HSurface
        Polyhedron1: IntPatch_Polyhedron
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_HSurface
        Polyhedron2: IntPatch_Polyhedron
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        Caro1: Adaptor3d_HSurface
        Polyhedron1: IntPatch_Polyhedron
        Domain1: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Returns
        -------
        None
        Performs the intersection between <caro1> and <caro2>. the method computes the polyhedron on each surface.

        Parameters
        ----------
        Caro1: Adaptor3d_HSurface
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_HSurface
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float
        ClearFlag: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        Performs the intersection between <caro1> and <caro2>. the method computes the polyhedron on each surface.

        Parameters
        ----------
        Caro1: Adaptor3d_HSurface
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_HSurface
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float
        ListOfPnts: IntSurf_ListOfPntOn2S

        Returns
        -------
        None
        Performs the intersection between <caro1> and <caro2>. the method computes the polyhedron on each surface.

        Parameters
        ----------
        Caro1: Adaptor3d_HSurface
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_HSurface
        Domain2: Adaptor3d_TopolTool
        U1: float
        V1: float
        U2: float
        V2: float
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Returns
        -------
        None
        Performs the intersection between <caro1> and <caro2>. the method computes the polyhedron on each surface.

        Parameters
        ----------
        Caro1: Adaptor3d_HSurface
        Domain1: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Returns
        -------
        None
        Performs the intersection between <caro1> and <caro2>. //! the polyhedron which approximates <caro2>, <polyhedron2> is given. the other one is computed.

        Parameters
        ----------
        Caro1: Adaptor3d_HSurface
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_HSurface
        Polyhedron2: IntPatch_Polyhedron
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Returns
        -------
        None
        Performs the intersection between <caro1> and <caro2>. //! the polyhedron which approximates <caro1>, <polyhedron1> is given. the other one is computed.

        Parameters
        ----------
        Caro1: Adaptor3d_HSurface
        Polyhedron1: IntPatch_Polyhedron
        Domain1: Adaptor3d_TopolTool
        Caro2: Adaptor3d_HSurface
        Domain2: Adaptor3d_TopolTool
        TolTangency: float
        Epsilon: float
        Deflection: float
        Increment: float

        Returns
        -------
        None

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

    def PointDepart(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        LineOn2S: IntSurf_LineOn2S
        S1: Adaptor3d_HSurface
        SU1: int
        SV1: int
        S2: Adaptor3d_HSurface
        SU2: int
        SV2: int

        Returns
        -------
        None

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

    def Remplit(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        a: int
        b: int
        c: int
        Map: IntPatch_PrmPrmIntersection_T3Bits

        Returns
        -------
        None

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

    def RemplitLin(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        x1: int
        y1: int
        z1: int
        x2: int
        y2: int
        z2: int
        Map: IntPatch_PrmPrmIntersection_T3Bits

        Returns
        -------
        None

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

    def RemplitTri(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        x1: int
        y1: int
        z1: int
        x2: int
        y2: int
        z2: int
        x3: int
        y3: int
        z3: int
        Map: IntPatch_PrmPrmIntersection_T3Bits

        Returns
        -------
        None

        """
        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"""
        No available documentation.

        Parameters
        ----------
        size: int

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_PrmPrmIntersection_T3Bits_swiginit(self, _IntPatch.new_IntPatch_PrmPrmIntersection_T3Bits(*args))

    def Add(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        t: int

        Returns
        -------
        None

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

    def And(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        Oth: IntPatch_PrmPrmIntersection_T3Bits

        Returns
        -------
        indiceprecedent: int

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

    def Destroy(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

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

    def Raz(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        t: int

        Returns
        -------
        None

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

    def ResetAnd(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

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

    def Val(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        t: int

        Returns
        -------
        int

        """
        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) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        L: IntPatch_Line
        Surf: Adaptor3d_HSurface
        Domain: Adaptor3d_TopolTool
        OtherSurf: Adaptor3d_HSurface
        OnFirst: bool
        Tol: float

        Returns
        -------
        None

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

def IntPatch_RstInt_PutVertexOnLine(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    L: IntPatch_Line
    Surf: Adaptor3d_HSurface
    Domain: Adaptor3d_TopolTool
    OtherSurf: Adaptor3d_HSurface
    OnFirst: bool
    Tol: float

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_RstInt_PutVertexOnLine(*args)

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) -> "Standard_Boolean":
        r"""
        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.

        Parameters
        ----------
        theQSurf: Adaptor3d_HSurface
        thePSurf: Adaptor3d_HSurface
        theRefPt: IntSurf_PntOn2S
        theTol3d: float
        theAddedPoint: IntSurf_PntOn2S
        theIsReversed: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_SpecialPoints_AddCrossUVIsoPoint(*args)

    @staticmethod
    def AddPointOnUorVIso(*args) -> "Standard_Boolean":
        r"""
        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.

        Parameters
        ----------
        theQSurf: Adaptor3d_HSurface
        thePSurf: Adaptor3d_HSurface
        theRefPt: IntSurf_PntOn2S
        theIsU: bool
        theIsoParameter: float
        theToler: math_Vector
        theInitPoint: math_Vector
        theInfBound: math_Vector
        theSupBound: math_Vector
        theAddedPoint: IntSurf_PntOn2S
        theIsReversed: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_SpecialPoints_AddPointOnUorVIso(*args)

    @staticmethod
    def AddSingularPole(*args) -> "Standard_Boolean":
        r"""
        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 .

        Parameters
        ----------
        theQSurf: Adaptor3d_HSurface
        thePSurf: Adaptor3d_HSurface
        thePtIso: IntSurf_PntOn2S
        theVertex: IntPatch_Point
        theAddedPoint: IntSurf_PntOn2S
        theIsReversed: bool,optional
        	default value is Standard_False
        theIsReqRefCheck: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _IntPatch.IntPatch_SpecialPoints_AddSingularPole(*args)

    @staticmethod
    def AdjustPointAndVertex(*args) -> "void":
        r"""
        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.

        Parameters
        ----------
        theRefPoint: IntSurf_PntOn2S
        theArrPeriods: float
        theNewPoint: IntSurf_PntOn2S
        theVertex: IntPatch_Point *,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _IntPatch.IntPatch_SpecialPoints_AdjustPointAndVertex(*args)

    @staticmethod
    def ContinueAfterSpecialPoint(*args) -> "Standard_Boolean":
        r"""
        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.

        Parameters
        ----------
        theQSurf: Adaptor3d_HSurface
        thePSurf: Adaptor3d_HSurface
        theRefPt: IntSurf_PntOn2S
        theSPType: IntPatch_SpecPntType
        theTol2D: float
        theNewPoint: IntSurf_PntOn2S
        theIsReversed: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

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

def IntPatch_SpecialPoints_AddCrossUVIsoPoint(*args) -> "Standard_Boolean":
    r"""
    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.

    Parameters
    ----------
    theQSurf: Adaptor3d_HSurface
    thePSurf: Adaptor3d_HSurface
    theRefPt: IntSurf_PntOn2S
    theTol3d: float
    theAddedPoint: IntSurf_PntOn2S
    theIsReversed: bool,optional
    	default value is Standard_False

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_SpecialPoints_AddCrossUVIsoPoint(*args)

def IntPatch_SpecialPoints_AddPointOnUorVIso(*args) -> "Standard_Boolean":
    r"""
    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.

    Parameters
    ----------
    theQSurf: Adaptor3d_HSurface
    thePSurf: Adaptor3d_HSurface
    theRefPt: IntSurf_PntOn2S
    theIsU: bool
    theIsoParameter: float
    theToler: math_Vector
    theInitPoint: math_Vector
    theInfBound: math_Vector
    theSupBound: math_Vector
    theAddedPoint: IntSurf_PntOn2S
    theIsReversed: bool,optional
    	default value is Standard_False

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_SpecialPoints_AddPointOnUorVIso(*args)

def IntPatch_SpecialPoints_AddSingularPole(*args) -> "Standard_Boolean":
    r"""
    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 .

    Parameters
    ----------
    theQSurf: Adaptor3d_HSurface
    thePSurf: Adaptor3d_HSurface
    thePtIso: IntSurf_PntOn2S
    theVertex: IntPatch_Point
    theAddedPoint: IntSurf_PntOn2S
    theIsReversed: bool,optional
    	default value is Standard_False
    theIsReqRefCheck: bool,optional
    	default value is Standard_False

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_SpecialPoints_AddSingularPole(*args)

def IntPatch_SpecialPoints_AdjustPointAndVertex(*args) -> "void":
    r"""
    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.

    Parameters
    ----------
    theRefPoint: IntSurf_PntOn2S
    theArrPeriods: float
    theNewPoint: IntSurf_PntOn2S
    theVertex: IntPatch_Point *,optional
    	default value is 0

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_SpecialPoints_AdjustPointAndVertex(*args)

def IntPatch_SpecialPoints_ContinueAfterSpecialPoint(*args) -> "Standard_Boolean":
    r"""
    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.

    Parameters
    ----------
    theQSurf: Adaptor3d_HSurface
    thePSurf: Adaptor3d_HSurface
    theRefPt: IntSurf_PntOn2S
    theSPType: IntPatch_SpecPntType
    theTol2D: float
    theNewPoint: IntSurf_PntOn2S
    theIsReversed: bool,optional
    	default value is Standard_False

    Returns
    -------
    bool

    """
    return _IntPatch.IntPatch_SpecialPoints_ContinueAfterSpecialPoint(*args)

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"""
        No available documentation.

        Parameters
        ----------
        theAllocator: IntSurf_Allocator,optional
        	default value is 0

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_TheIWLineOfTheIWalking_swiginit(self, _IntPatch.new_IntPatch_TheIWLineOfTheIWalking(*args))

    def AddIndexPassing(self, *args) -> "void":
        r"""
        Associer a l 'indice du point sur la ligne l'indice du point passant dans l'iterateur de depart.

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

        Returns
        -------
        None

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

    def AddPoint(self, *args) -> "void":
        r"""
        Add a point in the line.

        Parameters
        ----------
        P: IntSurf_PntOn2S

        Returns
        -------
        None

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

    def AddStatusFirst(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        Closed: bool
        HasFirst: bool

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        Closed: bool
        HasLast: bool
        Index: int
        P: IntSurf_PathPoint

        Returns
        -------
        None

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

    def AddStatusFirstLast(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        Closed: bool
        HasFirst: bool
        HasLast: bool

        Returns
        -------
        None

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

    def AddStatusLast(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        HasLast: bool

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        HasLast: bool
        Index: int
        P: IntSurf_PathPoint

        Returns
        -------
        None

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

    def Cut(self, *args) -> "void":
        r"""
        Cut the line at the point of rank index.

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

        Returns
        -------
        None

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

    def FirstPoint(self, *args) -> "IntSurf_PathPoint const &":
        r"""
        Returns the first point of the line when it is a marching point. an exception is raised if hasfirstpoint returns false.

        Returns
        -------
        IntSurf_PathPoint

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

    def FirstPointIndex(self, *args) -> "Standard_Integer":
        r"""
        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.

        Returns
        -------
        int

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

    def HasFirstPoint(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Returns
        -------
        bool

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

    def HasLastPoint(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Returns
        -------
        bool

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

    def IsClosed(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line is closed.

        Returns
        -------
        bool

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

    def IsTangentAtBegining(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def IsTangentAtEnd(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def LastPoint(self, *args) -> "IntSurf_PathPoint const &":
        r"""
        Returns the last point of the line when it is a marching point. an exception is raised if haslastpoint returns false.

        Returns
        -------
        IntSurf_PathPoint

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

    def LastPointIndex(self, *args) -> "Standard_Integer":
        r"""
        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.

        Returns
        -------
        int

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

    def Line(self, *args) -> "opencascade::handle< IntSurf_LineOn2S > const &":
        r"""
        Returns the lineon2s contained in the walking line.

        Returns
        -------
        opencascade::handle<IntSurf_LineOn2S>

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

    def NbPassingPoint(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of points belonging to pnts1 which are passing point.

        Returns
        -------
        int

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

    def NbPoints(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of points of the line (including first point and end point : see haslastpoint and hasfirstpoint).

        Returns
        -------
        int

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

    def PassingPoint(self, *args) -> "void":
        r"""
        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().

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

        Returns
        -------
        IndexLine: int
        IndexPnts: int

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

    def Reverse(self, *args) -> "void":
        r"""
        Reverse the points in the line. hasfirst, haslast are kept.

        Returns
        -------
        None

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

    def SetTangencyAtBegining(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IsTangent: bool

        Returns
        -------
        None

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

    def SetTangencyAtEnd(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IsTangent: bool

        Returns
        -------
        None

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

    def SetTangentVector(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        V: gp_Vec
        Index: int

        Returns
        -------
        None

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

    def TangentVector(self, *args) -> "gp_Vec const":
        r"""
        No available documentation.

        Parameters
        ----------

        Returns
        -------
        Index: int

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

    def Value(self, *args) -> "IntSurf_PntOn2S const &":
        r"""
        Returns the point of range index. if index <= 0 or index > nbpoints, an exception is raised.

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

        Returns
        -------
        IntSurf_PntOn2S

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

        Parameters
        ----------
        Epsilon: float
        Deflection: float
        Step: float
        theToFillHoles: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_TheIWalking_swiginit(self, _IntPatch.new_IntPatch_TheIWalking(*args))

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the calculus was successful.

        Returns
        -------
        bool

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

    def NbLines(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of resulting polylines. an exception is raised if isdone returns false.

        Returns
        -------
        int

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

    def NbSinglePnts(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of points belonging to pnts on which no line starts or ends. an exception is raised if isdone returns false.

        Returns
        -------
        int

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

    def Perform(self, *args) -> "void":
        r"""
        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
        Pnts2: IntSurf_SequenceOfInteriorPoint
        Func: IntPatch_TheSurfFunction
        S: Adaptor3d_HSurface
        Reversed: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Searches a set of polylines starting on a point of pnts1. each point on a resulting polyline verifies f(u,v)=0.

        Parameters
        ----------
        Pnts1: IntSurf_SequenceOfPathPoint
        Func: IntPatch_TheSurfFunction
        S: Adaptor3d_HSurface
        Reversed: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

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

    def SetTolerance(self, *args) -> "void":
        r"""
        Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. step is the maximum increment admitted between two consecutive points (in 2d space). epsilon is the tolerance beyond which 2 points are confused.

        Parameters
        ----------
        Epsilon: float
        Deflection: float
        Step: float

        Returns
        -------
        None

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

    def SinglePnt(self, *args) -> "IntSurf_PathPoint const &":
        r"""
        Returns the point of range index . an exception is raised if isdone returns false. an exception is raised if index<=0 or index > nbsinglepnts.

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

        Returns
        -------
        IntSurf_PathPoint

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

    def Value(self, *args) -> "opencascade::handle< IntPatch_TheIWLineOfTheIWalking > const &":
        r"""
        Returns the polyline of range index. an exception is raised if isdone is false. an exception is raised if index<=0 or index>nblines.

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

        Returns
        -------
        opencascade::handle<IntPatch_TheIWLineOfTheIWalking>

        """
        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"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        V: Adaptor3d_HVertex
        A: Adaptor2d_HCurve2d
        Parameter: float

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        A: Adaptor2d_HCurve2d
        Parameter: float

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_ThePathPointOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_ThePathPointOfTheSOnBounds(*args))

    def Arc(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def IsNew(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def Parameter(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def SetValue(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        V: Adaptor3d_HVertex
        A: Adaptor2d_HCurve2d
        Parameter: float

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        A: Adaptor2d_HCurve2d
        Parameter: float

        Returns
        -------
        None

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

    def Tolerance(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def Value(self, *args) -> "gp_Pnt const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Pnt

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

    def Vertex(self, *args) -> "opencascade::handle< Adaptor3d_HVertex > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HVertex>

        """
        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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_TheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_TheSOnBounds(*args))

    def AllArcSolution(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all arc of the arcs are solution (inside the surface). an exception is raised if isdone returns false.

        Returns
        -------
        bool

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the calculus was successful.

        Returns
        -------
        bool

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

    def NbPoints(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of resulting points. an exception is raised if isdone returns false (notdone).

        Returns
        -------
        int

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

    def NbSegments(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of the resulting segments. an exception is raised if isdone returns false (notdone).

        Returns
        -------
        int

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

    def Perform(self, *args) -> "void":
        r"""
        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.

        Parameters
        ----------
        F: IntPatch_ArcFunction
        Domain: Adaptor3d_TopolTool
        TolBoundary: float
        TolTangency: float
        RecheckOnRegularity: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

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

    def Point(self, *args) -> "IntPatch_ThePathPointOfTheSOnBounds const &":
        r"""
        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.

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

        Returns
        -------
        IntPatch_ThePathPointOfTheSOnBounds

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

    def Segment(self, *args) -> "IntPatch_TheSegmentOfTheSOnBounds const &":
        r"""
        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.

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

        Returns
        -------
        IntPatch_TheSegmentOfTheSOnBounds

        """
        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"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        F: IntPatch_TheSurfFunction
        Surf: Adaptor3d_HSurface
        T: Adaptor3d_TopolTool
        Epsilon: float

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_TheSearchInside_swiginit(self, _IntPatch.new_IntPatch_TheSearchInside(*args))

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def NbPoints(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of points. the exception notdone if raised if isdone returns false.

        Returns
        -------
        int

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

    def Perform(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        F: IntPatch_TheSurfFunction
        Surf: Adaptor3d_HSurface
        T: Adaptor3d_TopolTool
        Epsilon: float

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        F: IntPatch_TheSurfFunction
        Surf: Adaptor3d_HSurface
        UStart: float
        VStart: float

        Returns
        -------
        None

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

    def Value(self, *args) -> "IntSurf_InteriorPoint const &":
        r"""
        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.

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

        Returns
        -------
        IntSurf_InteriorPoint

        """
        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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_TheSegmentOfTheSOnBounds_swiginit(self, _IntPatch.new_IntPatch_TheSegmentOfTheSOnBounds(*args))

    def Curve(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        Returns the geometric curve on the surface 's domain which is solution.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def FirstPoint(self, *args) -> "IntPatch_ThePathPointOfTheSOnBounds const &":
        r"""
        Returns the first point.

        Returns
        -------
        IntPatch_ThePathPointOfTheSOnBounds

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

    def HasFirstPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is a vertex (thepathpoint) defining the lowest valid parameter on the arc.

        Returns
        -------
        bool

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

    def HasLastPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is a vertex (thepathpoint) defining the greatest valid parameter on the arc.

        Returns
        -------
        bool

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

    def LastPoint(self, *args) -> "IntPatch_ThePathPointOfTheSOnBounds const &":
        r"""
        Returns the last point.

        Returns
        -------
        IntPatch_ThePathPointOfTheSOnBounds

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

    def SetLimitPoint(self, *args) -> "void":
        r"""
        Defines the first point or the last point, depending on the value of the boolean first.

        Parameters
        ----------
        V: IntPatch_ThePathPointOfTheSOnBounds
        First: bool

        Returns
        -------
        None

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

    def SetValue(self, *args) -> "void":
        r"""
        Defines the concerned arc.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        None

        """
        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"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        PS: Adaptor3d_HSurface
        IS: IntSurf_Quadric

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        IS: IntSurf_Quadric

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_TheSurfFunction_swiginit(self, _IntPatch.new_IntPatch_TheSurfFunction(*args))

    def Direction2d(self, *args) -> "gp_Dir2d const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Dir2d

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

    def Direction3d(self, *args) -> "gp_Vec const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Vec

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

    def ISurface(self, *args) -> "IntSurf_Quadric const &":
        r"""
        No available documentation.

        Returns
        -------
        IntSurf_Quadric

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

    def IsTangent(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def PSurface(self, *args) -> "opencascade::handle< Adaptor3d_HSurface > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HSurface>

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

    def Point(self, *args) -> "gp_Pnt const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Pnt

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

    def Root(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def Set(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        PS: Adaptor3d_HSurface

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        Tolerance: float

        Returns
        -------
        None

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

    def SetImplicitSurface(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IS: IntSurf_Quadric

        Returns
        -------
        None

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

    def Tolerance(self, *args) -> "Standard_Real":
        r"""
        Returns the value tol so that if abs(func.root())<tol the function is considered null.

        Returns
        -------
        float

        """
        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) -> "opencascade::handle< IntPatch_WLine >":
        r"""
        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.

        Parameters
        ----------
        theWLine: IntPatch_WLine
        theS1: Adaptor3d_HSurface
        theS2: Adaptor3d_HSurface
        theDom1: Adaptor3d_TopolTool
        theDom2: Adaptor3d_TopolTool

        Returns
        -------
        opencascade::handle<IntPatch_WLine>

        """
        return _IntPatch.IntPatch_WLineTool_ComputePurgedWLine(*args)

    @staticmethod
    def ExtendTwoWLines(*args) -> "void":
        r"""
        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.

        Parameters
        ----------
        theSlin: IntPatch_SequenceOfLine
        theS1: Adaptor3d_HSurface
        theS2: Adaptor3d_HSurface
        theToler3D: float
        theArrPeriods: float *
        theBoxS1: Bnd_Box2d
        theBoxS2: Bnd_Box2d
        theListOfCriticalPoints: NCollection_List<gp_Pnt>

        Returns
        -------
        None

        """
        return _IntPatch.IntPatch_WLineTool_ExtendTwoWLines(*args)

    @staticmethod
    def JoinWLines(*args) -> "void":
        r"""
        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.

        Parameters
        ----------
        theSlin: IntPatch_SequenceOfLine
        theSPnt: IntPatch_SequenceOfPoint
        theS1: Adaptor3d_HSurface
        theS2: Adaptor3d_HSurface
        theTol3D: float

        Returns
        -------
        None

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

def IntPatch_WLineTool_ComputePurgedWLine(*args) -> "opencascade::handle< IntPatch_WLine >":
    r"""
    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.

    Parameters
    ----------
    theWLine: IntPatch_WLine
    theS1: Adaptor3d_HSurface
    theS2: Adaptor3d_HSurface
    theDom1: Adaptor3d_TopolTool
    theDom2: Adaptor3d_TopolTool

    Returns
    -------
    opencascade::handle<IntPatch_WLine>

    """
    return _IntPatch.IntPatch_WLineTool_ComputePurgedWLine(*args)

def IntPatch_WLineTool_ExtendTwoWLines(*args) -> "void":
    r"""
    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.

    Parameters
    ----------
    theSlin: IntPatch_SequenceOfLine
    theS1: Adaptor3d_HSurface
    theS2: Adaptor3d_HSurface
    theToler3D: float
    theArrPeriods: float *
    theBoxS1: Bnd_Box2d
    theBoxS2: Bnd_Box2d
    theListOfCriticalPoints: NCollection_List<gp_Pnt>

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_WLineTool_ExtendTwoWLines(*args)

def IntPatch_WLineTool_JoinWLines(*args) -> "void":
    r"""
    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.

    Parameters
    ----------
    theSlin: IntPatch_SequenceOfLine
    theSPnt: IntPatch_SequenceOfPoint
    theS1: Adaptor3d_HSurface
    theS2: Adaptor3d_HSurface
    theTol3D: float

    Returns
    -------
    None

    """
    return _IntPatch.IntPatch_WLineTool_JoinWLines(*args)

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"""
        Creates an analytic intersection line when the transitions are in or out.

        Parameters
        ----------
        C: IntAna_Curve
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Returns
        -------
        None
        Creates an analytic intersection line when the transitions are touch.

        Parameters
        ----------
        C: IntAna_Curve
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Returns
        -------
        None
        Creates an analytic intersection line when the transitions are undecided.

        Parameters
        ----------
        C: IntAna_Curve
        Tang: bool

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_ALine_swiginit(self, _IntPatch.new_IntPatch_ALine(*args))

    def AddVertex(self, *args) -> "void":
        r"""
        To add a vertex in the list.

        Parameters
        ----------
        Pnt: IntPatch_Point

        Returns
        -------
        None

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

    def ChangeVertex(self, *args) -> "IntPatch_Point &":
        r"""
        Allows modifying the vertex with index theindex on the line.

        Parameters
        ----------
        theIndex: int

        Returns
        -------
        IntPatch_Point

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

    def ComputeVertexParameters(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def Curve(self, *args) -> "IntAna_Curve const &":
        r"""
        No available documentation.

        Returns
        -------
        IntAna_Curve

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

    def D1(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Parameters
        ----------
        U: float
        P: gp_Pnt
        Du: gp_Vec

        Returns
        -------
        bool

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

    def FindParameter(self, *args) -> "void":
        r"""
        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.

        Parameters
        ----------
        P: gp_Pnt
        theParams: TColStd_ListOfReal

        Returns
        -------
        None

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

    def FirstParameter(self, *args) -> "Standard_Real":
        r"""
        Returns the first parameter on the intersection line. if isincluded returns true, value and d1 methods can be call with a parameter equal to firstparamater. otherwise, the parameter must be greater than firstparameter.

        Parameters
        ----------

        Returns
        -------
        IsIncluded: bool

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

    def FirstPoint(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the intpoint corresponding to the firstpoint. an exception is raised when hasfirstpoint returns false.

        Returns
        -------
        IntPatch_Point

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

    def HasFirstPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line has a known first point. this point is given by the method firstpoint().

        Returns
        -------
        bool

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

    def HasLastPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line has a known last point. this point is given by the method lastpoint().

        Returns
        -------
        bool

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

    def LastParameter(self, *args) -> "Standard_Real":
        r"""
        Returns the last parameter on the intersection line. if isincluded returns true, value and d1 methods can be call with a parameter equal to lastparamater. otherwise, the parameter must be less than lastparameter.

        Parameters
        ----------

        Returns
        -------
        IsIncluded: bool

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

    def LastPoint(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the intpoint corresponding to the lastpoint. an exception is raised when haslastpoint returns false.

        Returns
        -------
        IntPatch_Point

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

    def NbVertex(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

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

    def Replace(self, *args) -> "void":
        r"""
        Replaces the element of range index in the list of points.

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Returns
        -------
        None

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

    def SetFirstPoint(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IndFirst: int

        Returns
        -------
        None

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

    def SetLastPoint(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IndLast: int

        Returns
        -------
        None

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

    def Value(self, *args) -> "gp_Pnt":
        r"""
        Returns the point of parameter u on the analytic intersection line.

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

        Returns
        -------
        gp_Pnt

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

    def Vertex(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the vertex of range index on the line.

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

        Returns
        -------
        IntPatch_Point

        """
        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"""
        Creates a line as intersection line when the transitions are in or out.

        Parameters
        ----------
        L: gp_Lin
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Returns
        -------
        None
        Creates a line as intersection line when the transitions are touch.

        Parameters
        ----------
        L: gp_Lin
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Returns
        -------
        None
        Creates a line as intersection line when the transitions are undecided.

        Parameters
        ----------
        L: gp_Lin
        Tang: bool

        Returns
        -------
        None
        Creates a circle as intersection line when the transitions are in or out.

        Parameters
        ----------
        C: gp_Circ
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Returns
        -------
        None
        Creates a circle as intersection line when the transitions are touch.

        Parameters
        ----------
        C: gp_Circ
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Returns
        -------
        None
        Creates a circle as intersection line when the transitions are undecided.

        Parameters
        ----------
        C: gp_Circ
        Tang: bool

        Returns
        -------
        None
        Creates an ellipse as intersection line when the transitions are in or out.

        Parameters
        ----------
        E: gp_Elips
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Returns
        -------
        None
        Creates an ellispe as intersection line when the transitions are touch.

        Parameters
        ----------
        E: gp_Elips
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Returns
        -------
        None
        Creates an ellipse as intersection line when the transitions are undecided.

        Parameters
        ----------
        E: gp_Elips
        Tang: bool

        Returns
        -------
        None
        Creates a parabola as intersection line when the transitions are in or out.

        Parameters
        ----------
        P: gp_Parab
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Returns
        -------
        None
        Creates a parabola as intersection line when the transitions are touch.

        Parameters
        ----------
        P: gp_Parab
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Returns
        -------
        None
        Creates a parabola as intersection line when the transitions are undecided.

        Parameters
        ----------
        P: gp_Parab
        Tang: bool

        Returns
        -------
        None
        Creates an hyperbola as intersection line when the transitions are in or out.

        Parameters
        ----------
        H: gp_Hypr
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Returns
        -------
        None
        Creates an hyperbola as intersection line when the transitions are touch.

        Parameters
        ----------
        H: gp_Hypr
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Returns
        -------
        None
        Creates an hyperbola as intersection line when the transitions are undecided.

        Parameters
        ----------
        H: gp_Hypr
        Tang: bool

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_GLine_swiginit(self, _IntPatch.new_IntPatch_GLine(*args))

    def AddVertex(self, *args) -> "void":
        r"""
        To add a vertex in the list.

        Parameters
        ----------
        Pnt: IntPatch_Point

        Returns
        -------
        None

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

    def Circle(self, *args) -> "gp_Circ":
        r"""
        Returns the circ from gp corrsponding to the intersection when arctype returns intpatch_circle.

        Returns
        -------
        gp_Circ

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

    def ComputeVertexParameters(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def Ellipse(self, *args) -> "gp_Elips":
        r"""
        Returns the elips from gp corrsponding to the intersection when arctype returns intpatch_ellipse.

        Returns
        -------
        gp_Elips

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

    def FirstPoint(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the intpoint corresponding to the firstpoint. an exception is raised when hasfirstpoint returns false.

        Returns
        -------
        IntPatch_Point

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

    def HasFirstPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line has a known first point. this point is given by the method firstpoint().

        Returns
        -------
        bool

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

    def HasLastPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line has a known last point. this point is given by the method lastpoint().

        Returns
        -------
        bool

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

    def Hyperbola(self, *args) -> "gp_Hypr":
        r"""
        Returns the hypr from gp corrsponding to the intersection when arctype returns intpatch_hyperbola.

        Returns
        -------
        gp_Hypr

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

    def LastPoint(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the intpoint corresponding to the lastpoint. an exception is raised when haslastpoint returns false.

        Returns
        -------
        IntPatch_Point

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

    def Line(self, *args) -> "gp_Lin":
        r"""
        Returns the lin from gp corresponding to the intersection when arctype returns intpatch_line.

        Returns
        -------
        gp_Lin

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

    def NbVertex(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

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

    def Parabola(self, *args) -> "gp_Parab":
        r"""
        Returns the parab from gp corrsponding to the intersection when arctype returns intpatch_parabola.

        Returns
        -------
        gp_Parab

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

    def Replace(self, *args) -> "void":
        r"""
        To replace the element of range index in the list of points.

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Returns
        -------
        None

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

    def SetFirstPoint(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IndFirst: int

        Returns
        -------
        None

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

    def SetLastPoint(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IndLast: int

        Returns
        -------
        None

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

    def Vertex(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the vertex of range index on the line.

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

        Returns
        -------
        IntPatch_Point

        """
        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) -> "void":
        r"""
        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.

        Parameters
        ----------
        Pnt: IntPatch_Point
        theIsPrepend: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

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

    def ChangeVertex(self, *args) -> "IntPatch_Point &":
        r"""
        Returns the vertex of range index on the line.

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

        Returns
        -------
        IntPatch_Point

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

    def ClearVertexes(self, *args) -> "void":
        r"""
        Removes vertices from the line.

        Returns
        -------
        None

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

    @staticmethod
    def CurvatureRadiusOfIntersLine(*args) -> "Standard_Real":
        r"""
        Returns the radius of curvature of the intersection line in given point. returns negative value if computation is not possible.

        Parameters
        ----------
        theS1: Adaptor3d_HSurface
        theS2: Adaptor3d_HSurface
        theUVPoint: IntSurf_PntOn2S

        Returns
        -------
        float

        """
        return _IntPatch.IntPatch_PointLine_CurvatureRadiusOfIntersLine(*args)

    def Curve(self, *args) -> "opencascade::handle< IntSurf_LineOn2S >":
        r"""
        Returns set of intersection points.

        Returns
        -------
        opencascade::handle<IntSurf_LineOn2S>

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

    def IsOutBox(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if p is out of the box built from 3d-points.

        Parameters
        ----------
        P: gp_Pnt

        Returns
        -------
        bool

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

    def IsOutSurf1Box(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if p1 is out of the box built from the points on 1st surface.

        Parameters
        ----------
        P1: gp_Pnt2d

        Returns
        -------
        bool

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

    def IsOutSurf2Box(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if p2 is out of the box built from the points on 2nd surface.

        Parameters
        ----------
        P2: gp_Pnt2d

        Returns
        -------
        bool

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

    def NbPnts(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of intersection points.

        Returns
        -------
        int

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

    def NbVertex(self, *args) -> "Standard_Integer":
        r"""
        Returns number of vertices (intpatch_point) of the line.

        Returns
        -------
        int

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

    def Point(self, *args) -> "IntSurf_PntOn2S const &":
        r"""
        Returns the intersection point of range index.

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

        Returns
        -------
        IntSurf_PntOn2S

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

    def RemoveVertex(self, *args) -> "void":
        r"""
        Removes single vertex from the line.

        Parameters
        ----------
        theIndex: int

        Returns
        -------
        None

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

    def Vertex(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the vertex of range index on the line.

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

        Returns
        -------
        IntPatch_Point

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

def IntPatch_PointLine_CurvatureRadiusOfIntersLine(*args) -> "Standard_Real":
    r"""
    Returns the radius of curvature of the intersection line in given point. returns negative value if computation is not possible.

    Parameters
    ----------
    theS1: Adaptor3d_HSurface
    theS2: Adaptor3d_HSurface
    theUVPoint: IntSurf_PntOn2S

    Returns
    -------
    float

    """
    return _IntPatch.IntPatch_PointLine_CurvatureRadiusOfIntersLine(*args)

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

    def __init__(self, *args):
        r"""
        Creates the polygon of the arc a on the surface s. the arc is limited by the parameters pfirst and plast. none of these parameters can be infinite.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d
        NbSample: int
        Pfirst: float
        Plast: float
        BoxOtherPolygon: Bnd_Box2d

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_PolyArc_swiginit(self, _IntPatch.new_IntPatch_PolyArc(*args))

    def Parameter(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

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

        Returns
        -------
        float

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

    def SetOffset(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        OffsetX: float
        OffsetY: float

        Returns
        -------
        None

        """
        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"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        InitDefle: float

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_PolyLine_swiginit(self, _IntPatch.new_IntPatch_PolyLine(*args))

    def ResetError(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

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

    def SetRLine(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        OnFirst: bool
        Line: IntPatch_RLine

        Returns
        -------
        None

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

    def SetWLine(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        OnFirst: bool
        Line: IntPatch_WLine

        Returns
        -------
        None

        """
        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"""
        Creates a restriction as an intersection line when the transitions are in or out.

        Parameters
        ----------
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Returns
        -------
        None
        Creates a restriction as an intersection line when the transitions are touch.

        Parameters
        ----------
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Returns
        -------
        None
        Creates a restriction as an intersection line when the transitions are undecided.

        Parameters
        ----------
        Tang: bool

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_RLine_swiginit(self, _IntPatch.new_IntPatch_RLine(*args))

    def Add(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        L: IntSurf_LineOn2S

        Returns
        -------
        None

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

    def ArcOnS1(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        Returns the concerned arc.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def ArcOnS2(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        Returns the concerned arc.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def ComputeVertexParameters(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def Dump(self, *args) -> "void":
        r"""
        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.

        Parameters
        ----------
        theMode: int

        Returns
        -------
        None

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

    def FirstPoint(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the intpoint corresponding to the firstpoint. an exception is raised when hasfirstpoint returns false.

        Returns
        -------
        IntPatch_Point

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

    def HasFirstPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line has a known first point. this point is given by the method firstpoint().

        Returns
        -------
        bool

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

    def HasLastPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line has a known last point. this point is given by the method lastpoint().

        Returns
        -------
        bool

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

    def HasPolygon(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def IsArcOnS1(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Returns
        -------
        bool

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

    def IsArcOnS2(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Returns
        -------
        bool

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

    def LastPoint(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the intpoint corresponding to the lastpoint. an exception is raised when haslastpoint returns false.

        Returns
        -------
        IntPatch_Point

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

    def ParamOnS1(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------

        Returns
        -------
        p1: float
        p2: float

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

    def ParamOnS2(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------

        Returns
        -------
        p1: float
        p2: float

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

    def Replace(self, *args) -> "void":
        r"""
        Replaces the element of range index in the list of points.

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Returns
        -------
        None

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

    def SetArcOnS1(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        None

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

    def SetArcOnS2(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        None

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

    def SetCurve(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        theNewCurve: IntSurf_LineOn2S

        Returns
        -------
        None

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

    def SetFirstPoint(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IndFirst: int

        Returns
        -------
        None

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

    def SetLastPoint(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IndLast: int

        Returns
        -------
        None

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

    def SetPoint(self, *args) -> "void":
        r"""
        Set the point of index <index> in the lineon2s.

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Returns
        -------
        None

        """
        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"""
        Creates a wline as an intersection when the transitions are in or out.

        Parameters
        ----------
        Line: IntSurf_LineOn2S
        Tang: bool
        Trans1: IntSurf_TypeTrans
        Trans2: IntSurf_TypeTrans

        Returns
        -------
        None
        Creates a wline as an intersection when the transitions are touch.

        Parameters
        ----------
        Line: IntSurf_LineOn2S
        Tang: bool
        Situ1: IntSurf_Situation
        Situ2: IntSurf_Situation

        Returns
        -------
        None
        Creates a wline as an intersection when the transitions are undecided.

        Parameters
        ----------
        Line: IntSurf_LineOn2S
        Tang: bool

        Returns
        -------
        None

        """
        _IntPatch.IntPatch_WLine_swiginit(self, _IntPatch.new_IntPatch_WLine(*args))

    def ComputeVertexParameters(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def Dump(self, *args) -> "void":
        r"""
        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.

        Parameters
        ----------
        theMode: int

        Returns
        -------
        None

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

    def EnablePurging(self, *args) -> "void":
        r"""
        Allows or forbids purging of existing wline.

        Parameters
        ----------
        theIsEnabled: bool

        Returns
        -------
        None

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

    def FirstPoint(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the point corresponding to the firstpoint.

        Returns
        -------
        IntPatch_Point
        Returns the point corresponding to the firstpoint. indfirst is the index of the first in the list of vertices.

        Parameters
        ----------

        Returns
        -------
        Indfirst: int

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

    def GetArcOnS1(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def GetArcOnS2(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def GetCreatingWay(self, *args) -> "IntPatch_WLine::IntPatch_WLType":
        r"""
        Returns the way of <*this> creation.

        Returns
        -------
        IntPatch_WLine::IntPatch_WLType

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

    def HasArcOnS1(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def HasArcOnS2(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def HasFirstPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line has a known first point. this point is given by the method firstpoint().

        Returns
        -------
        bool

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

    def HasLastPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line has a known last point. this point is given by the method lastpoint().

        Returns
        -------
        bool

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

    def InsertVertexBefore(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        theIndex: int
        thePnt: IntPatch_Point

        Returns
        -------
        None

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

    def IsPurgingAllowed(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if purging is allowed or forbidden for existing wline.

        Returns
        -------
        bool

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

    def LastPoint(self, *args) -> "IntPatch_Point const &":
        r"""
        Returns the point corresponding to the lastpoint.

        Returns
        -------
        IntPatch_Point
        Returns the point corresponding to the lastpoint. indlast is the index of the last in the list of vertices.

        Parameters
        ----------

        Returns
        -------
        Indlast: int

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

    def Replace(self, *args) -> "void":
        r"""
        Replaces the element of range index in the list of points. the exception outofrange is raised when index <= 0 or index > nbvertex.

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Returns
        -------
        None

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

    def SetArcOnS1(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        None

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

    def SetArcOnS2(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        None

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

    def SetCreatingWayInfo(self, *args) -> "void":
        r"""
        Sets the info about the way of <*this> creation.

        Parameters
        ----------
        theAlgo: IntPatch_WLType

        Returns
        -------
        None

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

    def SetFirstPoint(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IndFirst: int

        Returns
        -------
        None

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

    def SetLastPoint(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        IndLast: int

        Returns
        -------
        None

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

    def SetPeriod(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        pu1: float
        pv1: float
        pu2: float
        pv2: float

        Returns
        -------
        None

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

    def SetPoint(self, *args) -> "void":
        r"""
        Set the point of index <index> in the lineon2s.

        Parameters
        ----------
        Index: int
        Pnt: IntPatch_Point

        Returns
        -------
        None

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

    def U1Period(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def U2Period(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def V1Period(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def V2Period(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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



