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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _GeomInt:
_GeomInt.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 _GeomInt.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.math
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.gp
import OCC.Core.AppParCurves
import OCC.Core.TColgp
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.Geom2d
import OCC.Core.IntPatch
import OCC.Core.Intf
import OCC.Core.Bnd
import OCC.Core.BVH
import OCC.Core.Adaptor3d
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.IntSurf
import OCC.Core.IntAna
import OCC.Core.GeomAdaptor
import OCC.Core.Approx
import OCC.Core.AppCont
import OCC.Core.IntImp
import OCC.Core.ApproxInt

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



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

    def begin(self) -> "NCollection_Sequence< GeomInt_ParameterAndOrientation >::iterator":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_begin(self)

    def end(self) -> "NCollection_Sequence< GeomInt_ParameterAndOrientation >::iterator":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_end(self)

    def cbegin(self) -> "NCollection_Sequence< GeomInt_ParameterAndOrientation >::const_iterator":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_cbegin(self)

    def cend(self) -> "NCollection_Sequence< GeomInt_ParameterAndOrientation >::const_iterator":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_cend(self)

    def __init__(self, *args):
        _GeomInt.GeomInt_SequenceOfParameterAndOrientation_swiginit(self, _GeomInt.new_GeomInt_SequenceOfParameterAndOrientation(*args))

    def Size(self) -> "Standard_Integer":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Size(self)

    def Length(self) -> "Standard_Integer":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_IsEmpty(self)

    def Reverse(self) -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Clear(self, theAllocator)

    def Assign(self, theOther: "GeomInt_SequenceOfParameterAndOrientation") -> "NCollection_Sequence< GeomInt_ParameterAndOrientation > &":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Assign(self, theOther)

    def Set(self, theOther: "GeomInt_SequenceOfParameterAndOrientation") -> "NCollection_Sequence< GeomInt_ParameterAndOrientation > &":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "GeomInt_SequenceOfParameterAndOrientation") -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Split(self, theIndex, theSeq)

    def First(self) -> "GeomInt_ParameterAndOrientation const &":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_First(self)

    def ChangeFirst(self) -> "GeomInt_ParameterAndOrientation &":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_ChangeFirst(self)

    def Last(self) -> "GeomInt_ParameterAndOrientation const &":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Last(self)

    def ChangeLast(self) -> "GeomInt_ParameterAndOrientation &":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "GeomInt_ParameterAndOrientation const &":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "GeomInt_ParameterAndOrientation &":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "GeomInt_ParameterAndOrientation &":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "GeomInt_ParameterAndOrientation") -> "void":
        return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _GeomInt.delete_GeomInt_SequenceOfParameterAndOrientation

    def __len__(self):
        return self.Size()


# Register GeomInt_SequenceOfParameterAndOrientation in _GeomInt:
_GeomInt.GeomInt_SequenceOfParameterAndOrientation_swigregister(GeomInt_SequenceOfParameterAndOrientation)

def GeomInt_SequenceOfParameterAndOrientation_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _GeomInt.GeomInt_SequenceOfParameterAndOrientation_delNode(theNode, theAl)

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

    def begin(self) -> "NCollection_Vector< double >::iterator":
        return _GeomInt.GeomInt_VectorOfReal_begin(self)

    def end(self) -> "NCollection_Vector< double >::iterator":
        return _GeomInt.GeomInt_VectorOfReal_end(self)

    def cbegin(self) -> "NCollection_Vector< double >::const_iterator":
        return _GeomInt.GeomInt_VectorOfReal_cbegin(self)

    def cend(self) -> "NCollection_Vector< double >::const_iterator":
        return _GeomInt.GeomInt_VectorOfReal_cend(self)

    def __init__(self, *args):
        _GeomInt.GeomInt_VectorOfReal_swiginit(self, _GeomInt.new_GeomInt_VectorOfReal(*args))
    __swig_destroy__ = _GeomInt.delete_GeomInt_VectorOfReal

    def Length(self) -> "Standard_Integer":
        return _GeomInt.GeomInt_VectorOfReal_Length(self)

    def Size(self) -> "Standard_Integer":
        return _GeomInt.GeomInt_VectorOfReal_Size(self)

    def Lower(self) -> "Standard_Integer":
        return _GeomInt.GeomInt_VectorOfReal_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _GeomInt.GeomInt_VectorOfReal_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _GeomInt.GeomInt_VectorOfReal_IsEmpty(self)

    def Assign(self, *args) -> "void":
        return _GeomInt.GeomInt_VectorOfReal_Assign(self, *args)

    def Set(self, theOther: "GeomInt_VectorOfReal") -> "NCollection_Vector< Standard_Real > &":
        return _GeomInt.GeomInt_VectorOfReal_Set(self, theOther)

    def Append(self, theValue: "double const &") -> "double &":
        return _GeomInt.GeomInt_VectorOfReal_Append(self, theValue)

    def Appended(self) -> "double &":
        return _GeomInt.GeomInt_VectorOfReal_Appended(self)

    def Value(self, theIndex: "Standard_Integer const") -> "double const &":
        return _GeomInt.GeomInt_VectorOfReal_Value(self, theIndex)

    def First(self) -> "double const &":
        return _GeomInt.GeomInt_VectorOfReal_First(self)

    def ChangeFirst(self) -> "double &":
        return _GeomInt.GeomInt_VectorOfReal_ChangeFirst(self)

    def Last(self) -> "double const &":
        return _GeomInt.GeomInt_VectorOfReal_Last(self)

    def ChangeLast(self) -> "double &":
        return _GeomInt.GeomInt_VectorOfReal_ChangeLast(self)

    def __call__(self, *args) -> "double &":
        return _GeomInt.GeomInt_VectorOfReal___call__(self, *args)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "double &":
        return _GeomInt.GeomInt_VectorOfReal_ChangeValue(self, theIndex)

    def SetValue(self, theIndex: "Standard_Integer const", theValue: "double const &") -> "double &":
        return _GeomInt.GeomInt_VectorOfReal_SetValue(self, theIndex, theValue)

