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

"""
BRepApprox module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_brepapprox.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _BRepApprox
else:
    import _BRepApprox

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

    def value(self):
        return _BRepApprox.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _BRepApprox.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _BRepApprox.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _BRepApprox.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _BRepApprox.SwigPyIterator_equal(self, x)

    def copy(self):
        return _BRepApprox.SwigPyIterator_copy(self)

    def next(self):
        return _BRepApprox.SwigPyIterator_next(self)

    def __next__(self):
        return _BRepApprox.SwigPyIterator___next__(self)

    def previous(self):
        return _BRepApprox.SwigPyIterator_previous(self)

    def advance(self, n):
        return _BRepApprox.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _BRepApprox.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _BRepApprox.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _BRepApprox.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _BRepApprox.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _BRepApprox.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _BRepApprox.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

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

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


def process_exception(error, method_name, class_name):
    return _BRepApprox.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.Approx
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Adaptor3d
import OCC.Core.Geom
import OCC.Core.gp
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.AppCont
import OCC.Core.AppParCurves
import OCC.Core.IntSurf
import OCC.Core.BRepAdaptor
import OCC.Core.TopoDS
import OCC.Core.TopLoc
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor
import OCC.Core.IntImp
import OCC.Core.ApproxInt
import OCC.Core.IntPatch
import OCC.Core.Intf
import OCC.Core.Bnd
import OCC.Core.BVH
import OCC.Core.IntAna

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




def Handle_BRepApprox_ApproxLine_Create():
    return _BRepApprox.Handle_BRepApprox_ApproxLine_Create()

def Handle_BRepApprox_ApproxLine_DownCast(t):
    return _BRepApprox.Handle_BRepApprox_ApproxLine_DownCast(t)

def Handle_BRepApprox_ApproxLine_IsNull(t):
    return _BRepApprox.Handle_BRepApprox_ApproxLine_IsNull(t)
class BRepApprox_Approx(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _BRepApprox.BRepApprox_Approx_swiginit(self, _BRepApprox.new_BRepApprox_Approx(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_Approx_IsDone(self, *args)

    def NbMultiCurves(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_Approx_NbMultiCurves(self, *args)

    @staticmethod
    def Parameters(*args):
        r"""

        Parameters
        ----------
        Line: BRepApprox_TheMultiLineOfApprox
        firstP: int
        lastP: int
        Par: Approx_ParametrizationType
        TheParameters: math_Vector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_Approx_Parameters(*args)

    def SetParameters(self, *args):
        r"""

        Parameters
        ----------
        Tol3d: float
        Tol2d: float
        DegMin: int
        DegMax: int
        NbIterMax: int
        NbPntMax: int (optional, default to 30)
        ApproxWithTangency: bool (optional, default to Standard_True)
        Parametrization: Approx_ParametrizationType (optional, default to Approx_ChordLength)

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_Approx_SetParameters(self, *args)

    def TolReached2d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_Approx_TolReached2d(self, *args)

    def TolReached3d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_Approx_TolReached3d(self, *args)

    def Value(self, *args):
        r"""

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

        Return
        -------
        AppParCurves_MultiBSpCurve

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_Approx_Value(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def Perform(self):
    	pass

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_Approx

# Register BRepApprox_Approx in _BRepApprox:
_BRepApprox.BRepApprox_Approx_swigregister(BRepApprox_Approx)
class BRepApprox_ApproxLine(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""

        Parameters
        ----------
        CurveXYZ: Geom_BSplineCurve
        CurveUV1: Geom2d_BSplineCurve
        CurveUV2: Geom2d_BSplineCurve

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        lin: IntSurf_LineOn2S
        theTang: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Thetang variable has been entered only for compatibility with the alias intpatch_wline. they are not used in this class.

        """
        _BRepApprox.BRepApprox_ApproxLine_swiginit(self, _BRepApprox.new_BRepApprox_ApproxLine(*args))

    def NbPnts(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_ApproxLine_NbPnts(self, *args)

    def Point(self, *args):
        r"""

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

        Return
        -------
        IntSurf_PntOn2S

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_ApproxLine_Point(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_ApproxLine

# Register BRepApprox_ApproxLine in _BRepApprox:
_BRepApprox.BRepApprox_ApproxLine_swigregister(BRepApprox_ApproxLine)
class BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox(OCC.Core.math.math_BFGS):
    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"""

        Parameters
        ----------
        F: math_MultipleVarFunctionWithGradient
        StartingPoint: math_Vector
        Tolerance3d: float
        Tolerance2d: float
        Eps: float
        NbIterations: int (optional, default to 200)

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _BRepApprox.BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox

# Register BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_swigregister(BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox)
class BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox(OCC.Core.math.math_MultipleVarFunctionWithGradient):
    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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the function. the approximating curve has <nbpol> control points.

        """
        _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox(*args))

    def CurveValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiBSpCurve

        Description
        -----------
        Returns the multibspcurve approximating the set after computing the value f or grad(f).

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_CurveValue(self, *args)

    def DerivativeFunctionMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the derivative function matrix used to approximate the multiline.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_DerivativeFunctionMatrix(self, *args)

    def Error(self, *args):
        r"""

        Parameters
        ----------
        IPoint: int
        CurveIndex: int

        Return
        -------
        float

        Description
        -----------
        Returns the distance between the multipoint of range ipoint and the curve curveindex.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_Error(self, *args)

    def FirstConstraint(self, *args):
        r"""

        Parameters
        ----------
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        FirstPoint: int

        Return
        -------
        AppParCurves_Constraint

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_FirstConstraint(self, *args)

    def FunctionMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the function matrix used to approximate the multiline.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_FunctionMatrix(self, *args)

    def Index(self, *args):
        r"""
        Return
        -------
        math_IntegerVector

        Description
        -----------
        Returns the indexes of the first non null values of a and da. the values are non null from index(ieme point) +1 to index(ieme point) + degree +1.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_Index(self, *args)

    def LastConstraint(self, *args):
        r"""

        Parameters
        ----------
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        LastPoint: int

        Return
        -------
        AppParCurves_Constraint

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_LastConstraint(self, *args)

    def MaxError2d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum distance between the points and the multibspcurve.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_MaxError2d(self, *args)

    def MaxError3d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum distance between the points and the multibspcurve.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_MaxError3d(self, *args)

    def NewParameters(self, *args):
        r"""
        Return
        -------
        math_Vector

        Description
        -----------
        Returns the new parameters of the multiline.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_NewParameters(self, *args)

    def SetFirstLambda(self, *args):
        r"""

        Parameters
        ----------
        l1: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_SetFirstLambda(self, *args)

    def SetLastLambda(self, *args):
        r"""

        Parameters
        ----------
        l2: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_SetLastLambda(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox

# Register BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_swigregister(BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox)
class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        Parameters: math_Vector
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Given a multiline, this algorithm computes the least square resolution using the householder-qr method. if the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. nbpol is the number of control points wanted for the approximating curves. the system to solve is the following: a x = b. where a is the bernstein matrix computed with the parameters, b the points coordinates and x the poles solutions. the matrix a is the same for each coordinate x, y and z and is also the same for each multiline point because they are approximated in parallel(so with the same parameter, only the vector b changes).

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the object.

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        Parameters: math_Vector
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Given a multiline, this algorithm computes the least square resolution using the householder-qr method. if the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. deg is the degree wanted for the approximating curves. the system to solve is the following: a x = b. where a is the bspline functions matrix computed with <parameters>, b the points coordinates and x the poles solutions. the matrix a is the same for each coordinate x, y and z and is also the same for each multiline point because they are approximated in parallel(so with the same parameter, only the vector b changes).

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the object.

        """
        _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(*args))

    def BSplineValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiBSpCurve

        Description
        -----------
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_BSplineValue(self, *args)

    def BezierValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiCurve

        Description
        -----------
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_BezierValue(self, *args)

    def DerivativeFunctionMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the derivative function matrix used to approximate the set.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_DerivativeFunctionMatrix(self, *args)

    def Distance(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the distances between the points of the multiline and the approximation curves.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_Distance(self, *args)

    def Error(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

        Description
        -----------
        Returns the maximum errors between the multiline and the approximation curves. f is the sum of the square distances.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_Error(self, *args)

    def ErrorGradient(self, *args):
        r"""

        Parameters
        ----------
        Grad: math_Vector

        Return
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

        Description
        -----------
        Returns the maximum errors between the multiline and the approximation curves. f is the sum of the square distances. grad is the derivative vector of the function f.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_ErrorGradient(self, *args)

    def FirstLambda(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the value (p2 - p1)/ v1 if the first point was a tangency point.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_FirstLambda(self, *args)

    def FunctionMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the function matrix used to approximate the set.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_FunctionMatrix(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all has been correctly done.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_IsDone(self, *args)

    def KIndex(self, *args):
        r"""
        Return
        -------
        math_IntegerVector

        Description
        -----------
        Returns the indexes of the first non null values of a and da. the values are non null from index(ieme point) +1 to index(ieme point) + degree +1.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_KIndex(self, *args)

    def LastLambda(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the value (pn - pn-1)/ vn if the last point was a tangency point.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_LastLambda(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Parameters: math_Vector

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields. the case 'curvaturepoint' is not treated in this method.

        Parameters
        ----------
        Parameters: math_Vector
        l1: float
        l2: float

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields.

        Parameters
        ----------
        Parameters: math_Vector
        V1t: math_Vector
        V2t: math_Vector
        l1: float
        l2: float

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields. <v1t> is the tangent vector at the first point. <v2t> is the tangent vector at the last point.

        Parameters
        ----------
        Parameters: math_Vector
        V1t: math_Vector
        V2t: math_Vector
        V1c: math_Vector
        V2c: math_Vector
        l1: float
        l2: float

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields. <v1t> is the tangent vector at the first point. <v2t> is the tangent vector at the last point. <v1c> is the tangent vector at the first point. <v2c> is the tangent vector at the last point.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_Perform(self, *args)

    def Points(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the matrix of points value.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_Points(self, *args)

    def Poles(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the matrix of resulting control points value.

        """
        return _BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_Poles(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox

# Register BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_swigregister(BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox)
class BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox(OCC.Core.math.math_BFGS):
    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"""

        Parameters
        ----------
        F: math_MultipleVarFunctionWithGradient
        StartingPoint: math_Vector
        Tolerance3d: float
        Tolerance2d: float
        Eps: float
        NbIterations: int (optional, default to 200)

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _BRepApprox.BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox

# Register BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_swigregister(BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox)
class BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox(OCC.Core.math.math_BFGS):
    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"""

        Parameters
        ----------
        F: math_MultipleVarFunctionWithGradient
        StartingPoint: math_Vector
        Tolerance3d: float
        Tolerance2d: float
        Eps: float
        NbIterations: int (optional, default to 200)

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _BRepApprox.BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox

# Register BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_swigregister(BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox)
class BRepApprox_MyBSplGradientOfTheComputeLineOfApprox(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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        Deg: int
        Tol3d: float
        Tol2d: float
        NbIterations: int (optional, default to 1)

        Return
        -------
        None

        Description
        -----------
        Tries to minimize the sum (square(||qui - bi*pi||)) where pui describe the approximating bspline curves'poles and qi the multiline points with a parameter ui. in this algorithm, the parameters ui are the unknowns. the tolerance required on this sum is given by tol. the desired degree of the resulting curve is deg.

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        Deg: int
        Tol3d: float
        Tol2d: float
        NbIterations: int
        lambda1: float
        lambda2: float

        Return
        -------
        None

        Description
        -----------
        Tries to minimize the sum (square(||qui - bi*pi||)) where pui describe the approximating bspline curves'poles and qi the multiline points with a parameter ui. in this algorithm, the parameters ui are the unknowns. the tolerance required on this sum is given by tol. the desired degree of the resulting curve is deg.

        """
        _BRepApprox.BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_MyBSplGradientOfTheComputeLineOfApprox(*args))

    def AverageError(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the average error between the old and the new approximation.

        """
        return _BRepApprox.BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_AverageError(self, *args)

    def Error(self, *args):
        r"""

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

        Return
        -------
        float

        Description
        -----------
        Returns the difference between the old and the new approximation. an exception is raised if notdone. an exception is raised if index<1 or index>nbparameters.

        """
        return _BRepApprox.BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_Error(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all has been correctly done.

        """
        return _BRepApprox.BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_IsDone(self, *args)

    def MaxError2d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum difference between the old and the new approximation.

        """
        return _BRepApprox.BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_MaxError2d(self, *args)

    def MaxError3d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum difference between the old and the new approximation.

        """
        return _BRepApprox.BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_MaxError3d(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiBSpCurve

        Description
        -----------
        Returns all the bspline curves approximating the multiline ssp after minimization of the parameter.

        """
        return _BRepApprox.BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_MyBSplGradientOfTheComputeLineOfApprox

# Register BRepApprox_MyBSplGradientOfTheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_swigregister(BRepApprox_MyBSplGradientOfTheComputeLineOfApprox)
class BRepApprox_MyGradientOfTheComputeLineBezierOfApprox(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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Deg: int
        Tol3d: float
        Tol2d: float
        NbIterations: int (optional, default to 200)

        Return
        -------
        None

        Description
        -----------
        Tries to minimize the sum (square(||qui - bi*pi||)) where pui describe the approximating bezier curves'poles and qi the multiline points with a parameter ui. in this algorithm, the parameters ui are the unknowns. the tolerance required on this sum is given by tol. the desired degree of the resulting curve is deg.

        """
        _BRepApprox.BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_MyGradientOfTheComputeLineBezierOfApprox(*args))

    def AverageError(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the average error between the old and the new approximation.

        """
        return _BRepApprox.BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_AverageError(self, *args)

    def Error(self, *args):
        r"""

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

        Return
        -------
        float

        Description
        -----------
        Returns the difference between the old and the new approximation. an exception is raised if notdone. an exception is raised if index<1 or index>nbparameters.

        """
        return _BRepApprox.BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_Error(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all has been correctly done.

        """
        return _BRepApprox.BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_IsDone(self, *args)

    def MaxError2d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum difference between the old and the new approximation.

        """
        return _BRepApprox.BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_MaxError2d(self, *args)

    def MaxError3d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum difference between the old and the new approximation.

        """
        return _BRepApprox.BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_MaxError3d(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiCurve

        Description
        -----------
        Returns all the bezier curves approximating the multiline ssp after minimization of the parameter.

        """
        return _BRepApprox.BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_MyGradientOfTheComputeLineBezierOfApprox

# Register BRepApprox_MyGradientOfTheComputeLineBezierOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_swigregister(BRepApprox_MyGradientOfTheComputeLineBezierOfApprox)
class BRepApprox_MyGradientbisOfTheComputeLineOfApprox(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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Deg: int
        Tol3d: float
        Tol2d: float
        NbIterations: int (optional, default to 200)

        Return
        -------
        None

        Description
        -----------
        Tries to minimize the sum (square(||qui - bi*pi||)) where pui describe the approximating bezier curves'poles and qi the multiline points with a parameter ui. in this algorithm, the parameters ui are the unknowns. the tolerance required on this sum is given by tol. the desired degree of the resulting curve is deg.

        """
        _BRepApprox.BRepApprox_MyGradientbisOfTheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_MyGradientbisOfTheComputeLineOfApprox(*args))

    def AverageError(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the average error between the old and the new approximation.

        """
        return _BRepApprox.BRepApprox_MyGradientbisOfTheComputeLineOfApprox_AverageError(self, *args)

    def Error(self, *args):
        r"""

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

        Return
        -------
        float

        Description
        -----------
        Returns the difference between the old and the new approximation. an exception is raised if notdone. an exception is raised if index<1 or index>nbparameters.

        """
        return _BRepApprox.BRepApprox_MyGradientbisOfTheComputeLineOfApprox_Error(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all has been correctly done.

        """
        return _BRepApprox.BRepApprox_MyGradientbisOfTheComputeLineOfApprox_IsDone(self, *args)

    def MaxError2d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum difference between the old and the new approximation.

        """
        return _BRepApprox.BRepApprox_MyGradientbisOfTheComputeLineOfApprox_MaxError2d(self, *args)

    def MaxError3d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum difference between the old and the new approximation.

        """
        return _BRepApprox.BRepApprox_MyGradientbisOfTheComputeLineOfApprox_MaxError3d(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiCurve

        Description
        -----------
        Returns all the bezier curves approximating the multiline ssp after minimization of the parameter.

        """
        return _BRepApprox.BRepApprox_MyGradientbisOfTheComputeLineOfApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_MyGradientbisOfTheComputeLineOfApprox

# Register BRepApprox_MyGradientbisOfTheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_MyGradientbisOfTheComputeLineOfApprox_swigregister(BRepApprox_MyGradientbisOfTheComputeLineOfApprox)
class BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox(OCC.Core.math.math_MultipleVarFunctionWithGradient):
    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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Deg: int

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the function. the approximating curve has the desired degree deg.

        """
        _BRepApprox.BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox(*args))

    def CurveValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiCurve

        Description
        -----------
        Returns the multicurve approximating the set after computing the value f or grad(f).

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_CurveValue(self, *args)

    def Error(self, *args):
        r"""

        Parameters
        ----------
        IPoint: int
        CurveIndex: int

        Return
        -------
        float

        Description
        -----------
        Returns the distance between the multipoint of range ipoint and the curve curveindex.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_Error(self, *args)

    def FirstConstraint(self, *args):
        r"""

        Parameters
        ----------
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        FirstPoint: int

        Return
        -------
        AppParCurves_Constraint

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_FirstConstraint(self, *args)

    def LastConstraint(self, *args):
        r"""

        Parameters
        ----------
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        LastPoint: int

        Return
        -------
        AppParCurves_Constraint

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_LastConstraint(self, *args)

    def MaxError2d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum distance between the points and the multicurve.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_MaxError2d(self, *args)

    def MaxError3d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum distance between the points and the multicurve.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_MaxError3d(self, *args)

    def NewParameters(self, *args):
        r"""
        Return
        -------
        math_Vector

        Description
        -----------
        Returns the new parameters of the multiline.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_NewParameters(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox

# Register BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_swigregister(BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox)
class BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox(OCC.Core.math.math_MultipleVarFunctionWithGradient):
    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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Deg: int

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the function. the approximating curve has the desired degree deg.

        """
        _BRepApprox.BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox(*args))

    def CurveValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiCurve

        Description
        -----------
        Returns the multicurve approximating the set after computing the value f or grad(f).

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_CurveValue(self, *args)

    def Error(self, *args):
        r"""

        Parameters
        ----------
        IPoint: int
        CurveIndex: int

        Return
        -------
        float

        Description
        -----------
        Returns the distance between the multipoint of range ipoint and the curve curveindex.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_Error(self, *args)

    def FirstConstraint(self, *args):
        r"""

        Parameters
        ----------
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        FirstPoint: int

        Return
        -------
        AppParCurves_Constraint

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_FirstConstraint(self, *args)

    def LastConstraint(self, *args):
        r"""

        Parameters
        ----------
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        LastPoint: int

        Return
        -------
        AppParCurves_Constraint

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_LastConstraint(self, *args)

    def MaxError2d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum distance between the points and the multicurve.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_MaxError2d(self, *args)

    def MaxError3d(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the maximum distance between the points and the multicurve.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_MaxError3d(self, *args)

    def NewParameters(self, *args):
        r"""
        Return
        -------
        math_Vector

        Description
        -----------
        Returns the new parameters of the multiline.

        """
        return _BRepApprox.BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_NewParameters(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox

# Register BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_swigregister(BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox)
class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        Parameters: math_Vector
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Given a multiline, this algorithm computes the least square resolution using the householder-qr method. if the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. nbpol is the number of control points wanted for the approximating curves. the system to solve is the following: a x = b. where a is the bernstein matrix computed with the parameters, b the points coordinates and x the poles solutions. the matrix a is the same for each coordinate x, y and z and is also the same for each multiline point because they are approximated in parallel(so with the same parameter, only the vector b changes).

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the object.

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        Parameters: math_Vector
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Given a multiline, this algorithm computes the least square resolution using the householder-qr method. if the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. deg is the degree wanted for the approximating curves. the system to solve is the following: a x = b. where a is the bspline functions matrix computed with <parameters>, b the points coordinates and x the poles solutions. the matrix a is the same for each coordinate x, y and z and is also the same for each multiline point because they are approximated in parallel(so with the same parameter, only the vector b changes).

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the object.

        """
        _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(*args))

    def BSplineValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiBSpCurve

        Description
        -----------
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_BSplineValue(self, *args)

    def BezierValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiCurve

        Description
        -----------
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_BezierValue(self, *args)

    def DerivativeFunctionMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the derivative function matrix used to approximate the set.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_DerivativeFunctionMatrix(self, *args)

    def Distance(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the distances between the points of the multiline and the approximation curves.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_Distance(self, *args)

    def Error(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

        Description
        -----------
        Returns the maximum errors between the multiline and the approximation curves. f is the sum of the square distances.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_Error(self, *args)

    def ErrorGradient(self, *args):
        r"""

        Parameters
        ----------
        Grad: math_Vector

        Return
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

        Description
        -----------
        Returns the maximum errors between the multiline and the approximation curves. f is the sum of the square distances. grad is the derivative vector of the function f.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_ErrorGradient(self, *args)

    def FirstLambda(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the value (p2 - p1)/ v1 if the first point was a tangency point.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_FirstLambda(self, *args)

    def FunctionMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the function matrix used to approximate the set.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_FunctionMatrix(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all has been correctly done.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_IsDone(self, *args)

    def KIndex(self, *args):
        r"""
        Return
        -------
        math_IntegerVector

        Description
        -----------
        Returns the indexes of the first non null values of a and da. the values are non null from index(ieme point) +1 to index(ieme point) + degree +1.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_KIndex(self, *args)

    def LastLambda(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the value (pn - pn-1)/ vn if the last point was a tangency point.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_LastLambda(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Parameters: math_Vector

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields. the case 'curvaturepoint' is not treated in this method.

        Parameters
        ----------
        Parameters: math_Vector
        l1: float
        l2: float

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields.

        Parameters
        ----------
        Parameters: math_Vector
        V1t: math_Vector
        V2t: math_Vector
        l1: float
        l2: float

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields. <v1t> is the tangent vector at the first point. <v2t> is the tangent vector at the last point.

        Parameters
        ----------
        Parameters: math_Vector
        V1t: math_Vector
        V2t: math_Vector
        V1c: math_Vector
        V2c: math_Vector
        l1: float
        l2: float

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields. <v1t> is the tangent vector at the first point. <v2t> is the tangent vector at the last point. <v1c> is the tangent vector at the first point. <v2c> is the tangent vector at the last point.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_Perform(self, *args)

    def Points(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the matrix of points value.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_Points(self, *args)

    def Poles(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the matrix of resulting control points value.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_Poles(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox

# Register BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_swigregister(BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox)
class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        Parameters: math_Vector
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Given a multiline, this algorithm computes the least square resolution using the householder-qr method. if the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. nbpol is the number of control points wanted for the approximating curves. the system to solve is the following: a x = b. where a is the bernstein matrix computed with the parameters, b the points coordinates and x the poles solutions. the matrix a is the same for each coordinate x, y and z and is also the same for each multiline point because they are approximated in parallel(so with the same parameter, only the vector b changes).

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the object.

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        Parameters: math_Vector
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Given a multiline, this algorithm computes the least square resolution using the householder-qr method. if the first and/or the last point is a constraint point, the value of the tangency or curvature is computed in the resolution. deg is the degree wanted for the approximating curves. the system to solve is the following: a x = b. where a is the bspline functions matrix computed with <parameters>, b the points coordinates and x the poles solutions. the matrix a is the same for each coordinate x, y and z and is also the same for each multiline point because they are approximated in parallel(so with the same parameter, only the vector b changes).

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        NbPol: int

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the object.

        """
        _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(*args))

    def BSplineValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiBSpCurve

        Description
        -----------
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_BSplineValue(self, *args)

    def BezierValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiCurve

        Description
        -----------
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_BezierValue(self, *args)

    def DerivativeFunctionMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the derivative function matrix used to approximate the set.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_DerivativeFunctionMatrix(self, *args)

    def Distance(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the distances between the points of the multiline and the approximation curves.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_Distance(self, *args)

    def Error(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

        Description
        -----------
        Returns the maximum errors between the multiline and the approximation curves. f is the sum of the square distances.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_Error(self, *args)

    def ErrorGradient(self, *args):
        r"""

        Parameters
        ----------
        Grad: math_Vector

        Return
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

        Description
        -----------
        Returns the maximum errors between the multiline and the approximation curves. f is the sum of the square distances. grad is the derivative vector of the function f.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_ErrorGradient(self, *args)

    def FirstLambda(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the value (p2 - p1)/ v1 if the first point was a tangency point.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_FirstLambda(self, *args)

    def FunctionMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the function matrix used to approximate the set.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_FunctionMatrix(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all has been correctly done.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_IsDone(self, *args)

    def KIndex(self, *args):
        r"""
        Return
        -------
        math_IntegerVector

        Description
        -----------
        Returns the indexes of the first non null values of a and da. the values are non null from index(ieme point) +1 to index(ieme point) + degree +1.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_KIndex(self, *args)

    def LastLambda(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the value (pn - pn-1)/ vn if the last point was a tangency point.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_LastLambda(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Parameters: math_Vector

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields. the case 'curvaturepoint' is not treated in this method.

        Parameters
        ----------
        Parameters: math_Vector
        l1: float
        l2: float

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields.

        Parameters
        ----------
        Parameters: math_Vector
        V1t: math_Vector
        V2t: math_Vector
        l1: float
        l2: float

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields. <v1t> is the tangent vector at the first point. <v2t> is the tangent vector at the last point.

        Parameters
        ----------
        Parameters: math_Vector
        V1t: math_Vector
        V2t: math_Vector
        V1c: math_Vector
        V2c: math_Vector
        l1: float
        l2: float

        Return
        -------
        None

        Description
        -----------
        Is used after having initialized the fields. <v1t> is the tangent vector at the first point. <v2t> is the tangent vector at the last point. <v1c> is the tangent vector at the first point. <v2c> is the tangent vector at the last point.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_Perform(self, *args)

    def Points(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the matrix of points value.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_Points(self, *args)

    def Poles(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the matrix of resulting control points value.

        """
        return _BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_Poles(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox

# Register BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_swigregister(BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox)
class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox(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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        SCurv: AppParCurves_MultiCurve
        FirstPoint: int
        LastPoint: int
        Constraints: AppParCurves_HArray1OfConstraintCouple
        Bern: math_Matrix
        DerivativeBern: math_Matrix
        Tolerance: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        Given a multiline ssp with constraints points, this algorithm finds the best curve solution to approximate it. the poles from scurv issued for example from the least squares are used as a guess solution for the uzawa algorithm. the tolerance used in the uzawa algorithms is tolerance. a is the bernstein matrix associated to the multiline and da is the derivative bernstein matrix.(they can come from an approximation with parleastsquare.) the multicurve is modified. new multipoles are given.

        """
        _BRepApprox.BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox(*args))

    def ConstraintDerivative(self, *args):
        r"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        Parameters: math_Vector
        Deg: int
        DA: math_Matrix

        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the derivative of the constraint matrix.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_ConstraintDerivative(self, *args)

    def ConstraintMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_ConstraintMatrix(self, *args)

    def Duale(self, *args):
        r"""
        Return
        -------
        math_Vector

        Description
        -----------
        Returns the duale variables of the system.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_Duale(self, *args)

    def InverseMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the inverse of cont*transposed(cont), where cont is the constraint matrix for the algorithm.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_InverseMatrix(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all has been correctly done.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_IsDone(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def Error(self):
    	pass

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox

# Register BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_swigregister(BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox)
class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox(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"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        SCurv: AppParCurves_MultiCurve
        FirstPoint: int
        LastPoint: int
        Constraints: AppParCurves_HArray1OfConstraintCouple
        Bern: math_Matrix
        DerivativeBern: math_Matrix
        Tolerance: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        Given a multiline ssp with constraints points, this algorithm finds the best curve solution to approximate it. the poles from scurv issued for example from the least squares are used as a guess solution for the uzawa algorithm. the tolerance used in the uzawa algorithms is tolerance. a is the bernstein matrix associated to the multiline and da is the derivative bernstein matrix.(they can come from an approximation with parleastsquare.) the multicurve is modified. new multipoles are given.

        """
        _BRepApprox.BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox(*args))

    def ConstraintDerivative(self, *args):
        r"""

        Parameters
        ----------
        SSP: BRepApprox_TheMultiLineOfApprox
        Parameters: math_Vector
        Deg: int
        DA: math_Matrix

        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the derivative of the constraint matrix.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_ConstraintDerivative(self, *args)

    def ConstraintMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_ConstraintMatrix(self, *args)

    def Duale(self, *args):
        r"""
        Return
        -------
        math_Vector

        Description
        -----------
        Returns the duale variables of the system.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_Duale(self, *args)

    def InverseMatrix(self, *args):
        r"""
        Return
        -------
        math_Matrix

        Description
        -----------
        Returns the inverse of cont*transposed(cont), where cont is the constraint matrix for the algorithm.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_InverseMatrix(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all has been correctly done.

        """
        return _BRepApprox.BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_IsDone(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def Error(self):
    	pass

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox

# Register BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_swigregister(BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox)
class BRepApprox_SurfaceTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def AxeOfRevolution(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        gp_Ax1

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_AxeOfRevolution(*args)

    @staticmethod
    def BSpline(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        opencascade::handle<Geom_BSplineSurface>

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_BSpline(*args)

    @staticmethod
    def BasisCurve(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        opencascade::handle<Adaptor3d_Curve>

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_BasisCurve(*args)

    @staticmethod
    def Bezier(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        opencascade::handle<Geom_BezierSurface>

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_Bezier(*args)

    @staticmethod
    def Cone(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        gp_Cone

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_Cone(*args)

    @staticmethod
    def Cylinder(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        gp_Cylinder

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_Cylinder(*args)

    @staticmethod
    def D0(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        u: float
        v: float
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_D0(*args)

    @staticmethod
    def D1(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        u: float
        v: float
        P: gp_Pnt
        D1u: gp_Vec
        D1v: gp_Vec

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_D1(*args)

    @staticmethod
    def D2(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        u: float
        v: float
        P: gp_Pnt
        D1U: gp_Vec
        D1V: gp_Vec
        D2U: gp_Vec
        D2V: gp_Vec
        D2UV: gp_Vec

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_D2(*args)

    @staticmethod
    def D3(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        u: float
        v: float
        P: gp_Pnt
        D1U: gp_Vec
        D1V: gp_Vec
        D2U: gp_Vec
        D2V: gp_Vec
        D2UV: gp_Vec
        D3U: gp_Vec
        D3V: gp_Vec
        D3UUV: gp_Vec
        D3UVV: gp_Vec

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_D3(*args)

    @staticmethod
    def DN(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        u: float
        v: float
        Nu: int
        Nv: int

        Return
        -------
        gp_Vec

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_DN(*args)

    @staticmethod
    def Direction(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        gp_Dir

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_Direction(*args)

    @staticmethod
    def FirstUParameter(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_FirstUParameter(*args)

    @staticmethod
    def FirstVParameter(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_FirstVParameter(*args)

    @staticmethod
    def GetType(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        GeomAbs_SurfaceType

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_GetType(*args)

    @staticmethod
    def IsUClosed(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_IsUClosed(*args)

    @staticmethod
    def IsUPeriodic(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_IsUPeriodic(*args)

    @staticmethod
    def IsVClosed(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_IsVClosed(*args)

    @staticmethod
    def IsVPeriodic(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_IsVPeriodic(*args)

    @staticmethod
    def LastUParameter(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_LastUParameter(*args)

    @staticmethod
    def LastVParameter(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_LastVParameter(*args)

    @staticmethod
    def NbSamplesU(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        S: BRepAdaptor_Surface
        u1: float
        u2: float

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_NbSamplesU(*args)

    @staticmethod
    def NbSamplesV(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        S: BRepAdaptor_Surface
        v1: float
        v2: float

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_NbSamplesV(*args)

    @staticmethod
    def NbUIntervals(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        Sh: GeomAbs_Shape

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_NbUIntervals(*args)

    @staticmethod
    def NbVIntervals(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        Sh: GeomAbs_Shape

        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_NbVIntervals(*args)

    @staticmethod
    def Plane(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        gp_Pln

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_Plane(*args)

    @staticmethod
    def Sphere(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        gp_Sphere

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_Sphere(*args)

    @staticmethod
    def Torus(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        gp_Torus

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_Torus(*args)

    @staticmethod
    def UIntervals(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        T: TColStd_Array1OfReal
        Sh: GeomAbs_Shape

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_UIntervals(*args)

    @staticmethod
    def UPeriod(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_UPeriod(*args)

    @staticmethod
    def UResolution(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        R3d: float

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_UResolution(*args)

    @staticmethod
    def UTrim(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        First: float
        Last: float
        Tol: float

        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        If <first> >= <last>.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_UTrim(*args)

    @staticmethod
    def VIntervals(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        T: TColStd_Array1OfReal
        Sh: GeomAbs_Shape

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_VIntervals(*args)

    @staticmethod
    def VPeriod(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_VPeriod(*args)

    @staticmethod
    def VResolution(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        R3d: float

        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_VResolution(*args)

    @staticmethod
    def VTrim(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        First: float
        Last: float
        Tol: float

        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        If <first> >= <last>.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_VTrim(*args)

    @staticmethod
    def Value(*args):
        r"""

        Parameters
        ----------
        S: BRepAdaptor_Surface
        u: float
        v: float

        Return
        -------
        gp_Pnt

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_SurfaceTool_Value(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepApprox.BRepApprox_SurfaceTool_swiginit(self, _BRepApprox.new_BRepApprox_SurfaceTool())
    __swig_destroy__ = _BRepApprox.delete_BRepApprox_SurfaceTool

# Register BRepApprox_SurfaceTool in _BRepApprox:
_BRepApprox.BRepApprox_SurfaceTool_swigregister(BRepApprox_SurfaceTool)
class BRepApprox_TheComputeLineBezierOfApprox(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"""

        Parameters
        ----------
        Line: BRepApprox_TheMultiLineOfApprox
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-3)
        Tolerance2d: float (optional, default to 1.0e-6)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        parametrization: Approx_ParametrizationType (optional, default to Approx_ChordLength)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        The multiline <line> will be approximated until tolerances will be reached. the approximation will be done from degreemin to degreemax with a cutting if the corresponding boolean is true. if <squares> is true, the computation will be done with no iteration at all.

        Parameters
        ----------
        Line: BRepApprox_TheMultiLineOfApprox
        Parameters: math_Vector
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-03)
        Tolerance2d: float (optional, default to 1.0e-06)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        The multiline <line> will be approximated until tolerances will be reached. the approximation will be done from degreemin to degreemax with a cutting if the corresponding boolean is true. if <squares> is true, the computation will be done with no iteration at all.

        Parameters
        ----------
        Parameters: math_Vector
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-03)
        Tolerance2d: float (optional, default to 1.0e-06)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        Parameters
        ----------
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-03)
        Tolerance2d: float (optional, default to 1.0e-06)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        parametrization: Approx_ParametrizationType (optional, default to Approx_ChordLength)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        """
        _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheComputeLineBezierOfApprox(*args))

    def ChangeValue(self, *args):
        r"""

        Parameters
        ----------
        Index: int (optional, default to 1)

        Return
        -------
        AppParCurves_MultiCurve

        Description
        -----------
        Returns the result of the approximation.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_ChangeValue(self, *args)

    def Error(self, *args):
        r"""

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

        Return
        -------
        tol3d: float
        tol2d: float

        Description
        -----------
        Returns the tolerances 2d and 3d of the <index> multicurve.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_Error(self, *args)

    def Init(self, *args):
        r"""

        Parameters
        ----------
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-03)
        Tolerance2d: float (optional, default to 1.0e-06)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        parametrization: Approx_ParametrizationType (optional, default to Approx_ChordLength)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_Init(self, *args)

    def IsAllApproximated(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns false if at a moment of the approximation, the status noapproximation has been sent by the user when more points were needed.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_IsAllApproximated(self, *args)

    def IsToleranceReached(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns false if the status nopointsadded has been sent.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_IsToleranceReached(self, *args)

    def NbMultiCurves(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of multicurve doing the approximation of the multiline.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_NbMultiCurves(self, *args)

    def Parameters(self, *args):
        r"""

        Parameters
        ----------
        Index: int (optional, default to 1)

        Return
        -------
        TColStd_Array1OfReal

        Description
        -----------
        Returns the new parameters of the approximation corresponding to the points of the multicurve <index>.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_Parameters(self, *args)

    def Parametrization(self, *args):
        r"""
        Return
        -------
        Approx_ParametrizationType

        Description
        -----------
        Returns the type of parametrization.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_Parametrization(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Line: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        None

        Description
        -----------
        Runs the algorithm after having initialized the fields.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_Perform(self, *args)

    def SetConstraints(self, *args):
        r"""

        Parameters
        ----------
        firstC: AppParCurves_Constraint
        lastC: AppParCurves_Constraint

        Return
        -------
        None

        Description
        -----------
        Changes the first and the last constraint points.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_SetConstraints(self, *args)

    def SetDegrees(self, *args):
        r"""

        Parameters
        ----------
        degreemin: int
        degreemax: int

        Return
        -------
        None

        Description
        -----------
        Changes the degrees of the approximation.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_SetDegrees(self, *args)

    def SetTolerances(self, *args):
        r"""

        Parameters
        ----------
        Tolerance3d: float
        Tolerance2d: float

        Return
        -------
        None

        Description
        -----------
        Changes the tolerances of the approximation.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_SetTolerances(self, *args)

    def SplineValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiBSpCurve

        Description
        -----------
        Returns the result of the approximation.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_SplineValue(self, *args)

    def Value(self, *args):
        r"""

        Parameters
        ----------
        Index: int (optional, default to 1)

        Return
        -------
        AppParCurves_MultiCurve

        Description
        -----------
        Returns the result of the approximation.

        """
        return _BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_TheComputeLineBezierOfApprox

# Register BRepApprox_TheComputeLineBezierOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_TheComputeLineBezierOfApprox_swigregister(BRepApprox_TheComputeLineBezierOfApprox)
class BRepApprox_TheComputeLineOfApprox(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"""

        Parameters
        ----------
        Line: BRepApprox_TheMultiLineOfApprox
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-3)
        Tolerance2d: float (optional, default to 1.0e-6)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        parametrization: Approx_ParametrizationType (optional, default to Approx_ChordLength)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        The multiline <line> will be approximated until tolerances will be reached. the approximation will be done from degreemin to degreemax with a cutting if the corresponding boolean is true. if <squares> is true, the computation will be done with no iteration at all. //! the multiplicities of the internal knots is set by default.

        Parameters
        ----------
        Line: BRepApprox_TheMultiLineOfApprox
        Parameters: math_Vector
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-03)
        Tolerance2d: float (optional, default to 1.0e-06)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        The multiline <line> will be approximated until tolerances will be reached. the approximation will be done from degreemin to degreemax with a cutting if the corresponding boolean is true. if <squares> is true, the computation will be done with no iteration at all.

        Parameters
        ----------
        Parameters: math_Vector
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-03)
        Tolerance2d: float (optional, default to 1.0e-06)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        Parameters
        ----------
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-03)
        Tolerance2d: float (optional, default to 1.0e-06)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        parametrization: Approx_ParametrizationType (optional, default to Approx_ChordLength)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        """
        _BRepApprox.BRepApprox_TheComputeLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheComputeLineOfApprox(*args))

    def ChangeValue(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiBSpCurve

        Description
        -----------
        Returns the result of the approximation.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_ChangeValue(self, *args)

    def Error(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        tol3d: float
        tol2d: float

        Description
        -----------
        Returns the tolerances 2d and 3d of the multibspcurve.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_Error(self, *args)

    def Init(self, *args):
        r"""

        Parameters
        ----------
        degreemin: int (optional, default to 4)
        degreemax: int (optional, default to 8)
        Tolerance3d: float (optional, default to 1.0e-03)
        Tolerance2d: float (optional, default to 1.0e-06)
        NbIterations: int (optional, default to 5)
        cutting: bool (optional, default to Standard_True)
        parametrization: Approx_ParametrizationType (optional, default to Approx_ChordLength)
        Squares: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_Init(self, *args)

    def Interpol(self, *args):
        r"""

        Parameters
        ----------
        Line: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        None

        Description
        -----------
        Constructs an interpolation of the multiline <line> the result will be a c2 curve of degree 3.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_Interpol(self, *args)

    def IsAllApproximated(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns false if at a moment of the approximation, the status noapproximation has been sent by the user when more points were needed.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_IsAllApproximated(self, *args)

    def IsToleranceReached(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns false if the status nopointsadded has been sent.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_IsToleranceReached(self, *args)

    def Parameters(self, *args):
        r"""
        Return
        -------
        TColStd_Array1OfReal

        Description
        -----------
        Returns the new parameters of the approximation corresponding to the points of the multibspcurve.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_Parameters(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Line: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        None

        Description
        -----------
        Runs the algorithm after having initialized the fields.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_Perform(self, *args)

    def SetConstraints(self, *args):
        r"""

        Parameters
        ----------
        firstC: AppParCurves_Constraint
        lastC: AppParCurves_Constraint

        Return
        -------
        None

        Description
        -----------
        Changes the first and the last constraint points.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_SetConstraints(self, *args)

    def SetContinuity(self, *args):
        r"""

        Parameters
        ----------
        C: int

        Return
        -------
        None

        Description
        -----------
        Sets the continuity of the spline. if c = 2, the spline will be c2.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_SetContinuity(self, *args)

    def SetDegrees(self, *args):
        r"""

        Parameters
        ----------
        degreemin: int
        degreemax: int

        Return
        -------
        None

        Description
        -----------
        Changes the degrees of the approximation.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_SetDegrees(self, *args)

    def SetKnots(self, *args):
        r"""

        Parameters
        ----------
        Knots: TColStd_Array1OfReal

        Return
        -------
        None

        Description
        -----------
        The approximation will be done with the set of knots <knots>. the multiplicities will be set with the degree and the desired continuity.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_SetKnots(self, *args)

    def SetKnotsAndMultiplicities(self, *args):
        r"""

        Parameters
        ----------
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger

        Return
        -------
        None

        Description
        -----------
        The approximation will be done with the set of knots <knots> and the multiplicities <mults>.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_SetKnotsAndMultiplicities(self, *args)

    def SetParameters(self, *args):
        r"""

        Parameters
        ----------
        ThePar: math_Vector

        Return
        -------
        None

        Description
        -----------
        The approximation will begin with the set of parameters <thepar>.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_SetParameters(self, *args)

    def SetPeriodic(self, *args):
        r"""

        Parameters
        ----------
        thePeriodic: bool

        Return
        -------
        None

        Description
        -----------
        Sets periodic flag. if theperiodic = standard_true, algorithm tries to build periodic multicurve using corresponding c1 boundary condition for first and last multipoints. multiline must be closed.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_SetPeriodic(self, *args)

    def SetTolerances(self, *args):
        r"""

        Parameters
        ----------
        Tolerance3d: float
        Tolerance2d: float

        Return
        -------
        None

        Description
        -----------
        Changes the tolerances of the approximation.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_SetTolerances(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        AppParCurves_MultiBSpCurve

        Description
        -----------
        Returns the result of the approximation.

        """
        return _BRepApprox.BRepApprox_TheComputeLineOfApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_TheComputeLineOfApprox

# Register BRepApprox_TheComputeLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_TheComputeLineOfApprox_swigregister(BRepApprox_TheComputeLineOfApprox)
class BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox(OCC.Core.math.math_FunctionSetWithDerivatives):
    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"""

        Parameters
        ----------
        S1: BRepAdaptor_Surface
        S2: BRepAdaptor_Surface

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox(*args))

    def AuxillarSurface1(self, *args):
        r"""
        Return
        -------
        BRepAdaptor_Surface

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_AuxillarSurface1(self, *args)

    def AuxillarSurface2(self, *args):
        r"""
        Return
        -------
        BRepAdaptor_Surface

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_AuxillarSurface2(self, *args)

    def ComputeParameters(self, *args):
        r"""

        Parameters
        ----------
        ChoixIso: IntImp_ConstIsoparametric
        Param: TColStd_Array1OfReal
        UVap: math_Vector
        BornInf: math_Vector
        BornSup: math_Vector
        Tolerance: math_Vector

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_ComputeParameters(self, *args)

    def Direction(self, *args):
        r"""
        Return
        -------
        gp_Dir

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_Direction(self, *args)

    def DirectionOnS1(self, *args):
        r"""
        Return
        -------
        gp_Dir2d

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_DirectionOnS1(self, *args)

    def DirectionOnS2(self, *args):
        r"""
        Return
        -------
        gp_Dir2d

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_DirectionOnS2(self, *args)

    def IsTangent(self, *args):
        r"""

        Parameters
        ----------
        UVap: math_Vector
        Param: TColStd_Array1OfReal

        Return
        -------
        BestChoix: IntImp_ConstIsoparametric

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_IsTangent(self, *args)

    def Point(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_Point(self, *args)

    def Root(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns somme des fi*fi.

        """
        return _BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_Root(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox

# Register BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_swigregister(BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox)
class BRepApprox_TheImpPrmSvSurfacesOfApprox(OCC.Core.ApproxInt.ApproxInt_SvSurfaces):
    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"""

        Parameters
        ----------
        Surf1: BRepAdaptor_Surface
        Surf2: IntSurf_Quadric

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        Surf1: IntSurf_Quadric
        Surf2: BRepAdaptor_Surface

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _BRepApprox.BRepApprox_TheImpPrmSvSurfacesOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheImpPrmSvSurfacesOfApprox(*args))

    __repr__ = _dumps_object

    @methodnotwrapped
    def FillInitialVectorOfSolution(self):
    	pass

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_TheImpPrmSvSurfacesOfApprox

# Register BRepApprox_TheImpPrmSvSurfacesOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_TheImpPrmSvSurfacesOfApprox_swigregister(BRepApprox_TheImpPrmSvSurfacesOfApprox)
class BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox(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"""

        Parameters
        ----------
        Param: TColStd_Array1OfReal
        S1: BRepAdaptor_Surface
        S2: BRepAdaptor_Surface
        TolTangency: float

        Return
        -------
        None

        Description
        -----------
        Compute the solution point with the close point.

        Parameters
        ----------
        S1: BRepAdaptor_Surface
        S2: BRepAdaptor_Surface
        TolTangency: float

        Return
        -------
        None

        Description
        -----------
        Initialize the parameters to compute the solution point it 's possible to write to optimize: intimp_int2s inter(s1,s2,func,toltangency); math_functionsetroot rsnld(inter.function()); while ...{ param(1)=... param(2)=... param(3)=... inter.perform(param,rsnld); }.

        """
        _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox(*args))

    def ChangePoint(self, *args):
        r"""
        Return
        -------
        IntSurf_PntOn2S

        Description
        -----------
        Return the intersection point which is enable for changing.

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_ChangePoint(self, *args)

    def Direction(self, *args):
        r"""
        Return
        -------
        gp_Dir

        Description
        -----------
        Returns the tangent at the intersection line.

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_Direction(self, *args)

    def DirectionOnS1(self, *args):
        r"""
        Return
        -------
        gp_Dir2d

        Description
        -----------
        Returns the tangent at the intersection line in the parametric space of the first surface.

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_DirectionOnS1(self, *args)

    def DirectionOnS2(self, *args):
        r"""
        Return
        -------
        gp_Dir2d

        Description
        -----------
        Returns the tangent at the intersection line in the parametric space of the second surface.

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_DirectionOnS2(self, *args)

    def Function(self, *args):
        r"""
        Return
        -------
        BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox

        Description
        -----------
        Return the math function which is used to compute the intersection.

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_Function(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the creation completed without failure.

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_IsDone(self, *args)

    def IsEmpty(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true when there is no solution to the problem.

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_IsEmpty(self, *args)

    def IsTangent(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the surfaces are tangent at the intersection point.

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_IsTangent(self, *args)

    def Perform(self, *args):
        r"""

        Parameters
        ----------
        Param: TColStd_Array1OfReal
        Rsnld: math_FunctionSetRoot

        Return
        -------
        IntImp_ConstIsoparametric

        Description
        -----------
        Returns the best constant isoparametric to find the next intersection's point +stores the solution point (the solution point is found with the close point to intersect the isoparametric with the other patch; the choice of the isoparametic is calculated).

        Parameters
        ----------
        Param: TColStd_Array1OfReal
        Rsnld: math_FunctionSetRoot
        ChoixIso: IntImp_ConstIsoparametric

        Return
        -------
        IntImp_ConstIsoparametric

        Description
        -----------
        Returns the best constant isoparametric to find the next intersection's point +stores the solution point (the solution point is found with the close point to intersect the isoparametric with the other patch; the choice of the isoparametic is given by choixiso).

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_Perform(self, *args)

    def Point(self, *args):
        r"""
        Return
        -------
        IntSurf_PntOn2S

        Description
        -----------
        Returns the intersection point.

        """
        return _BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_Point(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox

# Register BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_swigregister(BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox)
class BRepApprox_TheMultiLineOfApprox(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        line: BRepApprox_ApproxLine
        PtrSvSurfaces: Standard_Address
        NbP3d: int
        NbP2d: int
        ApproxU1V1: bool
        ApproxU2V2: bool
        xo: float
        yo: float
        zo: float
        u1o: float
        v1o: float
        u2o: float
        v2o: float
        P2DOnFirst: bool
        IndMin: int (optional, default to 0)
        IndMax: int (optional, default to 0)

        Return
        -------
        None

        Description
        -----------
        The class svsurfaces is used when the approximation algorithm needs some extra points on the line <line>. a new line is then created which shares the same surfaces and functions. svsurfaces is a deferred class which allows several implementations of this algorithm with different surfaces (bi-parametric ones, or implicit and biparametric ones).

        Parameters
        ----------
        line: BRepApprox_ApproxLine
        NbP3d: int
        NbP2d: int
        ApproxU1V1: bool
        ApproxU2V2: bool
        xo: float
        yo: float
        zo: float
        u1o: float
        v1o: float
        u2o: float
        v2o: float
        P2DOnFirst: bool
        IndMin: int (optional, default to 0)
        IndMax: int (optional, default to 0)

        Return
        -------
        None

        Description
        -----------
        No extra points will be added on the current line.

        """
        _BRepApprox.BRepApprox_TheMultiLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheMultiLineOfApprox(*args))

    def Dump(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Dump of the current multi-line.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_Dump(self, *args)

    def FirstPoint(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_FirstPoint(self, *args)

    def LastPoint(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_LastPoint(self, *args)

    def MakeMLBetween(self, *args):
        r"""

        Parameters
        ----------
        Low: int
        High: int
        NbPointsToInsert: int

        Return
        -------
        BRepApprox_TheMultiLineOfApprox

        Description
        -----------
        Tries to make a sub-line between <low> and <high> points of this line by adding <nbpointstoinsert> new points.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_MakeMLBetween(self, *args)

    def MakeMLOneMorePoint(self, *args):
        r"""

        Parameters
        ----------
        Low: int
        High: int
        indbad: int
        OtherLine: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        bool

        Description
        -----------
        Tries to make a sub-line between <low> and <high> points of this line by adding one more point between (indbad-1)-th and indbad-th points.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_MakeMLOneMorePoint(self, *args)

    def NbP2d(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of 2d points of a theline.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_NbP2d(self, *args)

    def NbP3d(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of 3d points of a theline.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_NbP3d(self, *args)

    def Tangency(self, *args):
        r"""

        Parameters
        ----------
        MPointIndex: int
        tabV: TColgp_Array1OfVec

        Return
        -------
        bool

        Description
        -----------
        Returns the 3d tangency points of the multipoint <mpointindex> only when 3d points exist.

        Parameters
        ----------
        MPointIndex: int
        tabV2d: TColgp_Array1OfVec2d

        Return
        -------
        bool

        Description
        -----------
        Returns the 2d tangency points of the multipoint <mpointindex> only when 2d points exist.

        Parameters
        ----------
        MPointIndex: int
        tabV: TColgp_Array1OfVec
        tabV2d: TColgp_Array1OfVec2d

        Return
        -------
        bool

        Description
        -----------
        Returns the 3d and 2d points of the multipoint <mpointindex>.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_Tangency(self, *args)

    def Value(self, *args):
        r"""

        Parameters
        ----------
        MPointIndex: int
        tabPt: TColgp_Array1OfPnt

        Return
        -------
        None

        Description
        -----------
        Returns the 3d points of the multipoint <mpointindex> when only 3d points exist.

        Parameters
        ----------
        MPointIndex: int
        tabPt2d: TColgp_Array1OfPnt2d

        Return
        -------
        None

        Description
        -----------
        Returns the 2d points of the multipoint <mpointindex> when only 2d points exist.

        Parameters
        ----------
        MPointIndex: int
        tabPt: TColgp_Array1OfPnt
        tabPt2d: TColgp_Array1OfPnt2d

        Return
        -------
        None

        Description
        -----------
        Returns the 3d and 2d points of the multipoint <mpointindex>.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_Value(self, *args)

    def WhatStatus(self, *args):
        r"""
        Return
        -------
        Approx_Status

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheMultiLineOfApprox_WhatStatus(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_TheMultiLineOfApprox

# Register BRepApprox_TheMultiLineOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_TheMultiLineOfApprox_swigregister(BRepApprox_TheMultiLineOfApprox)
class BRepApprox_TheMultiLineToolOfApprox(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Curvature(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV: TColgp_Array1OfVec

        Return
        -------
        bool

        Description
        -----------
        Returns the 3d curvature of the multipoint <mpointindex> when only 3d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV2d: TColgp_Array1OfVec2d

        Return
        -------
        bool

        Description
        -----------
        Returns the 2d curvature points of the multipoint <mpointindex> only when 2d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV: TColgp_Array1OfVec
        tabV2d: TColgp_Array1OfVec2d

        Return
        -------
        bool

        Description
        -----------
        Returns the 3d and 2d curvature of the multipoint <mpointindex>.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Curvature(*args)

    @staticmethod
    def Dump(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        None

        Description
        -----------
        Dump of the current multi-line.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Dump(*args)

    @staticmethod
    def FirstPoint(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        int

        Description
        -----------
        Returns the number of multipoints of the themultiline.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_FirstPoint(*args)

    @staticmethod
    def LastPoint(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        int

        Description
        -----------
        Returns the number of multipoints of the themultiline.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_LastPoint(*args)

    @staticmethod
    def MakeMLBetween(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        I1: int
        I2: int
        NbPMin: int

        Return
        -------
        BRepApprox_TheMultiLineOfApprox

        Description
        -----------
        Is called if whatstatus returned 'pointsadded'.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_MakeMLBetween(*args)

    @staticmethod
    def MakeMLOneMorePoint(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        I1: int
        I2: int
        indbad: int
        OtherLine: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        bool

        Description
        -----------
        Is called when the bezier curve contains a loop.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_MakeMLOneMorePoint(*args)

    @staticmethod
    def NbP2d(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        int

        Description
        -----------
        Returns the number of 2d points of a themultiline.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_NbP2d(*args)

    @staticmethod
    def NbP3d(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Return
        -------
        int

        Description
        -----------
        Returns the number of 3d points of a themultiline.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_NbP3d(*args)

    @staticmethod
    def Tangency(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV: TColgp_Array1OfVec

        Return
        -------
        bool

        Description
        -----------
        Returns the 3d points of the multipoint <mpointindex> when only 3d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV2d: TColgp_Array1OfVec2d

        Return
        -------
        bool

        Description
        -----------
        Returns the 2d tangency points of the multipoint <mpointindex> only when 2d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV: TColgp_Array1OfVec
        tabV2d: TColgp_Array1OfVec2d

        Return
        -------
        bool

        Description
        -----------
        Returns the 3d and 2d points of the multipoint <mpointindex>.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Tangency(*args)

    @staticmethod
    def Value(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabPt: TColgp_Array1OfPnt

        Return
        -------
        None

        Description
        -----------
        Returns the 3d points of the multipoint <mpointindex> when only 3d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabPt2d: TColgp_Array1OfPnt2d

        Return
        -------
        None

        Description
        -----------
        Returns the 2d points of the multipoint <mpointindex> when only 2d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabPt: TColgp_Array1OfPnt
        tabPt2d: TColgp_Array1OfPnt2d

        Return
        -------
        None

        Description
        -----------
        Returns the 3d and 2d points of the multipoint <mpointindex>.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Value(*args)

    @staticmethod
    def WhatStatus(*args):
        r"""

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        I1: int
        I2: int

        Return
        -------
        Approx_Status

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_WhatStatus(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheMultiLineToolOfApprox())
    __swig_destroy__ = _BRepApprox.delete_BRepApprox_TheMultiLineToolOfApprox

# Register BRepApprox_TheMultiLineToolOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_TheMultiLineToolOfApprox_swigregister(BRepApprox_TheMultiLineToolOfApprox)
class BRepApprox_ThePrmPrmSvSurfacesOfApprox(OCC.Core.ApproxInt.ApproxInt_SvSurfaces):
    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"""

        Parameters
        ----------
        Surf1: BRepAdaptor_Surface
        Surf2: BRepAdaptor_Surface

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _BRepApprox.BRepApprox_ThePrmPrmSvSurfacesOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_ThePrmPrmSvSurfacesOfApprox(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_ThePrmPrmSvSurfacesOfApprox

# Register BRepApprox_ThePrmPrmSvSurfacesOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_ThePrmPrmSvSurfacesOfApprox_swigregister(BRepApprox_ThePrmPrmSvSurfacesOfApprox)
class BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        PS: BRepAdaptor_Surface
        IS: IntSurf_Quadric

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        IS: IntSurf_Quadric

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox(*args))

    def Direction2d(self, *args):
        r"""
        Return
        -------
        gp_Dir2d

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_Direction2d(self, *args)

    def Direction3d(self, *args):
        r"""
        Return
        -------
        gp_Vec

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_Direction3d(self, *args)

    def ISurface(self, *args):
        r"""
        Return
        -------
        IntSurf_Quadric

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_ISurface(self, *args)

    def IsTangent(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_IsTangent(self, *args)

    def PSurface(self, *args):
        r"""
        Return
        -------
        BRepAdaptor_Surface

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_PSurface(self, *args)

    def Point(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_Point(self, *args)

    def Root(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_Root(self, *args)

    def Set(self, *args):
        r"""

        Parameters
        ----------
        PS: BRepAdaptor_Surface

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_Set(self, *args)

    def SetImplicitSurface(self, *args):
        r"""

        Parameters
        ----------
        IS: IntSurf_Quadric

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_SetImplicitSurface(self, *args)

    def Tolerance(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the value tol so that if abs(func.root())<tol the function is considered null.

        """
        return _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_Tolerance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepApprox.delete_BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox

# Register BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox in _BRepApprox:
_BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_swigregister(BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox)



@deprecated
def BRepApprox_Approx_Parameters(*args):
	return BRepApprox_Approx.Parameters(*args)

@deprecated
def BRepApprox_SurfaceTool_AxeOfRevolution(*args):
	return BRepApprox_SurfaceTool.AxeOfRevolution(*args)

@deprecated
def BRepApprox_SurfaceTool_BSpline(*args):
	return BRepApprox_SurfaceTool.BSpline(*args)

@deprecated
def BRepApprox_SurfaceTool_BasisCurve(*args):
	return BRepApprox_SurfaceTool.BasisCurve(*args)

@deprecated
def BRepApprox_SurfaceTool_Bezier(*args):
	return BRepApprox_SurfaceTool.Bezier(*args)

@deprecated
def BRepApprox_SurfaceTool_Cone(*args):
	return BRepApprox_SurfaceTool.Cone(*args)

@deprecated
def BRepApprox_SurfaceTool_Cylinder(*args):
	return BRepApprox_SurfaceTool.Cylinder(*args)

@deprecated
def BRepApprox_SurfaceTool_D0(*args):
	return BRepApprox_SurfaceTool.D0(*args)

@deprecated
def BRepApprox_SurfaceTool_D1(*args):
	return BRepApprox_SurfaceTool.D1(*args)

@deprecated
def BRepApprox_SurfaceTool_D2(*args):
	return BRepApprox_SurfaceTool.D2(*args)

@deprecated
def BRepApprox_SurfaceTool_D3(*args):
	return BRepApprox_SurfaceTool.D3(*args)

@deprecated
def BRepApprox_SurfaceTool_DN(*args):
	return BRepApprox_SurfaceTool.DN(*args)

@deprecated
def BRepApprox_SurfaceTool_Direction(*args):
	return BRepApprox_SurfaceTool.Direction(*args)

@deprecated
def BRepApprox_SurfaceTool_FirstUParameter(*args):
	return BRepApprox_SurfaceTool.FirstUParameter(*args)

@deprecated
def BRepApprox_SurfaceTool_FirstVParameter(*args):
	return BRepApprox_SurfaceTool.FirstVParameter(*args)

@deprecated
def BRepApprox_SurfaceTool_GetType(*args):
	return BRepApprox_SurfaceTool.GetType(*args)

@deprecated
def BRepApprox_SurfaceTool_IsUClosed(*args):
	return BRepApprox_SurfaceTool.IsUClosed(*args)

@deprecated
def BRepApprox_SurfaceTool_IsUPeriodic(*args):
	return BRepApprox_SurfaceTool.IsUPeriodic(*args)

@deprecated
def BRepApprox_SurfaceTool_IsVClosed(*args):
	return BRepApprox_SurfaceTool.IsVClosed(*args)

@deprecated
def BRepApprox_SurfaceTool_IsVPeriodic(*args):
	return BRepApprox_SurfaceTool.IsVPeriodic(*args)

@deprecated
def BRepApprox_SurfaceTool_LastUParameter(*args):
	return BRepApprox_SurfaceTool.LastUParameter(*args)

@deprecated
def BRepApprox_SurfaceTool_LastVParameter(*args):
	return BRepApprox_SurfaceTool.LastVParameter(*args)

@deprecated
def BRepApprox_SurfaceTool_NbSamplesU(*args):
	return BRepApprox_SurfaceTool.NbSamplesU(*args)

@deprecated
def BRepApprox_SurfaceTool_NbSamplesU(*args):
	return BRepApprox_SurfaceTool.NbSamplesU(*args)

@deprecated
def BRepApprox_SurfaceTool_NbSamplesV(*args):
	return BRepApprox_SurfaceTool.NbSamplesV(*args)

@deprecated
def BRepApprox_SurfaceTool_NbSamplesV(*args):
	return BRepApprox_SurfaceTool.NbSamplesV(*args)

@deprecated
def BRepApprox_SurfaceTool_NbUIntervals(*args):
	return BRepApprox_SurfaceTool.NbUIntervals(*args)

@deprecated
def BRepApprox_SurfaceTool_NbVIntervals(*args):
	return BRepApprox_SurfaceTool.NbVIntervals(*args)

@deprecated
def BRepApprox_SurfaceTool_Plane(*args):
	return BRepApprox_SurfaceTool.Plane(*args)

@deprecated
def BRepApprox_SurfaceTool_Sphere(*args):
	return BRepApprox_SurfaceTool.Sphere(*args)

@deprecated
def BRepApprox_SurfaceTool_Torus(*args):
	return BRepApprox_SurfaceTool.Torus(*args)

@deprecated
def BRepApprox_SurfaceTool_UIntervals(*args):
	return BRepApprox_SurfaceTool.UIntervals(*args)

@deprecated
def BRepApprox_SurfaceTool_UPeriod(*args):
	return BRepApprox_SurfaceTool.UPeriod(*args)

@deprecated
def BRepApprox_SurfaceTool_UResolution(*args):
	return BRepApprox_SurfaceTool.UResolution(*args)

@deprecated
def BRepApprox_SurfaceTool_UTrim(*args):
	return BRepApprox_SurfaceTool.UTrim(*args)

@deprecated
def BRepApprox_SurfaceTool_VIntervals(*args):
	return BRepApprox_SurfaceTool.VIntervals(*args)

@deprecated
def BRepApprox_SurfaceTool_VPeriod(*args):
	return BRepApprox_SurfaceTool.VPeriod(*args)

@deprecated
def BRepApprox_SurfaceTool_VResolution(*args):
	return BRepApprox_SurfaceTool.VResolution(*args)

@deprecated
def BRepApprox_SurfaceTool_VTrim(*args):
	return BRepApprox_SurfaceTool.VTrim(*args)

@deprecated
def BRepApprox_SurfaceTool_Value(*args):
	return BRepApprox_SurfaceTool.Value(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Curvature(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Curvature(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Curvature(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Curvature(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Curvature(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Curvature(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Dump(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Dump(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_FirstPoint(*args):
	return BRepApprox_TheMultiLineToolOfApprox.FirstPoint(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_LastPoint(*args):
	return BRepApprox_TheMultiLineToolOfApprox.LastPoint(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_MakeMLBetween(*args):
	return BRepApprox_TheMultiLineToolOfApprox.MakeMLBetween(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_MakeMLOneMorePoint(*args):
	return BRepApprox_TheMultiLineToolOfApprox.MakeMLOneMorePoint(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_NbP2d(*args):
	return BRepApprox_TheMultiLineToolOfApprox.NbP2d(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_NbP3d(*args):
	return BRepApprox_TheMultiLineToolOfApprox.NbP3d(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Tangency(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Tangency(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Tangency(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Tangency(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Tangency(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Tangency(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Value(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Value(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Value(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Value(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_Value(*args):
	return BRepApprox_TheMultiLineToolOfApprox.Value(*args)

@deprecated
def BRepApprox_TheMultiLineToolOfApprox_WhatStatus(*args):
	return BRepApprox_TheMultiLineToolOfApprox.WhatStatus(*args)



