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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

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


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


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

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.math
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.gp
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
Blend_StepTooLarge = _Blend.Blend_StepTooLarge
Blend_StepTooSmall = _Blend.Blend_StepTooSmall
Blend_Backward = _Blend.Blend_Backward
Blend_SamePoints = _Blend.Blend_SamePoints
Blend_OnRst1 = _Blend.Blend_OnRst1
Blend_OnRst2 = _Blend.Blend_OnRst2
Blend_OnRst12 = _Blend.Blend_OnRst12
Blend_OK = _Blend.Blend_OK
Blend_NoDecroch = _Blend.Blend_NoDecroch
Blend_DecrochRst1 = _Blend.Blend_DecrochRst1
Blend_DecrochRst2 = _Blend.Blend_DecrochRst2
Blend_DecrochBoth = _Blend.Blend_DecrochBoth
class Blend_SequenceOfPoint(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_begin)
    end = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_end)
    cbegin = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_cbegin)
    cend = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_cend)

    def __init__(self, *args):
        _Blend.Blend_SequenceOfPoint_swiginit(self, _Blend.new_Blend_SequenceOfPoint(*args))
    Size = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Size)
    Length = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Length)
    Lower = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Lower)
    Upper = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Upper)
    IsEmpty = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_IsEmpty)
    Reverse = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Reverse)
    Exchange = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Exchange)
    delNode = _swig_new_static_method(_Blend.Blend_SequenceOfPoint_delNode)
    Clear = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Clear)
    Assign = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Assign)
    Set = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Set)
    Remove = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Remove)
    Append = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Append)
    Prepend = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Prepend)
    InsertBefore = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_InsertBefore)
    InsertAfter = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_InsertAfter)
    Split = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Split)
    First = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_First)
    ChangeFirst = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_ChangeFirst)
    Last = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Last)
    ChangeLast = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_ChangeLast)
    Value = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_Value)
    ChangeValue = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_ChangeValue)
    __call__ = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint___call__)
    SetValue = _swig_new_instance_method(_Blend.Blend_SequenceOfPoint_SetValue)
    __swig_destroy__ = _Blend.delete_Blend_SequenceOfPoint

# Register Blend_SequenceOfPoint in _Blend:
_Blend.Blend_SequenceOfPoint_swigregister(Blend_SequenceOfPoint)
Blend_SequenceOfPoint_delNode = _Blend.Blend_SequenceOfPoint_delNode

