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

"""
GeomLib module, see official documentation at
https://dev.opencascade.org/doc/occt-7.9.0/refman/html/package_geomlib.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _GeomLib
else:
    import _GeomLib

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


def process_exception(error, method_name, class_name):
    return _GeomLib.process_exception(error, method_name, class_name)

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

class ios_base(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")
    __repr__ = _swig_repr
    erase_event = _GeomLib.ios_base_erase_event
    imbue_event = _GeomLib.ios_base_imbue_event
    copyfmt_event = _GeomLib.ios_base_copyfmt_event

    def register_callback(self, __fn, __index):
        return _GeomLib.ios_base_register_callback(self, __fn, __index)

    def flags(self, *args):
        return _GeomLib.ios_base_flags(self, *args)

    def setf(self, *args):
        return _GeomLib.ios_base_setf(self, *args)

    def unsetf(self, __mask):
        return _GeomLib.ios_base_unsetf(self, __mask)

    def precision(self, *args):
        return _GeomLib.ios_base_precision(self, *args)

    def width(self, *args):
        return _GeomLib.ios_base_width(self, *args)

    @staticmethod
    def sync_with_stdio(__sync=True):
        return _GeomLib.ios_base_sync_with_stdio(__sync)

    def imbue(self, __loc):
        return _GeomLib.ios_base_imbue(self, __loc)

    def getloc(self):
        return _GeomLib.ios_base_getloc(self)

    @staticmethod
    def xalloc():
        return _GeomLib.ios_base_xalloc()

    def iword(self, __ix):
        return _GeomLib.ios_base_iword(self, __ix)

    def pword(self, __ix):
        return _GeomLib.ios_base_pword(self, __ix)
    __swig_destroy__ = _GeomLib.delete_ios_base

# Register ios_base in _GeomLib:
_GeomLib.ios_base_swigregister(ios_base)
cvar = _GeomLib.cvar
ios_base.boolalpha = _GeomLib.cvar.ios_base_boolalpha
ios_base.dec = _GeomLib.cvar.ios_base_dec
ios_base.fixed = _GeomLib.cvar.ios_base_fixed
ios_base.hex = _GeomLib.cvar.ios_base_hex
ios_base.internal = _GeomLib.cvar.ios_base_internal
ios_base.left = _GeomLib.cvar.ios_base_left
ios_base.oct = _GeomLib.cvar.ios_base_oct
ios_base.right = _GeomLib.cvar.ios_base_right
ios_base.scientific = _GeomLib.cvar.ios_base_scientific
ios_base.showbase = _GeomLib.cvar.ios_base_showbase
ios_base.showpoint = _GeomLib.cvar.ios_base_showpoint
ios_base.showpos = _GeomLib.cvar.ios_base_showpos
ios_base.skipws = _GeomLib.cvar.ios_base_skipws
ios_base.unitbuf = _GeomLib.cvar.ios_base_unitbuf
ios_base.uppercase = _GeomLib.cvar.ios_base_uppercase
ios_base.adjustfield = _GeomLib.cvar.ios_base_adjustfield
ios_base.basefield = _GeomLib.cvar.ios_base_basefield
ios_base.floatfield = _GeomLib.cvar.ios_base_floatfield
ios_base.badbit = _GeomLib.cvar.ios_base_badbit
ios_base.eofbit = _GeomLib.cvar.ios_base_eofbit
ios_base.failbit = _GeomLib.cvar.ios_base_failbit
ios_base.goodbit = _GeomLib.cvar.ios_base_goodbit
ios_base.app = _GeomLib.cvar.ios_base_app
ios_base.ate = _GeomLib.cvar.ios_base_ate
ios_base.binary = _GeomLib.cvar.ios_base_binary
ios_base.ios_base_in = _GeomLib.cvar.ios_base_ios_base_in
ios_base.out = _GeomLib.cvar.ios_base_out
ios_base.trunc = _GeomLib.cvar.ios_base_trunc
ios_base.beg = _GeomLib.cvar.ios_base_beg
ios_base.cur = _GeomLib.cvar.ios_base_cur
ios_base.end = _GeomLib.cvar.ios_base_end

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

    def rdstate(self):
        return _GeomLib.ios_rdstate(self)

    def clear(self, *args):
        return _GeomLib.ios_clear(self, *args)

    def setstate(self, __state):
        return _GeomLib.ios_setstate(self, __state)

    def good(self):
        return _GeomLib.ios_good(self)

    def eof(self):
        return _GeomLib.ios_eof(self)

    def fail(self):
        return _GeomLib.ios_fail(self)

    def bad(self):
        return _GeomLib.ios_bad(self)

    def exceptions(self, *args):
        return _GeomLib.ios_exceptions(self, *args)

    def __init__(self, __sb):
        _GeomLib.ios_swiginit(self, _GeomLib.new_ios(__sb))
    __swig_destroy__ = _GeomLib.delete_ios

    def tie(self, *args):
        return _GeomLib.ios_tie(self, *args)

    def rdbuf(self, *args):
        return _GeomLib.ios_rdbuf(self, *args)

    def copyfmt(self, __rhs):
        return _GeomLib.ios_copyfmt(self, __rhs)

    def fill(self, *args):
        return _GeomLib.ios_fill(self, *args)

    def imbue(self, __loc):
        return _GeomLib.ios_imbue(self, __loc)

    def narrow(self, __c, __dfault):
        return _GeomLib.ios_narrow(self, __c, __dfault)

    def widen(self, __c):
        return _GeomLib.ios_widen(self, __c)

# Register ios in _GeomLib:
_GeomLib.ios_swigregister(ios)
class ostream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _GeomLib.ostream_swiginit(self, _GeomLib.new_ostream(__sb))
    __swig_destroy__ = _GeomLib.delete_ostream

    def __lshift__(self, *args):
        return _GeomLib.ostream___lshift__(self, *args)

    def put(self, __c):
        return _GeomLib.ostream_put(self, __c)

    def write(self, __s, __n):
        return _GeomLib.ostream_write(self, __s, __n)

    def flush(self):
        return _GeomLib.ostream_flush(self)

    def tellp(self):
        return _GeomLib.ostream_tellp(self)

    def seekp(self, *args):
        return _GeomLib.ostream_seekp(self, *args)

# Register ostream in _GeomLib:
_GeomLib.ostream_swigregister(ostream)
class istream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _GeomLib.istream_swiginit(self, _GeomLib.new_istream(__sb))
    __swig_destroy__ = _GeomLib.delete_istream

    def __rshift__(self, *args):
        return _GeomLib.istream___rshift__(self, *args)

    def gcount(self):
        return _GeomLib.istream_gcount(self)

    def get(self, *args):
        return _GeomLib.istream_get(self, *args)

    def getline(self, *args):
        return _GeomLib.istream_getline(self, *args)

    def ignore(self, *args):
        return _GeomLib.istream_ignore(self, *args)

    def peek(self):
        return _GeomLib.istream_peek(self)

    def read(self, __s, __n):
        return _GeomLib.istream_read(self, __s, __n)

    def readsome(self, __s, __n):
        return _GeomLib.istream_readsome(self, __s, __n)

    def putback(self, __c):
        return _GeomLib.istream_putback(self, __c)

    def unget(self):
        return _GeomLib.istream_unget(self)

    def sync(self):
        return _GeomLib.istream_sync(self)

    def tellg(self):
        return _GeomLib.istream_tellg(self)

    def seekg(self, *args):
        return _GeomLib.istream_seekg(self, *args)

# Register istream in _GeomLib:
_GeomLib.istream_swigregister(istream)
class iostream(istream, ostream):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _GeomLib.iostream_swiginit(self, _GeomLib.new_iostream(__sb))
    __swig_destroy__ = _GeomLib.delete_iostream

# Register iostream in _GeomLib:
_GeomLib.iostream_swigregister(iostream)
cin = cvar.cin
cout = cvar.cout
cerr = cvar.cerr
clog = cvar.clog

endl_cb_ptr = _GeomLib.endl_cb_ptr
endl = _GeomLib.endl
ends_cb_ptr = _GeomLib.ends_cb_ptr
ends = _GeomLib.ends
flush_cb_ptr = _GeomLib.flush_cb_ptr
flush = _GeomLib.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.Geom
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Adaptor3d
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.AdvApprox
import OCC.Core.PLib
import OCC.Core.Geom2dAdaptor

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

GeomLib_NoError = _GeomLib.GeomLib_NoError
GeomLib_NotEnoughtPoints = _GeomLib.GeomLib_NotEnoughtPoints
GeomLib_DegreeSmallerThan3 = _GeomLib.GeomLib_DegreeSmallerThan3
GeomLib_InversionProblem = _GeomLib.GeomLib_InversionProblem


class GeomLib_InterpolationErrors(IntEnum):
	GeomLib_NoError = 0
	GeomLib_NotEnoughtPoints = 1
	GeomLib_DegreeSmallerThan3 = 2
	GeomLib_InversionProblem = 3
GeomLib_NoError = GeomLib_InterpolationErrors.GeomLib_NoError
GeomLib_NotEnoughtPoints = GeomLib_InterpolationErrors.GeomLib_NotEnoughtPoints
GeomLib_DegreeSmallerThan3 = GeomLib_InterpolationErrors.GeomLib_DegreeSmallerThan3
GeomLib_InversionProblem = GeomLib_InterpolationErrors.GeomLib_InversionProblem

class GeomLib_Array1OfMat(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, *args):
        return _GeomLib.GeomLib_Array1OfMat_begin(self, *args)

    def cbegin(self):
        return _GeomLib.GeomLib_Array1OfMat_cbegin(self)

    def end(self, *args):
        return _GeomLib.GeomLib_Array1OfMat_end(self, *args)

    def cend(self):
        return _GeomLib.GeomLib_Array1OfMat_cend(self)

    def __init__(self, *args):
        _GeomLib.GeomLib_Array1OfMat_swiginit(self, _GeomLib.new_GeomLib_Array1OfMat(*args))
    __swig_destroy__ = _GeomLib.delete_GeomLib_Array1OfMat

    def Init(self, theValue):
        return _GeomLib.GeomLib_Array1OfMat_Init(self, theValue)

    def Size(self):
        return _GeomLib.GeomLib_Array1OfMat_Size(self)

    def Length(self):
        return _GeomLib.GeomLib_Array1OfMat_Length(self)

    def IsEmpty(self):
        return _GeomLib.GeomLib_Array1OfMat_IsEmpty(self)

    def Lower(self):
        return _GeomLib.GeomLib_Array1OfMat_Lower(self)

    def Upper(self):
        return _GeomLib.GeomLib_Array1OfMat_Upper(self)

    def Assign(self, theOther):
        return _GeomLib.GeomLib_Array1OfMat_Assign(self, theOther)

    def Move(self, *args):
        return _GeomLib.GeomLib_Array1OfMat_Move(self, *args)

    def Set(self, *args):
        return _GeomLib.GeomLib_Array1OfMat_Set(self, *args)

    def First(self):
        return _GeomLib.GeomLib_Array1OfMat_First(self)

    def ChangeFirst(self):
        return _GeomLib.GeomLib_Array1OfMat_ChangeFirst(self)

    def Last(self):
        return _GeomLib.GeomLib_Array1OfMat_Last(self)

    def ChangeLast(self):
        return _GeomLib.GeomLib_Array1OfMat_ChangeLast(self)

    def Value(self, theIndex):
        return _GeomLib.GeomLib_Array1OfMat_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _GeomLib.GeomLib_Array1OfMat_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _GeomLib.GeomLib_Array1OfMat___call__(self, *args)

    def SetValue(self, *args):
        return _GeomLib.GeomLib_Array1OfMat_SetValue(self, *args)

    def UpdateLowerBound(self, theLower):
        return _GeomLib.GeomLib_Array1OfMat_UpdateLowerBound(self, theLower)

    def UpdateUpperBound(self, theUpper):
        return _GeomLib.GeomLib_Array1OfMat_UpdateUpperBound(self, theUpper)

    def Resize(self, theLower, theUpper, theToCopyData):
        return _GeomLib.GeomLib_Array1OfMat_Resize(self, theLower, theUpper, theToCopyData)

    def IsDeletable(self):
        return _GeomLib.GeomLib_Array1OfMat_IsDeletable(self)

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

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

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register GeomLib_Array1OfMat in _GeomLib:
_GeomLib.GeomLib_Array1OfMat_swigregister(GeomLib_Array1OfMat)
class geomlib(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        Curve: Geom_BoundedCurve
        P1: gp_Pnt
        P2: gp_Pnt
        T1: gp_Vec
        T2: gp_Vec

        Return
        -------
        None

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

        """
        return _GeomLib.geomlib_AdjustExtremity(*args)

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

        Parameters
        ----------
        Points: TColgp_Array1OfPnt
        Axe: gp_Ax2
        Tol: float (optional, default to 1.0e-7)

        Return
        -------
        IsSingular: bool

        Description
        -----------
        Compute axes of inertia, of some points -- -- -- <Axe>.Location() is the BaryCentre -- -- -- -- -- <Axe>.XDirection is the axe of upper inertia -- -- -- -- <Axe>.Direction is the Normal to the average plane -- -- -- IsSingular is True if points are on line -- Tol is used to determine singular cases.

        """
        return _GeomLib.geomlib_AxeOfInertia(*args)

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

        Parameters
        ----------
        Tolerance: float
        CurvePtr: Adaptor3d_CurveOnSurface
        FirstParameter: float
        LastParameter: float
        NewCurvePtr: Geom_Curve
        Continuity: GeomAbs_Shape (optional, default to GeomAbs_C1)
        MaxDegree: int (optional, default to 14)
        MaxSegment: int (optional, default to 30)

        Return
        -------
        MaxDeviation: float
        AverageDeviation: float

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

        """
        return _GeomLib.geomlib_BuildCurve3d(*args)

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

        Parameters
        ----------
        BSurf: Geom_BSplineSurface
        UDirection: bool
        VDirection: bool

        Return
        -------
        None

        Description
        -----------
        Cancel,on the boundaries,the denominator first derivative in the directions wished by the user and set its value to 1.

        """
        return _GeomLib.geomlib_CancelDenominatorDerivative(*args)

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

        Parameters
        ----------
        MinNumPoints: int
        InParameters: TColStd_Array1OfReal
        OutParameters: TColStd_HArray1OfReal

        Return
        -------
        None

        Description
        -----------
        this makes sure that there is at least MinNumPoints in OutParameters taking into account the parameters in the InParameters array provided those are in order, that is the sequence of real in the InParameter is strictly non decreasing.

        """
        return _GeomLib.geomlib_DensifyArray1OfReal(*args)

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

        Parameters
        ----------
        Curve: Adaptor3d_Curve
        AReferenceCurve: Adaptor3d_Curve
        Tolerance: float
        Parameters: TColStd_Array1OfReal

        Return
        -------
        MaxDistance: float

        Description
        -----------
        this will compute the maximum distance at the parameters given in the Parameters array by projecting from the Curve to the reference curve and taking the minimum distance Than the maximum will be taken on those minimas.

        """
        return _GeomLib.geomlib_EvalMaxDistanceAlongParameter(*args)

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

        Parameters
        ----------
        Curve: Adaptor3d_Curve
        AReferenceCurve: Adaptor3d_Curve
        Tolerance: float
        Parameters: TColStd_Array1OfReal

        Return
        -------
        MaxDistance: float

        Description
        -----------
        this will compute the maximum distance at the parameters given in the Parameters array by evaluating each parameter the two curves and taking the maximum of the evaluated distance.

        """
        return _GeomLib.geomlib_EvalMaxParametricDistance(*args)

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

        Parameters
        ----------
        Curve: Geom_BoundedCurve
        Point: gp_Pnt
        Cont: int
        After: bool

        Return
        -------
        None

        Description
        -----------
        Extends the bounded curve Curve to the point Point. The extension is built: - at the end of the curve if After equals true, or - at the beginning of the curve if After equals false. The extension is performed according to a degree of continuity equal to Cont, which in its turn must be equal to 1, 2 or 3. This function converts the bounded curve Curve into a BSpline curve. Warning - Nothing is done, and Curve is not modified if Cont is not equal to 1, 2 or 3. - It is recommended that the extension should not be too large with respect to the size of the bounded curve Curve: Point must not be located too far from one of the extremities of Curve.

        """
        return _GeomLib.geomlib_ExtendCurveToPoint(*args)

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

        Parameters
        ----------
        Surf: Geom_BoundedSurface
        Length: float
        Cont: int
        InU: bool
        After: bool

        Return
        -------
        None

        Description
        -----------
        Extends the bounded surface Surf along one of its boundaries. The chord length of the extension is equal to Length. The direction of the extension is given as: - the u parametric direction of Surf, if InU equals true, or - the v parametric direction of Surf, if InU equals false. In this parametric direction, the extension is built on the side of: - the last parameter of Surf, if After equals true, or - the first parameter of Surf, if After equals false. The extension is performed according to a degree of continuity equal to Cont, which in its turn must be equal to 1, 2 or 3. This function converts the bounded surface Surf into a BSpline surface. Warning - Nothing is done, and Surf is not modified if Cont is not equal to 1, 2 or 3. - It is recommended that Length, the size of the extension should not be too large with respect to the size of the bounded surface Surf. - Surf must not be a periodic BSpline surface in the parametric direction corresponding to the direction of extension.

        """
        return _GeomLib.geomlib_ExtendSurfByLength(*args)

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

        Parameters
        ----------
        Interval1: TColStd_Array1OfReal
        Interval2: TColStd_Array1OfReal
        Fusion: TColStd_SequenceOfReal
        Confusion: float (optional, default to 1.0e-9)
        IsAdjustToFirstInterval: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        This method fuse intervals Interval1 and Interval2 with specified Confusion 
        Input parameter: Interval1 first interval to fuse 
        Input parameter: Interval2 second interval to fuse 
        Input parameter: Confision tolerance to compare intervals 
        Input parameter: IsAdjustToFirstInterval flag to set method of fusion, if intervals are close  if false, intervals are fusing by half-division methdod  if true, intervals are fusing by selecting value from Interval1 @param[out] Fusion output interval.

        """
        return _GeomLib.geomlib_FuseIntervals(*args)

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

        Parameters
        ----------
        Curve: Geom2d_Curve
        GTrsf: gp_GTrsf2d

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        Computes the curve 3d from package Geom corresponding to the curve 3d from package Geom, transformed with the transformation <GTrsf> WARNING: this method may return a null Handle if it's impossible to compute the transformation of a curve. It's not implemented when: 1) the curve is an infinite parabola or hyperbola 2) the curve is an offsetcurve.

        """
        return _GeomLib.geomlib_GTransform(*args)

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

        Parameters
        ----------
        Points: TColgp_Array1OfPnt
        Bary: gp_Pnt
        XDir: gp_Dir
        YDir: gp_Dir

        Return
        -------
        Xgap: float
        YGap: float
        ZGap: float

        Description
        -----------
        Compute principale axes of inertia, and dispersion value of some points.

        """
        return _GeomLib.geomlib_Inertia(*args)

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

        Parameters
        ----------
        S: Geom_BSplineSurface
        U1: float
        U2: float
        Tol: float

        Return
        -------
        bool

        Description
        -----------
        Returns true if the poles of U1 isoline and the poles of U2 isoline of surface are identical according to tolerance criterion. For rational surfaces Weights(i)*Poles(i) are checked.

        """
        return _GeomLib.geomlib_IsBSplUClosed(*args)

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

        Parameters
        ----------
        S: Geom_BSplineSurface
        V1: float
        V2: float
        Tol: float

        Return
        -------
        bool

        Description
        -----------
        Returns true if the poles of V1 isoline and the poles of V2 isoline of surface are identical according to tolerance criterion. For rational surfaces Weights(i)*Poles(i) are checked.

        """
        return _GeomLib.geomlib_IsBSplVClosed(*args)

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

        Parameters
        ----------
        S: Geom_BezierSurface
        U1: float
        U2: float
        Tol: float

        Return
        -------
        bool

        Description
        -----------
        Returns true if the poles of U1 isoline and the poles of U2 isoline of surface are identical according to tolerance criterion.

        """
        return _GeomLib.geomlib_IsBzUClosed(*args)

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

        Parameters
        ----------
        S: Geom_BezierSurface
        V1: float
        V2: float
        Tol: float

        Return
        -------
        bool

        Description
        -----------
        Returns true if the poles of V1 isoline and the poles of V2 isoline of surface are identical according to tolerance criterion.

        """
        return _GeomLib.geomlib_IsBzVClosed(*args)

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

        Parameters
        ----------
        S: Geom_Surface
        Tol: float

        Return
        -------
        isUClosed: bool
        isVClosed: bool

        Description
        -----------
        This method defines if opposite boundaries of surface coincide with given tolerance.

        """
        return _GeomLib.geomlib_IsClosed(*args)

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

        Parameters
        ----------
        theSurf: Geom_Surface
        theUV: gp_Pnt2d
        theTol: float
        theNorm: gp_Dir

        Return
        -------
        int

        Description
        -----------
        Estimate surface normal at the given (U, V) point. 
        Input parameter: theSurf input surface 
        Input parameter: theUV (U, V) point coordinates on the surface 
        Input parameter: theTol estimation tolerance @param[out] theNorm computed normal 
        Return: 0 if normal estimated from D1, 1 if estimated from D2 (quasysingular), >=2 in case of failure (undefined or infinite solutions).

        """
        return _GeomLib.geomlib_NormEstim(*args)

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

        Parameters
        ----------
        NumPoints: int
        InParameters: TColStd_Array1OfReal
        OutParameters: TColStd_HArray1OfReal

        Return
        -------
        None

        Description
        -----------
        Warning! This assume that the InParameter is an increasing sequence of real number and it will not check for that: Unpredictable result can happen if this is not satisfied. It is the caller responsibility to check for that property. //! This method makes uniform NumPoints segments S1,...SNumPoints out of the segment defined by the first parameter and the last parameter of the InParameter ; keeps only one point of the InParameters set of parameter in each of the uniform segments taking care of the first and the last parameters. For the ith segment the element of the InParameter is the one that is the first to exceed the midpoint of the segment and to fall before the midpoint of the next segment There will be at the end at most NumPoints + 1 if NumPoints > 2 in the OutParameters Array.

        """
        return _GeomLib.geomlib_RemovePointsFromArray(*args)

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

        Parameters
        ----------
        Tolerance: float
        Curve2dPtr: Geom2d_Curve
        First: float
        Last: float
        RequestedFirst: float
        RequestedLast: float
        NewCurve2dPtr: Geom2d_Curve

        Return
        -------
        None

        Description
        -----------
        Make the curve Curve2dPtr have the imposed range First to List the most economic way, that is if it can change the range without changing the nature of the curve it will try to do that. Otherwise it will produce a Bspline curve that has the required range.

        """
        return _GeomLib.geomlib_SameRange(*args)

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

        Parameters
        ----------
        Position: gp_Ax2
        Curve2d: Geom2d_Curve

        Return
        -------
        opencascade::handle<Geom_Curve>

        Description
        -----------
        Computes the curve 3d from package Geom corresponding to curve 2d from package Geom2d, on the plan defined with the local coordinate system Position.

        """
        return _GeomLib.geomlib_To3d(*args)

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

        Parameters
        ----------
        theC2D: Adaptor2d_Curve2d
        theSurf: Adaptor3d_Surface
        theFirst: float
        theLast: float
        theTolerance: float
        theIsU: bool
        theParam: float
        theIsForward: bool

        Return
        -------
        opencascade::handle<Geom_Curve>

        Description
        -----------
        Builds 3D curve for a isoline. This method takes corresponding isoline from the input surface. 
        Parameter theC2D Trimmed curve to be approximated. 
        Parameter theIsU Flag indicating that line is u const. 
        Parameter theParam Line parameter. 
        Parameter theIsForward Flag indicating forward parameterization on a isoline. 
        Return: Standard_True when 3d curve is built and Standard_False otherwise.

        """
        return _GeomLib.geomlib_buildC3dOnIsoLine(*args)

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

        Parameters
        ----------
        theC2D: Adaptor2d_Curve2d

        Return
        -------
        theIsU: bool
        theParam: float
        theIsForward: bool

        Description
        -----------
        Checks whether the 2d curve is a isoline. It can be represented by b-spline, bezier, or geometric line. This line should have natural parameterization. 
        Parameter theC2D Trimmed curve to be checked. 
        Parameter theIsU Flag indicating that line is u const. 
        Parameter theParam Line parameter. 
        Parameter theIsForward Flag indicating forward parameterization on a isoline. 
        Return: Standard_True when 2d curve is a line and Standard_False otherwise.

        """
        return _GeomLib.geomlib_isIsoLine(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _GeomLib.geomlib_swiginit(self, _GeomLib.new_geomlib())
    __swig_destroy__ = _GeomLib.delete_geomlib

# Register geomlib in _GeomLib:
_GeomLib.geomlib_swigregister(geomlib)
class GeomLib_Check2dBSplineCurve(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        Curve: Geom2d_BSplineCurve
        Tolerance: float
        AngularTolerance: float

        Return
        -------
        None

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

        """
        _GeomLib.GeomLib_Check2dBSplineCurve_swiginit(self, _GeomLib.new_GeomLib_Check2dBSplineCurve(*args))

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

        Parameters
        ----------
        FirstFlag: bool
        LastFlag: bool

        Return
        -------
        None

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

        """
        return _GeomLib.GeomLib_Check2dBSplineCurve_FixTangent(self, *args)

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

        Parameters
        ----------
        FirstFlag: bool
        LastFlag: bool

        Return
        -------
        opencascade::handle<Geom2d_BSplineCurve>

        Description
        -----------
        modifies the curve by fixing the first or the last tangencies //! if Index3D not in the Range [1,Nb3dSpaces] if the Approx is not Done.

        """
        return _GeomLib.GeomLib_Check2dBSplineCurve_FixedTangent(self, *args)

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

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

        """
        return _GeomLib.GeomLib_Check2dBSplineCurve_IsDone(self, *args)

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

        Parameters
        ----------

        Return
        -------
        FirstFlag: bool
        SecondFlag: bool

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

        """
        return _GeomLib.GeomLib_Check2dBSplineCurve_NeedTangentFix(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomLib.delete_GeomLib_Check2dBSplineCurve

# Register GeomLib_Check2dBSplineCurve in _GeomLib:
_GeomLib.GeomLib_Check2dBSplineCurve_swigregister(GeomLib_Check2dBSplineCurve)
class GeomLib_CheckBSplineCurve(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        Curve: Geom_BSplineCurve
        Tolerance: float
        AngularTolerance: float

        Return
        -------
        None

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

        """
        _GeomLib.GeomLib_CheckBSplineCurve_swiginit(self, _GeomLib.new_GeomLib_CheckBSplineCurve(*args))

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

        Parameters
        ----------
        FirstFlag: bool
        LastFlag: bool

        Return
        -------
        None

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

        """
        return _GeomLib.GeomLib_CheckBSplineCurve_FixTangent(self, *args)

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

        Parameters
        ----------
        FirstFlag: bool
        LastFlag: bool

        Return
        -------
        opencascade::handle<Geom_BSplineCurve>

        Description
        -----------
        modifies the curve by fixing the first or the last tangencies //! if Index3D not in the Range [1,Nb3dSpaces] if the Approx is not Done.

        """
        return _GeomLib.GeomLib_CheckBSplineCurve_FixedTangent(self, *args)

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

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

        """
        return _GeomLib.GeomLib_CheckBSplineCurve_IsDone(self, *args)

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

        Parameters
        ----------

        Return
        -------
        FirstFlag: bool
        SecondFlag: bool

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

        """
        return _GeomLib.GeomLib_CheckBSplineCurve_NeedTangentFix(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomLib.delete_GeomLib_CheckBSplineCurve

# Register GeomLib_CheckBSplineCurve in _GeomLib:
_GeomLib.GeomLib_CheckBSplineCurve_swigregister(GeomLib_CheckBSplineCurve)
class GeomLib_CheckCurveOnSurface(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Default constructor.

        Parameters
        ----------
        theCurve: Adaptor3d_Curve
        theTolRange: float (optional, default to Precision::PConfusion())

        Return
        -------
        None

        Description
        -----------
        Constructor.

        """
        _GeomLib.GeomLib_CheckCurveOnSurface_swiginit(self, _GeomLib.new_GeomLib_CheckCurveOnSurface(*args))

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

        Description
        -----------
        Returns error status The possible values are: 0 - OK; 1 - null curve or surface or 2d curve; 2 - invalid parametric range; 3 - error in calculations.

        """
        return _GeomLib.GeomLib_CheckCurveOnSurface_ErrorStatus(self, *args)

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

        Parameters
        ----------
        theCurve: Adaptor3d_Curve
        theTolRange: float (optional, default to Precision::PConfusion())

        Return
        -------
        None

        Description
        -----------
        Sets the data for the algorithm.
        Return
        -------
        None

        Description
        -----------
        Initializes all members by default values.

        """
        return _GeomLib.GeomLib_CheckCurveOnSurface_Init(self, *args)

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

        Description
        -----------
        Returns true if the max distance has been found.

        """
        return _GeomLib.GeomLib_CheckCurveOnSurface_IsDone(self, *args)

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

        Description
        -----------
        Returns true if parallel flag is set.

        """
        return _GeomLib.GeomLib_CheckCurveOnSurface_IsParallel(self, *args)

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

        Description
        -----------
        Returns max distance.

        """
        return _GeomLib.GeomLib_CheckCurveOnSurface_MaxDistance(self, *args)

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

        Description
        -----------
        Returns parameter in which the distance is maximal.

        """
        return _GeomLib.GeomLib_CheckCurveOnSurface_MaxParameter(self, *args)

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

        Parameters
        ----------
        theCurveOnSurface: Adaptor3d_CurveOnSurface

        Return
        -------
        None

        Description
        -----------
        Computes the max distance for the 3d curve <myCurve> and 2d curve <theCurveOnSurface> If isMultiThread == Standard_True then computation will be performed in parallel.

        """
        return _GeomLib.GeomLib_CheckCurveOnSurface_Perform(self, *args)

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

        Parameters
        ----------
        theIsParallel: bool

        Return
        -------
        None

        Description
        -----------
        Sets parallel flag.

        """
        return _GeomLib.GeomLib_CheckCurveOnSurface_SetParallel(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomLib.delete_GeomLib_CheckCurveOnSurface

# Register GeomLib_CheckCurveOnSurface in _GeomLib:
_GeomLib.GeomLib_CheckCurveOnSurface_swigregister(GeomLib_CheckCurveOnSurface)
class GeomLib_DenominatorMultiplier(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        Surface: Geom_BSplineSurface
        KnotVector: TColStd_Array1OfReal

        Return
        -------
        None

        Description
        -----------
        if the surface is rational this will define the evaluator of a real function of 2 variables a(u,v) such that if we define a new surface by: a(u,v) * N(u,v) NewF(u,v) = ---------------- a(u,v) * D(u,v).

        """
        _GeomLib.GeomLib_DenominatorMultiplier_swiginit(self, _GeomLib.new_GeomLib_DenominatorMultiplier(*args))

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

        Parameters
        ----------
        UParameter: float
        VParameter: float

        Return
        -------
        float

        Description
        -----------
        Returns the value of a(UParameter,VParameter)= //! H0(UParameter)/Denominator(Umin,Vparameter) //! D Denominator(Umin,Vparameter) - ------------------------------[H1(u)]/(Denominator(Umin,Vparameter)^2) D U //! + H3(UParameter)/Denominator(Umax,Vparameter) //! D Denominator(Umax,Vparameter) - ------------------------------[H2(u)]/(Denominator(Umax,Vparameter)^2) D U.

        """
        return _GeomLib.GeomLib_DenominatorMultiplier_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomLib.delete_GeomLib_DenominatorMultiplier

# Register GeomLib_DenominatorMultiplier in _GeomLib:
_GeomLib.GeomLib_DenominatorMultiplier_swigregister(GeomLib_DenominatorMultiplier)
class GeomLib_Interpolate(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        Degree: int
        NumPoints: int
        Points: TColgp_Array1OfPnt
        Parameters: TColStd_Array1OfReal

        Return
        -------
        None

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

        """
        _GeomLib.GeomLib_Interpolate_swiginit(self, _GeomLib.new_GeomLib_Interpolate(*args))

    def Curve(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Geom_BSplineCurve>

        Description
        -----------
        returns the interpolated curve of the requested degree.

        """
        return _GeomLib.GeomLib_Interpolate_Curve(self, *args)

    def Error(self, *args):
        r"""
        Return
        -------
        GeomLib_InterpolationErrors

        Description
        -----------
        returns the error type if any.

        """
        return _GeomLib.GeomLib_Interpolate_Error(self, *args)

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

        Description
        -----------
        returns if everything went OK.

        """
        return _GeomLib.GeomLib_Interpolate_IsDone(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomLib.delete_GeomLib_Interpolate

# Register GeomLib_Interpolate in _GeomLib:
_GeomLib.GeomLib_Interpolate_swigregister(GeomLib_Interpolate)
class GeomLib_IsPlanarSurface(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        S: Geom_Surface
        Tol: float (optional, default to 1.0e-7)

        Return
        -------
        None

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

        """
        _GeomLib.GeomLib_IsPlanarSurface_swiginit(self, _GeomLib.new_GeomLib_IsPlanarSurface(*args))

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

        Description
        -----------
        Return if the Surface is a plan.

        """
        return _GeomLib.GeomLib_IsPlanarSurface_IsPlanar(self, *args)

    def Plan(self, *args):
        r"""
        Return
        -------
        gp_Pln

        Description
        -----------
        Return the plan definition.

        """
        return _GeomLib.GeomLib_IsPlanarSurface_Plan(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomLib.delete_GeomLib_IsPlanarSurface

# Register GeomLib_IsPlanarSurface in _GeomLib:
_GeomLib.GeomLib_IsPlanarSurface_swigregister(GeomLib_IsPlanarSurface)
class GeomLib_LogSample(OCC.Core.math.math_FunctionSample):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        A: float
        B: float
        N: int

        Return
        -------
        None

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

        """
        _GeomLib.GeomLib_LogSample_swiginit(self, _GeomLib.new_GeomLib_LogSample(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomLib.delete_GeomLib_LogSample

# Register GeomLib_LogSample in _GeomLib:
_GeomLib.GeomLib_LogSample_swigregister(GeomLib_LogSample)
class GeomLib_MakeCurvefromApprox(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        Approx: AdvApprox_ApproxAFunction

        Return
        -------
        None

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

        """
        _GeomLib.GeomLib_MakeCurvefromApprox_swiginit(self, _GeomLib.new_GeomLib_MakeCurvefromApprox(*args))

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

        Parameters
        ----------
        Index3d: int

        Return
        -------
        opencascade::handle<Geom_BSplineCurve>

        Description
        -----------
        returns a polynomial curve whose poles correspond to the Index3D 3D space if Index3D not in the Range [1,Nb3dSpaces] if the Approx is not Done.

        Parameters
        ----------
        Index1D: int
        Index3D: int

        Return
        -------
        opencascade::handle<Geom_BSplineCurve>

        Description
        -----------
        returns a rational curve whose poles correspond to the index3D of the 3D space and whose weights correspond to the index1d 1D space. if Index1D not in the Range [1,Nb1dSpaces] if Index3D not in the Range [1,Nb3dSpaces] if the Approx is not Done.

        """
        return _GeomLib.GeomLib_MakeCurvefromApprox_Curve(self, *args)

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

        Parameters
        ----------
        Index2d: int

        Return
        -------
        opencascade::handle<Geom2d_BSplineCurve>

        Description
        -----------
        returns a polynomial curve whose poles correspond to the Index2d 2D space if Index2d not in the Range [1,Nb2dSpaces] if the Approx is not Done.

        Parameters
        ----------
        Index1d: int
        Index2d: int

        Return
        -------
        opencascade::handle<Geom2d_BSplineCurve>

        Description
        -----------
        returns a rational curve whose poles correspond to the index2d of the 2D space and whose weights correspond to one dimensional space of index 1d if Index1d not in the Range [1,Nb1dSpaces] if Index2d not in the Range [1,Nb2dSpaces] if the Approx is not Done.

        """
        return _GeomLib.GeomLib_MakeCurvefromApprox_Curve2d(self, *args)

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

        Parameters
        ----------
        Index1d: int
        Index2d: int

        Return
        -------
        opencascade::handle<Geom2d_BSplineCurve>

        Description
        -----------
        returns a 2D curve building it from the 1D curve in x at Index1d and y at Index2d amongst the 1D curves if Index1d not in the Range [1,Nb1dSpaces] if Index2d not in the Range [1,Nb1dSpaces] if the Approx is not Done.

        """
        return _GeomLib.GeomLib_MakeCurvefromApprox_Curve2dFromTwo1d(self, *args)

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

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

        """
        return _GeomLib.GeomLib_MakeCurvefromApprox_IsDone(self, *args)

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

        Description
        -----------
        returns the number of 1D spaces of the Approx.

        """
        return _GeomLib.GeomLib_MakeCurvefromApprox_Nb1DSpaces(self, *args)

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

        Description
        -----------
        returns the number of 3D spaces of the Approx.

        """
        return _GeomLib.GeomLib_MakeCurvefromApprox_Nb2DSpaces(self, *args)

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

        Description
        -----------
        returns the number of 3D spaces of the Approx.

        """
        return _GeomLib.GeomLib_MakeCurvefromApprox_Nb3DSpaces(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomLib.delete_GeomLib_MakeCurvefromApprox

# Register GeomLib_MakeCurvefromApprox in _GeomLib:
_GeomLib.GeomLib_MakeCurvefromApprox_swigregister(GeomLib_MakeCurvefromApprox)
class GeomLib_PolyFunc(OCC.Core.math.math_FunctionWithDerivative):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Return
        -------
        None

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

        """
        _GeomLib.GeomLib_PolyFunc_swiginit(self, _GeomLib.new_GeomLib_PolyFunc(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomLib.delete_GeomLib_PolyFunc

# Register GeomLib_PolyFunc in _GeomLib:
_GeomLib.GeomLib_PolyFunc_swigregister(GeomLib_PolyFunc)
class GeomLib_Tool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        theCurve: Geom2dAdaptor_Curve
        theFPar: float
        theLPar: float
        theStartParameter: float
        theNbIters: int (optional, default to 100)
        thePrmOnCurve: float * (optional, default to NULL)
        thePtOnCurve: gp_Pnt2d * (optional, default to NULL)
        theVecCurvLine: gp_Vec2d * (optional, default to NULL)
        theLine: gp_Lin2d * (optional, default to NULL)

        Return
        -------
        float

        Description
        -----------
        Computes parameter in theCurve (*thePrmOnCurve) where maximal deviation between theCurve and the linear segment joining its points with the parameters theFPar and theLPar is obtained. Returns the (positive) value of deviation. Returns negative value if the deviation cannot be computed. The returned parameter (in case of successful) will always be in the range [theFPar, theLPar]. Iterative method is used for computation. So, theStartParameter is needed to be set. Recommend value of theStartParameter can be found with the overloaded method. Additionally, following values can be returned (optionally): 
        Parameter thePtOnCurve - the point on curve where maximal deviation is achieved; 
        Parameter thePrmOnCurve - the parameter of thePtOnCurve; 
        Parameter theVecCurvLine - the vector along which is computed (this vector is always  perpendicular theLine); 
        Parameter theLine - the linear segment joining the point of theCurve having parameters theFPar and theLPar.

        Parameters
        ----------
        theCurve: Geom2dAdaptor_Curve
        theFPar: float
        theLPar: float
        theNbSubIntervals: int
        theNbIters: int (optional, default to 10)
        thePrmOnCurve: float * (optional, default to NULL)

        Return
        -------
        float

        Description
        -----------
        Computes parameter in theCurve (*thePrmOnCurve) where maximal deviation between theCurve and the linear segment joining its points with the parameters theFPar and theLPar is obtained. Returns the (positive) value of deviation. Returns negative value if the deviation cannot be computed. The returned parameter (in case of successful) will always be in the range [theFPar, theLPar]. theNbSubIntervals defines discretization of the given interval [theFPar, theLPar] to provide better search condition. This value should be chosen taking into account complexity of the curve in considered interval. E.g. if there are many oscillations of the curve in the interval then theNbSubIntervals mus be great number. However, the greater value of theNbSubIntervals the slower the algorithm will compute. theNbIters sets number of iterations. ATTENTION!!! This algorithm cannot compute deviation precisely (so, there is no point in setting big value of theNbIters). But it can give some start point for the overloaded method.

        """
        return _GeomLib.GeomLib_Tool_ComputeDeviation(*args)

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

        Parameters
        ----------
        Curve: Geom_Curve
        Point: gp_Pnt
        MaxDist: float

        Return
        -------
        U: float

        Description
        -----------
        Extracts the parameter of a 3D point lying on a 3D curve or at a distance less than the MaxDist value.

        Parameters
        ----------
        Curve: Geom2d_Curve
        Point: gp_Pnt2d
        MaxDist: float

        Return
        -------
        U: float

        Description
        -----------
        Extracts the parameter of a 2D point lying on a 2D curve or at a distance less than the MaxDist value.

        """
        return _GeomLib.GeomLib_Tool_Parameter(*args)

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

        Parameters
        ----------
        Surface: Geom_Surface
        Point: gp_Pnt
        MaxDist: float

        Return
        -------
        U: float
        V: float

        Description
        -----------
        Extracts the parameter of a 3D point lying on a surface or at a distance less than the MaxDist value.

        """
        return _GeomLib.GeomLib_Tool_Parameters(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _GeomLib.GeomLib_Tool_swiginit(self, _GeomLib.new_GeomLib_Tool())
    __swig_destroy__ = _GeomLib.delete_GeomLib_Tool

# Register GeomLib_Tool in _GeomLib:
_GeomLib.GeomLib_Tool_swigregister(GeomLib_Tool)



@deprecated
def geomlib_AdjustExtremity(*args):
	return geomlib.AdjustExtremity(*args)

@deprecated
def geomlib_AxeOfInertia(*args):
	return geomlib.AxeOfInertia(*args)

@deprecated
def geomlib_BuildCurve3d(*args):
	return geomlib.BuildCurve3d(*args)

@deprecated
def geomlib_CancelDenominatorDerivative(*args):
	return geomlib.CancelDenominatorDerivative(*args)

@deprecated
def geomlib_DensifyArray1OfReal(*args):
	return geomlib.DensifyArray1OfReal(*args)

@deprecated
def geomlib_EvalMaxDistanceAlongParameter(*args):
	return geomlib.EvalMaxDistanceAlongParameter(*args)

@deprecated
def geomlib_EvalMaxParametricDistance(*args):
	return geomlib.EvalMaxParametricDistance(*args)

@deprecated
def geomlib_ExtendCurveToPoint(*args):
	return geomlib.ExtendCurveToPoint(*args)

@deprecated
def geomlib_ExtendSurfByLength(*args):
	return geomlib.ExtendSurfByLength(*args)

@deprecated
def geomlib_FuseIntervals(*args):
	return geomlib.FuseIntervals(*args)

@deprecated
def geomlib_GTransform(*args):
	return geomlib.GTransform(*args)

@deprecated
def geomlib_Inertia(*args):
	return geomlib.Inertia(*args)

@deprecated
def geomlib_IsBSplUClosed(*args):
	return geomlib.IsBSplUClosed(*args)

@deprecated
def geomlib_IsBSplVClosed(*args):
	return geomlib.IsBSplVClosed(*args)

@deprecated
def geomlib_IsBzUClosed(*args):
	return geomlib.IsBzUClosed(*args)

@deprecated
def geomlib_IsBzVClosed(*args):
	return geomlib.IsBzVClosed(*args)

@deprecated
def geomlib_IsClosed(*args):
	return geomlib.IsClosed(*args)

@deprecated
def geomlib_NormEstim(*args):
	return geomlib.NormEstim(*args)

@deprecated
def geomlib_RemovePointsFromArray(*args):
	return geomlib.RemovePointsFromArray(*args)

@deprecated
def geomlib_SameRange(*args):
	return geomlib.SameRange(*args)

@deprecated
def geomlib_To3d(*args):
	return geomlib.To3d(*args)

@deprecated
def geomlib_buildC3dOnIsoLine(*args):
	return geomlib.buildC3dOnIsoLine(*args)

@deprecated
def geomlib_isIsoLine(*args):
	return geomlib.isIsoLine(*args)

@deprecated
def GeomLib_Tool_ComputeDeviation(*args):
	return GeomLib_Tool.ComputeDeviation(*args)

@deprecated
def GeomLib_Tool_ComputeDeviation(*args):
	return GeomLib_Tool.ComputeDeviation(*args)

@deprecated
def GeomLib_Tool_Parameter(*args):
	return GeomLib_Tool.Parameter(*args)

@deprecated
def GeomLib_Tool_Parameter(*args):
	return GeomLib_Tool.Parameter(*args)

@deprecated
def GeomLib_Tool_Parameters(*args):
	return GeomLib_Tool.Parameters(*args)



