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

"""
Blend module, see official documentation at
https://dev.opencascade.org/doc/occt-7.9.0/refman/html/package_blend.html
"""

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

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__ = _Blend.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _Blend:
_Blend.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 _Blend.process_exception(error, method_name, class_name)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

endl_cb_ptr = _Blend.endl_cb_ptr
endl = _Blend.endl
ends_cb_ptr = _Blend.ends_cb_ptr
ends = _Blend.ends
flush_cb_ptr = _Blend.flush_cb_ptr
flush = _Blend.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.math
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.gp
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d

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

Blend_NoDecroch = _Blend.Blend_NoDecroch
Blend_DecrochRst1 = _Blend.Blend_DecrochRst1
Blend_DecrochRst2 = _Blend.Blend_DecrochRst2
Blend_DecrochBoth = _Blend.Blend_DecrochBoth
Blend_StepTooLarge = _Blend.Blend_StepTooLarge
Blend_StepTooSmall = _Blend.Blend_StepTooSmall
Blend_Backward = _Blend.Blend_Backward
Blend_SamePoints = _Blend.Blend_SamePoints
Blend_OnRst1 = _Blend.Blend_OnRst1
Blend_OnRst2 = _Blend.Blend_OnRst2
Blend_OnRst12 = _Blend.Blend_OnRst12
Blend_OK = _Blend.Blend_OK


class Blend_DecrochStatus(IntEnum):
	Blend_NoDecroch = 0
	Blend_DecrochRst1 = 1
	Blend_DecrochRst2 = 2
	Blend_DecrochBoth = 3
Blend_NoDecroch = Blend_DecrochStatus.Blend_NoDecroch
Blend_DecrochRst1 = Blend_DecrochStatus.Blend_DecrochRst1
Blend_DecrochRst2 = Blend_DecrochStatus.Blend_DecrochRst2
Blend_DecrochBoth = Blend_DecrochStatus.Blend_DecrochBoth

class Blend_Status(IntEnum):
	Blend_StepTooLarge = 0
	Blend_StepTooSmall = 1
	Blend_Backward = 2
	Blend_SamePoints = 3
	Blend_OnRst1 = 4
	Blend_OnRst2 = 5
	Blend_OnRst12 = 6
	Blend_OK = 7
Blend_StepTooLarge = Blend_Status.Blend_StepTooLarge
Blend_StepTooSmall = Blend_Status.Blend_StepTooSmall
Blend_Backward = Blend_Status.Blend_Backward
Blend_SamePoints = Blend_Status.Blend_SamePoints
Blend_OnRst1 = Blend_Status.Blend_OnRst1
Blend_OnRst2 = Blend_Status.Blend_OnRst2
Blend_OnRst12 = Blend_Status.Blend_OnRst12
Blend_OK = Blend_Status.Blend_OK

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

    def begin(self):
        return _Blend.Blend_SequenceOfPoint_begin(self)

    def end(self):
        return _Blend.Blend_SequenceOfPoint_end(self)

    def cbegin(self):
        return _Blend.Blend_SequenceOfPoint_cbegin(self)

    def cend(self):
        return _Blend.Blend_SequenceOfPoint_cend(self)

    def __init__(self, *args):
        _Blend.Blend_SequenceOfPoint_swiginit(self, _Blend.new_Blend_SequenceOfPoint(*args))

    def Size(self):
        return _Blend.Blend_SequenceOfPoint_Size(self)

    def Length(self):
        return _Blend.Blend_SequenceOfPoint_Length(self)

    def Lower(self):
        return _Blend.Blend_SequenceOfPoint_Lower(self)

    def Upper(self):
        return _Blend.Blend_SequenceOfPoint_Upper(self)

    def IsEmpty(self):
        return _Blend.Blend_SequenceOfPoint_IsEmpty(self)

    def Reverse(self):
        return _Blend.Blend_SequenceOfPoint_Reverse(self)

    def Exchange(self, I, J):
        return _Blend.Blend_SequenceOfPoint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _Blend.Blend_SequenceOfPoint_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _Blend.Blend_SequenceOfPoint_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _Blend.Blend_SequenceOfPoint_Assign(self, theOther)

    def Set(self, *args):
        return _Blend.Blend_SequenceOfPoint_Set(self, *args)

    def Remove(self, *args):
        return _Blend.Blend_SequenceOfPoint_Remove(self, *args)

    def Append(self, *args):
        return _Blend.Blend_SequenceOfPoint_Append(self, *args)

    def Prepend(self, *args):
        return _Blend.Blend_SequenceOfPoint_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _Blend.Blend_SequenceOfPoint_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _Blend.Blend_SequenceOfPoint_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _Blend.Blend_SequenceOfPoint_Split(self, theIndex, theSeq)

    def First(self):
        return _Blend.Blend_SequenceOfPoint_First(self)

    def ChangeFirst(self):
        return _Blend.Blend_SequenceOfPoint_ChangeFirst(self)

    def Last(self):
        return _Blend.Blend_SequenceOfPoint_Last(self)

    def ChangeLast(self):
        return _Blend.Blend_SequenceOfPoint_ChangeLast(self)

    def Value(self, theIndex):
        return _Blend.Blend_SequenceOfPoint_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _Blend.Blend_SequenceOfPoint_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _Blend.Blend_SequenceOfPoint___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _Blend.Blend_SequenceOfPoint_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Blend.delete_Blend_SequenceOfPoint

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


