# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.1
#
# 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__

_swig_new_instance_method = _BlendFunc.SWIG_PyInstanceMethod_New
_swig_new_static_method = _BlendFunc.SWIG_PyStaticMethod_New

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
    value = _swig_new_instance_method(_BlendFunc.SwigPyIterator_value)
    incr = _swig_new_instance_method(_BlendFunc.SwigPyIterator_incr)
    decr = _swig_new_instance_method(_BlendFunc.SwigPyIterator_decr)
    distance = _swig_new_instance_method(_BlendFunc.SwigPyIterator_distance)
    equal = _swig_new_instance_method(_BlendFunc.SwigPyIterator_equal)
    copy = _swig_new_instance_method(_BlendFunc.SwigPyIterator_copy)
    next = _swig_new_instance_method(_BlendFunc.SwigPyIterator_next)
    __next__ = _swig_new_instance_method(_BlendFunc.SwigPyIterator___next__)
    previous = _swig_new_instance_method(_BlendFunc.SwigPyIterator_previous)
    advance = _swig_new_instance_method(_BlendFunc.SwigPyIterator_advance)
    __eq__ = _swig_new_instance_method(_BlendFunc.SwigPyIterator___eq__)
    __ne__ = _swig_new_instance_method(_BlendFunc.SwigPyIterator___ne__)
    __iadd__ = _swig_new_instance_method(_BlendFunc.SwigPyIterator___iadd__)
    __isub__ = _swig_new_instance_method(_BlendFunc.SwigPyIterator___isub__)
    __add__ = _swig_new_instance_method(_BlendFunc.SwigPyIterator___add__)
    __sub__ = _swig_new_instance_method(_BlendFunc.SwigPyIterator___sub__)
    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


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.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.Convert
import OCC.Core.Blend
import OCC.Core.Law
BlendFunc_Rational = _BlendFunc.BlendFunc_Rational
BlendFunc_QuasiAngular = _BlendFunc.BlendFunc_QuasiAngular
BlendFunc_Polynomial = _BlendFunc.BlendFunc_Polynomial
BlendFunc_Linear = _BlendFunc.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
    ComputeDNormal = _swig_new_static_method(_BlendFunc.blendfunc_ComputeDNormal)
    ComputeNormal = _swig_new_static_method(_BlendFunc.blendfunc_ComputeNormal)
    GetMinimalWeights = _swig_new_static_method(_BlendFunc.blendfunc_GetMinimalWeights)
    GetShape = _swig_new_static_method(_BlendFunc.blendfunc_GetShape)
    NextShape = _swig_new_static_method(_BlendFunc.blendfunc_NextShape)

    __repr__ = _dumps_object


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

