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

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

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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args) -> "ptrdiff_t":
        return _BRepBlend.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

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


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


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _BRepBlend.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.BlendFunc
import OCC.Core.Adaptor3d
import OCC.Core.Geom
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.Convert
import OCC.Core.Blend
import OCC.Core.Law
import OCC.Core.Approx
import OCC.Core.AppCont
import OCC.Core.AppParCurves
import OCC.Core.AppBlend
import OCC.Core.IntSurf
import OCC.Core.ChFiDS
import OCC.Core.TopoDS
import OCC.Core.TopLoc
import OCC.Core.TopTools
import OCC.Core.BRepAdaptor
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor

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




def Handle_BRepBlend_AppFuncRoot_Create() -> "opencascade::handle< BRepBlend_AppFuncRoot >":
    return _BRepBlend.Handle_BRepBlend_AppFuncRoot_Create()

def Handle_BRepBlend_AppFuncRoot_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRepBlend_AppFuncRoot >":
    return _BRepBlend.Handle_BRepBlend_AppFuncRoot_DownCast(t)

def Handle_BRepBlend_AppFuncRoot_IsNull(t: "opencascade::handle< BRepBlend_AppFuncRoot > const &") -> "bool":
    return _BRepBlend.Handle_BRepBlend_AppFuncRoot_IsNull(t)

def Handle_BRepBlend_Line_Create() -> "opencascade::handle< BRepBlend_Line >":
    return _BRepBlend.Handle_BRepBlend_Line_Create()

def Handle_BRepBlend_Line_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRepBlend_Line >":
    return _BRepBlend.Handle_BRepBlend_Line_DownCast(t)

def Handle_BRepBlend_Line_IsNull(t: "opencascade::handle< BRepBlend_Line > const &") -> "bool":
    return _BRepBlend.Handle_BRepBlend_Line_IsNull(t)

def Handle_BRepBlend_AppFunc_Create() -> "opencascade::handle< BRepBlend_AppFunc >":
    return _BRepBlend.Handle_BRepBlend_AppFunc_Create()

def Handle_BRepBlend_AppFunc_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRepBlend_AppFunc >":
    return _BRepBlend.Handle_BRepBlend_AppFunc_DownCast(t)

def Handle_BRepBlend_AppFunc_IsNull(t: "opencascade::handle< BRepBlend_AppFunc > const &") -> "bool":
    return _BRepBlend.Handle_BRepBlend_AppFunc_IsNull(t)

def Handle_BRepBlend_AppFuncRst_Create() -> "opencascade::handle< BRepBlend_AppFuncRst >":
    return _BRepBlend.Handle_BRepBlend_AppFuncRst_Create()

def Handle_BRepBlend_AppFuncRst_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRepBlend_AppFuncRst >":
    return _BRepBlend.Handle_BRepBlend_AppFuncRst_DownCast(t)

def Handle_BRepBlend_AppFuncRst_IsNull(t: "opencascade::handle< BRepBlend_AppFuncRst > const &") -> "bool":
    return _BRepBlend.Handle_BRepBlend_AppFuncRst_IsNull(t)

def Handle_BRepBlend_AppFuncRstRst_Create() -> "opencascade::handle< BRepBlend_AppFuncRstRst >":
    return _BRepBlend.Handle_BRepBlend_AppFuncRstRst_Create()

def Handle_BRepBlend_AppFuncRstRst_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRepBlend_AppFuncRstRst >":
    return _BRepBlend.Handle_BRepBlend_AppFuncRstRst_DownCast(t)

def Handle_BRepBlend_AppFuncRstRst_IsNull(t: "opencascade::handle< BRepBlend_AppFuncRstRst > const &") -> "bool":
    return _BRepBlend.Handle_BRepBlend_AppFuncRstRst_IsNull(t)
class BRepBlend_SequenceOfLine(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_Sequence< opencascade::handle< BRepBlend_Line > >::iterator":
        return _BRepBlend.BRepBlend_SequenceOfLine_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< BRepBlend_Line > >::iterator":
        return _BRepBlend.BRepBlend_SequenceOfLine_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< BRepBlend_Line > >::const_iterator":
        return _BRepBlend.BRepBlend_SequenceOfLine_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< BRepBlend_Line > >::const_iterator":
        return _BRepBlend.BRepBlend_SequenceOfLine_cend(self)

    def __init__(self, *args):
        _BRepBlend.BRepBlend_SequenceOfLine_swiginit(self, _BRepBlend.new_BRepBlend_SequenceOfLine(*args))

    def Size(self) -> "Standard_Integer":
        return _BRepBlend.BRepBlend_SequenceOfLine_Size(self)

    def Length(self) -> "Standard_Integer":
        return _BRepBlend.BRepBlend_SequenceOfLine_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _BRepBlend.BRepBlend_SequenceOfLine_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _BRepBlend.BRepBlend_SequenceOfLine_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _BRepBlend.BRepBlend_SequenceOfLine_IsEmpty(self)

    def Reverse(self) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfLine_Reverse(self)

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

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

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

    def Assign(self, theOther: "BRepBlend_SequenceOfLine") -> "NCollection_Sequence< opencascade::handle< BRepBlend_Line > > &":
        return _BRepBlend.BRepBlend_SequenceOfLine_Assign(self, theOther)

    def Set(self, theOther: "BRepBlend_SequenceOfLine") -> "NCollection_Sequence< opencascade::handle< BRepBlend_Line > > &":
        return _BRepBlend.BRepBlend_SequenceOfLine_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfLine_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfLine_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfLine_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfLine_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfLine_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "BRepBlend_SequenceOfLine") -> "void":
        return _BRepBlend.BRepBlend_SequenceOfLine_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< BRepBlend_Line > const &":
        return _BRepBlend.BRepBlend_SequenceOfLine_First(self)

    def ChangeFirst(self) -> "opencascade::handle< BRepBlend_Line > &":
        return _BRepBlend.BRepBlend_SequenceOfLine_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< BRepBlend_Line > const &":
        return _BRepBlend.BRepBlend_SequenceOfLine_Last(self)

    def ChangeLast(self) -> "opencascade::handle< BRepBlend_Line > &":
        return _BRepBlend.BRepBlend_SequenceOfLine_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< BRepBlend_Line > const &":
        return _BRepBlend.BRepBlend_SequenceOfLine_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< BRepBlend_Line > &":
        return _BRepBlend.BRepBlend_SequenceOfLine_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< BRepBlend_Line > &":
        return _BRepBlend.BRepBlend_SequenceOfLine___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< BRepBlend_Line > const &") -> "void":
        return _BRepBlend.BRepBlend_SequenceOfLine_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _BRepBlend.delete_BRepBlend_SequenceOfLine

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


