# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.1.1
#
# 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.7.0/refman/html/package_elclib.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _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 == "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__ = _ElCLib.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args):
        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, method_name, class_name):
    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):
        r"""

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

        Return
        -------
        U1: float
        U2: float

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

        """
        return _ElCLib.elclib_AdjustPeriodic(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_CircleD1(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_CircleD2(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_CircleD3(*args)

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec2d

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

        """
        return _ElCLib.elclib_CircleDN(*args)

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

        Description
        -----------
        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).

        """
        return _ElCLib.elclib_CircleParameter(*args)

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt2d

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

        """
        return _ElCLib.elclib_CircleValue(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        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
        C: gp_Circ
        P: gp_Pnt
        V1: gp_Vec

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_D1(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        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
        E: gp_Elips
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_D2(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        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
        E: gp_Elips
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_D3(*args)

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

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

        Return
        -------
        gp_Vec

        Description
        -----------
        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
        C: gp_Circ
        N: int

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec2d

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

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

        Return
        -------
        gp_Vec2d

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

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

        Return
        -------
        gp_Vec2d

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

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

        Return
        -------
        gp_Vec2d

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

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

        Return
        -------
        gp_Vec2d

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

        """
        return _ElCLib.elclib_DN(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_EllipseD1(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_EllipseD2(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_EllipseD3(*args)

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec2d

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

        """
        return _ElCLib.elclib_EllipseDN(*args)

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

        Description
        -----------
        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).

        """
        return _ElCLib.elclib_EllipseParameter(*args)

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt2d

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

        """
        return _ElCLib.elclib_EllipseValue(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_HyperbolaD1(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_HyperbolaD2(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_HyperbolaD3(*args)

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec2d

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

        """
        return _ElCLib.elclib_HyperbolaDN(*args)

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

        Description
        -----------
        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).

        """
        return _ElCLib.elclib_HyperbolaParameter(*args)

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt2d

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

        """
        return _ElCLib.elclib_HyperbolaValue(*args)

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

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

        Return
        -------
        float

        Description
        -----------
        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).

        """
        return _ElCLib.elclib_InPeriod(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_LineD1(*args)

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec2d

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

        """
        return _ElCLib.elclib_LineDN(*args)

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

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

        """
        return _ElCLib.elclib_LineParameter(*args)

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

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

        Return
        -------
        gp_Pnt

        Description
        -----------
        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_Ax2d

        Return
        -------
        gp_Pnt2d

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

        """
        return _ElCLib.elclib_LineValue(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_ParabolaD1(*args)

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElCLib.elclib_ParabolaD2(*args)

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec2d

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

        """
        return _ElCLib.elclib_ParabolaDN(*args)

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

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

        """
        return _ElCLib.elclib_ParabolaParameter(*args)

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt2d

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

        """
        return _ElCLib.elclib_ParabolaValue(*args)

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

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

        Return
        -------
        float

        Description
        -----------
        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_Lin2d
        P: gp_Pnt2d

        Return
        -------
        float

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

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

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

        Return
        -------
        float

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

        """
        return _ElCLib.elclib_Parameter(*args)

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Dir

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

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

        Return
        -------
        gp_Ax1

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

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

        Return
        -------
        gp_Ax2

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

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

        Return
        -------
        gp_Lin

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

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

        Return
        -------
        gp_Circ

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

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

        Return
        -------
        gp_Elips

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

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

        Return
        -------
        gp_Hypr

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

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

        Return
        -------
        gp_Parab

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

        """
        return _ElCLib.elclib_To3d(*args)

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

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

        Return
        -------
        gp_Pnt

        Description
        -----------
        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
        C: gp_Circ

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt2d

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

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

        Return
        -------
        gp_Pnt2d

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

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

        Return
        -------
        gp_Pnt2d

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

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

        Return
        -------
        gp_Pnt2d

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

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

        Return
        -------
        gp_Pnt2d

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

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



@deprecated
def elclib_AdjustPeriodic(*args):
	return elclib.AdjustPeriodic(*args)

@deprecated
def elclib_CircleD1(*args):
	return elclib.CircleD1(*args)

@deprecated
def elclib_CircleD1(*args):
	return elclib.CircleD1(*args)

@deprecated
def elclib_CircleD2(*args):
	return elclib.CircleD2(*args)

@deprecated
def elclib_CircleD2(*args):
	return elclib.CircleD2(*args)

@deprecated
def elclib_CircleD3(*args):
	return elclib.CircleD3(*args)

@deprecated
def elclib_CircleD3(*args):
	return elclib.CircleD3(*args)

@deprecated
def elclib_CircleDN(*args):
	return elclib.CircleDN(*args)

@deprecated
def elclib_CircleDN(*args):
	return elclib.CircleDN(*args)

@deprecated
def elclib_CircleParameter(*args):
	return elclib.CircleParameter(*args)

@deprecated
def elclib_CircleParameter(*args):
	return elclib.CircleParameter(*args)

@deprecated
def elclib_CircleValue(*args):
	return elclib.CircleValue(*args)

@deprecated
def elclib_CircleValue(*args):
	return elclib.CircleValue(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D1(*args):
	return elclib.D1(*args)

@deprecated
def elclib_D2(*args):
	return elclib.D2(*args)

@deprecated
def elclib_D2(*args):
	return elclib.D2(*args)

@deprecated
def elclib_D2(*args):
	return elclib.D2(*args)

@deprecated
def elclib_D2(*args):
	return elclib.D2(*args)

@deprecated
def elclib_D2(*args):
	return elclib.D2(*args)

@deprecated
def elclib_D2(*args):
	return elclib.D2(*args)

@deprecated
def elclib_D2(*args):
	return elclib.D2(*args)

@deprecated
def elclib_D2(*args):
	return elclib.D2(*args)

@deprecated
def elclib_D3(*args):
	return elclib.D3(*args)

@deprecated
def elclib_D3(*args):
	return elclib.D3(*args)

@deprecated
def elclib_D3(*args):
	return elclib.D3(*args)

@deprecated
def elclib_D3(*args):
	return elclib.D3(*args)

@deprecated
def elclib_D3(*args):
	return elclib.D3(*args)

@deprecated
def elclib_D3(*args):
	return elclib.D3(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_DN(*args):
	return elclib.DN(*args)

@deprecated
def elclib_EllipseD1(*args):
	return elclib.EllipseD1(*args)

@deprecated
def elclib_EllipseD1(*args):
	return elclib.EllipseD1(*args)

@deprecated
def elclib_EllipseD2(*args):
	return elclib.EllipseD2(*args)

@deprecated
def elclib_EllipseD2(*args):
	return elclib.EllipseD2(*args)

@deprecated
def elclib_EllipseD3(*args):
	return elclib.EllipseD3(*args)

@deprecated
def elclib_EllipseD3(*args):
	return elclib.EllipseD3(*args)

@deprecated
def elclib_EllipseDN(*args):
	return elclib.EllipseDN(*args)

@deprecated
def elclib_EllipseDN(*args):
	return elclib.EllipseDN(*args)

@deprecated
def elclib_EllipseParameter(*args):
	return elclib.EllipseParameter(*args)

@deprecated
def elclib_EllipseParameter(*args):
	return elclib.EllipseParameter(*args)

@deprecated
def elclib_EllipseValue(*args):
	return elclib.EllipseValue(*args)

@deprecated
def elclib_EllipseValue(*args):
	return elclib.EllipseValue(*args)

@deprecated
def elclib_HyperbolaD1(*args):
	return elclib.HyperbolaD1(*args)

@deprecated
def elclib_HyperbolaD1(*args):
	return elclib.HyperbolaD1(*args)

@deprecated
def elclib_HyperbolaD2(*args):
	return elclib.HyperbolaD2(*args)

@deprecated
def elclib_HyperbolaD2(*args):
	return elclib.HyperbolaD2(*args)

@deprecated
def elclib_HyperbolaD3(*args):
	return elclib.HyperbolaD3(*args)

@deprecated
def elclib_HyperbolaD3(*args):
	return elclib.HyperbolaD3(*args)

@deprecated
def elclib_HyperbolaDN(*args):
	return elclib.HyperbolaDN(*args)

@deprecated
def elclib_HyperbolaDN(*args):
	return elclib.HyperbolaDN(*args)

@deprecated
def elclib_HyperbolaParameter(*args):
	return elclib.HyperbolaParameter(*args)

@deprecated
def elclib_HyperbolaParameter(*args):
	return elclib.HyperbolaParameter(*args)

@deprecated
def elclib_HyperbolaValue(*args):
	return elclib.HyperbolaValue(*args)

@deprecated
def elclib_HyperbolaValue(*args):
	return elclib.HyperbolaValue(*args)

@deprecated
def elclib_InPeriod(*args):
	return elclib.InPeriod(*args)

@deprecated
def elclib_LineD1(*args):
	return elclib.LineD1(*args)

@deprecated
def elclib_LineD1(*args):
	return elclib.LineD1(*args)

@deprecated
def elclib_LineDN(*args):
	return elclib.LineDN(*args)

@deprecated
def elclib_LineDN(*args):
	return elclib.LineDN(*args)

@deprecated
def elclib_LineParameter(*args):
	return elclib.LineParameter(*args)

@deprecated
def elclib_LineParameter(*args):
	return elclib.LineParameter(*args)

@deprecated
def elclib_LineValue(*args):
	return elclib.LineValue(*args)

@deprecated
def elclib_LineValue(*args):
	return elclib.LineValue(*args)

@deprecated
def elclib_ParabolaD1(*args):
	return elclib.ParabolaD1(*args)

@deprecated
def elclib_ParabolaD1(*args):
	return elclib.ParabolaD1(*args)

@deprecated
def elclib_ParabolaD2(*args):
	return elclib.ParabolaD2(*args)

@deprecated
def elclib_ParabolaD2(*args):
	return elclib.ParabolaD2(*args)

@deprecated
def elclib_ParabolaDN(*args):
	return elclib.ParabolaDN(*args)

@deprecated
def elclib_ParabolaDN(*args):
	return elclib.ParabolaDN(*args)

@deprecated
def elclib_ParabolaParameter(*args):
	return elclib.ParabolaParameter(*args)

@deprecated
def elclib_ParabolaParameter(*args):
	return elclib.ParabolaParameter(*args)

@deprecated
def elclib_ParabolaValue(*args):
	return elclib.ParabolaValue(*args)

@deprecated
def elclib_ParabolaValue(*args):
	return elclib.ParabolaValue(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_Parameter(*args):
	return elclib.Parameter(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_To3d(*args):
	return elclib.To3d(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)

@deprecated
def elclib_Value(*args):
	return elclib.Value(*args)



