# 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.

"""
BlendFunc module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_blendfunc.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 _BlendFunc
else:
    import _BlendFunc

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _BlendFunc:
_BlendFunc.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 _BlendFunc.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.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

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

BlendFunc_Rational = _BlendFunc.BlendFunc_Rational
BlendFunc_QuasiAngular = _BlendFunc.BlendFunc_QuasiAngular
BlendFunc_Polynomial = _BlendFunc.BlendFunc_Polynomial
BlendFunc_Linear = _BlendFunc.BlendFunc_Linear


class BlendFunc_SectionShape(IntEnum):
	BlendFunc_Rational = 0
	BlendFunc_QuasiAngular = 1
	BlendFunc_Polynomial = 2
	BlendFunc_Linear = 3
BlendFunc_Rational = BlendFunc_SectionShape.BlendFunc_Rational
BlendFunc_QuasiAngular = BlendFunc_SectionShape.BlendFunc_QuasiAngular
BlendFunc_Polynomial = BlendFunc_SectionShape.BlendFunc_Polynomial
BlendFunc_Linear = BlendFunc_SectionShape.BlendFunc_Linear

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

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

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        p2d: gp_Pnt2d
        Normal: gp_Vec
        DNu: gp_Vec
        DNv: gp_Vec

        Returns
        -------
        bool

        """
        return _BlendFunc.blendfunc_ComputeDNormal(*args)

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

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        p2d: gp_Pnt2d
        Normal: gp_Vec

        Returns
        -------
        bool

        """
        return _BlendFunc.blendfunc_ComputeNormal(*args)

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

        Parameters
        ----------
        SectShape: BlendFunc_SectionShape
        TConv: Convert_ParameterisationType
        AngleMin: float
        AngleMax: float
        Weigths: TColStd_Array1OfReal

        Returns
        -------
        None

        """
        return _BlendFunc.blendfunc_GetMinimalWeights(*args)

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

        Parameters
        ----------
        SectShape: BlendFunc_SectionShape
        MaxAng: float
        TypeConv: Convert_ParameterisationType

        Returns
        -------
        NbPoles: int
        NbKnots: int
        Degree: int

        """
        return _BlendFunc.blendfunc_GetShape(*args)

    @staticmethod
    def NextShape(*args) -> "GeomAbs_Shape":
        r"""
        Used to obtain the next level of continuity.

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

        Returns
        -------
        GeomAbs_Shape

        """
        return _BlendFunc.blendfunc_NextShape(*args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def Mults(self):
    	pass

    @methodnotwrapped
    def Knots(self):
    	pass


    def __init__(self):
        _BlendFunc.blendfunc_swiginit(self, _BlendFunc.new_blendfunc())
    __swig_destroy__ = _BlendFunc.delete_blendfunc

# Register blendfunc in _BlendFunc:
_BlendFunc.blendfunc_swigregister(blendfunc)

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

    Parameters
    ----------
    Surf: Adaptor3d_HSurface
    p2d: gp_Pnt2d
    Normal: gp_Vec
    DNu: gp_Vec
    DNv: gp_Vec

    Returns
    -------
    bool

    """
    return _BlendFunc.blendfunc_ComputeDNormal(*args)

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

    Parameters
    ----------
    Surf: Adaptor3d_HSurface
    p2d: gp_Pnt2d
    Normal: gp_Vec

    Returns
    -------
    bool

    """
    return _BlendFunc.blendfunc_ComputeNormal(*args)

def blendfunc_GetMinimalWeights(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    SectShape: BlendFunc_SectionShape
    TConv: Convert_ParameterisationType
    AngleMin: float
    AngleMax: float
    Weigths: TColStd_Array1OfReal

    Returns
    -------
    None

    """
    return _BlendFunc.blendfunc_GetMinimalWeights(*args)

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

    Parameters
    ----------
    SectShape: BlendFunc_SectionShape
    MaxAng: float
    TypeConv: Convert_ParameterisationType

    Returns
    -------
    NbPoles: int
    NbKnots: int
    Degree: int

    """
    return _BlendFunc.blendfunc_GetShape(*args)

def blendfunc_NextShape(*args) -> "GeomAbs_Shape":
    r"""
    Used to obtain the next level of continuity.

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

    Returns
    -------
    GeomAbs_Shape

    """
    return _BlendFunc.blendfunc_NextShape(*args)

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

    def __init__(self, *args):
        r"""
        Creates a function for a circular blending between a curve <c> and a surface <s>. the direction of the planes are given by <cguide>. the position of the plane is determined on the curve <c>. <l> defines the change of parameter between <c> and <cguide>. so, the planes are defined as described below : t is the current parameter on the guide line. pguide = c(l(t)); nguide = cguide'(t)/||cguide'(t)||.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        C: Adaptor3d_HCurve
        CGuide: Adaptor3d_HCurve
        L: Law_Function

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_CSCircular_swiginit(self, _BlendFunc.new_BlendFunc_CSCircular(*args))

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

        Parameters
        ----------
        Param: float
        U: float
        V: float
        W: float
        tabP: TColgp_Array1OfPnt
        tabV: TColgp_Array1OfVec

        Returns
        -------
        bool

        """
        return _BlendFunc.BlendFunc_CSCircular_GetSection(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 _BlendFunc.BlendFunc_CSCircular_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 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
        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

        """
        return _BlendFunc.BlendFunc_CSCircular_Section(self, *args)

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

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

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

        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 _BlendFunc.BlendFunc_CSCircular_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_CSCircular