class Blend_AppFunction(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    GetBounds = _swig_new_instance_method(_Blend.Blend_AppFunction_GetBounds)
    GetMinimalDistance = _swig_new_instance_method(_Blend.Blend_AppFunction_GetMinimalDistance)
    GetMinimalWeight = _swig_new_instance_method(_Blend.Blend_AppFunction_GetMinimalWeight)
    GetSectionSize = _swig_new_instance_method(_Blend.Blend_AppFunction_GetSectionSize)
    GetShape = _swig_new_instance_method(_Blend.Blend_AppFunction_GetShape)
    GetTolerance = _swig_new_instance_method(_Blend.Blend_AppFunction_GetTolerance)
    Intervals = _swig_new_instance_method(_Blend.Blend_AppFunction_Intervals)
    IsRational = _swig_new_instance_method(_Blend.Blend_AppFunction_IsRational)
    IsSolution = _swig_new_instance_method(_Blend.Blend_AppFunction_IsSolution)
    Knots = _swig_new_instance_method(_Blend.Blend_AppFunction_Knots)
    Mults = _swig_new_instance_method(_Blend.Blend_AppFunction_Mults)
    NbIntervals = _swig_new_instance_method(_Blend.Blend_AppFunction_NbIntervals)
    Parameter = _swig_new_instance_method(_Blend.Blend_AppFunction_Parameter)
    Pnt1 = _swig_new_instance_method(_Blend.Blend_AppFunction_Pnt1)
    Pnt2 = _swig_new_instance_method(_Blend.Blend_AppFunction_Pnt2)
    Resolution = _swig_new_instance_method(_Blend.Blend_AppFunction_Resolution)
    Section = _swig_new_instance_method(_Blend.Blend_AppFunction_Section)
    Set = _swig_new_instance_method(_Blend.Blend_AppFunction_Set)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_AppFunction

# Register Blend_AppFunction in _Blend:
_Blend.Blend_AppFunction_swigregister(Blend_AppFunction)

class Blend_CurvPointFuncInv(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    GetBounds = _swig_new_instance_method(_Blend.Blend_CurvPointFuncInv_GetBounds)
    GetTolerance = _swig_new_instance_method(_Blend.Blend_CurvPointFuncInv_GetTolerance)
    IsSolution = _swig_new_instance_method(_Blend.Blend_CurvPointFuncInv_IsSolution)
    Set = _swig_new_instance_method(_Blend.Blend_CurvPointFuncInv_Set)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_CurvPointFuncInv

# Register Blend_CurvPointFuncInv in _Blend:
_Blend.Blend_CurvPointFuncInv_swigregister(Blend_CurvPointFuncInv)

class Blend_FuncInv(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    GetBounds = _swig_new_instance_method(_Blend.Blend_FuncInv_GetBounds)
    GetTolerance = _swig_new_instance_method(_Blend.Blend_FuncInv_GetTolerance)
    IsSolution = _swig_new_instance_method(_Blend.Blend_FuncInv_IsSolution)
    Set = _swig_new_instance_method(_Blend.Blend_FuncInv_Set)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_FuncInv

# Register Blend_FuncInv in _Blend:
_Blend.Blend_FuncInv_swigregister(Blend_FuncInv)

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

    def __init__(self, *args):
        r"""
        :rtype: None* Creates a point on 2 surfaces, with tangents.
        	:param Pt1:
        	:type Pt1: gp_Pnt
        	:param Pt2:
        	:type Pt2: gp_Pnt
        	:param Param:
        	:type Param: float
        	:param U1:
        	:type U1: float
        	:param V1:
        	:type V1: float
        	:param U2:
        	:type U2: float
        	:param V2:
        	:type V2: float
        	:param Tg1:
        	:type Tg1: gp_Vec
        	:param Tg2:
        	:type Tg2: gp_Vec
        	:param Tg12d:
        	:type Tg12d: gp_Vec2d
        	:param Tg22d:
        	:type Tg22d: gp_Vec2d
        	:rtype: None* Creates a point on 2 surfaces, without tangents.
        	:param Pt1:
        	:type Pt1: gp_Pnt
        	:param Pt2:
        	:type Pt2: gp_Pnt
        	:param Param:
        	:type Param: float
        	:param U1:
        	:type U1: float
        	:param V1:
        	:type V1: float
        	:param U2:
        	:type U2: float
        	:param V2:
        	:type V2: float
        	:rtype: None* Creates a point on a surface and a curve, with tangents.
        	:param Pts:
        	:type Pts: gp_Pnt
        	:param Ptc:
        	:type Ptc: gp_Pnt
        	:param Param:
        	:type Param: float
        	:param U:
        	:type U: float
        	:param V:
        	:type V: float
        	:param W:
        	:type W: float
        	:param Tgs:
        	:type Tgs: gp_Vec
        	:param Tgc:
        	:type Tgc: gp_Vec
        	:param Tg2d:
        	:type Tg2d: gp_Vec2d
        	:rtype: None* Creates a point on a surface and a curve, without tangents.
        	:param Pts:
        	:type Pts: gp_Pnt
        	:param Ptc:
        	:type Ptc: gp_Pnt
        	:param Param:
        	:type Param: float
        	:param U:
        	:type U: float
        	:param V:
        	:type V: float
        	:param W:
        	:type W: float
        	:rtype: None* Creates a point on a surface and a curve on surface, with tangents.
        	:param Pt1:
        	:type Pt1: gp_Pnt
        	:param Pt2:
        	:type Pt2: gp_Pnt
        	:param Param:
        	:type Param: float
        	:param U1:
        	:type U1: float
        	:param V1:
        	:type V1: float
        	:param U2:
        	:type U2: float
        	:param V2:
        	:type V2: float
        	:param PC:
        	:type PC: float
        	:param Tg1:
        	:type Tg1: gp_Vec
        	:param Tg2:
        	:type Tg2: gp_Vec
        	:param Tg12d:
        	:type Tg12d: gp_Vec2d
        	:param Tg22d:
        	:type Tg22d: gp_Vec2d
        	:rtype: None* Creates a point on a surface and a curve on surface, without tangents.
        	:param Pt1:
        	:type Pt1: gp_Pnt
        	:param Pt2:
        	:type Pt2: gp_Pnt
        	:param Param:
        	:type Param: float
        	:param U1:
        	:type U1: float
        	:param V1:
        	:type V1: float
        	:param U2:
        	:type U2: float
        	:param V2:
        	:type V2: float
        	:param PC:
        	:type PC: float
        	:rtype: None* Creates a point on two curves on surfaces, with tangents.
        	:param Pt1:
        	:type Pt1: gp_Pnt
        	:param Pt2:
        	:type Pt2: gp_Pnt
        	:param Param:
        	:type Param: float
        	:param U1:
        	:type U1: float
        	:param V1:
        	:type V1: float
        	:param U2:
        	:type U2: float
        	:param V2:
        	:type V2: float
        	:param PC1:
        	:type PC1: float
        	:param PC2:
        	:type PC2: float
        	:param Tg1:
        	:type Tg1: gp_Vec
        	:param Tg2:
        	:type Tg2: gp_Vec
        	:param Tg12d:
        	:type Tg12d: gp_Vec2d
        	:param Tg22d:
        	:type Tg22d: gp_Vec2d
        	:rtype: None* Creates a point on two curves on surfaces, with tangents.
        	:param Pt1:
        	:type Pt1: gp_Pnt
        	:param Pt2:
        	:type Pt2: gp_Pnt
        	:param Param:
        	:type Param: float
        	:param U1:
        	:type U1: float
        	:param V1:
        	:type V1: float
        	:param U2:
        	:type U2: float
        	:param V2:
        	:type V2: float
        	:param PC1:
        	:type PC1: float
        	:param PC2:
        	:type PC2: float
        	:rtype: None
        """
        _Blend.Blend_Point_swiginit(self, _Blend.new_Blend_Point(*args))
    IsTangencyPoint = _swig_new_instance_method(_Blend.Blend_Point_IsTangencyPoint)
    Parameter = _swig_new_instance_method(_Blend.Blend_Point_Parameter)
    ParameterOnC = _swig_new_instance_method(_Blend.Blend_Point_ParameterOnC)
    ParameterOnC1 = _swig_new_instance_method(_Blend.Blend_Point_ParameterOnC1)
    ParameterOnC2 = _swig_new_instance_method(_Blend.Blend_Point_ParameterOnC2)
    ParametersOnS = _swig_new_instance_method(_Blend.Blend_Point_ParametersOnS)
    ParametersOnS1 = _swig_new_instance_method(_Blend.Blend_Point_ParametersOnS1)
    ParametersOnS2 = _swig_new_instance_method(_Blend.Blend_Point_ParametersOnS2)
    PointOnC = _swig_new_instance_method(_Blend.Blend_Point_PointOnC)
    PointOnC1 = _swig_new_instance_method(_Blend.Blend_Point_PointOnC1)
    PointOnC2 = _swig_new_instance_method(_Blend.Blend_Point_PointOnC2)
    PointOnS = _swig_new_instance_method(_Blend.Blend_Point_PointOnS)
    PointOnS1 = _swig_new_instance_method(_Blend.Blend_Point_PointOnS1)
    PointOnS2 = _swig_new_instance_method(_Blend.Blend_Point_PointOnS2)
    SetParameter = _swig_new_instance_method(_Blend.Blend_Point_SetParameter)
    SetValue = _swig_new_instance_method(_Blend.Blend_Point_SetValue)
    Tangent2d = _swig_new_instance_method(_Blend.Blend_Point_Tangent2d)
    Tangent2dOnS1 = _swig_new_instance_method(_Blend.Blend_Point_Tangent2dOnS1)
    Tangent2dOnS2 = _swig_new_instance_method(_Blend.Blend_Point_Tangent2dOnS2)
    TangentOnC = _swig_new_instance_method(_Blend.Blend_Point_TangentOnC)
    TangentOnC1 = _swig_new_instance_method(_Blend.Blend_Point_TangentOnC1)
    TangentOnC2 = _swig_new_instance_method(_Blend.Blend_Point_TangentOnC2)
    TangentOnS = _swig_new_instance_method(_Blend.Blend_Point_TangentOnS)
    TangentOnS1 = _swig_new_instance_method(_Blend.Blend_Point_TangentOnS1)
    TangentOnS2 = _swig_new_instance_method(_Blend.Blend_Point_TangentOnS2)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_Point

# Register Blend_Point in _Blend:
_Blend.Blend_Point_swigregister(Blend_Point)

class Blend_SurfCurvFuncInv(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    GetBounds = _swig_new_instance_method(_Blend.Blend_SurfCurvFuncInv_GetBounds)
    GetTolerance = _swig_new_instance_method(_Blend.Blend_SurfCurvFuncInv_GetTolerance)
    IsSolution = _swig_new_instance_method(_Blend.Blend_SurfCurvFuncInv_IsSolution)
    Set = _swig_new_instance_method(_Blend.Blend_SurfCurvFuncInv_Set)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_SurfCurvFuncInv

# Register Blend_SurfCurvFuncInv in _Blend:
_Blend.Blend_SurfCurvFuncInv_swigregister(Blend_SurfCurvFuncInv)

class Blend_SurfPointFuncInv(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    GetBounds = _swig_new_instance_method(_Blend.Blend_SurfPointFuncInv_GetBounds)
    GetTolerance = _swig_new_instance_method(_Blend.Blend_SurfPointFuncInv_GetTolerance)
    IsSolution = _swig_new_instance_method(_Blend.Blend_SurfPointFuncInv_IsSolution)
    Set = _swig_new_instance_method(_Blend.Blend_SurfPointFuncInv_Set)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_SurfPointFuncInv

# Register Blend_SurfPointFuncInv in _Blend:
_Blend.Blend_SurfPointFuncInv_swigregister(Blend_SurfPointFuncInv)

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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    GetTolerance = _swig_new_instance_method(_Blend.Blend_CSFunction_GetTolerance)
    IsTangencyPoint = _swig_new_instance_method(_Blend.Blend_CSFunction_IsTangencyPoint)
    ParameterOnC = _swig_new_instance_method(_Blend.Blend_CSFunction_ParameterOnC)
    Pnt2d = _swig_new_instance_method(_Blend.Blend_CSFunction_Pnt2d)
    PointOnC = _swig_new_instance_method(_Blend.Blend_CSFunction_PointOnC)
    PointOnS = _swig_new_instance_method(_Blend.Blend_CSFunction_PointOnS)
    Section = _swig_new_instance_method(_Blend.Blend_CSFunction_Section)
    Set = _swig_new_instance_method(_Blend.Blend_CSFunction_Set)
    Tangent = _swig_new_instance_method(_Blend.Blend_CSFunction_Tangent)
    Tangent2d = _swig_new_instance_method(_Blend.Blend_CSFunction_Tangent2d)
    TangentOnC = _swig_new_instance_method(_Blend.Blend_CSFunction_TangentOnC)
    TangentOnS = _swig_new_instance_method(_Blend.Blend_CSFunction_TangentOnS)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_CSFunction

# Register Blend_CSFunction in _Blend:
_Blend.Blend_CSFunction_swigregister(Blend_CSFunction)

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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    IsTangencyPoint = _swig_new_instance_method(_Blend.Blend_Function_IsTangencyPoint)
    PointOnS1 = _swig_new_instance_method(_Blend.Blend_Function_PointOnS1)
    PointOnS2 = _swig_new_instance_method(_Blend.Blend_Function_PointOnS2)
    Section = _swig_new_instance_method(_Blend.Blend_Function_Section)
    Tangent = _swig_new_instance_method(_Blend.Blend_Function_Tangent)
    Tangent2dOnS1 = _swig_new_instance_method(_Blend.Blend_Function_Tangent2dOnS1)
    Tangent2dOnS2 = _swig_new_instance_method(_Blend.Blend_Function_Tangent2dOnS2)
    TangentOnS1 = _swig_new_instance_method(_Blend.Blend_Function_TangentOnS1)
    TangentOnS2 = _swig_new_instance_method(_Blend.Blend_Function_TangentOnS2)
    TwistOnS1 = _swig_new_instance_method(_Blend.Blend_Function_TwistOnS1)
    TwistOnS2 = _swig_new_instance_method(_Blend.Blend_Function_TwistOnS2)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_Function

# Register Blend_Function in _Blend:
_Blend.Blend_Function_swigregister(Blend_Function)

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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    Decroch = _swig_new_instance_method(_Blend.Blend_RstRstFunction_Decroch)
    GetTolerance = _swig_new_instance_method(_Blend.Blend_RstRstFunction_GetTolerance)
    IsTangencyPoint = _swig_new_instance_method(_Blend.Blend_RstRstFunction_IsTangencyPoint)
    ParameterOnRst1 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_ParameterOnRst1)
    ParameterOnRst2 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_ParameterOnRst2)
    Pnt2dOnRst1 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_Pnt2dOnRst1)
    Pnt2dOnRst2 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_Pnt2dOnRst2)
    PointOnRst1 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_PointOnRst1)
    PointOnRst2 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_PointOnRst2)
    Section = _swig_new_instance_method(_Blend.Blend_RstRstFunction_Section)
    Set = _swig_new_instance_method(_Blend.Blend_RstRstFunction_Set)
    Tangent2dOnRst1 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_Tangent2dOnRst1)
    Tangent2dOnRst2 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_Tangent2dOnRst2)
    TangentOnRst1 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_TangentOnRst1)
    TangentOnRst2 = _swig_new_instance_method(_Blend.Blend_RstRstFunction_TangentOnRst2)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_RstRstFunction

# Register Blend_RstRstFunction in _Blend:
_Blend.Blend_RstRstFunction_swigregister(Blend_RstRstFunction)

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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    Decroch = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_Decroch)
    GetTolerance = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_GetTolerance)
    IsTangencyPoint = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_IsTangencyPoint)
    ParameterOnRst = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_ParameterOnRst)
    Pnt2dOnRst = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_Pnt2dOnRst)
    Pnt2dOnS = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_Pnt2dOnS)
    PointOnRst = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_PointOnRst)
    PointOnS = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_PointOnS)
    Section = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_Section)
    Set = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_Set)
    Tangent2dOnRst = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_Tangent2dOnRst)
    Tangent2dOnS = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_Tangent2dOnS)
    TangentOnRst = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_TangentOnRst)
    TangentOnS = _swig_new_instance_method(_Blend.Blend_SurfRstFunction_TangentOnS)

    __repr__ = _dumps_object

    __swig_destroy__ = _Blend.delete_Blend_SurfRstFunction

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