# Register Blend_SequenceOfPoint in _Blend:
_Blend.Blend_SequenceOfPoint_swigregister(Blend_SequenceOfPoint)
class Blend_AppFunction(OCC.Core.math.math_FunctionSetWithDerivatives):
    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 GetBounds(self, *args):
        r"""

        Parameters
        ----------
        InfBound: math_Vector
        SupBound: math_Vector

        Return
        -------
        None

        Description
        -----------
        Returns in the vector InfBound the lowest values allowed for each of the 4 variables. Returns in the vector SupBound the greatest values allowed for each of the 4 variables.

        """
        return _Blend.Blend_AppFunction_GetBounds(self, *args)

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

        Description
        -----------
        Returns the minimal Distance between two extremities of calculated sections.

        """
        return _Blend.Blend_AppFunction_GetMinimalDistance(self, *args)

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

        Parameters
        ----------
        Weigths: TColStd_Array1OfReal

        Return
        -------
        None

        Description
        -----------
        Compute the minimal value of weight for each poles of all sections.

        """
        return _Blend.Blend_AppFunction_GetMinimalWeight(self, *args)

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

        Description
        -----------
        Returns the length of the maximum section.

        """
        return _Blend.Blend_AppFunction_GetSectionSize(self, *args)

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

        Parameters
        ----------

        Return
        -------
        NbPoles: int
        NbKnots: int
        Degree: int
        NbPoles2d: int

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

        """
        return _Blend.Blend_AppFunction_GetShape(self, *args)

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

        Parameters
        ----------
        Tolerance: math_Vector
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Returns in the vector Tolerance the parametric tolerance for each of the 4 variables; Tol is the tolerance used in 3d space.

        Parameters
        ----------
        BoundTol: float
        SurfTol: float
        AngleTol: float
        Tol3d: math_Vector
        Tol1D: math_Vector

        Return
        -------
        None

        Description
        -----------
        Returns the tolerance to reach in approximation to respect BoundTol error at the Boundary AngleTol tangent error at the Boundary SurfTol error inside the surface.

        """
        return _Blend.Blend_AppFunction_GetTolerance(self, *args)

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

        Parameters
        ----------
        T: TColStd_Array1OfReal
        S: GeomAbs_Shape

        Return
        -------
        None

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

        """
        return _Blend.Blend_AppFunction_Intervals(self, *args)

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

        Description
        -----------
        Returns if the section is rational.

        """
        return _Blend.Blend_AppFunction_IsRational(self, *args)

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

        Parameters
        ----------
        Sol: math_Vector
        Tol: float

        Return
        -------
        bool

        Description
        -----------
        Returns Standard_True if Sol is a zero of the function. Tol is the tolerance used in 3d space. The computation is made at the current value of the parameter on the guide line.

        """
        return _Blend.Blend_AppFunction_IsSolution(self, *args)

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

        Parameters
        ----------
        TKnots: TColStd_Array1OfReal

        Return
        -------
        None

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

        """
        return _Blend.Blend_AppFunction_Knots(self, *args)

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

        Parameters
        ----------
        TMults: TColStd_Array1OfInteger

        Return
        -------
        None

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

        """
        return _Blend.Blend_AppFunction_Mults(self, *args)

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

        Parameters
        ----------
        S: GeomAbs_Shape

        Return
        -------
        int

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

        """
        return _Blend.Blend_AppFunction_NbIntervals(self, *args)

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

        Parameters
        ----------
        P: Blend_Point

        Return
        -------
        float

        Description
        -----------
        Returns the parameter of the point P. Used to impose the parameters in the approximation.

        """
        return _Blend.Blend_AppFunction_Parameter(self, *args)

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

        Description
        -----------
        Returns the point on the first support.

        """
        return _Blend.Blend_AppFunction_Pnt1(self, *args)

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

        Description
        -----------
        Returns the point on the first support.

        """
        return _Blend.Blend_AppFunction_Pnt2(self, *args)

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

        Parameters
        ----------
        IC2d: int
        Tol: float

        Return
        -------
        TolU: float
        TolV: float

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

        """
        return _Blend.Blend_AppFunction_Resolution(self, *args)

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

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        DPoles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal

        Return
        -------
        bool

        Description
        -----------
        Used for the first and last section The method returns Standard_True if the derivatives are computed, otherwise it returns Standard_False.

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        Poles2d: TColgp_Array1OfPnt2d
        Weigths: TColStd_Array1OfReal

        Return
        -------
        None

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

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        DPoles: TColgp_Array1OfVec
        D2Poles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        D2Poles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal
        D2Weigths: TColStd_Array1OfReal

        Return
        -------
        bool

        Description
        -----------
        Used for the first and last section The method returns Standard_True if the derivatives are computed, otherwise it returns Standard_False.

        """
        return _Blend.Blend_AppFunction_Section(self, *args)

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

        Parameters
        ----------
        Param: float

        Return
        -------
        None

        Description
        -----------
        Sets the value of the parameter along the guide line. This determines the plane in which the solution has to be found.

        Parameters
        ----------
        First: float
        Last: float

        Return
        -------
        None

        Description
        -----------
        Sets the bounds of the parametric interval on the guide line. This determines the derivatives in these values if the function is not Cn.

        """
        return _Blend.Blend_AppFunction_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_AppFunction

# Register Blend_AppFunction in _Blend:
_Blend.Blend_AppFunction_swigregister(Blend_AppFunction)
class Blend_CurvPointFuncInv(OCC.Core.math.math_FunctionSetWithDerivatives):
    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 GetBounds(self, *args):
        r"""

        Parameters
        ----------
        InfBound: math_Vector
        SupBound: math_Vector

        Return
        -------
        None

        Description
        -----------
        Returns in the vector InfBound the lowest values allowed for each of the 3 variables. Returns in the vector SupBound the greatest values allowed for each of the 3 variables.

        """
        return _Blend.Blend_CurvPointFuncInv_GetBounds(self, *args)

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

        Parameters
        ----------
        Tolerance: math_Vector
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Returns in the vector Tolerance the parametric tolerance for each of the 3 variables; Tol is the tolerance used in 3d space.

        """
        return _Blend.Blend_CurvPointFuncInv_GetTolerance(self, *args)

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

        Parameters
        ----------
        Sol: math_Vector
        Tol: float

        Return
        -------
        bool

        Description
        -----------
        Returns Standard_True if Sol is a zero of the function. Tol is the tolerance used in 3d space.

        """
        return _Blend.Blend_CurvPointFuncInv_IsSolution(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        Set the Point on which a solution has to be found.

        """
        return _Blend.Blend_CurvPointFuncInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_CurvPointFuncInv