# Register BRepBlend_SequenceOfLine in _BRepBlend:
_BRepBlend.BRepBlend_SequenceOfLine_swigregister(BRepBlend_SequenceOfLine)

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

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

    def begin(self) -> "NCollection_Sequence< BRepBlend_PointOnRst >::iterator":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_begin(self)

    def end(self) -> "NCollection_Sequence< BRepBlend_PointOnRst >::iterator":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_end(self)

    def cbegin(self) -> "NCollection_Sequence< BRepBlend_PointOnRst >::const_iterator":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_cbegin(self)

    def cend(self) -> "NCollection_Sequence< BRepBlend_PointOnRst >::const_iterator":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_cend(self)

    def __init__(self, *args):
        _BRepBlend.BRepBlend_SequenceOfPointOnRst_swiginit(self, _BRepBlend.new_BRepBlend_SequenceOfPointOnRst(*args))

    def Size(self) -> "Standard_Integer":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Size(self)

    def Length(self) -> "Standard_Integer":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_IsEmpty(self)

    def Reverse(self) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Reverse(self)

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

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

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

    def Assign(self, theOther: "BRepBlend_SequenceOfPointOnRst") -> "NCollection_Sequence< BRepBlend_PointOnRst > &":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Assign(self, theOther)

    def Set(self, theOther: "BRepBlend_SequenceOfPointOnRst") -> "NCollection_Sequence< BRepBlend_PointOnRst > &":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "BRepBlend_SequenceOfPointOnRst") -> "void":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Split(self, theIndex, theSeq)

    def First(self) -> "BRepBlend_PointOnRst const &":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_First(self)

    def ChangeFirst(self) -> "BRepBlend_PointOnRst &":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_ChangeFirst(self)

    def Last(self) -> "BRepBlend_PointOnRst const &":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Last(self)

    def ChangeLast(self) -> "BRepBlend_PointOnRst &":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "BRepBlend_PointOnRst const &":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "BRepBlend_PointOnRst &":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "BRepBlend_PointOnRst &":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "BRepBlend_PointOnRst") -> "void":
        return _BRepBlend.BRepBlend_SequenceOfPointOnRst_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _BRepBlend.delete_BRepBlend_SequenceOfPointOnRst

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


# Register BRepBlend_SequenceOfPointOnRst in _BRepBlend:
_BRepBlend.BRepBlend_SequenceOfPointOnRst_swigregister(BRepBlend_SequenceOfPointOnRst)

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

