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

"""
IntSurf module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_intsurf.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _IntSurf
else:
    import _IntSurf

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args):
        return _IntSurf.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _IntSurf:
_IntSurf.SwigPyIterator_swigregister(SwigPyIterator)

def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error, method_name, class_name):
    return _IntSurf.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.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Adaptor3d
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.OSD

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

IntSurf_Inside = _IntSurf.IntSurf_Inside
IntSurf_Outside = _IntSurf.IntSurf_Outside
IntSurf_Unknown = _IntSurf.IntSurf_Unknown
IntSurf_In = _IntSurf.IntSurf_In
IntSurf_Out = _IntSurf.IntSurf_Out
IntSurf_Touch = _IntSurf.IntSurf_Touch
IntSurf_Undecided = _IntSurf.IntSurf_Undecided


class IntSurf_Situation(IntEnum):
	IntSurf_Inside = 0
	IntSurf_Outside = 1
	IntSurf_Unknown = 2
IntSurf_Inside = IntSurf_Situation.IntSurf_Inside
IntSurf_Outside = IntSurf_Situation.IntSurf_Outside
IntSurf_Unknown = IntSurf_Situation.IntSurf_Unknown

class IntSurf_TypeTrans(IntEnum):
	IntSurf_In = 0
	IntSurf_Out = 1
	IntSurf_Touch = 2
	IntSurf_Undecided = 3
IntSurf_In = IntSurf_TypeTrans.IntSurf_In
IntSurf_Out = IntSurf_TypeTrans.IntSurf_Out
IntSurf_Touch = IntSurf_TypeTrans.IntSurf_Touch
IntSurf_Undecided = IntSurf_TypeTrans.IntSurf_Undecided


def Handle_IntSurf_LineOn2S_Create():
    return _IntSurf.Handle_IntSurf_LineOn2S_Create()

def Handle_IntSurf_LineOn2S_DownCast(t):
    return _IntSurf.Handle_IntSurf_LineOn2S_DownCast(t)

def Handle_IntSurf_LineOn2S_IsNull(t):
    return _IntSurf.Handle_IntSurf_LineOn2S_IsNull(t)
class IntSurf_Allocator(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):
        _IntSurf.IntSurf_Allocator_swiginit(self, _IntSurf.new_IntSurf_Allocator())
    __swig_destroy__ = _IntSurf.delete_IntSurf_Allocator

# Register IntSurf_Allocator in _IntSurf:
_IntSurf.IntSurf_Allocator_swigregister(IntSurf_Allocator)
class IntSurf_ListIteratorOfListOfPntOn2S(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):
        _IntSurf.IntSurf_ListIteratorOfListOfPntOn2S_swiginit(self, _IntSurf.new_IntSurf_ListIteratorOfListOfPntOn2S(*args))

    def More(self):
        return _IntSurf.IntSurf_ListIteratorOfListOfPntOn2S_More(self)

    def Next(self):
        return _IntSurf.IntSurf_ListIteratorOfListOfPntOn2S_Next(self)

    def Value(self):
        return _IntSurf.IntSurf_ListIteratorOfListOfPntOn2S_Value(self)

    def ChangeValue(self):
        return _IntSurf.IntSurf_ListIteratorOfListOfPntOn2S_ChangeValue(self)
    __swig_destroy__ = _IntSurf.delete_IntSurf_ListIteratorOfListOfPntOn2S

# Register IntSurf_ListIteratorOfListOfPntOn2S in _IntSurf:
_IntSurf.IntSurf_ListIteratorOfListOfPntOn2S_swigregister(IntSurf_ListIteratorOfListOfPntOn2S)
class IntSurf_ListOfPntOn2S(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _IntSurf.IntSurf_ListOfPntOn2S_begin(self)

    def end(self):
        return _IntSurf.IntSurf_ListOfPntOn2S_end(self)

    def cbegin(self):
        return _IntSurf.IntSurf_ListOfPntOn2S_cbegin(self)

    def cend(self):
        return _IntSurf.IntSurf_ListOfPntOn2S_cend(self)

    def __init__(self, *args):
        _IntSurf.IntSurf_ListOfPntOn2S_swiginit(self, _IntSurf.new_IntSurf_ListOfPntOn2S(*args))

    def Size(self):
        return _IntSurf.IntSurf_ListOfPntOn2S_Size(self)

    def Assign(self, theOther):
        return _IntSurf.IntSurf_ListOfPntOn2S_Assign(self, theOther)

    def Set(self, theOther):
        return _IntSurf.IntSurf_ListOfPntOn2S_Set(self, theOther)

    def Clear(self, theAllocator=0):
        return _IntSurf.IntSurf_ListOfPntOn2S_Clear(self, theAllocator)

    def First(self):
        return _IntSurf.IntSurf_ListOfPntOn2S_First(self)

    def Last(self):
        return _IntSurf.IntSurf_ListOfPntOn2S_Last(self)

    def Append(self, *args):
        return _IntSurf.IntSurf_ListOfPntOn2S_Append(self, *args)

    def Prepend(self, *args):
        return _IntSurf.IntSurf_ListOfPntOn2S_Prepend(self, *args)

    def RemoveFirst(self):
        return _IntSurf.IntSurf_ListOfPntOn2S_RemoveFirst(self)

    def Remove(self, theIter):
        return _IntSurf.IntSurf_ListOfPntOn2S_Remove(self, theIter)

    def InsertBefore(self, *args):
        return _IntSurf.IntSurf_ListOfPntOn2S_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntSurf.IntSurf_ListOfPntOn2S_InsertAfter(self, *args)

    def Reverse(self):
        return _IntSurf.IntSurf_ListOfPntOn2S_Reverse(self)
    __swig_destroy__ = _IntSurf.delete_IntSurf_ListOfPntOn2S

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


# Register IntSurf_ListOfPntOn2S in _IntSurf:
_IntSurf.IntSurf_ListOfPntOn2S_swigregister(IntSurf_ListOfPntOn2S)
class IntSurf_SequenceOfCouple(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _IntSurf.IntSurf_SequenceOfCouple_begin(self)

    def end(self):
        return _IntSurf.IntSurf_SequenceOfCouple_end(self)

    def cbegin(self):
        return _IntSurf.IntSurf_SequenceOfCouple_cbegin(self)

    def cend(self):
        return _IntSurf.IntSurf_SequenceOfCouple_cend(self)

    def __init__(self, *args):
        _IntSurf.IntSurf_SequenceOfCouple_swiginit(self, _IntSurf.new_IntSurf_SequenceOfCouple(*args))

    def Size(self):
        return _IntSurf.IntSurf_SequenceOfCouple_Size(self)

    def Length(self):
        return _IntSurf.IntSurf_SequenceOfCouple_Length(self)

    def Lower(self):
        return _IntSurf.IntSurf_SequenceOfCouple_Lower(self)

    def Upper(self):
        return _IntSurf.IntSurf_SequenceOfCouple_Upper(self)

    def IsEmpty(self):
        return _IntSurf.IntSurf_SequenceOfCouple_IsEmpty(self)

    def Reverse(self):
        return _IntSurf.IntSurf_SequenceOfCouple_Reverse(self)

    def Exchange(self, I, J):
        return _IntSurf.IntSurf_SequenceOfCouple_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _IntSurf.IntSurf_SequenceOfCouple_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _IntSurf.IntSurf_SequenceOfCouple_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _IntSurf.IntSurf_SequenceOfCouple_Assign(self, theOther)

    def Set(self, theOther):
        return _IntSurf.IntSurf_SequenceOfCouple_Set(self, theOther)

    def Remove(self, *args):
        return _IntSurf.IntSurf_SequenceOfCouple_Remove(self, *args)

    def Append(self, *args):
        return _IntSurf.IntSurf_SequenceOfCouple_Append(self, *args)

    def Prepend(self, *args):
        return _IntSurf.IntSurf_SequenceOfCouple_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _IntSurf.IntSurf_SequenceOfCouple_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntSurf.IntSurf_SequenceOfCouple_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _IntSurf.IntSurf_SequenceOfCouple_Split(self, theIndex, theSeq)

    def First(self):
        return _IntSurf.IntSurf_SequenceOfCouple_First(self)

    def ChangeFirst(self):
        return _IntSurf.IntSurf_SequenceOfCouple_ChangeFirst(self)

    def Last(self):
        return _IntSurf.IntSurf_SequenceOfCouple_Last(self)

    def ChangeLast(self):
        return _IntSurf.IntSurf_SequenceOfCouple_ChangeLast(self)

    def Value(self, theIndex):
        return _IntSurf.IntSurf_SequenceOfCouple_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _IntSurf.IntSurf_SequenceOfCouple_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _IntSurf.IntSurf_SequenceOfCouple___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _IntSurf.IntSurf_SequenceOfCouple_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _IntSurf.delete_IntSurf_SequenceOfCouple

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


# Register IntSurf_SequenceOfCouple in _IntSurf:
_IntSurf.IntSurf_SequenceOfCouple_swigregister(IntSurf_SequenceOfCouple)
class IntSurf_SequenceOfInteriorPoint(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_begin(self)

    def end(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_end(self)

    def cbegin(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_cbegin(self)

    def cend(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_cend(self)

    def __init__(self, *args):
        _IntSurf.IntSurf_SequenceOfInteriorPoint_swiginit(self, _IntSurf.new_IntSurf_SequenceOfInteriorPoint(*args))

    def Size(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Size(self)

    def Length(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Length(self)

    def Lower(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Lower(self)

    def Upper(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Upper(self)

    def IsEmpty(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_IsEmpty(self)

    def Reverse(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Reverse(self)

    def Exchange(self, I, J):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Assign(self, theOther)

    def Set(self, theOther):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Set(self, theOther)

    def Remove(self, *args):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Remove(self, *args)

    def Append(self, *args):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Append(self, *args)

    def Prepend(self, *args):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Split(self, theIndex, theSeq)

    def First(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_First(self)

    def ChangeFirst(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_ChangeFirst(self)

    def Last(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Last(self)

    def ChangeLast(self):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_ChangeLast(self)

    def Value(self, theIndex):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _IntSurf.IntSurf_SequenceOfInteriorPoint_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _IntSurf.delete_IntSurf_SequenceOfInteriorPoint

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


# Register IntSurf_SequenceOfInteriorPoint in _IntSurf:
_IntSurf.IntSurf_SequenceOfInteriorPoint_swigregister(IntSurf_SequenceOfInteriorPoint)
class IntSurf_SequenceOfPathPoint(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_begin(self)

    def end(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_end(self)

    def cbegin(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_cbegin(self)

    def cend(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_cend(self)

    def __init__(self, *args):
        _IntSurf.IntSurf_SequenceOfPathPoint_swiginit(self, _IntSurf.new_IntSurf_SequenceOfPathPoint(*args))

    def Size(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Size(self)

    def Length(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Length(self)

    def Lower(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Lower(self)

    def Upper(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Upper(self)

    def IsEmpty(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_IsEmpty(self)

    def Reverse(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Reverse(self)

    def Exchange(self, I, J):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _IntSurf.IntSurf_SequenceOfPathPoint_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Assign(self, theOther)

    def Set(self, theOther):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Set(self, theOther)

    def Remove(self, *args):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Remove(self, *args)

    def Append(self, *args):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Append(self, *args)

    def Prepend(self, *args):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _IntSurf.IntSurf_SequenceOfPathPoint_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntSurf.IntSurf_SequenceOfPathPoint_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Split(self, theIndex, theSeq)

    def First(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_First(self)

    def ChangeFirst(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_ChangeFirst(self)

    def Last(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Last(self)

    def ChangeLast(self):
        return _IntSurf.IntSurf_SequenceOfPathPoint_ChangeLast(self)

    def Value(self, theIndex):
        return _IntSurf.IntSurf_SequenceOfPathPoint_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _IntSurf.IntSurf_SequenceOfPathPoint_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _IntSurf.IntSurf_SequenceOfPathPoint___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _IntSurf.IntSurf_SequenceOfPathPoint_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _IntSurf.delete_IntSurf_SequenceOfPathPoint

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


# Register IntSurf_SequenceOfPathPoint in _IntSurf:
_IntSurf.IntSurf_SequenceOfPathPoint_swigregister(IntSurf_SequenceOfPathPoint)
class IntSurf_SequenceOfPntOn2S(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_begin(self)

    def end(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_end(self)

    def cbegin(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_cbegin(self)

    def cend(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_cend(self)

    def __init__(self, *args):
        _IntSurf.IntSurf_SequenceOfPntOn2S_swiginit(self, _IntSurf.new_IntSurf_SequenceOfPntOn2S(*args))

    def Size(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Size(self)

    def Length(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Length(self)

    def Lower(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Lower(self)

    def Upper(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Upper(self)

    def IsEmpty(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_IsEmpty(self)

    def Reverse(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Reverse(self)

    def Exchange(self, I, J):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Assign(self, theOther)

    def Set(self, theOther):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Set(self, theOther)

    def Remove(self, *args):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Remove(self, *args)

    def Append(self, *args):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Append(self, *args)

    def Prepend(self, *args):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Split(self, theIndex, theSeq)

    def First(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_First(self)

    def ChangeFirst(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_ChangeFirst(self)

    def Last(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Last(self)

    def ChangeLast(self):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_ChangeLast(self)

    def Value(self, theIndex):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _IntSurf.IntSurf_SequenceOfPntOn2S___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _IntSurf.IntSurf_SequenceOfPntOn2S_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _IntSurf.delete_IntSurf_SequenceOfPntOn2S

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


# Register IntSurf_SequenceOfPntOn2S in _IntSurf:
_IntSurf.IntSurf_SequenceOfPntOn2S_swigregister(IntSurf_SequenceOfPntOn2S)
class intsurf(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        TgFirst: gp_Vec
        TgSecond: gp_Vec
        Normal: gp_Dir
        TFirst: IntSurf_Transition
        TSecond: IntSurf_Transition

        Return
        -------
        None

        Description
        -----------
        Computes the transition of the intersection point between the two lines. tgfirst is the tangent vector of the first line. tgsecond is the tangent vector of the second line. normal is the direction used to orientate the cross product tgfirst^tgsecond. tfirst is the transition of the point on the first line. tsecond is the transition of the point on the second line.

        """
        return _IntSurf.intsurf_MakeTransition(*args)

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

        Parameters
        ----------
        theFirstSurf: Adaptor3d_Surface
        theSecondSurf: Adaptor3d_Surface
        theArrOfPeriod: float

        Return
        -------
        None

        Description
        -----------
        Fills thearrofperiod array by the period values of thefirstsurf and thesecondsurf. [0] = u-period of thefirstsurf, [1] = v-period of thefirstsurf, [2] = u-period of thesecondsurf, [3] = v-period of thesecondsurf. //! if surface is not periodic in correspond direction then its period is considered to be equal to 0.

        """
        return _IntSurf.intsurf_SetPeriod(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _IntSurf.intsurf_swiginit(self, _IntSurf.new_intsurf())
    __swig_destroy__ = _IntSurf.delete_intsurf

# Register intsurf in _IntSurf:
_IntSurf.intsurf_swigregister(intsurf)
class IntSurf_Couple(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        Index1: int
        Index2: int

        Return
        -------
        None

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

        """
        _IntSurf.IntSurf_Couple_swiginit(self, _IntSurf.new_IntSurf_Couple(*args))

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

        Description
        -----------
        Returns the first element.

        """
        return _IntSurf.IntSurf_Couple_First(self, *args)

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

        Description
        -----------
        Returns the second element.

        """
        return _IntSurf.IntSurf_Couple_Second(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntSurf.delete_IntSurf_Couple

# Register IntSurf_Couple in _IntSurf:
_IntSurf.IntSurf_Couple_swigregister(IntSurf_Couple)
class IntSurf_InteriorPoint(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        P: gp_Pnt
        U: float
        V: float
        Direc: gp_Vec
        Direc2d: gp_Vec2d

        Return
        -------
        None

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

        """
        _IntSurf.IntSurf_InteriorPoint_swiginit(self, _IntSurf.new_IntSurf_InteriorPoint(*args))

    def Direction(self, *args):
        r"""
        Return
        -------
        gp_Vec

        Description
        -----------
        Returns the tangent at the intersection in 3d space associated to the interior point.

        """
        return _IntSurf.IntSurf_InteriorPoint_Direction(self, *args)

    def Direction2d(self, *args):
        r"""
        Return
        -------
        gp_Vec2d

        Description
        -----------
        Returns the tangent at the intersection in the parametric space of the parametric surface.

        """
        return _IntSurf.IntSurf_InteriorPoint_Direction2d(self, *args)

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

        Parameters
        ----------

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

        Description
        -----------
        Returns the parameters of the interior point on the parametric surface.

        """
        return _IntSurf.IntSurf_InteriorPoint_Parameters(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        U: float
        V: float
        Direc: gp_Vec
        Direc2d: gp_Vec2d

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_InteriorPoint_SetValue(self, *args)

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

        Description
        -----------
        Returns the first parameter of the interior point on the parametric surface.

        """
        return _IntSurf.IntSurf_InteriorPoint_UParameter(self, *args)

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

        Description
        -----------
        Returns the second parameter of the interior point on the parametric surface.

        """
        return _IntSurf.IntSurf_InteriorPoint_VParameter(self, *args)

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

        Description
        -----------
        Returns the 3d coordinates of the interior point.

        """
        return _IntSurf.IntSurf_InteriorPoint_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntSurf.delete_IntSurf_InteriorPoint

# Register IntSurf_InteriorPoint in _IntSurf:
_IntSurf.IntSurf_InteriorPoint_swigregister(IntSurf_InteriorPoint)
class IntSurf_InteriorPointTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        PStart: IntSurf_InteriorPoint

        Return
        -------
        gp_Dir2d

        Description
        -----------
        Returns the tangent at the intersectin in the parametric space of the parametrized surface.this tangent is associated to the value2d.

        """
        return _IntSurf.IntSurf_InteriorPointTool_Direction2d(*args)

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

        Parameters
        ----------
        PStart: IntSurf_InteriorPoint

        Return
        -------
        gp_Vec

        Description
        -----------
        Returns the tangent at the intersectin in 3d space associated to <p>.

        """
        return _IntSurf.IntSurf_InteriorPointTool_Direction3d(*args)

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

        Parameters
        ----------
        PStart: IntSurf_InteriorPoint

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

        Description
        -----------
        Returns the <u,v> parameters which are associated with <p> it's the parameters which start the marching algorithm.

        """
        return _IntSurf.IntSurf_InteriorPointTool_Value2d(*args)

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

        Parameters
        ----------
        PStart: IntSurf_InteriorPoint

        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the 3d coordinates of the starting point.

        """
        return _IntSurf.IntSurf_InteriorPointTool_Value3d(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _IntSurf.IntSurf_InteriorPointTool_swiginit(self, _IntSurf.new_IntSurf_InteriorPointTool())
    __swig_destroy__ = _IntSurf.delete_IntSurf_InteriorPointTool

# Register IntSurf_InteriorPointTool in _IntSurf:
_IntSurf.IntSurf_InteriorPointTool_swigregister(IntSurf_InteriorPointTool)
class IntSurf_LineOn2S(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        theAllocator: IntSurf_Allocator (optional, default to 0)

        Return
        -------
        None

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

        """
        _IntSurf.IntSurf_LineOn2S_swiginit(self, _IntSurf.new_IntSurf_LineOn2S(*args))

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

        Parameters
        ----------
        P: IntSurf_PntOn2S

        Return
        -------
        None

        Description
        -----------
        Adds a point in the line.

        """
        return _IntSurf.IntSurf_LineOn2S_Add(self, *args)

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

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

        """
        return _IntSurf.IntSurf_LineOn2S_Clear(self, *args)

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

        Parameters
        ----------
        I: int
        P: IntSurf_PntOn2S

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_LineOn2S_InsertBefore(self, *args)

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

        Parameters
        ----------
        theP: gp_Pnt

        Return
        -------
        bool

        Description
        -----------
        Returns true if thep is out of the box built from 3d-points.

        """
        return _IntSurf.IntSurf_LineOn2S_IsOutBox(self, *args)

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

        Parameters
        ----------
        theP: gp_Pnt2d

        Return
        -------
        bool

        Description
        -----------
        Returns true if thep is out of the box built from the points on 1st surface.

        """
        return _IntSurf.IntSurf_LineOn2S_IsOutSurf1Box(self, *args)

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

        Parameters
        ----------
        theP: gp_Pnt2d

        Return
        -------
        bool

        Description
        -----------
        Returns true if thep is out of the box built from the points on 2nd surface.

        """
        return _IntSurf.IntSurf_LineOn2S_IsOutSurf2Box(self, *args)

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

        Description
        -----------
        Returns the number of points in the line.

        """
        return _IntSurf.IntSurf_LineOn2S_NbPoints(self, *args)

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

        Parameters
        ----------
        I: int

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_LineOn2S_RemovePoint(self, *args)

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

        Description
        -----------
        Reverses the order of points of the line.

        """
        return _IntSurf.IntSurf_LineOn2S_Reverse(self, *args)

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

        Parameters
        ----------
        Index: int
        thePnt: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        Sets the 3d point of the index-th pnton2s.

        """
        return _IntSurf.IntSurf_LineOn2S_SetPoint(self, *args)

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

        Parameters
        ----------
        Index: int
        OnFirst: bool
        U: float
        V: float

        Return
        -------
        None

        Description
        -----------
        Sets the parametric coordinates on one of the surfaces of the point of range index in the line.

        """
        return _IntSurf.IntSurf_LineOn2S_SetUV(self, *args)

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

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

        Return
        -------
        opencascade::handle<IntSurf_LineOn2S>

        Description
        -----------
        Keeps in <self> the points 1 to index-1, and returns the items index to the end.

        """
        return _IntSurf.IntSurf_LineOn2S_Split(self, *args)

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

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

        Return
        -------
        IntSurf_PntOn2S

        Description
        -----------
        Returns the point of range index in the line.

        Parameters
        ----------
        Index: int
        P: IntSurf_PntOn2S

        Return
        -------
        None

        Description
        -----------
        Replaces the point of range index in the line.

        """
        return _IntSurf.IntSurf_LineOn2S_Value(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IntSurf.delete_IntSurf_LineOn2S

# Register IntSurf_LineOn2S in _IntSurf:
_IntSurf.IntSurf_LineOn2S_swigregister(IntSurf_LineOn2S)
class IntSurf_PathPoint(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        P: gp_Pnt
        U: float
        V: float

        Return
        -------
        None

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

        """
        _IntSurf.IntSurf_PathPoint_swiginit(self, _IntSurf.new_IntSurf_PathPoint(*args))

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

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

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_PathPoint_AddUV(self, *args)

    def Direction2d(self, *args):
        r"""
        Return
        -------
        gp_Dir2d

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

        """
        return _IntSurf.IntSurf_PathPoint_Direction2d(self, *args)

    def Direction3d(self, *args):
        r"""
        Return
        -------
        gp_Vec

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

        """
        return _IntSurf.IntSurf_PathPoint_Direction3d(self, *args)

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

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

        """
        return _IntSurf.IntSurf_PathPoint_IsPassingPnt(self, *args)

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

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

        """
        return _IntSurf.IntSurf_PathPoint_IsTangent(self, *args)

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

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

        """
        return _IntSurf.IntSurf_PathPoint_Multiplicity(self, *args)

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

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

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

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

        """
        return _IntSurf.IntSurf_PathPoint_Parameters(self, *args)

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

        Parameters
        ----------
        V: gp_Vec
        D: gp_Dir2d

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_PathPoint_SetDirections(self, *args)

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

        Parameters
        ----------
        Pass: bool

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_PathPoint_SetPassing(self, *args)

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

        Parameters
        ----------
        Tang: bool

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_PathPoint_SetTangency(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        U: float
        V: float

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_PathPoint_SetValue(self, *args)

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

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

        """
        return _IntSurf.IntSurf_PathPoint_Value(self, *args)

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

        Parameters
        ----------

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

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

        """
        return _IntSurf.IntSurf_PathPoint_Value2d(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntSurf.delete_IntSurf_PathPoint

# Register IntSurf_PathPoint in _IntSurf:
_IntSurf.IntSurf_PathPoint_swigregister(IntSurf_PathPoint)
class IntSurf_PathPointTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        PStart: IntSurf_PathPoint

        Return
        -------
        gp_Dir2d

        Description
        -----------
        Returns the tangent at the intersection in the parametric space of the parametrized surface.this tangent is associated to the value2d la tangente a un sens signifiant (indique le sens de chemin ement) an exception is raised if istangent is true.

        """
        return _IntSurf.IntSurf_PathPointTool_Direction2d(*args)

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

        Parameters
        ----------
        PStart: IntSurf_PathPoint

        Return
        -------
        gp_Vec

        Description
        -----------
        Returns the tangent at the intersection in 3d space associated to <p> an exception is raised if istangent is true.

        """
        return _IntSurf.IntSurf_PathPointTool_Direction3d(*args)

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

        Parameters
        ----------
        PStart: IntSurf_PathPoint

        Return
        -------
        bool

        Description
        -----------
        Returns true if the point is a point on a non-oriented arc, which means that the intersection line does not stop at such a point but just go through such a point. ispassingpnt is true when isonarc is true.

        """
        return _IntSurf.IntSurf_PathPointTool_IsPassingPnt(*args)

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

        Parameters
        ----------
        PStart: IntSurf_PathPoint

        Return
        -------
        bool

        Description
        -----------
        Returns true if the surfaces are tangent at this point. istangent can be true when isonarc is true if ispassingpnt is true and istangent is true,this point is a stopped point.

        """
        return _IntSurf.IntSurf_PathPointTool_IsTangent(*args)

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

        Parameters
        ----------
        PStart: IntSurf_PathPoint

        Return
        -------
        int

        Description
        -----------
        Returns the multiplicity of the point i-e the number of auxillar parameters associated to the point which the principal parameters are given by value2d.

        """
        return _IntSurf.IntSurf_PathPointTool_Multiplicity(*args)

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

        Parameters
        ----------
        PStart: IntSurf_PathPoint
        Mult: int

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

        Description
        -----------
        Parametric coordinates associated to the multiplicity. an exception is raised if mult<=0 or mult>multiplicity.

        """
        return _IntSurf.IntSurf_PathPointTool_Parameters(*args)

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

        Parameters
        ----------
        PStart: IntSurf_PathPoint

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

        Description
        -----------
        Returns the <u, v> parameters which are associated with <p> it's the parameters which start the marching algorithm.

        """
        return _IntSurf.IntSurf_PathPointTool_Value2d(*args)

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

        Parameters
        ----------
        PStart: IntSurf_PathPoint

        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the 3d coordinates of the starting point.

        """
        return _IntSurf.IntSurf_PathPointTool_Value3d(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _IntSurf.IntSurf_PathPointTool_swiginit(self, _IntSurf.new_IntSurf_PathPointTool())
    __swig_destroy__ = _IntSurf.delete_IntSurf_PathPointTool

# Register IntSurf_PathPointTool in _IntSurf:
_IntSurf.IntSurf_PathPointTool_swigregister(IntSurf_PathPointTool)
class IntSurf_PntOn2S(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        """
        _IntSurf.IntSurf_PntOn2S_swiginit(self, _IntSurf.new_IntSurf_PntOn2S(*args))

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

        Parameters
        ----------
        theOtherPoint: IntSurf_PntOn2S
        theTol3D: float (optional, default to 0.0)
        theTol2D: float (optional, default to -1.0)

        Return
        -------
        bool

        Description
        -----------
        Returns true if 2d- and 3d-coordinates of theoterpoint are equal to corresponding coordinates of me (with given tolerance). if thetol2d < 0.0 we will compare 3d-points only.

        """
        return _IntSurf.IntSurf_PntOn2S_IsSame(self, *args)

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

        Parameters
        ----------

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

        Description
        -----------
        Returns the parameters of the point on both surfaces.

        """
        return _IntSurf.IntSurf_PntOn2S_Parameters(self, *args)

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

        Parameters
        ----------

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

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

        """
        return _IntSurf.IntSurf_PntOn2S_ParametersOnS1(self, *args)

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

        Parameters
        ----------

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

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

        """
        return _IntSurf.IntSurf_PntOn2S_ParametersOnS2(self, *args)

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

        Parameters
        ----------
        OnFirst: bool

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

        Description
        -----------
        Returns the parameters of the point in the parametric space of one of the surface.

        """
        return _IntSurf.IntSurf_PntOn2S_ParametersOnSurface(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        Sets the value of the point in 3d space.

        Parameters
        ----------
        Pt: gp_Pnt
        OnFirst: bool
        U: float
        V: float

        Return
        -------
        None

        Description
        -----------
        Sets the values of the point in 3d space, and in the parametric space of one of the surface.

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

        Return
        -------
        None

        Description
        -----------
        Sets the values of the point in 3d space, and in the parametric space of each surface.

        Parameters
        ----------
        OnFirst: bool
        U: float
        V: float

        Return
        -------
        None

        Description
        -----------
        Set the values of the point in the parametric space of one of the surface.

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

        Return
        -------
        None

        Description
        -----------
        Set the values of the point in the parametric space of one of the surface.

        """
        return _IntSurf.IntSurf_PntOn2S_SetValue(self, *args)

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

        Description
        -----------
        Returns the point in 3d space.

        """
        return _IntSurf.IntSurf_PntOn2S_Value(self, *args)

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

        Parameters
        ----------
        OnFirst: bool

        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Returns the point in 2d space of one of the surfaces.

        """
        return _IntSurf.IntSurf_PntOn2S_ValueOnSurface(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntSurf.delete_IntSurf_PntOn2S

# Register IntSurf_PntOn2S in _IntSurf:
_IntSurf.IntSurf_PntOn2S_swigregister(IntSurf_PntOn2S)
class IntSurf_Quadric(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        P: gp_Pln

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Cylinder

        Return
        -------
        None

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

        Parameters
        ----------
        S: gp_Sphere

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Cone

        Return
        -------
        None

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

        Parameters
        ----------
        T: gp_Torus

        Return
        -------
        None

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

        """
        _IntSurf.IntSurf_Quadric_swiginit(self, _IntSurf.new_IntSurf_Quadric(*args))

    def Cone(self, *args):
        r"""
        Return
        -------
        gp_Cone

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

        """
        return _IntSurf.IntSurf_Quadric_Cone(self, *args)

    def Cylinder(self, *args):
        r"""
        Return
        -------
        gp_Cylinder

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

        """
        return _IntSurf.IntSurf_Quadric_Cylinder(self, *args)

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

        Parameters
        ----------
        U: float
        V: float
        P: gp_Pnt
        D1U: gp_Vec
        D1V: gp_Vec

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_Quadric_D1(self, *args)

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

        Parameters
        ----------
        U: float
        V: float
        Nu: int
        Nv: int

        Return
        -------
        gp_Vec

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

        """
        return _IntSurf.IntSurf_Quadric_DN(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        float

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

        """
        return _IntSurf.IntSurf_Quadric_Distance(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        gp_Vec

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

        """
        return _IntSurf.IntSurf_Quadric_Gradient(self, *args)

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

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

        Return
        -------
        gp_Vec

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        gp_Vec

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

        """
        return _IntSurf.IntSurf_Quadric_Normale(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

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

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

        """
        return _IntSurf.IntSurf_Quadric_Parameters(self, *args)

    def Plane(self, *args):
        r"""
        Return
        -------
        gp_Pln

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

        """
        return _IntSurf.IntSurf_Quadric_Plane(self, *args)

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

        Parameters
        ----------
        P: gp_Pln

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Cylinder

        Return
        -------
        None

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

        Parameters
        ----------
        S: gp_Sphere

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Cone

        Return
        -------
        None

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

        Parameters
        ----------
        T: gp_Torus

        Return
        -------
        None

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

        """
        return _IntSurf.IntSurf_Quadric_SetValue(self, *args)

    def Sphere(self, *args):
        r"""
        Return
        -------
        gp_Sphere

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

        """
        return _IntSurf.IntSurf_Quadric_Sphere(self, *args)

    def Torus(self, *args):
        r"""
        Return
        -------
        gp_Torus

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

        """
        return _IntSurf.IntSurf_Quadric_Torus(self, *args)

    def TypeQuadric(self, *args):
        r"""
        Return
        -------
        GeomAbs_SurfaceType

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

        """
        return _IntSurf.IntSurf_Quadric_TypeQuadric(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        Grad: gp_Vec

        Return
        -------
        Dist: float

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

        """
        return _IntSurf.IntSurf_Quadric_ValAndGrad(self, *args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        return _IntSurf.IntSurf_Quadric_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntSurf.delete_IntSurf_Quadric

# Register IntSurf_Quadric in _IntSurf:
_IntSurf.IntSurf_Quadric_swigregister(IntSurf_Quadric)
class IntSurf_QuadricTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        Quad: IntSurf_Quadric
        X: float
        Y: float
        Z: float
        V: gp_Vec

        Return
        -------
        None

        Description
        -----------
        Returns the gradient of the function.

        """
        return _IntSurf.IntSurf_QuadricTool_Gradient(*args)

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

        Parameters
        ----------
        Quad: IntSurf_Quadric

        Return
        -------
        float

        Description
        -----------
        Returns the tolerance of the zero of the implicit function.

        """
        return _IntSurf.IntSurf_QuadricTool_Tolerance(*args)

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

        Parameters
        ----------
        Quad: IntSurf_Quadric
        X: float
        Y: float
        Z: float

        Return
        -------
        float

        Description
        -----------
        Returns the value of the function.

        """
        return _IntSurf.IntSurf_QuadricTool_Value(*args)

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

        Parameters
        ----------
        Quad: IntSurf_Quadric
        X: float
        Y: float
        Z: float
        Grad: gp_Vec

        Return
        -------
        Val: float

        Description
        -----------
        Returns the value and the gradient.

        """
        return _IntSurf.IntSurf_QuadricTool_ValueAndGradient(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _IntSurf.IntSurf_QuadricTool_swiginit(self, _IntSurf.new_IntSurf_QuadricTool())
    __swig_destroy__ = _IntSurf.delete_IntSurf_QuadricTool

# Register IntSurf_QuadricTool in _IntSurf:
_IntSurf.IntSurf_QuadricTool_swigregister(IntSurf_QuadricTool)
class IntSurf_Transition(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Empty constructor. creates an undecided transition.

        Parameters
        ----------
        Tangent: bool
        Type: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Create a in or out transition.

        Parameters
        ----------
        Tangent: bool
        Situ: IntSurf_Situation
        Oppos: bool

        Return
        -------
        None

        Description
        -----------
        Create a touch transition.

        """
        _IntSurf.IntSurf_Transition_swiginit(self, _IntSurf.new_IntSurf_Transition(*args))

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

        Description
        -----------
        Returns a significant value if transitiontype returns touch. in this case, the function returns true when the 2 curves locally define two different parts of the space. if transitiontype returns in or out or undecided, an exception is raised.

        """
        return _IntSurf.IntSurf_Transition_IsOpposite(self, *args)

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

        Description
        -----------
        Returns true if the point is tangent to the arc given by value. an exception is raised if transitiontype returns undecided.

        """
        return _IntSurf.IntSurf_Transition_IsTangent(self, *args)

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

        Parameters
        ----------
        Tangent: bool
        Type: IntSurf_TypeTrans

        Return
        -------
        None

        Description
        -----------
        Set the values of an in or out transition.

        Parameters
        ----------
        Tangent: bool
        Situ: IntSurf_Situation
        Oppos: bool

        Return
        -------
        None

        Description
        -----------
        Set the values of a touch transition.
        Return
        -------
        None

        Description
        -----------
        Set the values of an undecided transition.

        """
        return _IntSurf.IntSurf_Transition_SetValue(self, *args)

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

        Description
        -----------
        Returns a significant value if transitiontype returns touch. in this case, the function returns: inside when the intersection line remains inside the arc, outside when it remains outside the arc, unknown when the calsulus cannot give results. if transitiontype returns in, or out, or undecided, a exception is raised.

        """
        return _IntSurf.IntSurf_Transition_Situation(self, *args)

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

        Description
        -----------
        Returns the type of transition (in/out/touch/undecided) for the arc given by value. this the transition of the intersection line compared to the arc of restriction, i-e when the function returns inside for example, it means that the intersection line goes inside the part of plane limited by the arc of restriction.

        """
        return _IntSurf.IntSurf_Transition_TransitionType(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntSurf.delete_IntSurf_Transition

# Register IntSurf_Transition in _IntSurf:
_IntSurf.IntSurf_Transition_swigregister(IntSurf_Transition)



@deprecated
def intsurf_MakeTransition(*args):
	return intsurf.MakeTransition(*args)

@deprecated
def intsurf_SetPeriod(*args):
	return intsurf.SetPeriod(*args)

@deprecated
def IntSurf_InteriorPointTool_Direction2d(*args):
	return IntSurf_InteriorPointTool.Direction2d(*args)

@deprecated
def IntSurf_InteriorPointTool_Direction3d(*args):
	return IntSurf_InteriorPointTool.Direction3d(*args)

@deprecated
def IntSurf_InteriorPointTool_Value2d(*args):
	return IntSurf_InteriorPointTool.Value2d(*args)

@deprecated
def IntSurf_InteriorPointTool_Value3d(*args):
	return IntSurf_InteriorPointTool.Value3d(*args)

@deprecated
def IntSurf_PathPointTool_Direction2d(*args):
	return IntSurf_PathPointTool.Direction2d(*args)

@deprecated
def IntSurf_PathPointTool_Direction3d(*args):
	return IntSurf_PathPointTool.Direction3d(*args)

@deprecated
def IntSurf_PathPointTool_IsPassingPnt(*args):
	return IntSurf_PathPointTool.IsPassingPnt(*args)

@deprecated
def IntSurf_PathPointTool_IsTangent(*args):
	return IntSurf_PathPointTool.IsTangent(*args)

@deprecated
def IntSurf_PathPointTool_Multiplicity(*args):
	return IntSurf_PathPointTool.Multiplicity(*args)

@deprecated
def IntSurf_PathPointTool_Parameters(*args):
	return IntSurf_PathPointTool.Parameters(*args)

@deprecated
def IntSurf_PathPointTool_Value2d(*args):
	return IntSurf_PathPointTool.Value2d(*args)

@deprecated
def IntSurf_PathPointTool_Value3d(*args):
	return IntSurf_PathPointTool.Value3d(*args)

@deprecated
def IntSurf_QuadricTool_Gradient(*args):
	return IntSurf_QuadricTool.Gradient(*args)

@deprecated
def IntSurf_QuadricTool_Tolerance(*args):
	return IntSurf_QuadricTool.Tolerance(*args)

@deprecated
def IntSurf_QuadricTool_Value(*args):
	return IntSurf_QuadricTool.Value(*args)

@deprecated
def IntSurf_QuadricTool_ValueAndGradient(*args):
	return IntSurf_QuadricTool.ValueAndGradient(*args)



