# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.1.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://www.opencascade.com/doc/occt-7.7.0/refman/html/package_blend.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 _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)

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.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, theOther):
        return _Blend.Blend_SequenceOfPoint_Set(self, theOther)

    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 respecte 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 rationnal.

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