class BRepBlend_AppFuncRoot(OCC.Core.Approx.Approx_SweepFunction):
    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 Point(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        Func: Blend_AppFunction
        Param: float
        Sol: math_Vector
        Pnt: Blend_Point

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_AppFuncRoot_Point(self, *args)

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

        Parameters
        ----------
        Sol: math_Vector
        Pnt: Blend_Point

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_AppFuncRoot_Vec(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_AppFuncRoot

# Register BRepBlend_AppFuncRoot in _BRepBlend:
_BRepBlend.BRepBlend_AppFuncRoot_swigregister(BRepBlend_AppFuncRoot)

class BRepBlend_AppSurf(OCC.Core.AppBlend.AppBlend_Approx):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

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

        Parameters
        ----------
        Degmin: int
        Degmax: int
        Tol3d: float
        Tol2d: float
        NbIt: int
        KnownParameters: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_AppSurf_swiginit(self, _BRepBlend.new_BRepBlend_AppSurf(*args))

    def Continuity(self, *args) -> "GeomAbs_Shape":
        r"""
        Returns the continuity used in the approximation.

        Returns
        -------
        GeomAbs_Shape

        """
        return _BRepBlend.BRepBlend_AppSurf_Continuity(self, *args)

    def CriteriumWeight(self, *args) -> "void":
        r"""
        Returns the weights (as percent) associed to the criterium used in the optimization.

        Parameters
        ----------

        Returns
        -------
        W1: float
        W2: float
        W3: float

        """
        return _BRepBlend.BRepBlend_AppSurf_CriteriumWeight(self, *args)

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

        Parameters
        ----------
        Degmin: int
        Degmax: int
        Tol3d: float
        Tol2d: float
        NbIt: int
        KnownParameters: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_AppSurf_Init(self, *args)

    def ParType(self, *args) -> "Approx_ParametrizationType":
        r"""
        Returns the type of parametrization used in the approximation.

        Returns
        -------
        Approx_ParametrizationType

        """
        return _BRepBlend.BRepBlend_AppSurf_ParType(self, *args)

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

        Parameters
        ----------
        Lin: BRepBlend_Line
        SecGen: Blend_AppFunction
        SpApprox: bool,optional
        	default value is Standard_False

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

        Parameters
        ----------
        Lin: BRepBlend_Line
        SecGen: Blend_AppFunction
        NbMaxP: int

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_AppSurf_Perform(self, *args)

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

        Parameters
        ----------
        Lin: BRepBlend_Line
        SecGen: Blend_AppFunction

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_AppSurf_PerformSmoothing(self, *args)

    def SetContinuity(self, *args) -> "void":
        r"""
        Define the continuity used in the approximation.

        Parameters
        ----------
        C: GeomAbs_Shape

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_AppSurf_SetContinuity(self, *args)

    def SetCriteriumWeight(self, *args) -> "void":
        r"""
        Define the weights associed to the criterium used in the optimization. //! if wi <= 0.

        Parameters
        ----------
        W1: float
        W2: float
        W3: float

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_AppSurf_SetCriteriumWeight(self, *args)

    def SetParType(self, *args) -> "void":
        r"""
        Define the type of parametrization used in the approximation.

        Parameters
        ----------
        ParType: Approx_ParametrizationType

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_AppSurf_SetParType(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_AppSurf

# Register BRepBlend_AppSurf in _BRepBlend:
_BRepBlend.BRepBlend_AppSurf_swigregister(BRepBlend_AppSurf)

class BRepBlend_AppSurface(OCC.Core.AppBlend.AppBlend_Approx):
    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"""
        Approximation of the new surface (and eventually the 2d curves on the support surfaces). normaly the 2d curve are approximated with an tolerance given by the resolution on support surfaces, but if this tolerance is too large tol2d is used.

        Parameters
        ----------
        Funct: Approx_SweepFunction
        First: float
        Last: float
        Tol3d: float
        Tol2d: float
        TolAngular: float
        Continuity: GeomAbs_Shape,optional
        	default value is GeomAbs_C0
        Degmax: int,optional
        	default value is 11
        Segmax: int,optional
        	default value is 50

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_AppSurface_swiginit(self, _BRepBlend.new_BRepBlend_AppSurface(*args))

    def DumpToString(self) -> "std::string":
        r"""DumpToString(BRepBlend_AppSurface self) -> std::string"""
        return _BRepBlend.BRepBlend_AppSurface_DumpToString(self)

    def Max2dError(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum error in the <index> 2d curve approximation.

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

        Returns
        -------
        float

        """
        return _BRepBlend.BRepBlend_AppSurface_Max2dError(self, *args)

    def MaxErrorOnSurf(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum error in the suface approximation.

        Returns
        -------
        float

        """
        return _BRepBlend.BRepBlend_AppSurface_MaxErrorOnSurf(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def TolReached(self):
    	pass

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_AppSurface

# Register BRepBlend_AppSurface in _BRepBlend:
_BRepBlend.BRepBlend_AppSurface_swigregister(BRepBlend_AppSurface)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Curv: Adaptor3d_HCurve
        Surf: Adaptor3d_HSurface
        Domain: Adaptor3d_TopolTool

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_CSWalking_swiginit(self, _BRepBlend.new_BRepBlend_CSWalking(*args))

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

        Parameters
        ----------
        F: Blend_CSFunction
        Pmin: float

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_CSWalking_Complete(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_CSWalking_IsDone(self, *args)

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

        Returns
        -------
        opencascade::handle<BRepBlend_Line>

        """
        return _BRepBlend.BRepBlend_CSWalking_Line(self, *args)

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

        Parameters
        ----------
        F: Blend_CSFunction
        Pdep: float
        Pmax: float
        MaxStep: float
        TolGuide: float
        Soldep: math_Vector
        Tolesp: float
        Fleche: float
        Appro: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_CSWalking_Perform(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_CSWalking

# Register BRepBlend_CSWalking in _BRepBlend:
_BRepBlend.BRepBlend_CSWalking_swigregister(BRepBlend_CSWalking)

class BRepBlend_CurvPointRadInv(OCC.Core.Blend.Blend_CurvPointFuncInv):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        C1: Adaptor3d_HCurve
        C2: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_CurvPointRadInv_swiginit(self, _BRepBlend.new_BRepBlend_CurvPointRadInv(*args))

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

        Parameters
        ----------
        Choix: int

        Returns
        -------
        None
        Set the point on which a solution has to be found.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_CurvPointRadInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_CurvPointRadInv

# Register BRepBlend_CurvPointRadInv in _BRepBlend:
_BRepBlend.BRepBlend_CurvPointRadInv_swigregister(BRepBlend_CurvPointRadInv)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None
        Creates an extremity on a surface.

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

        Returns
        -------
        None
        Creates an extremity on a surface. this extremity matches the vertex <vtx>.

        Parameters
        ----------
        P: gp_Pnt
        U: float
        V: float
        Param: float
        Tol: float
        Vtx: Adaptor3d_HVertex

        Returns
        -------
        None
        Creates an extremity on a curve.

        Parameters
        ----------
        P: gp_Pnt
        W: float
        Param: float
        Tol: float

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_Extremity_swiginit(self, _BRepBlend.new_BRepBlend_Extremity(*args))

    def AddArc(self, *args) -> "void":
        r"""
        Sets the values of a point which is on the arc a, at parameter param.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Extremity_AddArc(self, *args)

    def HasTangent(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the tangent is stored.

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_Extremity_HasTangent(self, *args)

    def IsVertex(self, *args) -> "Standard_Boolean":
        r"""
        Returns standard_true when the point coincide with an existing vertex.

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_Extremity_IsVertex(self, *args)

    def NbPointOnRst(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of arc containing the extremity. if the method returns 0, the point is inside the surface. otherwise, the extremity lies on at least 1 arc, and all the information (arc, parameter, transitions) are given by the point on restriction (pointonrst) returned by the next method.

        Returns
        -------
        int

        """
        return _BRepBlend.BRepBlend_Extremity_NbPointOnRst(self, *args)

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

        Returns
        -------
        float

        """
        return _BRepBlend.BRepBlend_Extremity_Parameter(self, *args)

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

        Returns
        -------
        float

        """
        return _BRepBlend.BRepBlend_Extremity_ParameterOnGuide(self, *args)

    def Parameters(self, *args) -> "void":
        r"""
        This method returns the parameters of the point on the concerned surface.

        Parameters
        ----------

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

        """
        return _BRepBlend.BRepBlend_Extremity_Parameters(self, *args)

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

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

        Returns
        -------
        BRepBlend_PointOnRst

        """
        return _BRepBlend.BRepBlend_Extremity_PointOnRst(self, *args)

    def SetTangent(self, *args) -> "void":
        r"""
        Set the tangent vector for an extremity on a surface.

        Parameters
        ----------
        Tangent: gp_Vec

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Extremity_SetTangent(self, *args)

    def SetValue(self, *args) -> "void":
        r"""
        Set the values for an extremity on a surface.

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

        Returns
        -------
        None
        Set the values for an extremity on a surface.this extremity matches the vertex <vtx>.

        Parameters
        ----------
        P: gp_Pnt
        U: float
        V: float
        Param: float
        Tol: float
        Vtx: Adaptor3d_HVertex

        Returns
        -------
        None
        Set the values for an extremity on curve.

        Parameters
        ----------
        P: gp_Pnt
        W: float
        Param: float
        Tol: float

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Extremity_SetValue(self, *args)

    def SetVertex(self, *args) -> "void":
        r"""
        Set the values for an extremity on a curve.

        Parameters
        ----------
        V: Adaptor3d_HVertex

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Extremity_SetVertex(self, *args)

    def Tangent(self, *args) -> "gp_Vec const":
        r"""
        This method returns the value of tangent in 3d space.

        Returns
        -------
        gp_Vec

        """
        return _BRepBlend.BRepBlend_Extremity_Tangent(self, *args)

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

        Returns
        -------
        float

        """
        return _BRepBlend.BRepBlend_Extremity_Tolerance(self, *args)

    def Value(self, *args) -> "gp_Pnt const":
        r"""
        This method returns the value of the point in 3d space.

        Returns
        -------
        gp_Pnt

        """
        return _BRepBlend.BRepBlend_Extremity_Value(self, *args)

    def Vertex(self, *args) -> "opencascade::handle< Adaptor3d_HVertex > const &":
        r"""
        Returns the vertex when isvertex returns standard_true.

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

        """
        return _BRepBlend.BRepBlend_Extremity_Vertex(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_Extremity

# Register BRepBlend_Extremity in _BRepBlend:
_BRepBlend.BRepBlend_Extremity_swigregister(BRepBlend_Extremity)

class BRepBlend_Line(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_Line_swiginit(self, _BRepBlend.new_BRepBlend_Line(*args))

    def Append(self, *args) -> "void":
        r"""
        Adds a point in the line.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Line_Append(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clears the content of the line.

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Line_Clear(self, *args)

    def EndPointOnFirst(self, *args) -> "BRepBlend_Extremity const &":
        r"""
        Returns the end point on s1.

        Returns
        -------
        BRepBlend_Extremity

        """
        return _BRepBlend.BRepBlend_Line_EndPointOnFirst(self, *args)

    def EndPointOnSecond(self, *args) -> "BRepBlend_Extremity const &":
        r"""
        Returns the point on s2.

        Returns
        -------
        BRepBlend_Extremity

        """
        return _BRepBlend.BRepBlend_Line_EndPointOnSecond(self, *args)

    def InsertBefore(self, *args) -> "void":
        r"""
        Adds a point in the line at the first place.

        Parameters
        ----------
        Index: int
        P: Blend_Point

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Line_InsertBefore(self, *args)

    def NbPoints(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of points in the line.

        Returns
        -------
        int

        """
        return _BRepBlend.BRepBlend_Line_NbPoints(self, *args)

    def Point(self, *args) -> "Blend_Point const &":
        r"""
        Returns the point of range index.

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

        Returns
        -------
        Blend_Point

        """
        return _BRepBlend.BRepBlend_Line_Point(self, *args)

    def Prepend(self, *args) -> "void":
        r"""
        Adds a point in the line at the first place.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Line_Prepend(self, *args)

    def Remove(self, *args) -> "void":
        r"""
        Removes from <self> all the items of positions between <fromindex> and <toindex>. raises an exception if the indices are out of bounds.

        Parameters
        ----------
        FromIndex: int
        ToIndex: int

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Line_Remove(self, *args)

    def Set(self, *args) -> "void":
        r"""
        Sets the value of the transition of the line on s1 and the line on s2.

        Parameters
        ----------
        TranS1: IntSurf_TypeTrans
        TranS2: IntSurf_TypeTrans

        Returns
        -------
        None
        Sets the value of the transition of the line on a surface.

        Parameters
        ----------
        Trans: IntSurf_TypeTrans

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Line_Set(self, *args)

    def SetEndPoints(self, *args) -> "void":
        r"""
        Sets tne values of the end points for the line.

        Parameters
        ----------
        EndPt1: BRepBlend_Extremity
        EndPt2: BRepBlend_Extremity

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Line_SetEndPoints(self, *args)

    def SetStartPoints(self, *args) -> "void":
        r"""
        Sets the values of the start points for the line.

        Parameters
        ----------
        StartPt1: BRepBlend_Extremity
        StartPt2: BRepBlend_Extremity

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Line_SetStartPoints(self, *args)

    def StartPointOnFirst(self, *args) -> "BRepBlend_Extremity const &":
        r"""
        Returns the start point on s1.

        Returns
        -------
        BRepBlend_Extremity

        """
        return _BRepBlend.BRepBlend_Line_StartPointOnFirst(self, *args)

    def StartPointOnSecond(self, *args) -> "BRepBlend_Extremity const &":
        r"""
        Returns the start point on s2.

        Returns
        -------
        BRepBlend_Extremity

        """
        return _BRepBlend.BRepBlend_Line_StartPointOnSecond(self, *args)

    def TransitionOnS(self, *args) -> "IntSurf_TypeTrans":
        r"""
        Returns the type of the transition of the line defined on the surface.

        Returns
        -------
        IntSurf_TypeTrans

        """
        return _BRepBlend.BRepBlend_Line_TransitionOnS(self, *args)

    def TransitionOnS1(self, *args) -> "IntSurf_TypeTrans":
        r"""
        Returns the type of the transition of the line defined on the first surface. the transition is 'constant' along the line. the transition is in if the line is oriented in such a way that the system of vectors (n,drac,t) is right-handed, where n is the normal to the first surface at a point p, drac is a vector tangent to the blending patch, oriented towards the valid part of this patch, t is the tangent to the line on s1 at p. the transitioon is out when the system of vectors is left-handed.

        Returns
        -------
        IntSurf_TypeTrans

        """
        return _BRepBlend.BRepBlend_Line_TransitionOnS1(self, *args)

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

        Returns
        -------
        IntSurf_TypeTrans

        """
        return _BRepBlend.BRepBlend_Line_TransitionOnS2(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_Line

# Register BRepBlend_Line in _BRepBlend:
_BRepBlend.BRepBlend_Line_swigregister(BRepBlend_Line)

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

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

        Returns
        -------
        None
        Creates the pointonrst on the arc a, at parameter param, with the transition tline on the walking line, and tarc on the arc a.

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

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_PointOnRst_swiginit(self, _BRepBlend.new_BRepBlend_PointOnRst(*args))

    def Arc(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        Returns the arc of restriction containing the vertex.

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

        """
        return _BRepBlend.BRepBlend_PointOnRst_Arc(self, *args)

    def ParameterOnArc(self, *args) -> "Standard_Real":
        r"""
        Returns the parameter of the point on the arc returned by the method arc().

        Returns
        -------
        float

        """
        return _BRepBlend.BRepBlend_PointOnRst_ParameterOnArc(self, *args)

    def SetArc(self, *args) -> "void":
        r"""
        Sets the values of a point which is on the arc a, at parameter param.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_PointOnRst_SetArc(self, *args)

    def TransitionOnArc(self, *args) -> "IntSurf_Transition const &":
        r"""
        Returns the transition of the point on the arc returned by arc().

        Returns
        -------
        IntSurf_Transition

        """
        return _BRepBlend.BRepBlend_PointOnRst_TransitionOnArc(self, *args)

    def TransitionOnLine(self, *args) -> "IntSurf_Transition const &":
        r"""
        Returns the transition of the point on the line on surface.

        Returns
        -------
        IntSurf_Transition

        """
        return _BRepBlend.BRepBlend_PointOnRst_TransitionOnLine(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_PointOnRst

# Register BRepBlend_PointOnRst in _BRepBlend:
_BRepBlend.BRepBlend_PointOnRst_swigregister(BRepBlend_PointOnRst)

class BRepBlend_RstRstConstRad(OCC.Core.Blend.Blend_RstRstFunction):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Surf1: Adaptor3d_HSurface
        Rst1: Adaptor2d_HCurve2d
        Surf2: Adaptor3d_HSurface
        Rst2: Adaptor2d_HCurve2d
        CGuide: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_RstRstConstRad_swiginit(self, _BRepBlend.new_BRepBlend_RstRstConstRad(*args))

    def CenterCircleRst1Rst2(self, *args) -> "Standard_Boolean":
        r"""
        Give the center of circle define by ptrst1, ptrst2 and radius ray.

        Parameters
        ----------
        PtRst1: gp_Pnt
        PtRst2: gp_Pnt
        np: gp_Vec
        Center: gp_Pnt
        VdMed: gp_Vec

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstConstRad_CenterCircleRst1Rst2(self, *args)

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

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

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_RstRstConstRad_GetTolerance(self, *args)

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

        Parameters
        ----------
        Param: float
        U: float
        V: float
        C: gp_Circ

        Returns
        -------
        Pdeb: float
        Pfin: float
        Used for the first and last section.

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

        Returns
        -------
        bool
        No available documentation.

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

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstConstRad_Section(self, *args)

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

        Parameters
        ----------
        SurfRef1: Adaptor3d_HSurface
        RstRef1: Adaptor2d_HCurve2d
        SurfRef2: Adaptor3d_HSurface
        RstRef2: Adaptor2d_HCurve2d

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

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

        Returns
        -------
        None
        Sets the bounds of the parametric interval on the guide line. this determines the derivatives in these values if the function is not cn.

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

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

        Parameters
        ----------
        Radius: float
        Choix: int

        Returns
        -------
        None
        Sets the type of section generation for the approximations.

        Parameters
        ----------
        TypeSection: BlendFunc_SectionShape

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_RstRstConstRad_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_RstRstConstRad

# Register BRepBlend_RstRstConstRad in _BRepBlend:
_BRepBlend.BRepBlend_RstRstConstRad_swigregister(BRepBlend_RstRstConstRad)

class BRepBlend_RstRstEvolRad(OCC.Core.Blend.Blend_RstRstFunction):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Surf1: Adaptor3d_HSurface
        Rst1: Adaptor2d_HCurve2d
        Surf2: Adaptor3d_HSurface
        Rst2: Adaptor2d_HCurve2d
        CGuide: Adaptor3d_HCurve
        Evol: Law_Function

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_RstRstEvolRad_swiginit(self, _BRepBlend.new_BRepBlend_RstRstEvolRad(*args))

    def CenterCircleRst1Rst2(self, *args) -> "Standard_Boolean":
        r"""
        Gives the center of circle defined by ptrst1, ptrst2 and radius ray.

        Parameters
        ----------
        PtRst1: gp_Pnt
        PtRst2: gp_Pnt
        np: gp_Vec
        Center: gp_Pnt
        VdMed: gp_Vec

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstEvolRad_CenterCircleRst1Rst2(self, *args)

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

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

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_RstRstEvolRad_GetTolerance(self, *args)

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

        Parameters
        ----------
        Param: float
        U: float
        V: float
        C: gp_Circ

        Returns
        -------
        Pdeb: float
        Pfin: float
        Used for the first and last section.

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

        Returns
        -------
        bool
        No available documentation.

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

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstEvolRad_Section(self, *args)

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

        Parameters
        ----------
        SurfRef1: Adaptor3d_HSurface
        RstRef1: Adaptor2d_HCurve2d
        SurfRef2: Adaptor3d_HSurface
        RstRef2: Adaptor2d_HCurve2d

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

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

        Returns
        -------
        None
        Sets the bounds of the parametric interval on the guide line. this determines the derivatives in these values if the function is not cn.

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

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

        Parameters
        ----------
        Choix: int

        Returns
        -------
        None
        Sets the type of section generation for the approximations.

        Parameters
        ----------
        TypeSection: BlendFunc_SectionShape

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_RstRstEvolRad_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_RstRstEvolRad

# Register BRepBlend_RstRstEvolRad in _BRepBlend:
_BRepBlend.BRepBlend_RstRstEvolRad_swigregister(BRepBlend_RstRstEvolRad)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Surf1: Adaptor3d_HSurface
        Rst1: Adaptor2d_HCurve2d
        Domain1: Adaptor3d_TopolTool
        Surf2: Adaptor3d_HSurface
        Rst2: Adaptor2d_HCurve2d
        Domain2: Adaptor3d_TopolTool

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_RstRstLineBuilder_swiginit(self, _BRepBlend.new_BRepBlend_RstRstLineBuilder(*args))

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

        Parameters
        ----------
        Func: Blend_RstRstFunction
        Finv1: Blend_SurfCurvFuncInv
        FinvP1: Blend_CurvPointFuncInv
        Finv2: Blend_SurfCurvFuncInv
        FinvP2: Blend_CurvPointFuncInv
        Pmin: float

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstLineBuilder_Complete(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstLineBuilder_Decroch1End(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstLineBuilder_Decroch1Start(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstLineBuilder_Decroch2End(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstLineBuilder_Decroch2Start(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_RstRstLineBuilder_IsDone(self, *args)

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

        Returns
        -------
        opencascade::handle<BRepBlend_Line>

        """
        return _BRepBlend.BRepBlend_RstRstLineBuilder_Line(self, *args)

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

        Parameters
        ----------
        Func: Blend_RstRstFunction
        Finv1: Blend_SurfCurvFuncInv
        FinvP1: Blend_CurvPointFuncInv
        Finv2: Blend_SurfCurvFuncInv
        FinvP2: Blend_CurvPointFuncInv
        Pdep: float
        Pmax: float
        MaxStep: float
        TolGuide: float
        Soldep: math_Vector
        Tolesp: float
        Fleche: float
        Appro: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_RstRstLineBuilder_Perform(self, *args)

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

        Parameters
        ----------
        Func: Blend_RstRstFunction
        Finv1: Blend_SurfCurvFuncInv
        FinvP1: Blend_CurvPointFuncInv
        Finv2: Blend_SurfCurvFuncInv
        FinvP2: Blend_CurvPointFuncInv
        Pdep: float
        Pmax: float
        Soldep: math_Vector
        Tolesp: float
        TolGuide: float
        RecRst1: bool
        RecP1: bool
        RecRst2: bool
        RecP2: bool
        ParSol: math_Vector

        Returns
        -------
        Psol: float

        """
        return _BRepBlend.BRepBlend_RstRstLineBuilder_PerformFirstSection(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_RstRstLineBuilder

# Register BRepBlend_RstRstLineBuilder in _BRepBlend:
_BRepBlend.BRepBlend_RstRstLineBuilder_swigregister(BRepBlend_RstRstLineBuilder)

class BRepBlend_SurfCurvConstRadInv(OCC.Core.Blend.Blend_SurfCurvFuncInv):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        C: Adaptor3d_HCurve
        Cg: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_SurfCurvConstRadInv_swiginit(self, _BRepBlend.new_BRepBlend_SurfCurvConstRadInv(*args))

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

        Parameters
        ----------
        R: float
        Choix: int

        Returns
        -------
        None
        Set the restriction on which a solution has to be found.

        Parameters
        ----------
        Rst: Adaptor2d_HCurve2d

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfCurvConstRadInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_SurfCurvConstRadInv

# Register BRepBlend_SurfCurvConstRadInv in _BRepBlend:
_BRepBlend.BRepBlend_SurfCurvConstRadInv_swigregister(BRepBlend_SurfCurvConstRadInv)

class BRepBlend_SurfCurvEvolRadInv(OCC.Core.Blend.Blend_SurfCurvFuncInv):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        C: Adaptor3d_HCurve
        Cg: Adaptor3d_HCurve
        Evol: Law_Function

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_SurfCurvEvolRadInv_swiginit(self, _BRepBlend.new_BRepBlend_SurfCurvEvolRadInv(*args))

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

        Parameters
        ----------
        Choix: int

        Returns
        -------
        None
        Set the restriction on which a solution has to be found.

        Parameters
        ----------
        Rst: Adaptor2d_HCurve2d

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfCurvEvolRadInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_SurfCurvEvolRadInv

# Register BRepBlend_SurfCurvEvolRadInv in _BRepBlend:
_BRepBlend.BRepBlend_SurfCurvEvolRadInv_swigregister(BRepBlend_SurfCurvEvolRadInv)

class BRepBlend_SurfPointConstRadInv(OCC.Core.Blend.Blend_SurfPointFuncInv):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_SurfPointConstRadInv_swiginit(self, _BRepBlend.new_BRepBlend_SurfPointConstRadInv(*args))

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

        Parameters
        ----------
        R: float
        Choix: int

        Returns
        -------
        None
        Set the point on which a solution has to be found.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfPointConstRadInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_SurfPointConstRadInv

# Register BRepBlend_SurfPointConstRadInv in _BRepBlend:
_BRepBlend.BRepBlend_SurfPointConstRadInv_swigregister(BRepBlend_SurfPointConstRadInv)

class BRepBlend_SurfPointEvolRadInv(OCC.Core.Blend.Blend_SurfPointFuncInv):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        C: Adaptor3d_HCurve
        Evol: Law_Function

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_SurfPointEvolRadInv_swiginit(self, _BRepBlend.new_BRepBlend_SurfPointEvolRadInv(*args))

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

        Parameters
        ----------
        Choix: int

        Returns
        -------
        None
        Set the point on which a solution has to be found.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfPointEvolRadInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_SurfPointEvolRadInv

# Register BRepBlend_SurfPointEvolRadInv in _BRepBlend:
_BRepBlend.BRepBlend_SurfPointEvolRadInv_swigregister(BRepBlend_SurfPointEvolRadInv)

class BRepBlend_SurfRstConstRad(OCC.Core.Blend.Blend_SurfRstFunction):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        SurfRst: Adaptor3d_HSurface
        Rst: Adaptor2d_HCurve2d
        CGuide: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_SurfRstConstRad_swiginit(self, _BRepBlend.new_BRepBlend_SurfRstConstRad(*args))

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

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

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfRstConstRad_GetTolerance(self, *args)

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

        Parameters
        ----------
        Param: float
        U: float
        V: float
        W: float
        C: gp_Circ

        Returns
        -------
        Pdeb: float
        Pfin: float
        Used for the first and last section.

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

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

        Returns
        -------
        bool
        No available documentation.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfRstConstRad_Section(self, *args)

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

        Parameters
        ----------
        SurfRef: Adaptor3d_HSurface
        RstRef: Adaptor2d_HCurve2d

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

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

        Returns
        -------
        None
        Sets the bounds of the parametric interval on the guide line. this determines the derivatives in these values if the function is not cn.

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

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

        Parameters
        ----------
        Radius: float
        Choix: int

        Returns
        -------
        None
        Sets the type of section generation for the approximations.

        Parameters
        ----------
        TypeSection: BlendFunc_SectionShape

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfRstConstRad_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_SurfRstConstRad

# Register BRepBlend_SurfRstConstRad in _BRepBlend:
_BRepBlend.BRepBlend_SurfRstConstRad_swigregister(BRepBlend_SurfRstConstRad)

class BRepBlend_SurfRstEvolRad(OCC.Core.Blend.Blend_SurfRstFunction):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        SurfRst: Adaptor3d_HSurface
        Rst: Adaptor2d_HCurve2d
        CGuide: Adaptor3d_HCurve
        Evol: Law_Function

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_SurfRstEvolRad_swiginit(self, _BRepBlend.new_BRepBlend_SurfRstEvolRad(*args))

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

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

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfRstEvolRad_GetTolerance(self, *args)

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

        Parameters
        ----------
        Param: float
        U: float
        V: float
        W: float
        C: gp_Circ

        Returns
        -------
        Pdeb: float
        Pfin: float
        Used for the first and last section.

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

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

        Returns
        -------
        bool
        No available documentation.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfRstEvolRad_Section(self, *args)

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

        Parameters
        ----------
        SurfRef: Adaptor3d_HSurface
        RstRef: Adaptor2d_HCurve2d

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

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

        Returns
        -------
        None
        Sets the bounds of the parametric interval on the guide line. this determines the derivatives in these values if the function is not cn.

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

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

        Parameters
        ----------
        Choix: int

        Returns
        -------
        None
        Sets the type of section generation for the approximations.

        Parameters
        ----------
        TypeSection: BlendFunc_SectionShape

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfRstEvolRad_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_SurfRstEvolRad

# Register BRepBlend_SurfRstEvolRad in _BRepBlend:
_BRepBlend.BRepBlend_SurfRstEvolRad_swigregister(BRepBlend_SurfRstEvolRad)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Surf1: Adaptor3d_HSurface
        Domain1: Adaptor3d_TopolTool
        Surf2: Adaptor3d_HSurface
        Rst: Adaptor2d_HCurve2d
        Domain2: Adaptor3d_TopolTool

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_SurfRstLineBuilder_swiginit(self, _BRepBlend.new_BRepBlend_SurfRstLineBuilder(*args))

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

        Parameters
        ----------
        Sol: math_Vector
        PrevIndex: int
        pt2d: gp_Pnt2d
        lastpt2d: gp_Pnt2d

        Returns
        -------
        ponarc: float

        """
        return _BRepBlend.BRepBlend_SurfRstLineBuilder_ArcToRecadre(self, *args)

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

        Parameters
        ----------
        Func: Blend_SurfRstFunction
        Finv: Blend_FuncInv
        FinvP: Blend_SurfPointFuncInv
        FinvC: Blend_SurfCurvFuncInv
        Pmin: float

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_SurfRstLineBuilder_Complete(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_SurfRstLineBuilder_DecrochEnd(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_SurfRstLineBuilder_DecrochStart(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_SurfRstLineBuilder_IsDone(self, *args)

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

        Returns
        -------
        opencascade::handle<BRepBlend_Line>

        """
        return _BRepBlend.BRepBlend_SurfRstLineBuilder_Line(self, *args)

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

        Parameters
        ----------
        Func: Blend_SurfRstFunction
        Finv: Blend_FuncInv
        FinvP: Blend_SurfPointFuncInv
        FinvC: Blend_SurfCurvFuncInv
        Pdep: float
        Pmax: float
        MaxStep: float
        TolGuide: float
        Soldep: math_Vector
        Tolesp: float
        Fleche: float
        Appro: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_SurfRstLineBuilder_Perform(self, *args)

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

        Parameters
        ----------
        Func: Blend_SurfRstFunction
        Finv: Blend_FuncInv
        FinvP: Blend_SurfPointFuncInv
        FinvC: Blend_SurfCurvFuncInv
        Pdep: float
        Pmax: float
        Soldep: math_Vector
        Tolesp: float
        TolGuide: float
        RecRst: bool
        RecP: bool
        RecS: bool
        ParSol: math_Vector

        Returns
        -------
        Psol: float

        """
        return _BRepBlend.BRepBlend_SurfRstLineBuilder_PerformFirstSection(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_SurfRstLineBuilder

# Register BRepBlend_SurfRstLineBuilder in _BRepBlend:
_BRepBlend.BRepBlend_SurfRstLineBuilder_swigregister(BRepBlend_SurfRstLineBuilder)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Surf1: Adaptor3d_HSurface
        Surf2: Adaptor3d_HSurface
        Domain1: Adaptor3d_TopolTool
        Domain2: Adaptor3d_TopolTool
        HGuide: ChFiDS_HElSpine

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_Walking_swiginit(self, _BRepBlend.new_BRepBlend_Walking(*args))

    def AddSingularPoint(self, *args) -> "void":
        r"""
        To define singular points computed before walking.

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

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Walking_AddSingularPoint(self, *args)

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

        Parameters
        ----------
        C: bool

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Walking_Check(self, *args)

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

        Parameters
        ----------
        C: bool

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Walking_Check2d(self, *args)

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

        Parameters
        ----------
        C: bool

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Walking_ClassificationOnS1(self, *args)

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

        Parameters
        ----------
        C: bool

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Walking_ClassificationOnS2(self, *args)

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

        Parameters
        ----------
        F: Blend_Function
        FInv: Blend_FuncInv
        Pmin: float

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_Walking_Complete(self, *args)

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

        Parameters
        ----------
        F: Blend_Function
        FInv: Blend_FuncInv
        P: float

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        F: Blend_Function
        FInv: Blend_FuncInv
        P: float
        OnS1: bool

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_Walking_Continu(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_Walking_IsDone(self, *args)

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

        Returns
        -------
        opencascade::handle<BRepBlend_Line>

        """
        return _BRepBlend.BRepBlend_Walking_Line(self, *args)

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

        Parameters
        ----------
        F: Blend_Function
        FInv: Blend_FuncInv
        Pdep: float
        Pmax: float
        MaxStep: float
        TolGuide: float
        Soldep: math_Vector
        Tolesp: float
        Fleche: float
        Appro: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Walking_Perform(self, *args)

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

        Parameters
        ----------
        F: Blend_Function
        Pdep: float
        ParDep: math_Vector
        Tolesp: float
        TolGuide: float
        Pos1: TopAbs_State
        Pos2: TopAbs_State

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        F: Blend_Function
        FInv: Blend_FuncInv
        Pdep: float
        Pmax: float
        ParDep: math_Vector
        Tolesp: float
        TolGuide: float
        RecOnS1: bool
        RecOnS2: bool
        ParSol: math_Vector

        Returns
        -------
        Psol: float

        """
        return _BRepBlend.BRepBlend_Walking_PerformFirstSection(self, *args)

    def SetDomainsToRecadre(self, *args) -> "void":
        r"""
        To define different domains for control and clipping.

        Parameters
        ----------
        RecDomain1: Adaptor3d_TopolTool
        RecDomain2: Adaptor3d_TopolTool

        Returns
        -------
        None

        """
        return _BRepBlend.BRepBlend_Walking_SetDomainsToRecadre(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_Walking_TwistOnS1(self, *args)

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

        Returns
        -------
        bool

        """
        return _BRepBlend.BRepBlend_Walking_TwistOnS2(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_Walking

# Register BRepBlend_Walking in _BRepBlend:
_BRepBlend.BRepBlend_Walking_swigregister(BRepBlend_Walking)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Line: BRepBlend_Line
        Func: Blend_Function
        Tol3d: float
        Tol2d: float

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_AppFunc_swiginit(self, _BRepBlend.new_BRepBlend_AppFunc(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_AppFunc

# Register BRepBlend_AppFunc in _BRepBlend:
_BRepBlend.BRepBlend_AppFunc_swigregister(BRepBlend_AppFunc)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Line: BRepBlend_Line
        Func: Blend_SurfRstFunction
        Tol3d: float
        Tol2d: float

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_AppFuncRst_swiginit(self, _BRepBlend.new_BRepBlend_AppFuncRst(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_AppFuncRst

# Register BRepBlend_AppFuncRst in _BRepBlend:
_BRepBlend.BRepBlend_AppFuncRst_swigregister(BRepBlend_AppFuncRst)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        Line: BRepBlend_Line
        Func: Blend_RstRstFunction
        Tol3d: float
        Tol2d: float

        Returns
        -------
        None

        """
        _BRepBlend.BRepBlend_AppFuncRstRst_swiginit(self, _BRepBlend.new_BRepBlend_AppFuncRstRst(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepBlend.delete_BRepBlend_AppFuncRstRst

# Register BRepBlend_AppFuncRstRst in _BRepBlend:
_BRepBlend.BRepBlend_AppFuncRstRst_swigregister(BRepBlend_AppFuncRstRst)


BRepBlend_CSCircular=OCC.Core.BlendFunc.BlendFunc_CSCircular
BRepBlend_CSConstRad=OCC.Core.BlendFunc.BlendFunc_CSConstRad
BRepBlend_ChAsym=OCC.Core.BlendFunc.BlendFunc_ChAsym
BRepBlend_ChAsymInv=OCC.Core.BlendFunc.BlendFunc_ChAsymInv
BRepBlend_ChamfInv=OCC.Core.BlendFunc.BlendFunc_ChamfInv
BRepBlend_Chamfer=OCC.Core.BlendFunc.BlendFunc_Chamfer
BRepBlend_ConstRad=OCC.Core.BlendFunc.BlendFunc_ConstRad
BRepBlend_ConstRadInv=OCC.Core.BlendFunc.BlendFunc_ConstRadInv
BRepBlend_ConstThroat=OCC.Core.BlendFunc.BlendFunc_ConstThroat
BRepBlend_ConstThroatInv=OCC.Core.BlendFunc.BlendFunc_ConstThroatInv
BRepBlend_ConstThroatWithPenetration=OCC.Core.BlendFunc.BlendFunc_ConstThroatWithPenetration
BRepBlend_ConstThroatWithPenetrationInv=OCC.Core.BlendFunc.BlendFunc_ConstThroatWithPenetrationInv
BRepBlend_EvolRad=OCC.Core.BlendFunc.BlendFunc_EvolRad
BRepBlend_EvolRadInv=OCC.Core.BlendFunc.BlendFunc_EvolRadInv
BRepBlend_Ruled=OCC.Core.BlendFunc.BlendFunc_Ruled
BRepBlend_RuledInv=OCC.Core.BlendFunc.BlendFunc_RuledInv