# Register Blend_CurvPointFuncInv in _Blend:
_Blend.Blend_CurvPointFuncInv_swigregister(Blend_CurvPointFuncInv)
class Blend_FuncInv(OCC.Core.math.math_FunctionSetWithDerivatives):
    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 GetBounds(self, *args):
        r"""

        Parameters
        ----------
        InfBound: math_Vector
        SupBound: math_Vector

        Return
        -------
        None

        Description
        -----------
        Returns in the vector InfBound the lowest values allowed for each of the 4 variables. Returns in the vector SupBound the greatest values allowed for each of the 4 variables.

        """
        return _Blend.Blend_FuncInv_GetBounds(self, *args)

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

        Parameters
        ----------
        Tolerance: math_Vector
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Returns in the vector Tolerance the parametric tolerance for each of the 4 variables; Tol is the tolerance used in 3d space.

        """
        return _Blend.Blend_FuncInv_GetTolerance(self, *args)

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

        Parameters
        ----------
        Sol: math_Vector
        Tol: float

        Return
        -------
        bool

        Description
        -----------
        Returns Standard_True if Sol is a zero of the function. Tol is the tolerance used in 3d space.

        """
        return _Blend.Blend_FuncInv_IsSolution(self, *args)

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

        Parameters
        ----------
        OnFirst: bool
        COnSurf: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        Sets the CurveOnSurface on which a solution has to be found. If <OnFirst> is set to Standard_True, the curve will be on the first surface, otherwise the curve is on the second one.

        """
        return _Blend.Blend_FuncInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_FuncInv

# Register Blend_FuncInv in _Blend:
_Blend.Blend_FuncInv_swigregister(Blend_FuncInv)
class Blend_Point(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        Tg1: gp_Vec
        Tg2: gp_Vec
        Tg12d: gp_Vec2d
        Tg22d: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Creates a point on 2 surfaces, with tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float

        Return
        -------
        None

        Description
        -----------
        Creates a point on 2 surfaces, without tangents.

        Parameters
        ----------
        Pts: gp_Pnt
        Ptc: gp_Pnt
        Param: float
        U: float
        V: float
        W: float
        Tgs: gp_Vec
        Tgc: gp_Vec
        Tg2d: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Creates a point on a surface and a curve, with tangents.

        Parameters
        ----------
        Pts: gp_Pnt
        Ptc: gp_Pnt
        Param: float
        U: float
        V: float
        W: float

        Return
        -------
        None

        Description
        -----------
        Creates a point on a surface and a curve, without tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        PC: float
        Tg1: gp_Vec
        Tg2: gp_Vec
        Tg12d: gp_Vec2d
        Tg22d: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Creates a point on a surface and a curve on surface, with tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        PC: float

        Return
        -------
        None

        Description
        -----------
        Creates a point on a surface and a curve on surface, without tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        PC1: float
        PC2: float
        Tg1: gp_Vec
        Tg2: gp_Vec
        Tg12d: gp_Vec2d
        Tg22d: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Creates a point on two curves on surfaces, with tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        PC1: float
        PC2: float

        Return
        -------
        None

        Description
        -----------
        Creates a point on two curves on surfaces, with tangents.

        """
        _Blend.Blend_Point_swiginit(self, _Blend.new_Blend_Point(*args))

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

        Description
        -----------
        Returns Standard_True if it was not possible to compute the tangent vectors at PointOnS1 and/or PointOnS2.

        """
        return _Blend.Blend_Point_IsTangencyPoint(self, *args)

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

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

        """
        return _Blend.Blend_Point_Parameter(self, *args)

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

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

        """
        return _Blend.Blend_Point_ParameterOnC(self, *args)

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

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

        """
        return _Blend.Blend_Point_ParameterOnC1(self, *args)

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

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

        """
        return _Blend.Blend_Point_ParameterOnC2(self, *args)

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

        Parameters
        ----------

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

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

        """
        return _Blend.Blend_Point_ParametersOnS(self, *args)

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

        Parameters
        ----------

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

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

        """
        return _Blend.Blend_Point_ParametersOnS1(self, *args)

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

        Parameters
        ----------

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

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

        """
        return _Blend.Blend_Point_ParametersOnS2(self, *args)

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

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

        """
        return _Blend.Blend_Point_PointOnC(self, *args)

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

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

        """
        return _Blend.Blend_Point_PointOnC1(self, *args)

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

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

        """
        return _Blend.Blend_Point_PointOnC2(self, *args)

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

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

        """
        return _Blend.Blend_Point_PointOnS(self, *args)

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

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

        """
        return _Blend.Blend_Point_PointOnS1(self, *args)

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

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

        """
        return _Blend.Blend_Point_PointOnS2(self, *args)

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

        Parameters
        ----------
        Param: float

        Return
        -------
        None

        Description
        -----------
        Changes parameter on existing point.

        """
        return _Blend.Blend_Point_SetParameter(self, *args)

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

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        Tg1: gp_Vec
        Tg2: gp_Vec
        Tg12d: gp_Vec2d
        Tg22d: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Set the values for a point on 2 surfaces, with tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float

        Return
        -------
        None

        Description
        -----------
        Set the values for a point on 2 surfaces, without tangents.

        Parameters
        ----------
        Pts: gp_Pnt
        Ptc: gp_Pnt
        Param: float
        U: float
        V: float
        W: float
        Tgs: gp_Vec
        Tgc: gp_Vec
        Tg2d: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Set the values for a point on a surface and a curve, with tangents.

        Parameters
        ----------
        Pts: gp_Pnt
        Ptc: gp_Pnt
        Param: float
        U: float
        V: float
        W: float

        Return
        -------
        None

        Description
        -----------
        Set the values for a point on a surface and a curve, without tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        PC: float
        Tg1: gp_Vec
        Tg2: gp_Vec
        Tg12d: gp_Vec2d
        Tg22d: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Creates a point on a surface and a curve on surface, with tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        PC: float

        Return
        -------
        None

        Description
        -----------
        Creates a point on a surface and a curve on surface, without tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        PC1: float
        PC2: float
        Tg1: gp_Vec
        Tg2: gp_Vec
        Tg12d: gp_Vec2d
        Tg22d: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Creates a point on two curves on surfaces, with tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        PC1: float
        PC2: float

        Return
        -------
        None

        Description
        -----------
        Creates a point on two curves on surfaces, without tangents.

        Parameters
        ----------
        Pt1: gp_Pnt
        Pt2: gp_Pnt
        Param: float
        PC1: float
        PC2: float

        Return
        -------
        None

        Description
        -----------
        Creates a point on two curves.

        """
        return _Blend.Blend_Point_SetValue(self, *args)

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

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

        """
        return _Blend.Blend_Point_Tangent2d(self, *args)

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

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

        """
        return _Blend.Blend_Point_Tangent2dOnS1(self, *args)

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

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

        """
        return _Blend.Blend_Point_Tangent2dOnS2(self, *args)

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

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

        """
        return _Blend.Blend_Point_TangentOnC(self, *args)

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

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

        """
        return _Blend.Blend_Point_TangentOnC1(self, *args)

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

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

        """
        return _Blend.Blend_Point_TangentOnC2(self, *args)

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

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

        """
        return _Blend.Blend_Point_TangentOnS(self, *args)

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

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

        """
        return _Blend.Blend_Point_TangentOnS1(self, *args)

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

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

        """
        return _Blend.Blend_Point_TangentOnS2(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_Point

# Register Blend_Point in _Blend:
_Blend.Blend_Point_swigregister(Blend_Point)
class Blend_SurfCurvFuncInv(OCC.Core.math.math_FunctionSetWithDerivatives):
    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 GetBounds(self, *args):
        r"""

        Parameters
        ----------
        InfBound: math_Vector
        SupBound: math_Vector

        Return
        -------
        None

        Description
        -----------
        Returns in the vector InfBound the lowest values allowed for each of the 3 variables. Returns in the vector SupBound the greatest values allowed for each of the 3 variables.

        """
        return _Blend.Blend_SurfCurvFuncInv_GetBounds(self, *args)

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

        Parameters
        ----------
        Tolerance: math_Vector
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Returns in the vector Tolerance the parametric tolerance for each of the 3 variables; Tol is the tolerance used in 3d space.

        """
        return _Blend.Blend_SurfCurvFuncInv_GetTolerance(self, *args)

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

        Parameters
        ----------
        Sol: math_Vector
        Tol: float

        Return
        -------
        bool

        Description
        -----------
        Returns Standard_True if Sol is a zero of the function. Tol is the tolerance used in 3d space.

        """
        return _Blend.Blend_SurfCurvFuncInv_IsSolution(self, *args)

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

        Parameters
        ----------
        Rst: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        Set the Point on which a solution has to be found.

        """
        return _Blend.Blend_SurfCurvFuncInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_SurfCurvFuncInv