# Register GeomInt_VectorOfReal in _GeomInt:
_GeomInt.GeomInt_VectorOfReal_swigregister(GeomInt_VectorOfReal)

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

    @staticmethod
    def AdjustPeriodic(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Adjusts the parameter <thepar> to the range [theparmin, theparmax].

        Parameters
        ----------
        thePar: float
        theParMin: float
        theParMax: float
        thePeriod: float
        theEps: float,optional
        	default value is 0.0

        Returns
        -------
        theNewPar: float
        theOffset: float

        """
        return _GeomInt.geomint_AdjustPeriodic(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _GeomInt.geomint_swiginit(self, _GeomInt.new_geomint())
    __swig_destroy__ = _GeomInt.delete_geomint

# Register geomint in _GeomInt:
_GeomInt.geomint_swigregister(geomint)

def geomint_AdjustPeriodic(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Adjusts the parameter <thepar> to the range [theparmin, theparmax].

    Parameters
    ----------
    thePar: float
    theParMin: float
    theParMax: float
    thePeriod: float
    theEps: float,optional
    	default value is 0.0

    Returns
    -------
    theNewPar: float
    theOffset: float

    """
    return _GeomInt.geomint_AdjustPeriodic(*args)

class GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox(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

        """
        _GeomInt.GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox

# Register GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox_swigregister(GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox)

class GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        NbPol: int

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox(*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 _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_Error(self, *args)

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

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

        Returns
        -------
        AppParCurves_Constraint

        """
        return _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_FirstConstraint(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_Index(self, *args)

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

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

        Returns
        -------
        AppParCurves_Constraint

        """
        return _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_LastConstraint(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_MaxError2d(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_MaxError3d(self, *args)

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

        Returns
        -------
        math_Vector

        """
        return _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_NewParameters(self, *args)

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

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_SetFirstLambda(self, *args)

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

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_SetLastLambda(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox

# Register GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_swigregister(GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox)

class GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        NbPol: int

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox(*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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_FirstLambda(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_FunctionMatrix(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_Perform(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_Points(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_Poles(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox

# Register GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_swigregister(GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox)

class GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox(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

        """
        _GeomInt.GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox

# Register GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox in _GeomInt:
_GeomInt.GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox_swigregister(GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox)

class GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox(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

        """
        _GeomInt.GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox

# Register GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox_swigregister(GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox)

class GeomInt_IntSS(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
        Performs general intersection of two surfaces just now.

        Parameters
        ----------
        S1: Geom_Surface
        S2: Geom_Surface
        Tol: float
        Approx: bool,optional
        	default value is Standard_True
        ApproxS1: bool,optional
        	default value is Standard_False
        ApproxS2: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_IntSS_swiginit(self, _GeomInt.new_GeomInt_IntSS(*args))

    def Boundary(self, *args) -> "opencascade::handle< Geom_Curve > const &":
        r"""
        No available documentation.

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

        Returns
        -------
        opencascade::handle<Geom_Curve>

        """
        return _GeomInt.GeomInt_IntSS_Boundary(self, *args)

    @staticmethod
    def BuildPCurves(*args) -> "Standard_Real &":
        r"""
        Creates 2d-curve on given surface from given 3d-curve.

        Parameters
        ----------
        f: float
        l: float
        S: Geom_Surface
        C: Geom_Curve
        C2d: Geom2d_Curve

        Returns
        -------
        Tol: float

        """
        return _GeomInt.GeomInt_IntSS_BuildPCurves(*args)

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

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_IntSS_HasLineOnS1(self, *args)

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

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_IntSS_HasLineOnS2(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_IntSS_IsDone(self, *args)

    def Line(self, *args) -> "opencascade::handle< Geom_Curve > const &":
        r"""
        No available documentation.

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

        Returns
        -------
        opencascade::handle<Geom_Curve>

        """
        return _GeomInt.GeomInt_IntSS_Line(self, *args)

    def LineOnS1(self, *args) -> "opencascade::handle< Geom2d_Curve > const &":
        r"""
        No available documentation.

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

        Returns
        -------
        opencascade::handle<Geom2d_Curve>

        """
        return _GeomInt.GeomInt_IntSS_LineOnS1(self, *args)

    def LineOnS2(self, *args) -> "opencascade::handle< Geom2d_Curve > const &":
        r"""
        No available documentation.

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

        Returns
        -------
        opencascade::handle<Geom2d_Curve>

        """
        return _GeomInt.GeomInt_IntSS_LineOnS2(self, *args)

    @staticmethod
    def MakeBSpline(*args) -> "opencascade::handle< Geom_Curve >":
        r"""
        No available documentation.

        Parameters
        ----------
        WL: IntPatch_WLine
        ideb: int
        ifin: int

        Returns
        -------
        opencascade::handle<Geom_Curve>

        """
        return _GeomInt.GeomInt_IntSS_MakeBSpline(*args)

    @staticmethod
    def MakeBSpline2d(*args) -> "opencascade::handle< Geom2d_BSplineCurve >":
        r"""
        No available documentation.

        Parameters
        ----------
        theWLine: IntPatch_WLine
        ideb: int
        ifin: int
        onFirst: bool

        Returns
        -------
        opencascade::handle<Geom2d_BSplineCurve>

        """
        return _GeomInt.GeomInt_IntSS_MakeBSpline2d(*args)

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

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_IntSS_NbBoundaries(self, *args)

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

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_IntSS_NbLines(self, *args)

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

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_IntSS_NbPoints(self, *args)

    def Perform(self, *args) -> "void":
        r"""
        General intersection of two surfaces.

        Parameters
        ----------
        S1: Geom_Surface
        S2: Geom_Surface
        Tol: float
        Approx: bool,optional
        	default value is Standard_True
        ApproxS1: bool,optional
        	default value is Standard_False
        ApproxS2: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Intersection of adapted surfaces.

        Parameters
        ----------
        HS1: GeomAdaptor_HSurface
        HS2: GeomAdaptor_HSurface
        Tol: float
        Approx: bool,optional
        	default value is Standard_True
        ApproxS1: bool,optional
        	default value is Standard_False
        ApproxS2: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        General intersection using a starting point.

        Parameters
        ----------
        S1: Geom_Surface
        S2: Geom_Surface
        Tol: float
        U1: float
        V1: float
        U2: float
        V2: float
        Approx: bool,optional
        	default value is Standard_True
        ApproxS1: bool,optional
        	default value is Standard_False
        ApproxS2: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Intersection of adapted surfaces using a starting point.

        Parameters
        ----------
        HS1: GeomAdaptor_HSurface
        HS2: GeomAdaptor_HSurface
        Tol: float
        U1: float
        V1: float
        U2: float
        V2: float
        Approx: bool,optional
        	default value is Standard_True
        ApproxS1: bool,optional
        	default value is Standard_False
        ApproxS2: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_IntSS_Perform(self, *args)

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

        Parameters
        ----------
        Index: int
        OnFirst: bool

        Returns
        -------
        gp_Pnt2d

        """
        return _GeomInt.GeomInt_IntSS_Pnt2d(self, *args)

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

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

        Returns
        -------
        gp_Pnt

        """
        return _GeomInt.GeomInt_IntSS_Point(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_IntSS_TolReached2d(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_IntSS_TolReached3d(self, *args)

    @staticmethod
    def TreatRLine(*args) -> "Standard_Real &":
        r"""
        Converts rline to geom(2d)_curve.

        Parameters
        ----------
        theRL: IntPatch_RLine
        theHS1: GeomAdaptor_HSurface
        theHS2: GeomAdaptor_HSurface
        theC3d: Geom_Curve
        theC2d1: Geom2d_Curve
        theC2d2: Geom2d_Curve

        Returns
        -------
        theTolReached: float

        """
        return _GeomInt.GeomInt_IntSS_TreatRLine(*args)

    @staticmethod
    def TrimILineOnSurfBoundaries(*args) -> "void":
        r"""
        Puts into thearrayofparameters the parameters of intersection points of given thec2d1 and thec2d2 curves with the boundaries of the source surface.

        Parameters
        ----------
        theC2d1: Geom2d_Curve
        theC2d2: Geom2d_Curve
        theBound1: Bnd_Box2d
        theBound2: Bnd_Box2d
        theArrayOfParameters: GeomInt_VectorOfReal

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_IntSS_TrimILineOnSurfBoundaries(*args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def TolFixTangents(self):
    	pass

    @methodnotwrapped
    def SetTolFixTangents(self):
    	pass

    __swig_destroy__ = _GeomInt.delete_GeomInt_IntSS

# Register GeomInt_IntSS in _GeomInt:
_GeomInt.GeomInt_IntSS_swigregister(GeomInt_IntSS)

def GeomInt_IntSS_BuildPCurves(*args) -> "Standard_Real &":
    r"""
    Creates 2d-curve on given surface from given 3d-curve.

    Parameters
    ----------
    f: float
    l: float
    S: Geom_Surface
    C: Geom_Curve
    C2d: Geom2d_Curve

    Returns
    -------
    Tol: float

    """
    return _GeomInt.GeomInt_IntSS_BuildPCurves(*args)

def GeomInt_IntSS_MakeBSpline(*args) -> "opencascade::handle< Geom_Curve >":
    r"""
    No available documentation.

    Parameters
    ----------
    WL: IntPatch_WLine
    ideb: int
    ifin: int

    Returns
    -------
    opencascade::handle<Geom_Curve>

    """
    return _GeomInt.GeomInt_IntSS_MakeBSpline(*args)

def GeomInt_IntSS_MakeBSpline2d(*args) -> "opencascade::handle< Geom2d_BSplineCurve >":
    r"""
    No available documentation.

    Parameters
    ----------
    theWLine: IntPatch_WLine
    ideb: int
    ifin: int
    onFirst: bool

    Returns
    -------
    opencascade::handle<Geom2d_BSplineCurve>

    """
    return _GeomInt.GeomInt_IntSS_MakeBSpline2d(*args)

def GeomInt_IntSS_TreatRLine(*args) -> "Standard_Real &":
    r"""
    Converts rline to geom(2d)_curve.

    Parameters
    ----------
    theRL: IntPatch_RLine
    theHS1: GeomAdaptor_HSurface
    theHS2: GeomAdaptor_HSurface
    theC3d: Geom_Curve
    theC2d1: Geom2d_Curve
    theC2d2: Geom2d_Curve

    Returns
    -------
    theTolReached: float

    """
    return _GeomInt.GeomInt_IntSS_TreatRLine(*args)

def GeomInt_IntSS_TrimILineOnSurfBoundaries(*args) -> "void":
    r"""
    Puts into thearrayofparameters the parameters of intersection points of given thec2d1 and thec2d2 curves with the boundaries of the source surface.

    Parameters
    ----------
    theC2d1: Geom2d_Curve
    theC2d2: Geom2d_Curve
    theBound1: Bnd_Box2d
    theBound2: Bnd_Box2d
    theArrayOfParameters: GeomInt_VectorOfReal

    Returns
    -------
    None

    """
    return _GeomInt.GeomInt_IntSS_TrimILineOnSurfBoundaries(*args)

class GeomInt_LineConstructor(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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_LineConstructor_swiginit(self, _GeomInt.new_GeomInt_LineConstructor(*args))

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if splitting was successful.

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_LineConstructor_IsDone(self, *args)

    def Load(self, *args) -> "void":
        r"""
        Initializes me by two surfaces and corresponding tools which represent boundaries of surfaces.

        Parameters
        ----------
        D1: Adaptor3d_TopolTool
        D2: Adaptor3d_TopolTool
        S1: GeomAdaptor_HSurface
        S2: GeomAdaptor_HSurface

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_LineConstructor_Load(self, *args)

    def NbParts(self, *args) -> "Standard_Integer":
        r"""
        Returns number of splits.

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_LineConstructor_NbParts(self, *args)

    def Part(self, *args) -> "void":
        r"""
        Return first and last parameters for given index of split.

        Parameters
        ----------
        I: int

        Returns
        -------
        WFirst: float
        WLast: float

        """
        return _GeomInt.GeomInt_LineConstructor_Part(self, *args)

    def Perform(self, *args) -> "void":
        r"""
        Splits line.

        Parameters
        ----------
        L: IntPatch_Line

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_LineConstructor_Perform(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_LineConstructor

# Register GeomInt_LineConstructor in _GeomInt:
_GeomInt.GeomInt_LineConstructor_swigregister(GeomInt_LineConstructor)

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

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

        Parameters
        ----------
        theWLine: IntPatch_WLine
        theSurface1: GeomAdaptor_HSurface
        theSurface2: GeomAdaptor_HSurface
        aTolSum: float
        theLConstructor: GeomInt_LineConstructor
        theNewLines: IntPatch_SequenceOfLine

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_LineTool_DecompositionOfWLine(*args)

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

        Parameters
        ----------
        L: IntPatch_Line

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_LineTool_FirstParameter(*args)

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

        Parameters
        ----------
        L: IntPatch_Line

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_LineTool_LastParameter(*args)

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

        Parameters
        ----------
        L: IntPatch_Line

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_LineTool_NbVertex(*args)

    @staticmethod
    def Vertex(*args) -> "IntPatch_Point const &":
        r"""
        No available documentation.

        Parameters
        ----------
        L: IntPatch_Line
        I: int

        Returns
        -------
        IntPatch_Point

        """
        return _GeomInt.GeomInt_LineTool_Vertex(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _GeomInt.GeomInt_LineTool_swiginit(self, _GeomInt.new_GeomInt_LineTool())
    __swig_destroy__ = _GeomInt.delete_GeomInt_LineTool

# Register GeomInt_LineTool in _GeomInt:
_GeomInt.GeomInt_LineTool_swigregister(GeomInt_LineTool)

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

    Parameters
    ----------
    theWLine: IntPatch_WLine
    theSurface1: GeomAdaptor_HSurface
    theSurface2: GeomAdaptor_HSurface
    aTolSum: float
    theLConstructor: GeomInt_LineConstructor
    theNewLines: IntPatch_SequenceOfLine

    Returns
    -------
    bool

    """
    return _GeomInt.GeomInt_LineTool_DecompositionOfWLine(*args)

def GeomInt_LineTool_FirstParameter(*args) -> "Standard_Real":
    r"""
    No available documentation.

    Parameters
    ----------
    L: IntPatch_Line

    Returns
    -------
    float

    """
    return _GeomInt.GeomInt_LineTool_FirstParameter(*args)

def GeomInt_LineTool_LastParameter(*args) -> "Standard_Real":
    r"""
    No available documentation.

    Parameters
    ----------
    L: IntPatch_Line

    Returns
    -------
    float

    """
    return _GeomInt.GeomInt_LineTool_LastParameter(*args)

def GeomInt_LineTool_NbVertex(*args) -> "Standard_Integer":
    r"""
    No available documentation.

    Parameters
    ----------
    L: IntPatch_Line

    Returns
    -------
    int

    """
    return _GeomInt.GeomInt_LineTool_NbVertex(*args)

def GeomInt_LineTool_Vertex(*args) -> "IntPatch_Point const &":
    r"""
    No available documentation.

    Parameters
    ----------
    L: IntPatch_Line
    I: int

    Returns
    -------
    IntPatch_Point

    """
    return _GeomInt.GeomInt_LineTool_Vertex(*args)

class GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        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

        """
        _GeomInt.GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox(*args))

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_Error(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_IsDone(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_MaxError2d(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox

# Register GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_swigregister(GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox)

class GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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

        """
        _GeomInt.GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox(*args))

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_Error(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_IsDone(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_MaxError2d(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox

# Register GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox in _GeomInt:
_GeomInt.GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_swigregister(GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox)

class GeomInt_MyGradientbisOfTheComputeLineOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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

        """
        _GeomInt.GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_MyGradientbisOfTheComputeLineOfWLApprox(*args))

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_Error(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_IsDone(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_MaxError2d(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_MyGradientbisOfTheComputeLineOfWLApprox

# Register GeomInt_MyGradientbisOfTheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_swigregister(GeomInt_MyGradientbisOfTheComputeLineOfWLApprox)

class GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Deg: int

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox(*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 _GeomInt.GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_Error(self, *args)

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

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

        Returns
        -------
        AppParCurves_Constraint

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_FirstConstraint(self, *args)

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

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

        Returns
        -------
        AppParCurves_Constraint

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_LastConstraint(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_MaxError2d(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_MaxError3d(self, *args)

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

        Returns
        -------
        math_Vector

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_NewParameters(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox

# Register GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox in _GeomInt:
_GeomInt.GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_swigregister(GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox)

class GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        FirstPoint: int
        LastPoint: int
        TheConstraints: AppParCurves_HArray1OfConstraintCouple
        Parameters: math_Vector
        Deg: int

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox(*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 _GeomInt.GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_Error(self, *args)

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

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

        Returns
        -------
        AppParCurves_Constraint

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_FirstConstraint(self, *args)

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

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

        Returns
        -------
        AppParCurves_Constraint

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_LastConstraint(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_MaxError2d(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_MaxError3d(self, *args)

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

        Returns
        -------
        math_Vector

        """
        return _GeomInt.GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_NewParameters(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox

# Register GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_swigregister(GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox)

class GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        NbPol: int

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox(*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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_FirstLambda(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_FunctionMatrix(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_Perform(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_Points(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_Poles(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox

# Register GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox in _GeomInt:
_GeomInt.GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_swigregister(GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox)

class GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        Knots: TColStd_Array1OfReal
        Mults: TColStd_Array1OfInteger
        FirstPoint: int
        LastPoint: int
        FirstCons: AppParCurves_Constraint
        LastCons: AppParCurves_Constraint
        NbPol: int

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox(*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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_FirstLambda(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_FunctionMatrix(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_Perform(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_Points(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_Poles(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox

# Register GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_swigregister(GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox)

class GeomInt_ParameterAndOrientation(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
        No available documentation.

        Parameters
        ----------
        P: float
        Or1: TopAbs_Orientation
        Or2: TopAbs_Orientation

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_ParameterAndOrientation_swiginit(self, _GeomInt.new_GeomInt_ParameterAndOrientation(*args))

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

        Returns
        -------
        TopAbs_Orientation

        """
        return _GeomInt.GeomInt_ParameterAndOrientation_Orientation1(self, *args)

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

        Returns
        -------
        TopAbs_Orientation

        """
        return _GeomInt.GeomInt_ParameterAndOrientation_Orientation2(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_ParameterAndOrientation_Parameter(self, *args)

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

        Parameters
        ----------
        Or: TopAbs_Orientation

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_ParameterAndOrientation_SetOrientation1(self, *args)

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

        Parameters
        ----------
        Or: TopAbs_Orientation

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_ParameterAndOrientation_SetOrientation2(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_ParameterAndOrientation

# Register GeomInt_ParameterAndOrientation in _GeomInt:
_GeomInt.GeomInt_ParameterAndOrientation_swigregister(GeomInt_ParameterAndOrientation)

class GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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

        """
        _GeomInt.GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox(*args))

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

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_ConstraintDerivative(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_ConstraintMatrix(self, *args)

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

        Returns
        -------
        math_Vector

        """
        return _GeomInt.GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_InverseMatrix(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_IsDone(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def Error(self):
    	pass

    __swig_destroy__ = _GeomInt.delete_GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox

# Register GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox in _GeomInt:
_GeomInt.GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_swigregister(GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox)

class GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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

        """
        _GeomInt.GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox(*args))

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

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_ConstraintDerivative(self, *args)

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

        Returns
        -------
        math_Matrix

        """
        return _GeomInt.GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_ConstraintMatrix(self, *args)

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

        Returns
        -------
        math_Vector

        """
        return _GeomInt.GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_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 _GeomInt.GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_InverseMatrix(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_IsDone(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def Error(self):
    	pass

    __swig_destroy__ = _GeomInt.delete_GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox

# Register GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_swigregister(GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox)

class GeomInt_TheComputeLineBezierOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        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

        """
        _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_TheComputeLineBezierOfWLApprox(*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 _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_IsAllApproximated(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_IsToleranceReached(self, *args)

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

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_Parameters(self, *args)

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

        Returns
        -------
        Approx_ParametrizationType

        """
        return _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_Parametrization(self, *args)

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

        Parameters
        ----------
        Line: GeomInt_TheMultiLineOfWLApprox

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_SetConstraints(self, *args)

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

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_SetDegrees(self, *args)

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

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_SetTolerances(self, *args)

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

        Returns
        -------
        AppParCurves_MultiBSpCurve

        """
        return _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_TheComputeLineBezierOfWLApprox

# Register GeomInt_TheComputeLineBezierOfWLApprox in _GeomInt:
_GeomInt.GeomInt_TheComputeLineBezierOfWLApprox_swigregister(GeomInt_TheComputeLineBezierOfWLApprox)

class GeomInt_TheComputeLineOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        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: GeomInt_TheMultiLineOfWLApprox
        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

        """
        _GeomInt.GeomInt_TheComputeLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_TheComputeLineOfWLApprox(*args))

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

        Returns
        -------
        AppParCurves_MultiBSpCurve

        """
        return _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_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: GeomInt_TheMultiLineOfWLApprox

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_IsAllApproximated(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_Parameters(self, *args)

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

        Parameters
        ----------
        Line: GeomInt_TheMultiLineOfWLApprox

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_SetContinuity(self, *args)

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

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_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 _GeomInt.GeomInt_TheComputeLineOfWLApprox_SetPeriodic(self, *args)

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

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheComputeLineOfWLApprox_SetTolerances(self, *args)

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

        Returns
        -------
        AppParCurves_MultiBSpCurve

        """
        return _GeomInt.GeomInt_TheComputeLineOfWLApprox_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_TheComputeLineOfWLApprox

# Register GeomInt_TheComputeLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_TheComputeLineOfWLApprox_swigregister(GeomInt_TheComputeLineOfWLApprox)

class GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox(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: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox(*args))

    def AuxillarSurface1(self, *args) -> "opencascade::handle< Adaptor3d_HSurface > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HSurface>

        """
        return _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_AuxillarSurface1(self, *args)

    def AuxillarSurface2(self, *args) -> "opencascade::handle< Adaptor3d_HSurface > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HSurface>

        """
        return _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_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 _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_ComputeParameters(self, *args)

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

        Returns
        -------
        gp_Dir

        """
        return _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_Direction(self, *args)

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

        Returns
        -------
        gp_Dir2d

        """
        return _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_DirectionOnS1(self, *args)

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

        Returns
        -------
        gp_Dir2d

        """
        return _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_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 _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_IsTangent(self, *args)

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

        Returns
        -------
        gp_Pnt

        """
        return _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_Point(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_Root(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox

# Register GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox in _GeomInt:
_GeomInt.GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_swigregister(GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox)

class GeomInt_TheImpPrmSvSurfacesOfWLApprox(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: Adaptor3d_HSurface
        Surf2: IntSurf_Quadric

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

        Parameters
        ----------
        Surf1: IntSurf_Quadric
        Surf2: Adaptor3d_HSurface

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_TheImpPrmSvSurfacesOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_TheImpPrmSvSurfacesOfWLApprox(*args))

    __repr__ = _dumps_object

    @methodnotwrapped
    def FillInitialVectorOfSolution(self):
    	pass

    __swig_destroy__ = _GeomInt.delete_GeomInt_TheImpPrmSvSurfacesOfWLApprox

# Register GeomInt_TheImpPrmSvSurfacesOfWLApprox in _GeomInt:
_GeomInt.GeomInt_TheImpPrmSvSurfacesOfWLApprox_swigregister(GeomInt_TheImpPrmSvSurfacesOfWLApprox)

class GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox(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: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        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: Adaptor3d_HSurface
        S2: Adaptor3d_HSurface
        TolTangency: float

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox(*args))

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

        Returns
        -------
        IntSurf_PntOn2S

        """
        return _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_ChangePoint(self, *args)

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

        Returns
        -------
        gp_Dir

        """
        return _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_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 _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_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 _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_DirectionOnS2(self, *args)

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

        Returns
        -------
        GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox

        """
        return _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_Function(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_IsDone(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_IsEmpty(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_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 _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_Perform(self, *args)

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

        Returns
        -------
        IntSurf_PntOn2S

        """
        return _GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_Point(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox

# Register GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox in _GeomInt:
_GeomInt.GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_swigregister(GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox)

class GeomInt_TheMultiLineOfWLApprox(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: IntPatch_WLine
        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: IntPatch_WLine
        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

        """
        _GeomInt.GeomInt_TheMultiLineOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_TheMultiLineOfWLApprox(*args))

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheMultiLineOfWLApprox_Dump(self, *args)

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

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_TheMultiLineOfWLApprox_FirstPoint(self, *args)

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

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_TheMultiLineOfWLApprox_LastPoint(self, *args)

    def MakeMLBetween(self, *args) -> "GeomInt_TheMultiLineOfWLApprox":
        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
        -------
        GeomInt_TheMultiLineOfWLApprox

        """
        return _GeomInt.GeomInt_TheMultiLineOfWLApprox_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: GeomInt_TheMultiLineOfWLApprox

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheMultiLineOfWLApprox_MakeMLOneMorePoint(self, *args)

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

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_TheMultiLineOfWLApprox_NbP2d(self, *args)

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

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_TheMultiLineOfWLApprox_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 _GeomInt.GeomInt_TheMultiLineOfWLApprox_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 _GeomInt.GeomInt_TheMultiLineOfWLApprox_Value(self, *args)

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

        Returns
        -------
        Approx_Status

        """
        return _GeomInt.GeomInt_TheMultiLineOfWLApprox_WhatStatus(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_TheMultiLineOfWLApprox

# Register GeomInt_TheMultiLineOfWLApprox in _GeomInt:
_GeomInt.GeomInt_TheMultiLineOfWLApprox_swigregister(GeomInt_TheMultiLineOfWLApprox)

class GeomInt_TheMultiLineToolOfWLApprox(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: GeomInt_TheMultiLineOfWLApprox
        MPointIndex: int
        tabV: TColgp_Array1OfVec

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

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

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

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_Curvature(*args)

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

        Parameters
        ----------
        ML: GeomInt_TheMultiLineOfWLApprox

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_Dump(*args)

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

        Parameters
        ----------
        ML: GeomInt_TheMultiLineOfWLApprox

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_FirstPoint(*args)

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

        Parameters
        ----------
        ML: GeomInt_TheMultiLineOfWLApprox

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_LastPoint(*args)

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

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

        Returns
        -------
        GeomInt_TheMultiLineOfWLApprox

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_MakeMLBetween(*args)

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

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_MakeMLOneMorePoint(*args)

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

        Parameters
        ----------
        ML: GeomInt_TheMultiLineOfWLApprox

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_NbP2d(*args)

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

        Parameters
        ----------
        ML: GeomInt_TheMultiLineOfWLApprox

        Returns
        -------
        int

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_NbP3d(*args)

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

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

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

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

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

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_Tangency(*args)

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

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

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

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

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

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_Value(*args)

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

        Parameters
        ----------
        ML: GeomInt_TheMultiLineOfWLApprox
        I1: int
        I2: int

        Returns
        -------
        Approx_Status

        """
        return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_WhatStatus(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_TheMultiLineToolOfWLApprox())
    __swig_destroy__ = _GeomInt.delete_GeomInt_TheMultiLineToolOfWLApprox

# Register GeomInt_TheMultiLineToolOfWLApprox in _GeomInt:
_GeomInt.GeomInt_TheMultiLineToolOfWLApprox_swigregister(GeomInt_TheMultiLineToolOfWLApprox)

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

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

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

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

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

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

    Returns
    -------
    bool

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_Curvature(*args)

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

    Parameters
    ----------
    ML: GeomInt_TheMultiLineOfWLApprox

    Returns
    -------
    None

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_Dump(*args)

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

    Parameters
    ----------
    ML: GeomInt_TheMultiLineOfWLApprox

    Returns
    -------
    int

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_FirstPoint(*args)

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

    Parameters
    ----------
    ML: GeomInt_TheMultiLineOfWLApprox

    Returns
    -------
    int

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_LastPoint(*args)

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

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

    Returns
    -------
    GeomInt_TheMultiLineOfWLApprox

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_MakeMLBetween(*args)

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

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

    Returns
    -------
    bool

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_MakeMLOneMorePoint(*args)

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

    Parameters
    ----------
    ML: GeomInt_TheMultiLineOfWLApprox

    Returns
    -------
    int

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_NbP2d(*args)

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

    Parameters
    ----------
    ML: GeomInt_TheMultiLineOfWLApprox

    Returns
    -------
    int

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_NbP3d(*args)

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

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

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

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

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

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

    Returns
    -------
    bool

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_Tangency(*args)

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

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

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

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

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

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

    Returns
    -------
    None

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_Value(*args)

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

    Parameters
    ----------
    ML: GeomInt_TheMultiLineOfWLApprox
    I1: int
    I2: int

    Returns
    -------
    Approx_Status

    """
    return _GeomInt.GeomInt_TheMultiLineToolOfWLApprox_WhatStatus(*args)

class GeomInt_ThePrmPrmSvSurfacesOfWLApprox(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: Adaptor3d_HSurface
        Surf2: Adaptor3d_HSurface

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_ThePrmPrmSvSurfacesOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_ThePrmPrmSvSurfacesOfWLApprox(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_ThePrmPrmSvSurfacesOfWLApprox

# Register GeomInt_ThePrmPrmSvSurfacesOfWLApprox in _GeomInt:
_GeomInt.GeomInt_ThePrmPrmSvSurfacesOfWLApprox_swigregister(GeomInt_ThePrmPrmSvSurfacesOfWLApprox)

class GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox(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: Adaptor3d_HSurface
        IS: IntSurf_Quadric

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

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

        Returns
        -------
        None

        """
        _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_swiginit(self, _GeomInt.new_GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox(*args))

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

        Returns
        -------
        gp_Dir2d

        """
        return _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_Direction2d(self, *args)

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

        Returns
        -------
        gp_Vec

        """
        return _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_Direction3d(self, *args)

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

        Returns
        -------
        IntSurf_Quadric

        """
        return _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_ISurface(self, *args)

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

        Returns
        -------
        bool

        """
        return _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_IsTangent(self, *args)

    def PSurface(self, *args) -> "opencascade::handle< Adaptor3d_HSurface > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HSurface>

        """
        return _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_PSurface(self, *args)

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

        Returns
        -------
        gp_Pnt

        """
        return _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_Point(self, *args)

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

        Returns
        -------
        float

        """
        return _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_Root(self, *args)

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

        Parameters
        ----------
        PS: Adaptor3d_HSurface

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

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_Set(self, *args)

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

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

        Returns
        -------
        None

        """
        return _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_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 _GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_Tolerance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomInt.delete_GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox

# Register GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox in _GeomInt:
_GeomInt.GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_swigregister(GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox)


@classnotwrapped
class GeomInt_WLApprox:
	pass






