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

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

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

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _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 == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args) -> "ptrdiff_t":
        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: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    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

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




def Handle_BRepApprox_ApproxLine_Create() -> "opencascade::handle< BRepApprox_ApproxLine >":
    return _BRepApprox.Handle_BRepApprox_ApproxLine_Create()

def Handle_BRepApprox_ApproxLine_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRepApprox_ApproxLine >":
    return _BRepApprox.Handle_BRepApprox_ApproxLine_DownCast(t)

def Handle_BRepApprox_ApproxLine_IsNull(t: "opencascade::handle< BRepApprox_ApproxLine > const &") -> "bool":
    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"""
        No available documentation.

        Returns
        -------
        None

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

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

        Returns
        -------
        bool

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

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

        Returns
        -------
        int

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

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

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

        Returns
        -------
        None

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

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

        Returns
        -------
        float

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

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

        Returns
        -------
        float

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

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

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

        Returns
        -------
        AppParCurves_MultiBSpCurve

        """
        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"""
        No available documentation.

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

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

        Parameters
        ----------
        lin: IntSurf_LineOn2S
        theTang: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

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

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

        Returns
        -------
        int

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

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

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

        Returns
        -------
        IntSurf_PntOn2S

        """
        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"""
        No available documentation.

        Parameters
        ----------
        F: math_MultipleVarFunctionWithGradient
        StartingPoint: math_Vector
        Tolerance3d: float
        Tolerance2d: float
        Eps: float
        NbIterations: int,optional
        	default value is 200

        Returns
        -------
        None

        """
        _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"""
        Initializes the fields of the function. the approximating curve has <nbpol> control points.

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

        Returns
        -------
        None

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

    def CurveValue(self, *args) -> "AppParCurves_MultiBSpCurve":
        r"""
        Returns the multibspcurve approximating the set after computing the value f or grad(f).

        Returns
        -------
        AppParCurves_MultiBSpCurve

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

    def DerivativeFunctionMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the derivative function matrix used to approximate the multiline.

        Returns
        -------
        math_Matrix

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

    def Error(self, *args) -> "Standard_Real":
        r"""
        Returns the distance between the multipoint of range ipoint and the curve curveindex.

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

        Returns
        -------
        float

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

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

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

        Returns
        -------
        AppParCurves_Constraint

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

    def FunctionMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the function matrix used to approximate the multiline.

        Returns
        -------
        math_Matrix

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

    def Index(self, *args) -> "math_IntegerVector const &":
        r"""
        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.

        Returns
        -------
        math_IntegerVector

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

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

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

        Returns
        -------
        AppParCurves_Constraint

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

    def MaxError2d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum distance between the points and the multibspcurve.

        Returns
        -------
        float

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

    def MaxError3d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum distance between the points and the multibspcurve.

        Returns
        -------
        float

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

    def NewParameters(self, *args) -> "math_Vector const &":
        r"""
        Returns the new parameters of the multiline.

        Returns
        -------
        math_Vector

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

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

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

        """
        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"""
        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
        Parameters: math_Vector
        NbPol: int

        Returns
        -------
        None
        Initializes the fields of the object.

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

        Returns
        -------
        None
        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
        Parameters: math_Vector
        NbPol: int

        Returns
        -------
        None
        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
        NbPol: int

        Returns
        -------
        None

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

    def BSplineValue(self, *args) -> "AppParCurves_MultiBSpCurve const &":
        r"""
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        Returns
        -------
        AppParCurves_MultiBSpCurve

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

    def BezierValue(self, *args) -> "AppParCurves_MultiCurve":
        r"""
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        Returns
        -------
        AppParCurves_MultiCurve

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

    def DerivativeFunctionMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the derivative function matrix used to approximate the set.

        Returns
        -------
        math_Matrix

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

    def Distance(self, *args) -> "math_Matrix const &":
        r"""
        Returns the distances between the points of the multiline and the approximation curves.

        Returns
        -------
        math_Matrix

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

    def Error(self, *args) -> "void":
        r"""
        Returns the maximum errors between the multiline and the approximation curves. f is the sum of the square distances.

        Parameters
        ----------

        Returns
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

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

    def ErrorGradient(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

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

    def FirstLambda(self, *args) -> "Standard_Real":
        r"""
        Returns the value (p2 - p1)/ v1 if the first point was a tangency point.

        Returns
        -------
        float

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

    def FunctionMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the function matrix used to approximate the set.

        Returns
        -------
        math_Matrix

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all has been correctly done.

        Returns
        -------
        bool

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

    def KIndex(self, *args) -> "math_IntegerVector const &":
        r"""
        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.

        Returns
        -------
        math_IntegerVector

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

    def LastLambda(self, *args) -> "Standard_Real":
        r"""
        Returns the value (pn - pn-1)/ vn if the last point was a tangency point.

        Returns
        -------
        float

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

    def Perform(self, *args) -> "void":
        r"""
        Is used after having initialized the fields. the case 'curvaturepoint' is not treated in this method.

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

        Returns
        -------
        None
        Is used after having initialized the fields.

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

        Returns
        -------
        None
        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
        l1: float
        l2: float

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

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

        Returns
        -------
        None

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

    def Points(self, *args) -> "math_Matrix const &":
        r"""
        Returns the matrix of points value.

        Returns
        -------
        math_Matrix

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

    def Poles(self, *args) -> "math_Matrix const &":
        r"""
        Returns the matrix of resulting control points value.

        Returns
        -------
        math_Matrix

        """
        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"""
        No available documentation.

        Parameters
        ----------
        F: math_MultipleVarFunctionWithGradient
        StartingPoint: math_Vector
        Tolerance3d: float
        Tolerance2d: float
        Eps: float
        NbIterations: int,optional
        	default value is 200

        Returns
        -------
        None

        """
        _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"""
        No available documentation.

        Parameters
        ----------
        F: math_MultipleVarFunctionWithGradient
        StartingPoint: math_Vector
        Tolerance3d: float
        Tolerance2d: float
        Eps: float
        NbIterations: int,optional
        	default value is 200

        Returns
        -------
        None

        """
        _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"""
        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,optional
        	default value is 1

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

        Returns
        -------
        None

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

    def AverageError(self, *args) -> "Standard_Real":
        r"""
        Returns the average error between the old and the new approximation.

        Returns
        -------
        float

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

    def Error(self, *args) -> "Standard_Real":
        r"""
        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.

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

        Returns
        -------
        float

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all has been correctly done.

        Returns
        -------
        bool

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

    def MaxError2d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum difference between the old and the new approximation.

        Returns
        -------
        float

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

    def MaxError3d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum difference between the old and the new approximation.

        Returns
        -------
        float

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

    def Value(self, *args) -> "AppParCurves_MultiBSpCurve":
        r"""
        Returns all the bspline curves approximating the multiline ssp after minimization of the parameter.

        Returns
        -------
        AppParCurves_MultiBSpCurve

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

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

        Returns
        -------
        None

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

    def AverageError(self, *args) -> "Standard_Real":
        r"""
        Returns the average error between the old and the new approximation.

        Returns
        -------
        float

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

    def Error(self, *args) -> "Standard_Real":
        r"""
        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.

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

        Returns
        -------
        float

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all has been correctly done.

        Returns
        -------
        bool

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

    def MaxError2d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum difference between the old and the new approximation.

        Returns
        -------
        float

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

    def MaxError3d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum difference between the old and the new approximation.

        Returns
        -------
        float

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

    def Value(self, *args) -> "AppParCurves_MultiCurve":
        r"""
        Returns all the bezier curves approximating the multiline ssp after minimization of the parameter.

        Returns
        -------
        AppParCurves_MultiCurve

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

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

        Returns
        -------
        None

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

    def AverageError(self, *args) -> "Standard_Real":
        r"""
        Returns the average error between the old and the new approximation.

        Returns
        -------
        float

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

    def Error(self, *args) -> "Standard_Real":
        r"""
        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.

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

        Returns
        -------
        float

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all has been correctly done.

        Returns
        -------
        bool

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

    def MaxError2d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum difference between the old and the new approximation.

        Returns
        -------
        float

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

    def MaxError3d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum difference between the old and the new approximation.

        Returns
        -------
        float

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

    def Value(self, *args) -> "AppParCurves_MultiCurve":
        r"""
        Returns all the bezier curves approximating the multiline ssp after minimization of the parameter.

        Returns
        -------
        AppParCurves_MultiCurve

        """
        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"""
        Initializes the fields of the function. the approximating curve has the desired degree deg.

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

        Returns
        -------
        None

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

    def CurveValue(self, *args) -> "AppParCurves_MultiCurve const &":
        r"""
        Returns the multicurve approximating the set after computing the value f or grad(f).

        Returns
        -------
        AppParCurves_MultiCurve

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

    def Error(self, *args) -> "Standard_Real":
        r"""
        Returns the distance between the multipoint of range ipoint and the curve curveindex.

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

        Returns
        -------
        float

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

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

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

        Returns
        -------
        AppParCurves_Constraint

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

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

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

        Returns
        -------
        AppParCurves_Constraint

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

    def MaxError2d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum distance between the points and the multicurve.

        Returns
        -------
        float

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

    def MaxError3d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum distance between the points and the multicurve.

        Returns
        -------
        float

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

    def NewParameters(self, *args) -> "math_Vector const &":
        r"""
        Returns the new parameters of the multiline.

        Returns
        -------
        math_Vector

        """
        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"""
        Initializes the fields of the function. the approximating curve has the desired degree deg.

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

        Returns
        -------
        None

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

    def CurveValue(self, *args) -> "AppParCurves_MultiCurve const &":
        r"""
        Returns the multicurve approximating the set after computing the value f or grad(f).

        Returns
        -------
        AppParCurves_MultiCurve

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

    def Error(self, *args) -> "Standard_Real":
        r"""
        Returns the distance between the multipoint of range ipoint and the curve curveindex.

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

        Returns
        -------
        float

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

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

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

        Returns
        -------
        AppParCurves_Constraint

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

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

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

        Returns
        -------
        AppParCurves_Constraint

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

    def MaxError2d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum distance between the points and the multicurve.

        Returns
        -------
        float

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

    def MaxError3d(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum distance between the points and the multicurve.

        Returns
        -------
        float

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

    def NewParameters(self, *args) -> "math_Vector const &":
        r"""
        Returns the new parameters of the multiline.

        Returns
        -------
        math_Vector

        """
        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"""
        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
        Parameters: math_Vector
        NbPol: int

        Returns
        -------
        None
        Initializes the fields of the object.

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

        Returns
        -------
        None
        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
        Parameters: math_Vector
        NbPol: int

        Returns
        -------
        None
        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
        NbPol: int

        Returns
        -------
        None

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

    def BSplineValue(self, *args) -> "AppParCurves_MultiBSpCurve const &":
        r"""
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        Returns
        -------
        AppParCurves_MultiBSpCurve

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

    def BezierValue(self, *args) -> "AppParCurves_MultiCurve":
        r"""
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        Returns
        -------
        AppParCurves_MultiCurve

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

    def DerivativeFunctionMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the derivative function matrix used to approximate the set.

        Returns
        -------
        math_Matrix

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

    def Distance(self, *args) -> "math_Matrix const &":
        r"""
        Returns the distances between the points of the multiline and the approximation curves.

        Returns
        -------
        math_Matrix

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

    def Error(self, *args) -> "void":
        r"""
        Returns the maximum errors between the multiline and the approximation curves. f is the sum of the square distances.

        Parameters
        ----------

        Returns
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

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

    def ErrorGradient(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

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

    def FirstLambda(self, *args) -> "Standard_Real":
        r"""
        Returns the value (p2 - p1)/ v1 if the first point was a tangency point.

        Returns
        -------
        float

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

    def FunctionMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the function matrix used to approximate the set.

        Returns
        -------
        math_Matrix

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all has been correctly done.

        Returns
        -------
        bool

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

    def KIndex(self, *args) -> "math_IntegerVector const &":
        r"""
        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.

        Returns
        -------
        math_IntegerVector

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

    def LastLambda(self, *args) -> "Standard_Real":
        r"""
        Returns the value (pn - pn-1)/ vn if the last point was a tangency point.

        Returns
        -------
        float

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

    def Perform(self, *args) -> "void":
        r"""
        Is used after having initialized the fields. the case 'curvaturepoint' is not treated in this method.

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

        Returns
        -------
        None
        Is used after having initialized the fields.

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

        Returns
        -------
        None
        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
        l1: float
        l2: float

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

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

        Returns
        -------
        None

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

    def Points(self, *args) -> "math_Matrix const &":
        r"""
        Returns the matrix of points value.

        Returns
        -------
        math_Matrix

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

    def Poles(self, *args) -> "math_Matrix const &":
        r"""
        Returns the matrix of resulting control points value.

        Returns
        -------
        math_Matrix

        """
        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"""
        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
        Parameters: math_Vector
        NbPol: int

        Returns
        -------
        None
        Initializes the fields of the object.

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

        Returns
        -------
        None
        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
        Parameters: math_Vector
        NbPol: int

        Returns
        -------
        None
        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
        NbPol: int

        Returns
        -------
        None

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

    def BSplineValue(self, *args) -> "AppParCurves_MultiBSpCurve const &":
        r"""
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        Returns
        -------
        AppParCurves_MultiBSpCurve

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

    def BezierValue(self, *args) -> "AppParCurves_MultiCurve":
        r"""
        Returns the result of the approximation, i.e. all the curves. an exception is raised if notdone.

        Returns
        -------
        AppParCurves_MultiCurve

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

    def DerivativeFunctionMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the derivative function matrix used to approximate the set.

        Returns
        -------
        math_Matrix

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

    def Distance(self, *args) -> "math_Matrix const &":
        r"""
        Returns the distances between the points of the multiline and the approximation curves.

        Returns
        -------
        math_Matrix

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

    def Error(self, *args) -> "void":
        r"""
        Returns the maximum errors between the multiline and the approximation curves. f is the sum of the square distances.

        Parameters
        ----------

        Returns
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

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

    def ErrorGradient(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        F: float
        MaxE3d: float
        MaxE2d: float

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

    def FirstLambda(self, *args) -> "Standard_Real":
        r"""
        Returns the value (p2 - p1)/ v1 if the first point was a tangency point.

        Returns
        -------
        float

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

    def FunctionMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the function matrix used to approximate the set.

        Returns
        -------
        math_Matrix

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all has been correctly done.

        Returns
        -------
        bool

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

    def KIndex(self, *args) -> "math_IntegerVector const &":
        r"""
        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.

        Returns
        -------
        math_IntegerVector

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

    def LastLambda(self, *args) -> "Standard_Real":
        r"""
        Returns the value (pn - pn-1)/ vn if the last point was a tangency point.

        Returns
        -------
        float

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

    def Perform(self, *args) -> "void":
        r"""
        Is used after having initialized the fields. the case 'curvaturepoint' is not treated in this method.

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

        Returns
        -------
        None
        Is used after having initialized the fields.

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

        Returns
        -------
        None
        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
        l1: float
        l2: float

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

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

        Returns
        -------
        None

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

    def Points(self, *args) -> "math_Matrix const &":
        r"""
        Returns the matrix of points value.

        Returns
        -------
        math_Matrix

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

    def Poles(self, *args) -> "math_Matrix const &":
        r"""
        Returns the matrix of resulting control points value.

        Returns
        -------
        math_Matrix

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

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

        Returns
        -------
        None

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

    def ConstraintDerivative(self, *args) -> "math_Matrix const &":
        r"""
        Returns the derivative of the constraint matrix.

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

        Returns
        -------
        math_Matrix

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

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

        Returns
        -------
        math_Matrix

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

    def Duale(self, *args) -> "math_Vector const &":
        r"""
        Returns the duale variables of the system.

        Returns
        -------
        math_Vector

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

    def InverseMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the inverse of cont*transposed(cont), where cont is the constraint matrix for the algorithm.

        Returns
        -------
        math_Matrix

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all has been correctly done.

        Returns
        -------
        bool

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

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

        Returns
        -------
        None

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

    def ConstraintDerivative(self, *args) -> "math_Matrix const &":
        r"""
        Returns the derivative of the constraint matrix.

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

        Returns
        -------
        math_Matrix

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

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

        Returns
        -------
        math_Matrix

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

    def Duale(self, *args) -> "math_Vector const &":
        r"""
        Returns the duale variables of the system.

        Returns
        -------
        math_Vector

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

    def InverseMatrix(self, *args) -> "math_Matrix const &":
        r"""
        Returns the inverse of cont*transposed(cont), where cont is the constraint matrix for the algorithm.

        Returns
        -------
        math_Matrix

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all has been correctly done.

        Returns
        -------
        bool

        """
        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_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"""
        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
        degreemin: int,optional
        	default value is 4
        degreemax: int,optional
        	default value is 8
        Tolerance3d: float,optional
        	default value is 1.0e-3
        Tolerance2d: float,optional
        	default value is 1.0e-6
        NbIterations: int,optional
        	default value is 5
        cutting: bool,optional
        	default value is Standard_True
        parametrization: Approx_ParametrizationType,optional
        	default value is Approx_ChordLength
        Squares: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        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 value is 4
        degreemax: int,optional
        	default value is 8
        Tolerance3d: float,optional
        	default value is 1.0e-03
        Tolerance2d: float,optional
        	default value is 1.0e-06
        NbIterations: int,optional
        	default value is 5
        cutting: bool,optional
        	default value is Standard_True
        Squares: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Initializes the fields of the algorithm.

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

        Returns
        -------
        None
        Initializes the fields of the algorithm.

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

        Returns
        -------
        None

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

    def ChangeValue(self, *args) -> "AppParCurves_MultiCurve &":
        r"""
        Returns the result of the approximation.

        Parameters
        ----------
        Index: int,optional
        	default value is 1

        Returns
        -------
        AppParCurves_MultiCurve

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

    def Error(self, *args) -> "void":
        r"""
        Returns the tolerances 2d and 3d of the <index> multicurve.

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

        Returns
        -------
        tol3d: float
        tol2d: float

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

    def Init(self, *args) -> "void":
        r"""
        Initializes the fields of the algorithm.

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

        Returns
        -------
        None

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

    def IsAllApproximated(self, *args) -> "Standard_Boolean":
        r"""
        Returns false if at a moment of the approximation, the status noapproximation has been sent by the user when more points were needed.

        Returns
        -------
        bool

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

    def IsToleranceReached(self, *args) -> "Standard_Boolean":
        r"""
        Returns false if the status nopointsadded has been sent.

        Returns
        -------
        bool

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

    def NbMultiCurves(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of multicurve doing the approximation of the multiline.

        Returns
        -------
        int

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

    def Parameters(self, *args) -> "TColStd_Array1OfReal const &":
        r"""
        Returns the new parameters of the approximation corresponding to the points of the multicurve <index>.

        Parameters
        ----------
        Index: int,optional
        	default value is 1

        Returns
        -------
        TColStd_Array1OfReal

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

    def Parametrization(self, *args) -> "Approx_ParametrizationType":
        r"""
        Returns the type of parametrization.

        Returns
        -------
        Approx_ParametrizationType

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

    def Perform(self, *args) -> "void":
        r"""
        Runs the algorithm after having initialized the fields.

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

        Returns
        -------
        None

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

    def SetConstraints(self, *args) -> "void":
        r"""
        Changes the first and the last constraint points.

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

        Returns
        -------
        None

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

    def SetDegrees(self, *args) -> "void":
        r"""
        Changes the degrees of the approximation.

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

        Returns
        -------
        None

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

    def SetTolerances(self, *args) -> "void":
        r"""
        Changes the tolerances of the approximation.

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

        Returns
        -------
        None

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

    def SplineValue(self, *args) -> "AppParCurves_MultiBSpCurve const &":
        r"""
        Returns the result of the approximation.

        Returns
        -------
        AppParCurves_MultiBSpCurve

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

    def Value(self, *args) -> "AppParCurves_MultiCurve const &":
        r"""
        Returns the result of the approximation.

        Parameters
        ----------
        Index: int,optional
        	default value is 1

        Returns
        -------
        AppParCurves_MultiCurve

        """
        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"""
        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
        degreemin: int,optional
        	default value is 4
        degreemax: int,optional
        	default value is 8
        Tolerance3d: float,optional
        	default value is 1.0e-3
        Tolerance2d: float,optional
        	default value is 1.0e-6
        NbIterations: int,optional
        	default value is 5
        cutting: bool,optional
        	default value is Standard_True
        parametrization: Approx_ParametrizationType,optional
        	default value is Approx_ChordLength
        Squares: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        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 value is 4
        degreemax: int,optional
        	default value is 8
        Tolerance3d: float,optional
        	default value is 1.0e-03
        Tolerance2d: float,optional
        	default value is 1.0e-06
        NbIterations: int,optional
        	default value is 5
        cutting: bool,optional
        	default value is Standard_True
        Squares: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Initializes the fields of the algorithm.

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

        Returns
        -------
        None
        Initializes the fields of the algorithm.

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

        Returns
        -------
        None

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

    def ChangeValue(self, *args) -> "AppParCurves_MultiBSpCurve &":
        r"""
        Returns the result of the approximation.

        Returns
        -------
        AppParCurves_MultiBSpCurve

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

    def Error(self, *args) -> "void":
        r"""
        Returns the tolerances 2d and 3d of the multibspcurve.

        Parameters
        ----------

        Returns
        -------
        tol3d: float
        tol2d: float

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

    def Init(self, *args) -> "void":
        r"""
        Initializes the fields of the algorithm.

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

        Returns
        -------
        None

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

    def Interpol(self, *args) -> "void":
        r"""
        Constructs an interpolation of the multiline <line> the result will be a c2 curve of degree 3.

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

        Returns
        -------
        None

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

    def IsAllApproximated(self, *args) -> "Standard_Boolean":
        r"""
        Returns false if at a moment of the approximation, the status noapproximation has been sent by the user when more points were needed.

        Returns
        -------
        bool

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

    def IsToleranceReached(self, *args) -> "Standard_Boolean":
        r"""
        Returns false if the status nopointsadded has been sent.

        Returns
        -------
        bool

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

    def Parameters(self, *args) -> "TColStd_Array1OfReal const &":
        r"""
        Returns the new parameters of the approximation corresponding to the points of the multibspcurve.

        Returns
        -------
        TColStd_Array1OfReal

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

    def Perform(self, *args) -> "void":
        r"""
        Runs the algorithm after having initialized the fields.

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

        Returns
        -------
        None

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

    def SetConstraints(self, *args) -> "void":
        r"""
        Changes the first and the last constraint points.

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

        Returns
        -------
        None

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

    def SetContinuity(self, *args) -> "void":
        r"""
        Sets the continuity of the spline. if c = 2, the spline will be c2.

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

        Returns
        -------
        None

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

    def SetDegrees(self, *args) -> "void":
        r"""
        Changes the degrees of the approximation.

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

        Returns
        -------
        None

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

    def SetKnots(self, *args) -> "void":
        r"""
        The approximation will be done with the set of knots <knots>. the multiplicities will be set with the degree and the desired continuity.

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

        Returns
        -------
        None

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

    def SetKnotsAndMultiplicities(self, *args) -> "void":
        r"""
        The approximation will be done with the set of knots <knots> and the multiplicities <mults>.

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

        Returns
        -------
        None

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

    def SetParameters(self, *args) -> "void":
        r"""
        The approximation will begin with the set of parameters <thepar>.

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

        Returns
        -------
        None

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

    def SetPeriodic(self, *args) -> "void":
        r"""
        Sets periodic flag. if theperiodic = standard_true, algorith tries to build periodic multicurve using corresponding c1 boundary condition for first and last multipoints. multiline must be closed.

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

        Returns
        -------
        None

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

    def SetTolerances(self, *args) -> "void":
        r"""
        Changes the tolerances of the approximation.

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

        Returns
        -------
        None

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

    def Value(self, *args) -> "AppParCurves_MultiBSpCurve const &":
        r"""
        Returns the result of the approximation.

        Returns
        -------
        AppParCurves_MultiBSpCurve

        """
        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"""
        No available documentation.

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

        Returns
        -------
        None

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

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

        Returns
        -------
        BRepAdaptor_Surface

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

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

        Returns
        -------
        BRepAdaptor_Surface

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

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

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

        Returns
        -------
        None

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

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

        Returns
        -------
        gp_Dir

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

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

        Returns
        -------
        gp_Dir2d

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

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

        Returns
        -------
        gp_Dir2d

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

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

        Parameters
        ----------
        UVap: math_Vector
        Param: TColStd_Array1OfReal
        BestChoix: IntImp_ConstIsoparametric

        Returns
        -------
        bool

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

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

        Returns
        -------
        gp_Pnt

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

    def Root(self, *args) -> "Standard_Real":
        r"""
        Returns somme des fi*fi.

        Returns
        -------
        float

        """
        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"""
        No available documentation.

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

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

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

        Returns
        -------
        None

        """
        _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"""
        Compute the solution point with the close point.

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

        Returns
        -------
        None
        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); }.

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

        Returns
        -------
        None

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

    def ChangePoint(self, *args) -> "IntSurf_PntOn2S &":
        r"""
        Return the intersection point which is enable for changing.

        Returns
        -------
        IntSurf_PntOn2S

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

    def Direction(self, *args) -> "gp_Dir const":
        r"""
        Returns the tangent at the intersection line.

        Returns
        -------
        gp_Dir

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

    def DirectionOnS1(self, *args) -> "gp_Dir2d const":
        r"""
        Returns the tangent at the intersection line in the parametric space of the first surface.

        Returns
        -------
        gp_Dir2d

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

    def DirectionOnS2(self, *args) -> "gp_Dir2d const":
        r"""
        Returns the tangent at the intersection line in the parametric space of the second surface.

        Returns
        -------
        gp_Dir2d

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

    def Function(self, *args) -> "BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox &":
        r"""
        Return the math function which is used to compute the intersection.

        Returns
        -------
        BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the creation completed without failure.

        Returns
        -------
        bool

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

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true when there is no solution to the problem.

        Returns
        -------
        bool

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

    def IsTangent(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the surfaces are tangent at the intersection point.

        Returns
        -------
        bool

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

    def Perform(self, *args) -> "IntImp_ConstIsoparametric":
        r"""
        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

        Returns
        -------
        IntImp_ConstIsoparametric
        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).

        Parameters
        ----------
        Param: TColStd_Array1OfReal
        Rsnld: math_FunctionSetRoot
        ChoixIso: IntImp_ConstIsoparametric

        Returns
        -------
        IntImp_ConstIsoparametric

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

    def Point(self, *args) -> "IntSurf_PntOn2S const &":
        r"""
        Returns the intersection point.

        Returns
        -------
        IntSurf_PntOn2S

        """
        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"""
        No available documentation.

        Returns
        -------
        None
        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
        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 value is 0
        IndMax: int,optional
        	default value is 0

        Returns
        -------
        None
        No extra points will be added on the current line.

        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 value is 0
        IndMax: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        _BRepApprox.BRepApprox_TheMultiLineOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheMultiLineOfApprox(*args))

    def Dump(self, *args) -> "void":
        r"""
        Dump of the current multi-line.

        Returns
        -------
        None

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

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

        Returns
        -------
        int

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

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

        Returns
        -------
        int

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

    def MakeMLBetween(self, *args) -> "BRepApprox_TheMultiLineOfApprox":
        r"""
        Tries to make a sub-line between <low> and <high> points of this line by adding <nbpointstoinsert> new points.

        Parameters
        ----------
        Low: int
        High: int
        NbPointsToInsert: int

        Returns
        -------
        BRepApprox_TheMultiLineOfApprox

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

    def MakeMLOneMorePoint(self, *args) -> "Standard_Boolean":
        r"""
        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.

        Parameters
        ----------
        Low: int
        High: int
        indbad: int
        OtherLine: BRepApprox_TheMultiLineOfApprox

        Returns
        -------
        bool

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

    def NbP2d(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of 2d points of a theline.

        Returns
        -------
        int

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

    def NbP3d(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of 3d points of a theline.

        Returns
        -------
        int

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

    def Tangency(self, *args) -> "Standard_Boolean":
        r"""
        Returns the 3d tangency points of the multipoint <mpointindex> only when 3d points exist.

        Parameters
        ----------
        MPointIndex: int
        tabV: TColgp_Array1OfVec

        Returns
        -------
        bool
        Returns the 2d tangency points of the multipoint <mpointindex> only when 2d points exist.

        Parameters
        ----------
        MPointIndex: int
        tabV2d: TColgp_Array1OfVec2d

        Returns
        -------
        bool
        Returns the 3d and 2d points of the multipoint <mpointindex>.

        Parameters
        ----------
        MPointIndex: int
        tabV: TColgp_Array1OfVec
        tabV2d: TColgp_Array1OfVec2d

        Returns
        -------
        bool

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

    def Value(self, *args) -> "void":
        r"""
        Returns the 3d points of the multipoint <mpointindex> when only 3d points exist.

        Parameters
        ----------
        MPointIndex: int
        tabPt: TColgp_Array1OfPnt

        Returns
        -------
        None
        Returns the 2d points of the multipoint <mpointindex> when only 2d points exist.

        Parameters
        ----------
        MPointIndex: int
        tabPt2d: TColgp_Array1OfPnt2d

        Returns
        -------
        None
        Returns the 3d and 2d points of the multipoint <mpointindex>.

        Parameters
        ----------
        MPointIndex: int
        tabPt: TColgp_Array1OfPnt
        tabPt2d: TColgp_Array1OfPnt2d

        Returns
        -------
        None

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

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

        Returns
        -------
        Approx_Status

        """
        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) -> "Standard_Boolean":
        r"""
        Returns the 3d curvature of the multipoint <mpointindex> when only 3d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV: TColgp_Array1OfVec

        Returns
        -------
        bool
        Returns the 2d curvature points of the multipoint <mpointindex> only when 2d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV2d: TColgp_Array1OfVec2d

        Returns
        -------
        bool
        Returns the 3d and 2d curvature of the multipoint <mpointindex>.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV: TColgp_Array1OfVec
        tabV2d: TColgp_Array1OfVec2d

        Returns
        -------
        bool

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Curvature(*args)

    @staticmethod
    def Dump(*args) -> "void":
        r"""
        Dump of the current multi-line.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Returns
        -------
        None

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Dump(*args)

    @staticmethod
    def FirstPoint(*args) -> "Standard_Integer":
        r"""
        Returns the number of multipoints of the themultiline.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Returns
        -------
        int

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_FirstPoint(*args)

    @staticmethod
    def LastPoint(*args) -> "Standard_Integer":
        r"""
        Returns the number of multipoints of the themultiline.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Returns
        -------
        int

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_LastPoint(*args)

    @staticmethod
    def MakeMLBetween(*args) -> "BRepApprox_TheMultiLineOfApprox":
        r"""
        Is called if whatstatus returned 'pointsadded'.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        I1: int
        I2: int
        NbPMin: int

        Returns
        -------
        BRepApprox_TheMultiLineOfApprox

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_MakeMLBetween(*args)

    @staticmethod
    def MakeMLOneMorePoint(*args) -> "Standard_Boolean":
        r"""
        Is called when the bezier curve contains a loop.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        I1: int
        I2: int
        indbad: int
        OtherLine: BRepApprox_TheMultiLineOfApprox

        Returns
        -------
        bool

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_MakeMLOneMorePoint(*args)

    @staticmethod
    def NbP2d(*args) -> "Standard_Integer":
        r"""
        Returns the number of 2d points of a themultiline.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Returns
        -------
        int

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_NbP2d(*args)

    @staticmethod
    def NbP3d(*args) -> "Standard_Integer":
        r"""
        Returns the number of 3d points of a themultiline.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox

        Returns
        -------
        int

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_NbP3d(*args)

    @staticmethod
    def Tangency(*args) -> "Standard_Boolean":
        r"""
        Returns the 3d points of the multipoint <mpointindex> when only 3d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV: TColgp_Array1OfVec

        Returns
        -------
        bool
        Returns the 2d tangency points of the multipoint <mpointindex> only when 2d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV2d: TColgp_Array1OfVec2d

        Returns
        -------
        bool
        Returns the 3d and 2d points of the multipoint <mpointindex>.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabV: TColgp_Array1OfVec
        tabV2d: TColgp_Array1OfVec2d

        Returns
        -------
        bool

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Tangency(*args)

    @staticmethod
    def Value(*args) -> "void":
        r"""
        Returns the 3d points of the multipoint <mpointindex> when only 3d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabPt: TColgp_Array1OfPnt

        Returns
        -------
        None
        Returns the 2d points of the multipoint <mpointindex> when only 2d points exist.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabPt2d: TColgp_Array1OfPnt2d

        Returns
        -------
        None
        Returns the 3d and 2d points of the multipoint <mpointindex>.

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        MPointIndex: int
        tabPt: TColgp_Array1OfPnt
        tabPt2d: TColgp_Array1OfPnt2d

        Returns
        -------
        None

        """
        return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Value(*args)

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

        Parameters
        ----------
        ML: BRepApprox_TheMultiLineOfApprox
        I1: int
        I2: int

        Returns
        -------
        Approx_Status

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

def BRepApprox_TheMultiLineToolOfApprox_Curvature(*args) -> "Standard_Boolean":
    r"""
    Returns the 3d curvature of the multipoint <mpointindex> when only 3d points exist.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    MPointIndex: int
    tabV: TColgp_Array1OfVec

    Returns
    -------
    bool
    Returns the 2d curvature points of the multipoint <mpointindex> only when 2d points exist.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    MPointIndex: int
    tabV2d: TColgp_Array1OfVec2d

    Returns
    -------
    bool
    Returns the 3d and 2d curvature of the multipoint <mpointindex>.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    MPointIndex: int
    tabV: TColgp_Array1OfVec
    tabV2d: TColgp_Array1OfVec2d

    Returns
    -------
    bool

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Curvature(*args)

def BRepApprox_TheMultiLineToolOfApprox_Dump(*args) -> "void":
    r"""
    Dump of the current multi-line.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox

    Returns
    -------
    None

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Dump(*args)

def BRepApprox_TheMultiLineToolOfApprox_FirstPoint(*args) -> "Standard_Integer":
    r"""
    Returns the number of multipoints of the themultiline.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox

    Returns
    -------
    int

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_FirstPoint(*args)

def BRepApprox_TheMultiLineToolOfApprox_LastPoint(*args) -> "Standard_Integer":
    r"""
    Returns the number of multipoints of the themultiline.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox

    Returns
    -------
    int

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_LastPoint(*args)

def BRepApprox_TheMultiLineToolOfApprox_MakeMLBetween(*args) -> "BRepApprox_TheMultiLineOfApprox":
    r"""
    Is called if whatstatus returned 'pointsadded'.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    I1: int
    I2: int
    NbPMin: int

    Returns
    -------
    BRepApprox_TheMultiLineOfApprox

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_MakeMLBetween(*args)

def BRepApprox_TheMultiLineToolOfApprox_MakeMLOneMorePoint(*args) -> "Standard_Boolean":
    r"""
    Is called when the bezier curve contains a loop.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    I1: int
    I2: int
    indbad: int
    OtherLine: BRepApprox_TheMultiLineOfApprox

    Returns
    -------
    bool

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_MakeMLOneMorePoint(*args)

def BRepApprox_TheMultiLineToolOfApprox_NbP2d(*args) -> "Standard_Integer":
    r"""
    Returns the number of 2d points of a themultiline.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox

    Returns
    -------
    int

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_NbP2d(*args)

def BRepApprox_TheMultiLineToolOfApprox_NbP3d(*args) -> "Standard_Integer":
    r"""
    Returns the number of 3d points of a themultiline.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox

    Returns
    -------
    int

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_NbP3d(*args)

def BRepApprox_TheMultiLineToolOfApprox_Tangency(*args) -> "Standard_Boolean":
    r"""
    Returns the 3d points of the multipoint <mpointindex> when only 3d points exist.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    MPointIndex: int
    tabV: TColgp_Array1OfVec

    Returns
    -------
    bool
    Returns the 2d tangency points of the multipoint <mpointindex> only when 2d points exist.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    MPointIndex: int
    tabV2d: TColgp_Array1OfVec2d

    Returns
    -------
    bool
    Returns the 3d and 2d points of the multipoint <mpointindex>.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    MPointIndex: int
    tabV: TColgp_Array1OfVec
    tabV2d: TColgp_Array1OfVec2d

    Returns
    -------
    bool

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Tangency(*args)

def BRepApprox_TheMultiLineToolOfApprox_Value(*args) -> "void":
    r"""
    Returns the 3d points of the multipoint <mpointindex> when only 3d points exist.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    MPointIndex: int
    tabPt: TColgp_Array1OfPnt

    Returns
    -------
    None
    Returns the 2d points of the multipoint <mpointindex> when only 2d points exist.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    MPointIndex: int
    tabPt2d: TColgp_Array1OfPnt2d

    Returns
    -------
    None
    Returns the 3d and 2d points of the multipoint <mpointindex>.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    MPointIndex: int
    tabPt: TColgp_Array1OfPnt
    tabPt2d: TColgp_Array1OfPnt2d

    Returns
    -------
    None

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_Value(*args)

def BRepApprox_TheMultiLineToolOfApprox_WhatStatus(*args) -> "Approx_Status":
    r"""
    No available documentation.

    Parameters
    ----------
    ML: BRepApprox_TheMultiLineOfApprox
    I1: int
    I2: int

    Returns
    -------
    Approx_Status

    """
    return _BRepApprox.BRepApprox_TheMultiLineToolOfApprox_WhatStatus(*args)

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"""
        No available documentation.

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

        Returns
        -------
        None

        """
        _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"""
        No available documentation.

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

        Parameters
        ----------
        PS: BRepAdaptor_Surface
        IS: IntSurf_Quadric

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

        Parameters
        ----------
        IS: IntSurf_Quadric

        Returns
        -------
        None

        """
        _BRepApprox.BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_swiginit(self, _BRepApprox.new_BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox(*args))

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

        Returns
        -------
        gp_Dir2d

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

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

        Returns
        -------
        gp_Vec

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

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

        Returns
        -------
        IntSurf_Quadric

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

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

        Returns
        -------
        bool

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

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

        Returns
        -------
        BRepAdaptor_Surface

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

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

        Returns
        -------
        gp_Pnt

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

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

        Returns
        -------
        float

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

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

        Parameters
        ----------
        PS: BRepAdaptor_Surface

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

        Parameters
        ----------
        Tolerance: float

        Returns
        -------
        None

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

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

        Parameters
        ----------
        IS: IntSurf_Quadric

        Returns
        -------
        None

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

    def Tolerance(self, *args) -> "Standard_Real":
        r"""
        Returns the value tol so that if abs(func.root())<tol the function is considered null.

        Returns
        -------
        float

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