# Register Blend_SurfCurvFuncInv in _Blend:
_Blend.Blend_SurfCurvFuncInv_swigregister(Blend_SurfCurvFuncInv)
class Blend_SurfPointFuncInv(OCC.Core.math.math_FunctionSetWithDerivatives):
    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 GetBounds(self, *args):
        r"""

        Parameters
        ----------
        InfBound: math_Vector
        SupBound: math_Vector

        Return
        -------
        None

        Description
        -----------
        Returns in the vector InfBound the lowest values allowed for each of the 3 variables. Returns in the vector SupBound the greatest values allowed for each of the 3 variables.

        """
        return _Blend.Blend_SurfPointFuncInv_GetBounds(self, *args)

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

        Parameters
        ----------
        Tolerance: math_Vector
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Returns in the vector Tolerance the parametric tolerance for each of the 3 variables; Tol is the tolerance used in 3d space.

        """
        return _Blend.Blend_SurfPointFuncInv_GetTolerance(self, *args)

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

        Parameters
        ----------
        Sol: math_Vector
        Tol: float

        Return
        -------
        bool

        Description
        -----------
        Returns Standard_True if Sol is a zero of the function. Tol is the tolerance used in 3d space.

        """
        return _Blend.Blend_SurfPointFuncInv_IsSolution(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        Set the Point on which a solution has to be found.

        """
        return _Blend.Blend_SurfPointFuncInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_SurfPointFuncInv

# Register Blend_SurfPointFuncInv in _Blend:
_Blend.Blend_SurfPointFuncInv_swigregister(Blend_SurfPointFuncInv)
class Blend_CSFunction(Blend_AppFunction):
    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 GetTolerance(self, *args):
        r"""

        Parameters
        ----------
        Tolerance: math_Vector
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Returns in the vector Tolerance the parametric tolerance for each of the 3 variables; Tol is the tolerance used in 3d space.

        Parameters
        ----------
        BoundTol: float
        SurfTol: float
        AngleTol: float
        Tol3d: math_Vector
        Tol1D: math_Vector

        Return
        -------
        None

        Description
        -----------
        Returns the tolerance to reach in approximation to respect BoundTol error at the Boundary AngleTol tangent error at the Boundary SurfTol error inside the surface.

        """
        return _Blend.Blend_CSFunction_GetTolerance(self, *args)

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

        Description
        -----------
        Returns True when it is not possible to compute the tangent vectors at PointOnS and/or PointOnC.

        """
        return _Blend.Blend_CSFunction_IsTangencyPoint(self, *args)

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

        Description
        -----------
        Returns parameter of the point on the curve.

        """
        return _Blend.Blend_CSFunction_ParameterOnC(self, *args)

    def Pnt2d(self, *args):
        r"""
        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Returns U,V coordinates of the point on the surface.

        """
        return _Blend.Blend_CSFunction_Pnt2d(self, *args)

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

        Description
        -----------
        Returns the point on the curve.

        """
        return _Blend.Blend_CSFunction_PointOnC(self, *args)

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

        Description
        -----------
        Returns the point on the surface.

        """
        return _Blend.Blend_CSFunction_PointOnS(self, *args)

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

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        DPoles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal

        Return
        -------
        bool

        Description
        -----------
        Used for the first and last section The method returns Standard_True if the derivatives are computed, otherwise it returns Standard_False.

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        Poles2d: TColgp_Array1OfPnt2d
        Weigths: TColStd_Array1OfReal

        Return
        -------
        None

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

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        DPoles: TColgp_Array1OfVec
        D2Poles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        D2Poles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal
        D2Weigths: TColStd_Array1OfReal

        Return
        -------
        bool

        Description
        -----------
        Used for the first and last section The method returns Standard_True if the derivatives are computed, otherwise it returns Standard_False.

        """
        return _Blend.Blend_CSFunction_Section(self, *args)

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

        Parameters
        ----------
        Param: float

        Return
        -------
        None

        Description
        -----------
        Sets the value of the parameter along the guide line. This determines the plane in which the solution has to be found.

        Parameters
        ----------
        First: float
        Last: float

        Return
        -------
        None

        Description
        -----------
        Sets the bounds of the parametric interval on the guide line. This determines the derivatives in these values if the function is not Cn.

        """
        return _Blend.Blend_CSFunction_Set(self, *args)

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

        Parameters
        ----------
        U: float
        V: float
        TgS: gp_Vec
        NormS: gp_Vec

        Return
        -------
        None

        Description
        -----------
        Returns the tangent vector at the section, at the beginning and the end of the section, and returns the normal (of the surfaces) at these points.

        """
        return _Blend.Blend_CSFunction_Tangent(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS, in the parametric space of the first surface.

        """
        return _Blend.Blend_CSFunction_Tangent2d(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnC, in 3d space.

        """
        return _Blend.Blend_CSFunction_TangentOnC(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS, in 3d space.

        """
        return _Blend.Blend_CSFunction_TangentOnS(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_CSFunction

# Register Blend_CSFunction in _Blend:
_Blend.Blend_CSFunction_swigregister(Blend_CSFunction)
class Blend_Function(Blend_AppFunction):
    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 IsTangencyPoint(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True when it is not possible to compute the tangent vectors at PointOnS1 and/or PointOnS2.

        """
        return _Blend.Blend_Function_IsTangencyPoint(self, *args)

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

        Description
        -----------
        Returns the point on the first surface, at parameter Sol(1),Sol(2) (Sol is the vector used in the call of IsSolution.

        """
        return _Blend.Blend_Function_PointOnS1(self, *args)

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

        Description
        -----------
        Returns the point on the second surface, at parameter Sol(3),Sol(4) (Sol is the vector used in the call of IsSolution.

        """
        return _Blend.Blend_Function_PointOnS2(self, *args)

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

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        Poles2d: TColgp_Array1OfPnt2d
        Weigths: TColStd_Array1OfReal

        Return
        -------
        None

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

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        DPoles: TColgp_Array1OfVec
        D2Poles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        D2Poles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal
        D2Weigths: TColStd_Array1OfReal

        Return
        -------
        bool

        Description
        -----------
        Used for the first and last section The method returns Standard_True if the derivatives are computed, otherwise it returns Standard_False.

        """
        return _Blend.Blend_Function_Section(self, *args)

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

        Parameters
        ----------
        U1: float
        V1: float
        U2: float
        V2: float
        TgFirst: gp_Vec
        TgLast: gp_Vec
        NormFirst: gp_Vec
        NormLast: gp_Vec

        Return
        -------
        None

        Description
        -----------
        Returns the tangent vector at the section, at the beginning and the end of the section, and returns the normal (of the surfaces) at these points.

        """
        return _Blend.Blend_Function_Tangent(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS1, in the parametric space of the first surface.

        """
        return _Blend.Blend_Function_Tangent2dOnS1(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS2, in the parametric space of the second surface.

        """
        return _Blend.Blend_Function_Tangent2dOnS2(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS1, in 3d space.

        """
        return _Blend.Blend_Function_TangentOnS1(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS2, in 3d space.

        """
        return _Blend.Blend_Function_TangentOnS2(self, *args)

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

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

        """
        return _Blend.Blend_Function_TwistOnS1(self, *args)

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

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

        """
        return _Blend.Blend_Function_TwistOnS2(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_Function

# Register Blend_Function in _Blend:
_Blend.Blend_Function_swigregister(Blend_Function)
class Blend_RstRstFunction(Blend_AppFunction):
    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 Decroch(self, *args):
        r"""

        Parameters
        ----------
        Sol: math_Vector
        NRst1: gp_Vec
        TgRst1: gp_Vec
        NRst2: gp_Vec
        TgRst2: gp_Vec

        Return
        -------
        Blend_DecrochStatus

        Description
        -----------
        Enables to implement a criterion of decrochage specific to the function. Warning: Can be called without previous call of issolution but the values calculated can be senseless.

        """
        return _Blend.Blend_RstRstFunction_Decroch(self, *args)

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

        Parameters
        ----------
        Tolerance: math_Vector
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Returns in the vector Tolerance the parametric tolerance for each variable; Tol is the tolerance used in 3d space.

        Parameters
        ----------
        BoundTol: float
        SurfTol: float
        AngleTol: float
        Tol3d: math_Vector
        Tol1D: math_Vector

        Return
        -------
        None

        Description
        -----------
        Returns the tolerance to reach in approximation to respect BoundTol error at the Boundary AngleTol tangent error at the Boundary SurfTol error inside the surface.

        """
        return _Blend.Blend_RstRstFunction_GetTolerance(self, *args)

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

        Description
        -----------
        Returns True when it is not possible to compute the tangent vectors at PointOnS and/or PointOnRst.

        """
        return _Blend.Blend_RstRstFunction_IsTangencyPoint(self, *args)

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

        Description
        -----------
        Returns parameter of the point on the curve.

        """
        return _Blend.Blend_RstRstFunction_ParameterOnRst1(self, *args)

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

        Description
        -----------
        Returns parameter of the point on the curve.

        """
        return _Blend.Blend_RstRstFunction_ParameterOnRst2(self, *args)

    def Pnt2dOnRst1(self, *args):
        r"""
        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Returns U,V coordinates of the point on the surface.

        """
        return _Blend.Blend_RstRstFunction_Pnt2dOnRst1(self, *args)

    def Pnt2dOnRst2(self, *args):
        r"""
        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Returns U,V coordinates of the point on the curve on surface.

        """
        return _Blend.Blend_RstRstFunction_Pnt2dOnRst2(self, *args)

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

        Description
        -----------
        Returns the point on the surface.

        """
        return _Blend.Blend_RstRstFunction_PointOnRst1(self, *args)

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

        Description
        -----------
        Returns the point on the curve.

        """
        return _Blend.Blend_RstRstFunction_PointOnRst2(self, *args)

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

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        Poles2d: TColgp_Array1OfPnt2d
        Weigths: TColStd_Array1OfReal

        Return
        -------
        None

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

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        DPoles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal

        Return
        -------
        bool

        Description
        -----------
        Used for the first and last section The method returns Standard_True if the derivatives are computed, otherwise it returns Standard_False.

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        DPoles: TColgp_Array1OfVec
        D2Poles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        D2Poles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal
        D2Weigths: TColStd_Array1OfReal

        Return
        -------
        bool

        Description
        -----------
        Used for the first and last section The method returns Standard_True if the derivatives are computed, otherwise it returns Standard_False.

        """
        return _Blend.Blend_RstRstFunction_Section(self, *args)

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

        Parameters
        ----------
        Param: float

        Return
        -------
        None

        Description
        -----------
        Sets the value of the parameter along the guide line. This determines the plane in which the solution has to be found.

        Parameters
        ----------
        First: float
        Last: float

        Return
        -------
        None

        Description
        -----------
        Sets the bounds of the parametric interval on the guide line. This determines the derivatives in these values if the function is not Cn.

        """
        return _Blend.Blend_RstRstFunction_Set(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS, in the parametric space of the first surface.

        """
        return _Blend.Blend_RstRstFunction_Tangent2dOnRst1(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnRst, in the parametric space of the second surface.

        """
        return _Blend.Blend_RstRstFunction_Tangent2dOnRst2(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS, in 3d space.

        """
        return _Blend.Blend_RstRstFunction_TangentOnRst1(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnC, in 3d space.

        """
        return _Blend.Blend_RstRstFunction_TangentOnRst2(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_RstRstFunction

# Register Blend_RstRstFunction in _Blend:
_Blend.Blend_RstRstFunction_swigregister(Blend_RstRstFunction)
class Blend_SurfRstFunction(Blend_AppFunction):
    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 Decroch(self, *args):
        r"""

        Parameters
        ----------
        Sol: math_Vector
        NS: gp_Vec
        TgS: gp_Vec

        Return
        -------
        bool

        Description
        -----------
        Enables implementation of a criterion of decrochage specific to the function.

        """
        return _Blend.Blend_SurfRstFunction_Decroch(self, *args)

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

        Parameters
        ----------
        Tolerance: math_Vector
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Returns in the vector Tolerance the parametric tolerance for each variable; Tol is the tolerance used in 3d space.

        Parameters
        ----------
        BoundTol: float
        SurfTol: float
        AngleTol: float
        Tol3d: math_Vector
        Tol1D: math_Vector

        Return
        -------
        None

        Description
        -----------
        Returns the tolerance to reach in approximation to respect BoundTol error at the Boundary AngleTol tangent error at the Boundary SurfTol error inside the surface.

        """
        return _Blend.Blend_SurfRstFunction_GetTolerance(self, *args)

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

        Description
        -----------
        Returns True when it is not possible to compute the tangent vectors at PointOnS and/or PointOnRst.

        """
        return _Blend.Blend_SurfRstFunction_IsTangencyPoint(self, *args)

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

        Description
        -----------
        Returns parameter of the point on the curve.

        """
        return _Blend.Blend_SurfRstFunction_ParameterOnRst(self, *args)

    def Pnt2dOnRst(self, *args):
        r"""
        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Returns U,V coordinates of the point on the curve on surface.

        """
        return _Blend.Blend_SurfRstFunction_Pnt2dOnRst(self, *args)

    def Pnt2dOnS(self, *args):
        r"""
        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Returns U,V coordinates of the point on the surface.

        """
        return _Blend.Blend_SurfRstFunction_Pnt2dOnS(self, *args)

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

        Description
        -----------
        Returns the point on the curve.

        """
        return _Blend.Blend_SurfRstFunction_PointOnRst(self, *args)

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

        Description
        -----------
        Returns the point on the surface.

        """
        return _Blend.Blend_SurfRstFunction_PointOnS(self, *args)

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

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        DPoles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal

        Return
        -------
        bool

        Description
        -----------
        Used for the first and last section The method returns Standard_True if the derivatives are computed, otherwise it returns Standard_False.

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        DPoles: TColgp_Array1OfVec
        D2Poles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        D2Poles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal
        D2Weigths: TColStd_Array1OfReal

        Return
        -------
        bool

        Description
        -----------
        Used for the first and last section The method returns Standard_True if the derivatives are computed, otherwise it returns Standard_False.

        Parameters
        ----------
        P: Blend_Point
        Poles: TColgp_Array1OfPnt
        Poles2d: TColgp_Array1OfPnt2d
        Weigths: TColStd_Array1OfReal

        Return
        -------
        None

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

        """
        return _Blend.Blend_SurfRstFunction_Section(self, *args)

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

        Parameters
        ----------
        Param: float

        Return
        -------
        None

        Description
        -----------
        Sets the value of the parameter along the guide line. This determines the plane in which the solution has to be found.

        Parameters
        ----------
        First: float
        Last: float

        Return
        -------
        None

        Description
        -----------
        Sets the bounds of the parametric interval on the guide line. This determines the derivatives in these values if the function is not Cn.

        """
        return _Blend.Blend_SurfRstFunction_Set(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnRst, in the parametric space of the second surface.

        """
        return _Blend.Blend_SurfRstFunction_Tangent2dOnRst(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS, in the parametric space of the first surface.

        """
        return _Blend.Blend_SurfRstFunction_Tangent2dOnS(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnC, in 3d space.

        """
        return _Blend.Blend_SurfRstFunction_TangentOnRst(self, *args)

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

        Description
        -----------
        Returns the tangent vector at PointOnS, in 3d space.

        """
        return _Blend.Blend_SurfRstFunction_TangentOnS(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_SurfRstFunction

# Register Blend_SurfRstFunction in _Blend:
_Blend.Blend_SurfRstFunction_swigregister(Blend_SurfRstFunction)