# Register blendfunc in _BlendFunc:
_BlendFunc.blendfunc_swigregister(blendfunc)
blendfunc_ComputeDNormal = _BlendFunc.blendfunc_ComputeDNormal
blendfunc_ComputeNormal = _BlendFunc.blendfunc_ComputeNormal
blendfunc_GetMinimalWeights = _BlendFunc.blendfunc_GetMinimalWeights
blendfunc_GetShape = _BlendFunc.blendfunc_GetShape
blendfunc_NextShape = _BlendFunc.blendfunc_NextShape

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)||
        	:param S:
        	:type S: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:param CGuide:
        	:type CGuide: Adaptor3d_HCurve
        	:param L:
        	:type L: Law_Function
        	:rtype: None
        """
        _BlendFunc.BlendFunc_CSCircular_swiginit(self, _BlendFunc.new_BlendFunc_CSCircular(*args))
    GetSection = _swig_new_instance_method(_BlendFunc.BlendFunc_CSCircular_GetSection)
    GetTolerance = _swig_new_instance_method(_BlendFunc.BlendFunc_CSCircular_GetTolerance)
    Section = _swig_new_instance_method(_BlendFunc.BlendFunc_CSCircular_Section)
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_CSCircular_Set)

    __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"""
        :param S:
        	:type S: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:param CGuide:
        	:type CGuide: Adaptor3d_HCurve
        	:rtype: None
        """
        _BlendFunc.BlendFunc_CSConstRad_swiginit(self, _BlendFunc.new_BlendFunc_CSConstRad(*args))
    GetSection = _swig_new_instance_method(_BlendFunc.BlendFunc_CSConstRad_GetSection)
    GetTolerance = _swig_new_instance_method(_BlendFunc.BlendFunc_CSConstRad_GetTolerance)
    Section = _swig_new_instance_method(_BlendFunc.BlendFunc_CSConstRad_Section)
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_CSConstRad_Set)

    __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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: None
        """
        _BlendFunc.BlendFunc_ChAsym_swiginit(self, _BlendFunc.new_BlendFunc_ChAsym(*args))
    ComputeValues = _swig_new_instance_method(_BlendFunc.BlendFunc_ChAsym_ComputeValues)
    GetTolerance = _swig_new_instance_method(_BlendFunc.BlendFunc_ChAsym_GetTolerance)
    Section = _swig_new_instance_method(_BlendFunc.BlendFunc_ChAsym_Section)
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_ChAsym_Set)

    __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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: None
        """
        _BlendFunc.BlendFunc_ChAsymInv_swiginit(self, _BlendFunc.new_BlendFunc_ChAsymInv(*args))
    ComputeValues = _swig_new_instance_method(_BlendFunc.BlendFunc_ChAsymInv_ComputeValues)
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_ChAsymInv_Set)

    __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
    AxeRot = _swig_new_instance_method(_BlendFunc.BlendFunc_ConstRad_AxeRot)

    def __init__(self, *args):
        r"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: None
        """
        _BlendFunc.BlendFunc_ConstRad_swiginit(self, _BlendFunc.new_BlendFunc_ConstRad(*args))
    GetTolerance = _swig_new_instance_method(_BlendFunc.BlendFunc_ConstRad_GetTolerance)
    Section = _swig_new_instance_method(_BlendFunc.BlendFunc_ConstRad_Section)
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_ConstRad_Set)

    __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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: None
        """
        _BlendFunc.BlendFunc_ConstRadInv_swiginit(self, _BlendFunc.new_BlendFunc_ConstRadInv(*args))
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_ConstRadInv_Set)

    __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"""
        :param S:
        	:type S: Adaptor3d_HSurface
        	:param CGuide:
        	:type CGuide: Adaptor3d_HCurve
        	:rtype: None
        """
        _BlendFunc.BlendFunc_Corde_swiginit(self, _BlendFunc.new_BlendFunc_Corde(*args))
    DerFguide = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_DerFguide)
    Derivatives = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_Derivatives)
    IsSolution = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_IsSolution)
    IsTangencyPoint = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_IsTangencyPoint)
    NPlan = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_NPlan)
    PointOnGuide = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_PointOnGuide)
    PointOnS = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_PointOnS)
    SetDist = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_SetDist)
    SetParam = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_SetParam)
    Tangent2dOnS = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_Tangent2dOnS)
    TangentOnS = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_TangentOnS)
    Value = _swig_new_instance_method(_BlendFunc.BlendFunc_Corde_Value)

    __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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:param Law:
        	:type Law: Law_Function
        	:rtype: None
        """
        _BlendFunc.BlendFunc_EvolRad_swiginit(self, _BlendFunc.new_BlendFunc_EvolRad(*args))
    GetTolerance = _swig_new_instance_method(_BlendFunc.BlendFunc_EvolRad_GetTolerance)
    Section = _swig_new_instance_method(_BlendFunc.BlendFunc_EvolRad_Section)
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_EvolRad_Set)

    __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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:param Law:
        	:type Law: Law_Function
        	:rtype: None
        """
        _BlendFunc.BlendFunc_EvolRadInv_swiginit(self, _BlendFunc.new_BlendFunc_EvolRadInv(*args))
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_EvolRadInv_Set)

    __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
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_GenChamfInv_Set)

    __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
    GetTolerance = _swig_new_instance_method(_BlendFunc.BlendFunc_GenChamfer_GetTolerance)
    Section = _swig_new_instance_method(_BlendFunc.BlendFunc_GenChamfer_Section)
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_GenChamfer_Set)

    __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
    AxeRot = _swig_new_instance_method(_BlendFunc.BlendFunc_Ruled_AxeRot)

    def __init__(self, *args):
        r"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: None
        """
        _BlendFunc.BlendFunc_Ruled_swiginit(self, _BlendFunc.new_BlendFunc_Ruled(*args))
    GetSection = _swig_new_instance_method(_BlendFunc.BlendFunc_Ruled_GetSection)
    GetTolerance = _swig_new_instance_method(_BlendFunc.BlendFunc_Ruled_GetTolerance)
    Section = _swig_new_instance_method(_BlendFunc.BlendFunc_Ruled_Section)
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_Ruled_Set)

    __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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: 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"""
        :param NbRow:
        	:type NbRow: int
        	:param NbCol:
        	:type NbCol: int
        	:param NbMat:
        	:type NbMat: int
        	:rtype: None
        """
        _BlendFunc.BlendFunc_Tensor_swiginit(self, _BlendFunc.new_BlendFunc_Tensor(*args))
    GetChangeValue = _swig_new_instance_method(_BlendFunc.BlendFunc_Tensor_GetChangeValue)
    SetChangeValue = _swig_new_instance_method(_BlendFunc.BlendFunc_Tensor_SetChangeValue)
    Init = _swig_new_instance_method(_BlendFunc.BlendFunc_Tensor_Init)
    Multiply = _swig_new_instance_method(_BlendFunc.BlendFunc_Tensor_Multiply)
    Value = _swig_new_instance_method(_BlendFunc.BlendFunc_Tensor_Value)

    __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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: 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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param CG:
        	:type CG: Adaptor3d_HCurve
        	:rtype: None
        """
        _BlendFunc.BlendFunc_Chamfer_swiginit(self, _BlendFunc.new_BlendFunc_Chamfer(*args))
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_Chamfer_Set)

    __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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: None
        """
        _BlendFunc.BlendFunc_ConstThroat_swiginit(self, _BlendFunc.new_BlendFunc_ConstThroat(*args))
    Set = _swig_new_instance_method(_BlendFunc.BlendFunc_ConstThroat_Set)

    __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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: 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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: 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"""
        :param S1:
        	:type S1: Adaptor3d_HSurface
        	:param S2:
        	:type S2: Adaptor3d_HSurface
        	:param C:
        	:type C: Adaptor3d_HCurve
        	:rtype: 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)