# Register BlendFunc_CSCircular in _BlendFunc:
_BlendFunc.BlendFunc_CSCircular_swigregister(BlendFunc_CSCircular)

class BlendFunc_CSConstRad(OCC.Core.Blend.Blend_CSFunction):
    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
        CGuide: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_CSConstRad_swiginit(self, _BlendFunc.new_BlendFunc_CSConstRad(*args))

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

        Parameters
        ----------
        Param: float
        U: float
        V: float
        W: float
        tabP: TColgp_Array1OfPnt
        tabV: TColgp_Array1OfVec

        Returns
        -------
        bool

        """
        return _BlendFunc.BlendFunc_CSConstRad_GetSection(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 _BlendFunc.BlendFunc_CSConstRad_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 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
        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

        """
        return _BlendFunc.BlendFunc_CSConstRad_Section(self, *args)

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

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

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

        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 _BlendFunc.BlendFunc_CSConstRad_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_CSConstRad

# Register BlendFunc_CSConstRad in _BlendFunc:
_BlendFunc.BlendFunc_CSConstRad_swigregister(BlendFunc_CSConstRad)

class BlendFunc_ChAsym(OCC.Core.Blend.Blend_Function):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_ChAsym_swiginit(self, _BlendFunc.new_BlendFunc_ChAsym(*args))

    def ComputeValues(self, *args) -> "Standard_Boolean":
        r"""
        Computes the values <f> of the derivatives for the variable <x> between degf and degl. returns true if the computation was done successfully, false otherwise.

        Parameters
        ----------
        X: math_Vector
        DegF: int
        DegL: int

        Returns
        -------
        bool

        """
        return _BlendFunc.BlendFunc_ChAsym_ComputeValues(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 _BlendFunc.BlendFunc_ChAsym_GetTolerance(self, *args)

    def Section(self, *args) -> "Standard_Boolean":
        r"""
        Utile pour une visu rapide et approximative de la surface.

        Parameters
        ----------
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        C: gp_Lin

        Returns
        -------
        Pdeb: float
        Pfin: float
        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.

        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.

        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 _BlendFunc.BlendFunc_ChAsym_Section(self, *args)

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

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

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

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

        Returns
        -------
        None
        Sets the distances and the angle.

        Parameters
        ----------
        Dist1: float
        Angle: float
        Choix: int

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_ChAsym_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_ChAsym

# Register BlendFunc_ChAsym in _BlendFunc:
_BlendFunc.BlendFunc_ChAsym_swigregister(BlendFunc_ChAsym)

class BlendFunc_ChAsymInv(OCC.Core.Blend.Blend_FuncInv):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_ChAsymInv_swiginit(self, _BlendFunc.new_BlendFunc_ChAsymInv(*args))

    def ComputeValues(self, *args) -> "Standard_Boolean":
        r"""
        Computes the values <f> of the derivatives for the variable <x> between degf and degl. returns true if the computation was done successfully, false otherwise.

        Parameters
        ----------
        X: math_Vector
        DegF: int
        DegL: int

        Returns
        -------
        bool

        """
        return _BlendFunc.BlendFunc_ChAsymInv_ComputeValues(self, *args)

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

        Parameters
        ----------
        OnFirst: bool
        COnSurf: Adaptor2d_HCurve2d

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

        Parameters
        ----------
        Dist1: float
        Angle: float
        Choix: int

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_ChAsymInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_ChAsymInv

# Register BlendFunc_ChAsymInv in _BlendFunc:
_BlendFunc.BlendFunc_ChAsymInv_swigregister(BlendFunc_ChAsymInv)

class BlendFunc_ConstRad(OCC.Core.Blend.Blend_Function):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_ConstRad_swiginit(self, _BlendFunc.new_BlendFunc_ConstRad(*args))

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

        Parameters
        ----------
        Prm: float

        Returns
        -------
        gp_Ax1

        """
        return _BlendFunc.BlendFunc_ConstRad_AxeRot(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 _BlendFunc.BlendFunc_ConstRad_GetTolerance(self, *args)

    def Section(self, *args) -> "void":
        r"""
        Utile pour une visu rapide et approximative de la surface.

        Parameters
        ----------
        Param: float
        U1: float
        V1: float
        U2: float
        V2: 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
        D2Poles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        D2Poles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal
        D2Weigths: TColStd_Array1OfReal

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

        """
        return _BlendFunc.BlendFunc_ConstRad_Section(self, *args)

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

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

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

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

        Returns
        -------
        None
        Inits the value of radius, and the 'quadrant'.

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

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

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

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_ConstRad_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_ConstRad

# Register BlendFunc_ConstRad in _BlendFunc:
_BlendFunc.BlendFunc_ConstRad_swigregister(BlendFunc_ConstRad)

class BlendFunc_ConstRadInv(OCC.Core.Blend.Blend_FuncInv):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_ConstRadInv_swiginit(self, _BlendFunc.new_BlendFunc_ConstRadInv(*args))

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

        Parameters
        ----------
        OnFirst: bool
        COnSurf: Adaptor2d_HCurve2d

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

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

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_ConstRadInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_ConstRadInv

# Register BlendFunc_ConstRadInv in _BlendFunc:
_BlendFunc.BlendFunc_ConstRadInv_swigregister(BlendFunc_ConstRadInv)

class BlendFunc_Corde(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
        ----------
        S: Adaptor3d_HSurface
        CGuide: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_Corde_swiginit(self, _BlendFunc.new_BlendFunc_Corde(*args))

    def DerFguide(self, *args) -> "void":
        r"""
        Derived of the function compared to the parameter of the guideline.

        Parameters
        ----------
        Sol: math_Vector
        DerF: gp_Vec2d

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_Corde_DerFguide(self, *args)

    def Derivatives(self, *args) -> "Standard_Boolean":
        r"""
        Returns the values <d> of the derivatives for the variable <x>. returns true if the computation was done successfully, false otherwise.

        Parameters
        ----------
        X: math_Vector
        D: math_Matrix

        Returns
        -------
        bool

        """
        return _BlendFunc.BlendFunc_Corde_Derivatives(self, *args)

    def IsSolution(self, *args) -> "Standard_Boolean":
        r"""
        Returns false if sol is not solution else returns true and updates the fields tgs and tg2d.

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

        Returns
        -------
        bool

        """
        return _BlendFunc.BlendFunc_Corde_IsSolution(self, *args)

    def IsTangencyPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true when it is not possible to compute the tangent vectors at pointons.

        Returns
        -------
        bool

        """
        return _BlendFunc.BlendFunc_Corde_IsTangencyPoint(self, *args)

    def NPlan(self, *args) -> "gp_Vec const":
        r"""
        Returns the normal to cguide at ptgui.

        Returns
        -------
        gp_Vec

        """
        return _BlendFunc.BlendFunc_Corde_NPlan(self, *args)

    def PointOnGuide(self, *args) -> "gp_Pnt const":
        r"""
        Returns the point of parameter <param> on cguide.

        Returns
        -------
        gp_Pnt

        """
        return _BlendFunc.BlendFunc_Corde_PointOnGuide(self, *args)

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

        Returns
        -------
        gp_Pnt

        """
        return _BlendFunc.BlendFunc_Corde_PointOnS(self, *args)

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

        Parameters
        ----------
        Dist: float

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_Corde_SetDist(self, *args)

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

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

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_Corde_SetParam(self, *args)

    def Tangent2dOnS(self, *args) -> "gp_Vec2d const":
        r"""
        Returns the tangent vector at pointons, in the parametric space of the first surface.

        Returns
        -------
        gp_Vec2d

        """
        return _BlendFunc.BlendFunc_Corde_Tangent2dOnS(self, *args)

    def TangentOnS(self, *args) -> "gp_Vec const":
        r"""
        Returns the tangent vector at pointons, in 3d space.

        Returns
        -------
        gp_Vec

        """
        return _BlendFunc.BlendFunc_Corde_TangentOnS(self, *args)

    def Value(self, *args) -> "Standard_Boolean":
        r"""
        Computes the values <f> of the function for the variable <x>. returns true if the computation was done successfully, false otherwise.

        Parameters
        ----------
        X: math_Vector
        F: math_Vector

        Returns
        -------
        bool

        """
        return _BlendFunc.BlendFunc_Corde_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_Corde

# Register BlendFunc_Corde in _BlendFunc:
_BlendFunc.BlendFunc_Corde_swigregister(BlendFunc_Corde)

class BlendFunc_EvolRad(OCC.Core.Blend.Blend_Function):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve
        Law: Law_Function

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_EvolRad_swiginit(self, _BlendFunc.new_BlendFunc_EvolRad(*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 _BlendFunc.BlendFunc_EvolRad_GetTolerance(self, *args)

    def Section(self, *args) -> "void":
        r"""
        Method for graphic traces.

        Parameters
        ----------
        Param: float
        U1: float
        V1: float
        U2: float
        V2: 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
        D2Poles: TColgp_Array1OfVec
        Poles2d: TColgp_Array1OfPnt2d
        DPoles2d: TColgp_Array1OfVec2d
        D2Poles2d: TColgp_Array1OfVec2d
        Weigths: TColStd_Array1OfReal
        DWeigths: TColStd_Array1OfReal
        D2Weigths: TColStd_Array1OfReal

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

        """
        return _BlendFunc.BlendFunc_EvolRad_Section(self, *args)

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

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

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

        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 _BlendFunc.BlendFunc_EvolRad_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_EvolRad

# Register BlendFunc_EvolRad in _BlendFunc:
_BlendFunc.BlendFunc_EvolRad_swigregister(BlendFunc_EvolRad)

class BlendFunc_EvolRadInv(OCC.Core.Blend.Blend_FuncInv):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve
        Law: Law_Function

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_EvolRadInv_swiginit(self, _BlendFunc.new_BlendFunc_EvolRadInv(*args))

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

        Parameters
        ----------
        OnFirst: bool
        COnSurf: Adaptor2d_HCurve2d

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

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

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_EvolRadInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_EvolRadInv

# Register BlendFunc_EvolRadInv in _BlendFunc:
_BlendFunc.BlendFunc_EvolRadInv_swigregister(BlendFunc_EvolRadInv)

class BlendFunc_GenChamfInv(OCC.Core.Blend.Blend_FuncInv):
    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 Set(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        OnFirst: bool
        COnSurf: Adaptor2d_HCurve2d

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

        Parameters
        ----------
        Dist1: float
        Dist2: float
        Choix: int

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_GenChamfInv_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_GenChamfInv

# Register BlendFunc_GenChamfInv in _BlendFunc:
_BlendFunc.BlendFunc_GenChamfInv_swigregister(BlendFunc_GenChamfInv)

class BlendFunc_GenChamfer(OCC.Core.Blend.Blend_Function):
    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) -> "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 _BlendFunc.BlendFunc_GenChamfer_GetTolerance(self, *args)

    def Section(self, *args) -> "void":
        r"""
        Obsolete method.

        Parameters
        ----------
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        C: gp_Lin

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

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

        """
        return _BlendFunc.BlendFunc_GenChamfer_Section(self, *args)

    def Set(self, *args) -> "void":
        r"""
        Sets the value of the parameter along the guide line. this determines the plane in which the solution has to be found.

        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
        Sets the distances and the 'quadrant'.

        Parameters
        ----------
        Dist1: float
        Dist2: float
        Choix: int

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_GenChamfer_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_GenChamfer

# Register BlendFunc_GenChamfer in _BlendFunc:
_BlendFunc.BlendFunc_GenChamfer_swigregister(BlendFunc_GenChamfer)

class BlendFunc_Ruled(OCC.Core.Blend.Blend_Function):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_Ruled_swiginit(self, _BlendFunc.new_BlendFunc_Ruled(*args))

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

        Parameters
        ----------
        Prm: float

        Returns
        -------
        gp_Ax1

        """
        return _BlendFunc.BlendFunc_Ruled_AxeRot(self, *args)

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

        Parameters
        ----------
        Param: float
        U1: float
        V1: float
        U2: float
        V2: float
        tabP: TColgp_Array1OfPnt
        tabV: TColgp_Array1OfVec

        Returns
        -------
        bool

        """
        return _BlendFunc.BlendFunc_Ruled_GetSection(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 _BlendFunc.BlendFunc_Ruled_GetTolerance(self, *args)

    def Section(self, *args) -> "void":
        r"""
        Used for the first and last section.

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

        """
        return _BlendFunc.BlendFunc_Ruled_Section(self, *args)

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

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

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

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

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_Ruled_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_Ruled

# Register BlendFunc_Ruled in _BlendFunc:
_BlendFunc.BlendFunc_Ruled_swigregister(BlendFunc_Ruled)

class BlendFunc_RuledInv(OCC.Core.Blend.Blend_FuncInv):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_RuledInv_swiginit(self, _BlendFunc.new_BlendFunc_RuledInv(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_RuledInv

# Register BlendFunc_RuledInv in _BlendFunc:
_BlendFunc.BlendFunc_RuledInv_swigregister(BlendFunc_RuledInv)

class BlendFunc_Tensor(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
        ----------
        NbRow: int
        NbCol: int
        NbMat: int

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_Tensor_swiginit(self, _BlendFunc.new_BlendFunc_Tensor(*args))

    def GetChangeValue(self, Row: "Standard_Integer const", Col: "Standard_Integer const", Mat: "Standard_Integer const") -> "Standard_Real":
        r"""GetChangeValue(BlendFunc_Tensor self, Standard_Integer const Row, Standard_Integer const Col, Standard_Integer const Mat) -> Standard_Real"""
        return _BlendFunc.BlendFunc_Tensor_GetChangeValue(self, Row, Col, Mat)

    def SetChangeValue(self, Row: "Standard_Integer const", Col: "Standard_Integer const", Mat: "Standard_Integer const", value: "Standard_Real") -> "void":
        r"""SetChangeValue(BlendFunc_Tensor self, Standard_Integer const Row, Standard_Integer const Col, Standard_Integer const Mat, Standard_Real value)"""
        return _BlendFunc.BlendFunc_Tensor_SetChangeValue(self, Row, Col, Mat, value)

    def Init(self, *args) -> "void":
        r"""
        Initialize all the elements of a tensor to initialvalue.

        Parameters
        ----------
        InitialValue: float

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_Tensor_Init(self, *args)

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

        Parameters
        ----------
        Right: math_Vector
        Product: math_Matrix

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_Tensor_Multiply(self, *args)

    def Value(self, *args) -> "Standard_Real const &":
        r"""
        Accesses (in read or write mode) the value of index <row>, <col> and <mat> of a tensor. an exception is raised if <row>, <col> or <mat> are not in the correct range.

        Parameters
        ----------
        Row: int
        Col: int
        Mat: int

        Returns
        -------
        float

        """
        return _BlendFunc.BlendFunc_Tensor_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_Tensor

# Register BlendFunc_Tensor in _BlendFunc:
_BlendFunc.BlendFunc_Tensor_swigregister(BlendFunc_Tensor)

class BlendFunc_ChamfInv(BlendFunc_GenChamfInv):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_ChamfInv_swiginit(self, _BlendFunc.new_BlendFunc_ChamfInv(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_ChamfInv

# Register BlendFunc_ChamfInv in _BlendFunc:
_BlendFunc.BlendFunc_ChamfInv_swigregister(BlendFunc_ChamfInv)

class BlendFunc_Chamfer(BlendFunc_GenChamfer):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        CG: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_Chamfer_swiginit(self, _BlendFunc.new_BlendFunc_Chamfer(*args))

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

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

        Returns
        -------
        None
        Sets the distances and the 'quadrant'.

        Parameters
        ----------
        Dist1: float
        Dist2: float
        Choix: int

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_Chamfer_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_Chamfer

# Register BlendFunc_Chamfer in _BlendFunc:
_BlendFunc.BlendFunc_Chamfer_swigregister(BlendFunc_Chamfer)

class BlendFunc_ConstThroat(BlendFunc_GenChamfer):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_ConstThroat_swiginit(self, _BlendFunc.new_BlendFunc_ConstThroat(*args))

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

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

        Returns
        -------
        None
        Sets the throat and the 'quadrant'.

        Parameters
        ----------
        aThroat: float
        Standard_Real: 
        Choix: int

        Returns
        -------
        None

        """
        return _BlendFunc.BlendFunc_ConstThroat_Set(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_ConstThroat

# Register BlendFunc_ConstThroat in _BlendFunc:
_BlendFunc.BlendFunc_ConstThroat_swigregister(BlendFunc_ConstThroat)

class BlendFunc_ConstThroatInv(BlendFunc_GenChamfInv):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_ConstThroatInv_swiginit(self, _BlendFunc.new_BlendFunc_ConstThroatInv(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_ConstThroatInv

# Register BlendFunc_ConstThroatInv in _BlendFunc:
_BlendFunc.BlendFunc_ConstThroatInv_swigregister(BlendFunc_ConstThroatInv)

class BlendFunc_ConstThroatWithPenetration(BlendFunc_ConstThroat):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_ConstThroatWithPenetration_swiginit(self, _BlendFunc.new_BlendFunc_ConstThroatWithPenetration(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_ConstThroatWithPenetration

# Register BlendFunc_ConstThroatWithPenetration in _BlendFunc:
_BlendFunc.BlendFunc_ConstThroatWithPenetration_swigregister(BlendFunc_ConstThroatWithPenetration)

class BlendFunc_ConstThroatWithPenetrationInv(BlendFunc_ConstThroatInv):
    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
        ----------
        S1: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        C: Adaptor3d_HCurve

        Returns
        -------
        None

        """
        _BlendFunc.BlendFunc_ConstThroatWithPenetrationInv_swiginit(self, _BlendFunc.new_BlendFunc_ConstThroatWithPenetrationInv(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BlendFunc.delete_BlendFunc_ConstThroatWithPenetrationInv

# Register BlendFunc_ConstThroatWithPenetrationInv in _BlendFunc:
_BlendFunc.BlendFunc_ConstThroatWithPenetrationInv_swigregister(BlendFunc_ConstThroatWithPenetrationInv)





