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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _ElCLib:
_ElCLib.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 _ElCLib.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.gp
import OCC.Core.TColStd
import OCC.Core.TCollection

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



class elclib(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"""
        Adjust u1 and u2 in the parametric range ufirst ulast of a periodic curve, where ulast - ufirst is its period. to do this, this function: - sets u1 in the range [ ufirst, ulast ] by adding/removing the period to/from the value u1, then - sets u2 in the range [ u1, u1 + period ] by adding/removing the period to/from the value u2. precision is used to test the equalities.

        Parameters
        ----------
        UFirst: float
        ULast: float
        Precision: float

        Returns
        -------
        U1: float
        U2: float

        """
        return _ElCLib.elclib_AdjustPeriodic(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        Radius: float
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        Radius: float
        P: gp_Pnt2d
        V1: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_CircleD1(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        Radius: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        Radius: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_CircleD2(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        Radius: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        Radius: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d
        V3: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_CircleD3(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        Radius: float
        N: int

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        Radius: float
        N: int

        Returns
        -------
        gp_Vec2d

        """
        return _ElCLib.elclib_CircleDN(*args)

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

        Parameters
        ----------
        Pos: gp_Ax2
        P: gp_Pnt

        Returns
        -------
        float
        Pos is the axis of the circle parametrization in the local coordinate system of the circle x (u) = radius * cos (u) y (u) = radius * sin (u).

        Parameters
        ----------
        Pos: gp_Ax22d
        P: gp_Pnt2d

        Returns
        -------
        float

        """
        return _ElCLib.elclib_CircleParameter(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        Radius: float

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        Radius: float

        Returns
        -------
        gp_Pnt2d

        """
        return _ElCLib.elclib_CircleValue(*args)

    @staticmethod
    def D1(*args) -> "void":
        r"""
        For elementary curves (lines, circles and conics) from the gp package, computes: - the point p of parameter u, and - the first derivative vector v1 at this point. the results p and v1 are either: - a gp_pnt point and a gp_vec vector, for a curve in 3d space, or - a gp_pnt2d point and a gp_vec2d vector, for a curve in 2d space.

        Parameters
        ----------
        U: float
        L: gp_Lin
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        C: gp_Circ
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        E: gp_Elips
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        H: gp_Hypr
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        Prb: gp_Parab
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        L: gp_Lin2d
        P: gp_Pnt2d
        V1: gp_Vec2d

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

        Parameters
        ----------
        U: float
        C: gp_Circ2d
        P: gp_Pnt2d
        V1: gp_Vec2d

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

        Parameters
        ----------
        U: float
        E: gp_Elips2d
        P: gp_Pnt2d
        V1: gp_Vec2d

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

        Parameters
        ----------
        U: float
        H: gp_Hypr2d
        P: gp_Pnt2d
        V1: gp_Vec2d

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

        Parameters
        ----------
        U: float
        Prb: gp_Parab2d
        P: gp_Pnt2d
        V1: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_D1(*args)

    @staticmethod
    def D2(*args) -> "void":
        r"""
        For elementary curves (circles and conics) from the gp package, computes: - the point p of parameter u, and - the first and second derivative vectors v1 and v2 at this point. the results, p, v1 and v2, are either: - a gp_pnt point and two gp_vec vectors, for a curve in 3d space, or - a gp_pnt2d point and two gp_vec2d vectors, for a curve in 2d space.

        Parameters
        ----------
        U: float
        C: gp_Circ
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

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

        Parameters
        ----------
        U: float
        E: gp_Elips
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

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

        Parameters
        ----------
        U: float
        H: gp_Hypr
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

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

        Parameters
        ----------
        U: float
        Prb: gp_Parab
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

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

        Parameters
        ----------
        U: float
        C: gp_Circ2d
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

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

        Parameters
        ----------
        U: float
        E: gp_Elips2d
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

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

        Parameters
        ----------
        U: float
        H: gp_Hypr2d
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

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

        Parameters
        ----------
        U: float
        Prb: gp_Parab2d
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_D2(*args)

    @staticmethod
    def D3(*args) -> "void":
        r"""
        For elementary curves (circles, ellipses and hyperbolae) from the gp package, computes: - the point p of parameter u, and - the first, second and third derivative vectors v1, v2 and v3 at this point. the results, p, v1, v2 and v3, are either: - a gp_pnt point and three gp_vec vectors, for a curve in 3d space, or - a gp_pnt2d point and three gp_vec2d vectors, for a curve in 2d space.

        Parameters
        ----------
        U: float
        C: gp_Circ
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec

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

        Parameters
        ----------
        U: float
        E: gp_Elips
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec

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

        Parameters
        ----------
        U: float
        H: gp_Hypr
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec

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

        Parameters
        ----------
        U: float
        C: gp_Circ2d
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d
        V3: gp_Vec2d

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

        Parameters
        ----------
        U: float
        E: gp_Elips2d
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d
        V3: gp_Vec2d

        Returns
        -------
        None
        In the following functions n is the order of derivation and should be greater than 0.

        Parameters
        ----------
        U: float
        H: gp_Hypr2d
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d
        V3: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_D3(*args)

    @staticmethod
    def DN(*args) -> "gp_Vec2d":
        r"""
        For elementary curves (lines, circles and conics) from the gp package, computes the vector corresponding to the nth derivative at the point of parameter u. the result is either: - a gp_vec vector for a curve in 3d space, or - a gp_vec2d vector for a curve in 2d space. in the following functions n is the order of derivation and should be greater than 0.

        Parameters
        ----------
        U: float
        L: gp_Lin
        N: int

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        U: float
        C: gp_Circ
        N: int

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        U: float
        E: gp_Elips
        N: int

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        U: float
        H: gp_Hypr
        N: int

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        U: float
        Prb: gp_Parab
        N: int

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        U: float
        L: gp_Lin2d
        N: int

        Returns
        -------
        gp_Vec2d
        No available documentation.

        Parameters
        ----------
        U: float
        C: gp_Circ2d
        N: int

        Returns
        -------
        gp_Vec2d
        No available documentation.

        Parameters
        ----------
        U: float
        E: gp_Elips2d
        N: int

        Returns
        -------
        gp_Vec2d
        No available documentation.

        Parameters
        ----------
        U: float
        H: gp_Hypr2d
        N: int

        Returns
        -------
        gp_Vec2d
        No available documentation.

        Parameters
        ----------
        U: float
        Prb: gp_Parab2d
        N: int

        Returns
        -------
        gp_Vec2d

        """
        return _ElCLib.elclib_DN(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt2d
        V1: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_EllipseD1(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_EllipseD2(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d
        V3: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_EllipseD3(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        N: int

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        N: int

        Returns
        -------
        gp_Vec2d

        """
        return _ElCLib.elclib_EllipseDN(*args)

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

        Parameters
        ----------
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt

        Returns
        -------
        float
        Pos is the axis of the ellipse parametrization in the local coordinate system of the ellipse x (u) = majorradius * cos (u) y (u) = minorradius * sin (u).

        Parameters
        ----------
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt2d

        Returns
        -------
        float

        """
        return _ElCLib.elclib_EllipseParameter(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float

        Returns
        -------
        gp_Pnt2d

        """
        return _ElCLib.elclib_EllipseValue(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt2d
        V1: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_HyperbolaD1(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_HyperbolaD2(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec

        Returns
        -------
        None
        In the following functions n is the order of derivation and should be greater than 0.

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d
        V3: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_HyperbolaD3(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        N: int

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        N: int

        Returns
        -------
        gp_Vec2d

        """
        return _ElCLib.elclib_HyperbolaDN(*args)

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

        Parameters
        ----------
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt

        Returns
        -------
        float
        Pos is the axis of the hyperbola parametrization in the local coordinate system of the hyperbola x (u) = majorradius * ch (u) y (u) = minorradius * sh (u).

        Parameters
        ----------
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt2d

        Returns
        -------
        float

        """
        return _ElCLib.elclib_HyperbolaParameter(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        MajorRadius: float
        MinorRadius: float

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        MajorRadius: float
        MinorRadius: float

        Returns
        -------
        gp_Pnt2d

        """
        return _ElCLib.elclib_HyperbolaValue(*args)

    @staticmethod
    def InPeriod(*args) -> "Standard_Real":
        r"""
        Return a value in the range <ufirst, ulast> by adding or removing the period <ulast - ufirst> to <u>. attention!!! it is expected but not checked that (ulast > ufirst).

        Parameters
        ----------
        U: float
        UFirst: float
        ULast: float

        Returns
        -------
        float

        """
        return _ElCLib.elclib_InPeriod(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax1
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2d
        P: gp_Pnt2d
        V1: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_LineD1(*args)

    @staticmethod
    def LineDN(*args) -> "gp_Vec2d":
        r"""
        In the following functions n is the order of derivation and should be greater than 0.

        Parameters
        ----------
        U: float
        Pos: gp_Ax1
        N: int

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        U: float
        Pos: gp_Ax2d
        N: int

        Returns
        -------
        gp_Vec2d

        """
        return _ElCLib.elclib_LineDN(*args)

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

        Parameters
        ----------
        Pos: gp_Ax1
        P: gp_Pnt

        Returns
        -------
        float
        Parametrization p (u) = l.location() + u * l.direction().

        Parameters
        ----------
        Pos: gp_Ax2d
        P: gp_Pnt2d

        Returns
        -------
        float

        """
        return _ElCLib.elclib_LineParameter(*args)

    @staticmethod
    def LineValue(*args) -> "gp_Pnt2d":
        r"""
        Curve evaluation the following basis functions compute the derivatives on elementary curves defined by their geometric characteristics. these functions can be called without constructing a conic from package gp. they are called by the previous functions. example : a circle is defined by its position and its radius.

        Parameters
        ----------
        U: float
        Pos: gp_Ax1

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        Pos: gp_Ax2d

        Returns
        -------
        gp_Pnt2d

        """
        return _ElCLib.elclib_LineValue(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        Focal: float
        P: gp_Pnt
        V1: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        Focal: float
        P: gp_Pnt2d
        V1: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_ParabolaD1(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        Focal: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        Focal: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

        Returns
        -------
        None

        """
        return _ElCLib.elclib_ParabolaD2(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        Focal: float
        N: int

        Returns
        -------
        gp_Vec
        The following functions compute the parametric value corresponding to a given point on a elementary curve. the point should be on the curve.

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        Focal: float
        N: int

        Returns
        -------
        gp_Vec2d

        """
        return _ElCLib.elclib_ParabolaDN(*args)

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

        Parameters
        ----------
        Pos: gp_Ax2
        P: gp_Pnt

        Returns
        -------
        float
        Pos is the mirror axis of the parabola parametrization in the local coordinate system of the parabola y**2 = (2*p) * x where p is the distance between the focus and the directrix. the following functions build a 3d curve from a 2d curve at a given position defined with an ax2.

        Parameters
        ----------
        Pos: gp_Ax22d
        P: gp_Pnt2d

        Returns
        -------
        float

        """
        return _ElCLib.elclib_ParabolaParameter(*args)

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

        Parameters
        ----------
        U: float
        Pos: gp_Ax2
        Focal: float

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        Pos: gp_Ax22d
        Focal: float

        Returns
        -------
        gp_Pnt2d

        """
        return _ElCLib.elclib_ParabolaValue(*args)

    @staticmethod
    def Parameter(*args) -> "Standard_Real":
        r"""
        Computes the parameter value of the point p on the given curve. note: in its local coordinate system, the parametric equation of the curve is given by the following: - for the line l: p(u) = po + u*vo where po is the origin and vo the unit vector of its positioning axis. - for the circle c: x(u) = radius*cos(u), y(u) = radius*sin(u) - for the ellipse e: x(u) = majorradius*cos(u). y(u) = minorradius*sin(u) - for the hyperbola h: x(u) = majorradius*ch(u), y(u) = minorradius*sh(u) - for the parabola prb: x(u) = u**2 / (2*p) y(u) = u where p is the distance between the focus and the directrix. warning the point p must be on the curve. these functions are not protected, however, and if point p is not on the curve, an exception may be raised.

        Parameters
        ----------
        L: gp_Lin
        P: gp_Pnt

        Returns
        -------
        float
        Parametrization p (u) = l.location() + u * l.direction().

        Parameters
        ----------
        L: gp_Lin2d
        P: gp_Pnt2d

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        C: gp_Circ
        P: gp_Pnt

        Returns
        -------
        float
        Parametrization in the local coordinate system of the circle x (u) = radius * cos (u) y (u) = radius * sin (u).

        Parameters
        ----------
        C: gp_Circ2d
        P: gp_Pnt2d

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        E: gp_Elips
        P: gp_Pnt

        Returns
        -------
        float
        Parametrization in the local coordinate system of the ellipse x (u) = majorradius * cos (u) y (u) = minorradius * sin (u).

        Parameters
        ----------
        E: gp_Elips2d
        P: gp_Pnt2d

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        H: gp_Hypr
        P: gp_Pnt

        Returns
        -------
        float
        Parametrization in the local coordinate system of the hyperbola x (u) = majorradius * ch (u) y (u) = minorradius * sh (u).

        Parameters
        ----------
        H: gp_Hypr2d
        P: gp_Pnt2d

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        Prb: gp_Parab
        P: gp_Pnt

        Returns
        -------
        float
        Parametrization in the local coordinate system of the parabola y**2 = (2*p) * x where p is the distance between the focus and the directrix.

        Parameters
        ----------
        Prb: gp_Parab2d
        P: gp_Pnt2d

        Returns
        -------
        float

        """
        return _ElCLib.elclib_Parameter(*args)

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

        Parameters
        ----------
        Pos: gp_Ax2
        P: gp_Pnt2d

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        Pos: gp_Ax2
        V: gp_Vec2d

        Returns
        -------
        gp_Vec
        No available documentation.

        Parameters
        ----------
        Pos: gp_Ax2
        V: gp_Dir2d

        Returns
        -------
        gp_Dir
        No available documentation.

        Parameters
        ----------
        Pos: gp_Ax2
        A: gp_Ax2d

        Returns
        -------
        gp_Ax1
        No available documentation.

        Parameters
        ----------
        Pos: gp_Ax2
        A: gp_Ax22d

        Returns
        -------
        gp_Ax2
        No available documentation.

        Parameters
        ----------
        Pos: gp_Ax2
        L: gp_Lin2d

        Returns
        -------
        gp_Lin
        No available documentation.

        Parameters
        ----------
        Pos: gp_Ax2
        C: gp_Circ2d

        Returns
        -------
        gp_Circ
        No available documentation.

        Parameters
        ----------
        Pos: gp_Ax2
        E: gp_Elips2d

        Returns
        -------
        gp_Elips
        No available documentation.

        Parameters
        ----------
        Pos: gp_Ax2
        H: gp_Hypr2d

        Returns
        -------
        gp_Hypr
        These functions build a 3d geometric entity from a 2d geometric entity. the 'x axis' and the 'y axis' of the global coordinate system (i.e. 2d space) are lined up respectively with the 'x axis' and 'y axis' of the 3d coordinate system, pos.

        Parameters
        ----------
        Pos: gp_Ax2
        Prb: gp_Parab2d

        Returns
        -------
        gp_Parab

        """
        return _ElCLib.elclib_To3d(*args)

    @staticmethod
    def Value(*args) -> "gp_Pnt2d":
        r"""
        For elementary curves (lines, circles and conics) from the gp package, computes the point of parameter u. the result is either: - a gp_pnt point for a curve in 3d space, or - a gp_pnt2d point for a curve in 2d space.

        Parameters
        ----------
        U: float
        L: gp_Lin

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        C: gp_Circ

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        E: gp_Elips

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        H: gp_Hypr

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        Prb: gp_Parab

        Returns
        -------
        gp_Pnt
        No available documentation.

        Parameters
        ----------
        U: float
        L: gp_Lin2d

        Returns
        -------
        gp_Pnt2d
        No available documentation.

        Parameters
        ----------
        U: float
        C: gp_Circ2d

        Returns
        -------
        gp_Pnt2d
        No available documentation.

        Parameters
        ----------
        U: float
        E: gp_Elips2d

        Returns
        -------
        gp_Pnt2d
        No available documentation.

        Parameters
        ----------
        U: float
        H: gp_Hypr2d

        Returns
        -------
        gp_Pnt2d
        No available documentation.

        Parameters
        ----------
        U: float
        Prb: gp_Parab2d

        Returns
        -------
        gp_Pnt2d

        """
        return _ElCLib.elclib_Value(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _ElCLib.elclib_swiginit(self, _ElCLib.new_elclib())
    __swig_destroy__ = _ElCLib.delete_elclib

# Register elclib in _ElCLib:
_ElCLib.elclib_swigregister(elclib)

def elclib_AdjustPeriodic(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Adjust u1 and u2 in the parametric range ufirst ulast of a periodic curve, where ulast - ufirst is its period. to do this, this function: - sets u1 in the range [ ufirst, ulast ] by adding/removing the period to/from the value u1, then - sets u2 in the range [ u1, u1 + period ] by adding/removing the period to/from the value u2. precision is used to test the equalities.

    Parameters
    ----------
    UFirst: float
    ULast: float
    Precision: float

    Returns
    -------
    U1: float
    U2: float

    """
    return _ElCLib.elclib_AdjustPeriodic(*args)

def elclib_CircleD1(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    Radius: float
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    Radius: float
    P: gp_Pnt2d
    V1: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_CircleD1(*args)

def elclib_CircleD2(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    Radius: float
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    Radius: float
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_CircleD2(*args)

def elclib_CircleD3(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    Radius: float
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec
    V3: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    Radius: float
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d
    V3: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_CircleD3(*args)

def elclib_CircleDN(*args) -> "gp_Vec2d":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    Radius: float
    N: int

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    Radius: float
    N: int

    Returns
    -------
    gp_Vec2d

    """
    return _ElCLib.elclib_CircleDN(*args)

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

    Parameters
    ----------
    Pos: gp_Ax2
    P: gp_Pnt

    Returns
    -------
    float
    Pos is the axis of the circle parametrization in the local coordinate system of the circle x (u) = radius * cos (u) y (u) = radius * sin (u).

    Parameters
    ----------
    Pos: gp_Ax22d
    P: gp_Pnt2d

    Returns
    -------
    float

    """
    return _ElCLib.elclib_CircleParameter(*args)

def elclib_CircleValue(*args) -> "gp_Pnt2d":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    Radius: float

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    Radius: float

    Returns
    -------
    gp_Pnt2d

    """
    return _ElCLib.elclib_CircleValue(*args)

def elclib_D1(*args) -> "void":
    r"""
    For elementary curves (lines, circles and conics) from the gp package, computes: - the point p of parameter u, and - the first derivative vector v1 at this point. the results p and v1 are either: - a gp_pnt point and a gp_vec vector, for a curve in 3d space, or - a gp_pnt2d point and a gp_vec2d vector, for a curve in 2d space.

    Parameters
    ----------
    U: float
    L: gp_Lin
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    C: gp_Circ
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    E: gp_Elips
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    H: gp_Hypr
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    Prb: gp_Parab
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    L: gp_Lin2d
    P: gp_Pnt2d
    V1: gp_Vec2d

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

    Parameters
    ----------
    U: float
    C: gp_Circ2d
    P: gp_Pnt2d
    V1: gp_Vec2d

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

    Parameters
    ----------
    U: float
    E: gp_Elips2d
    P: gp_Pnt2d
    V1: gp_Vec2d

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

    Parameters
    ----------
    U: float
    H: gp_Hypr2d
    P: gp_Pnt2d
    V1: gp_Vec2d

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

    Parameters
    ----------
    U: float
    Prb: gp_Parab2d
    P: gp_Pnt2d
    V1: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_D1(*args)

def elclib_D2(*args) -> "void":
    r"""
    For elementary curves (circles and conics) from the gp package, computes: - the point p of parameter u, and - the first and second derivative vectors v1 and v2 at this point. the results, p, v1 and v2, are either: - a gp_pnt point and two gp_vec vectors, for a curve in 3d space, or - a gp_pnt2d point and two gp_vec2d vectors, for a curve in 2d space.

    Parameters
    ----------
    U: float
    C: gp_Circ
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec

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

    Parameters
    ----------
    U: float
    E: gp_Elips
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec

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

    Parameters
    ----------
    U: float
    H: gp_Hypr
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec

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

    Parameters
    ----------
    U: float
    Prb: gp_Parab
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec

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

    Parameters
    ----------
    U: float
    C: gp_Circ2d
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d

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

    Parameters
    ----------
    U: float
    E: gp_Elips2d
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d

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

    Parameters
    ----------
    U: float
    H: gp_Hypr2d
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d

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

    Parameters
    ----------
    U: float
    Prb: gp_Parab2d
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_D2(*args)

def elclib_D3(*args) -> "void":
    r"""
    For elementary curves (circles, ellipses and hyperbolae) from the gp package, computes: - the point p of parameter u, and - the first, second and third derivative vectors v1, v2 and v3 at this point. the results, p, v1, v2 and v3, are either: - a gp_pnt point and three gp_vec vectors, for a curve in 3d space, or - a gp_pnt2d point and three gp_vec2d vectors, for a curve in 2d space.

    Parameters
    ----------
    U: float
    C: gp_Circ
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec
    V3: gp_Vec

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

    Parameters
    ----------
    U: float
    E: gp_Elips
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec
    V3: gp_Vec

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

    Parameters
    ----------
    U: float
    H: gp_Hypr
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec
    V3: gp_Vec

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

    Parameters
    ----------
    U: float
    C: gp_Circ2d
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d
    V3: gp_Vec2d

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

    Parameters
    ----------
    U: float
    E: gp_Elips2d
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d
    V3: gp_Vec2d

    Returns
    -------
    None
    In the following functions n is the order of derivation and should be greater than 0.

    Parameters
    ----------
    U: float
    H: gp_Hypr2d
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d
    V3: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_D3(*args)

def elclib_DN(*args) -> "gp_Vec2d":
    r"""
    For elementary curves (lines, circles and conics) from the gp package, computes the vector corresponding to the nth derivative at the point of parameter u. the result is either: - a gp_vec vector for a curve in 3d space, or - a gp_vec2d vector for a curve in 2d space. in the following functions n is the order of derivation and should be greater than 0.

    Parameters
    ----------
    U: float
    L: gp_Lin
    N: int

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    U: float
    C: gp_Circ
    N: int

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    U: float
    E: gp_Elips
    N: int

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    U: float
    H: gp_Hypr
    N: int

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    U: float
    Prb: gp_Parab
    N: int

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    U: float
    L: gp_Lin2d
    N: int

    Returns
    -------
    gp_Vec2d
    No available documentation.

    Parameters
    ----------
    U: float
    C: gp_Circ2d
    N: int

    Returns
    -------
    gp_Vec2d
    No available documentation.

    Parameters
    ----------
    U: float
    E: gp_Elips2d
    N: int

    Returns
    -------
    gp_Vec2d
    No available documentation.

    Parameters
    ----------
    U: float
    H: gp_Hypr2d
    N: int

    Returns
    -------
    gp_Vec2d
    No available documentation.

    Parameters
    ----------
    U: float
    Prb: gp_Parab2d
    N: int

    Returns
    -------
    gp_Vec2d

    """
    return _ElCLib.elclib_DN(*args)

def elclib_EllipseD1(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt2d
    V1: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_EllipseD1(*args)

def elclib_EllipseD2(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_EllipseD2(*args)

def elclib_EllipseD3(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec
    V3: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d
    V3: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_EllipseD3(*args)

def elclib_EllipseDN(*args) -> "gp_Vec2d":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    N: int

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    N: int

    Returns
    -------
    gp_Vec2d

    """
    return _ElCLib.elclib_EllipseDN(*args)

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

    Parameters
    ----------
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt

    Returns
    -------
    float
    Pos is the axis of the ellipse parametrization in the local coordinate system of the ellipse x (u) = majorradius * cos (u) y (u) = minorradius * sin (u).

    Parameters
    ----------
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt2d

    Returns
    -------
    float

    """
    return _ElCLib.elclib_EllipseParameter(*args)

def elclib_EllipseValue(*args) -> "gp_Pnt2d":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float

    Returns
    -------
    gp_Pnt2d

    """
    return _ElCLib.elclib_EllipseValue(*args)

def elclib_HyperbolaD1(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt2d
    V1: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_HyperbolaD1(*args)

def elclib_HyperbolaD2(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_HyperbolaD2(*args)

def elclib_HyperbolaD3(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec
    V3: gp_Vec

    Returns
    -------
    None
    In the following functions n is the order of derivation and should be greater than 0.

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d
    V3: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_HyperbolaD3(*args)

def elclib_HyperbolaDN(*args) -> "gp_Vec2d":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    N: int

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    N: int

    Returns
    -------
    gp_Vec2d

    """
    return _ElCLib.elclib_HyperbolaDN(*args)

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

    Parameters
    ----------
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt

    Returns
    -------
    float
    Pos is the axis of the hyperbola parametrization in the local coordinate system of the hyperbola x (u) = majorradius * ch (u) y (u) = minorradius * sh (u).

    Parameters
    ----------
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt2d

    Returns
    -------
    float

    """
    return _ElCLib.elclib_HyperbolaParameter(*args)

def elclib_HyperbolaValue(*args) -> "gp_Pnt2d":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    MajorRadius: float
    MinorRadius: float

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    MajorRadius: float
    MinorRadius: float

    Returns
    -------
    gp_Pnt2d

    """
    return _ElCLib.elclib_HyperbolaValue(*args)

def elclib_InPeriod(*args) -> "Standard_Real":
    r"""
    Return a value in the range <ufirst, ulast> by adding or removing the period <ulast - ufirst> to <u>. attention!!! it is expected but not checked that (ulast > ufirst).

    Parameters
    ----------
    U: float
    UFirst: float
    ULast: float

    Returns
    -------
    float

    """
    return _ElCLib.elclib_InPeriod(*args)

def elclib_LineD1(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax1
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax2d
    P: gp_Pnt2d
    V1: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_LineD1(*args)

def elclib_LineDN(*args) -> "gp_Vec2d":
    r"""
    In the following functions n is the order of derivation and should be greater than 0.

    Parameters
    ----------
    U: float
    Pos: gp_Ax1
    N: int

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2d
    N: int

    Returns
    -------
    gp_Vec2d

    """
    return _ElCLib.elclib_LineDN(*args)

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

    Parameters
    ----------
    Pos: gp_Ax1
    P: gp_Pnt

    Returns
    -------
    float
    Parametrization p (u) = l.location() + u * l.direction().

    Parameters
    ----------
    Pos: gp_Ax2d
    P: gp_Pnt2d

    Returns
    -------
    float

    """
    return _ElCLib.elclib_LineParameter(*args)

def elclib_LineValue(*args) -> "gp_Pnt2d":
    r"""
    Curve evaluation the following basis functions compute the derivatives on elementary curves defined by their geometric characteristics. these functions can be called without constructing a conic from package gp. they are called by the previous functions. example : a circle is defined by its position and its radius.

    Parameters
    ----------
    U: float
    Pos: gp_Ax1

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2d

    Returns
    -------
    gp_Pnt2d

    """
    return _ElCLib.elclib_LineValue(*args)

def elclib_ParabolaD1(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    Focal: float
    P: gp_Pnt
    V1: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    Focal: float
    P: gp_Pnt2d
    V1: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_ParabolaD1(*args)

def elclib_ParabolaD2(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    Focal: float
    P: gp_Pnt
    V1: gp_Vec
    V2: gp_Vec

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

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    Focal: float
    P: gp_Pnt2d
    V1: gp_Vec2d
    V2: gp_Vec2d

    Returns
    -------
    None

    """
    return _ElCLib.elclib_ParabolaD2(*args)

def elclib_ParabolaDN(*args) -> "gp_Vec2d":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    Focal: float
    N: int

    Returns
    -------
    gp_Vec
    The following functions compute the parametric value corresponding to a given point on a elementary curve. the point should be on the curve.

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    Focal: float
    N: int

    Returns
    -------
    gp_Vec2d

    """
    return _ElCLib.elclib_ParabolaDN(*args)

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

    Parameters
    ----------
    Pos: gp_Ax2
    P: gp_Pnt

    Returns
    -------
    float
    Pos is the mirror axis of the parabola parametrization in the local coordinate system of the parabola y**2 = (2*p) * x where p is the distance between the focus and the directrix. the following functions build a 3d curve from a 2d curve at a given position defined with an ax2.

    Parameters
    ----------
    Pos: gp_Ax22d
    P: gp_Pnt2d

    Returns
    -------
    float

    """
    return _ElCLib.elclib_ParabolaParameter(*args)

def elclib_ParabolaValue(*args) -> "gp_Pnt2d":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax2
    Focal: float

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    Pos: gp_Ax22d
    Focal: float

    Returns
    -------
    gp_Pnt2d

    """
    return _ElCLib.elclib_ParabolaValue(*args)

def elclib_Parameter(*args) -> "Standard_Real":
    r"""
    Computes the parameter value of the point p on the given curve. note: in its local coordinate system, the parametric equation of the curve is given by the following: - for the line l: p(u) = po + u*vo where po is the origin and vo the unit vector of its positioning axis. - for the circle c: x(u) = radius*cos(u), y(u) = radius*sin(u) - for the ellipse e: x(u) = majorradius*cos(u). y(u) = minorradius*sin(u) - for the hyperbola h: x(u) = majorradius*ch(u), y(u) = minorradius*sh(u) - for the parabola prb: x(u) = u**2 / (2*p) y(u) = u where p is the distance between the focus and the directrix. warning the point p must be on the curve. these functions are not protected, however, and if point p is not on the curve, an exception may be raised.

    Parameters
    ----------
    L: gp_Lin
    P: gp_Pnt

    Returns
    -------
    float
    Parametrization p (u) = l.location() + u * l.direction().

    Parameters
    ----------
    L: gp_Lin2d
    P: gp_Pnt2d

    Returns
    -------
    float
    No available documentation.

    Parameters
    ----------
    C: gp_Circ
    P: gp_Pnt

    Returns
    -------
    float
    Parametrization in the local coordinate system of the circle x (u) = radius * cos (u) y (u) = radius * sin (u).

    Parameters
    ----------
    C: gp_Circ2d
    P: gp_Pnt2d

    Returns
    -------
    float
    No available documentation.

    Parameters
    ----------
    E: gp_Elips
    P: gp_Pnt

    Returns
    -------
    float
    Parametrization in the local coordinate system of the ellipse x (u) = majorradius * cos (u) y (u) = minorradius * sin (u).

    Parameters
    ----------
    E: gp_Elips2d
    P: gp_Pnt2d

    Returns
    -------
    float
    No available documentation.

    Parameters
    ----------
    H: gp_Hypr
    P: gp_Pnt

    Returns
    -------
    float
    Parametrization in the local coordinate system of the hyperbola x (u) = majorradius * ch (u) y (u) = minorradius * sh (u).

    Parameters
    ----------
    H: gp_Hypr2d
    P: gp_Pnt2d

    Returns
    -------
    float
    No available documentation.

    Parameters
    ----------
    Prb: gp_Parab
    P: gp_Pnt

    Returns
    -------
    float
    Parametrization in the local coordinate system of the parabola y**2 = (2*p) * x where p is the distance between the focus and the directrix.

    Parameters
    ----------
    Prb: gp_Parab2d
    P: gp_Pnt2d

    Returns
    -------
    float

    """
    return _ElCLib.elclib_Parameter(*args)

def elclib_To3d(*args) -> "gp_Parab":
    r"""
    No available documentation.

    Parameters
    ----------
    Pos: gp_Ax2
    P: gp_Pnt2d

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    Pos: gp_Ax2
    V: gp_Vec2d

    Returns
    -------
    gp_Vec
    No available documentation.

    Parameters
    ----------
    Pos: gp_Ax2
    V: gp_Dir2d

    Returns
    -------
    gp_Dir
    No available documentation.

    Parameters
    ----------
    Pos: gp_Ax2
    A: gp_Ax2d

    Returns
    -------
    gp_Ax1
    No available documentation.

    Parameters
    ----------
    Pos: gp_Ax2
    A: gp_Ax22d

    Returns
    -------
    gp_Ax2
    No available documentation.

    Parameters
    ----------
    Pos: gp_Ax2
    L: gp_Lin2d

    Returns
    -------
    gp_Lin
    No available documentation.

    Parameters
    ----------
    Pos: gp_Ax2
    C: gp_Circ2d

    Returns
    -------
    gp_Circ
    No available documentation.

    Parameters
    ----------
    Pos: gp_Ax2
    E: gp_Elips2d

    Returns
    -------
    gp_Elips
    No available documentation.

    Parameters
    ----------
    Pos: gp_Ax2
    H: gp_Hypr2d

    Returns
    -------
    gp_Hypr
    These functions build a 3d geometric entity from a 2d geometric entity. the 'x axis' and the 'y axis' of the global coordinate system (i.e. 2d space) are lined up respectively with the 'x axis' and 'y axis' of the 3d coordinate system, pos.

    Parameters
    ----------
    Pos: gp_Ax2
    Prb: gp_Parab2d

    Returns
    -------
    gp_Parab

    """
    return _ElCLib.elclib_To3d(*args)

def elclib_Value(*args) -> "gp_Pnt2d":
    r"""
    For elementary curves (lines, circles and conics) from the gp package, computes the point of parameter u. the result is either: - a gp_pnt point for a curve in 3d space, or - a gp_pnt2d point for a curve in 2d space.

    Parameters
    ----------
    U: float
    L: gp_Lin

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    C: gp_Circ

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    E: gp_Elips

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    H: gp_Hypr

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    Prb: gp_Parab

    Returns
    -------
    gp_Pnt
    No available documentation.

    Parameters
    ----------
    U: float
    L: gp_Lin2d

    Returns
    -------
    gp_Pnt2d
    No available documentation.

    Parameters
    ----------
    U: float
    C: gp_Circ2d

    Returns
    -------
    gp_Pnt2d
    No available documentation.

    Parameters
    ----------
    U: float
    E: gp_Elips2d

    Returns
    -------
    gp_Pnt2d
    No available documentation.

    Parameters
    ----------
    U: float
    H: gp_Hypr2d

    Returns
    -------
    gp_Pnt2d
    No available documentation.

    Parameters
    ----------
    U: float
    Prb: gp_Parab2d

    Returns
    -------
    gp_Pnt2d

    """
    return _ElCLib.elclib_Value(*args)





