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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _ElSLib:
_ElSLib.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 _ElSLib.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 elslib(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        SAngle: float
        P: gp_Pnt

        Returns
        -------
        None

        """
        return _ElSLib.elslib_ConeD0(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        SAngle: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_ConeD1(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        SAngle: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_ConeD2(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        SAngle: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec
        Vuuu: gp_Vec
        Vvvv: gp_Vec
        Vuuv: gp_Vec
        Vuvv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_ConeD3(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        SAngle: float
        Nu: int
        Nv: int

        Returns
        -------
        gp_Vec

        """
        return _ElSLib.elslib_ConeDN(*args)

    @staticmethod
    def ConeParameters(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Parametrization p (u, v) = location + v * zdirection + (radius + v * tan (semiangle)) * (cos(u) * xdirection + sin(u) * ydirection).

        Parameters
        ----------
        Pos: gp_Ax3
        Radius: float
        SAngle: float
        P: gp_Pnt

        Returns
        -------
        U: float
        V: float

        """
        return _ElSLib.elslib_ConeParameters(*args)

    @staticmethod
    def ConeUIso(*args) -> "gp_Lin":
        r"""
        Compute the u isoparametric gp_lin of the cone.

        Parameters
        ----------
        Pos: gp_Ax3
        Radius: float
        SAngle: float
        U: float

        Returns
        -------
        gp_Lin

        """
        return _ElSLib.elslib_ConeUIso(*args)

    @staticmethod
    def ConeVIso(*args) -> "gp_Circ":
        r"""
        Compute the v isoparametric gp_circ of the cone.

        Parameters
        ----------
        Pos: gp_Ax3
        Radius: float
        SAngle: float
        V: float

        Returns
        -------
        gp_Circ

        """
        return _ElSLib.elslib_ConeVIso(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        SAngle: float

        Returns
        -------
        gp_Pnt

        """
        return _ElSLib.elslib_ConeValue(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt

        Returns
        -------
        None

        """
        return _ElSLib.elslib_CylinderD0(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_CylinderD1(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_CylinderD2(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec
        Vuuu: gp_Vec
        Vvvv: gp_Vec
        Vuuv: gp_Vec
        Vuvv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_CylinderD3(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        Nu: int
        Nv: int

        Returns
        -------
        gp_Vec

        """
        return _ElSLib.elslib_CylinderDN(*args)

    @staticmethod
    def CylinderParameters(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Parametrization p (u, v) = location + v * zdirection + radius * (cos(u) * xdirection + sin (u) * ydirection).

        Parameters
        ----------
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt

        Returns
        -------
        U: float
        V: float

        """
        return _ElSLib.elslib_CylinderParameters(*args)

    @staticmethod
    def CylinderUIso(*args) -> "gp_Lin":
        r"""
        Compute the u isoparametric gp_lin of the cylinder.

        Parameters
        ----------
        Pos: gp_Ax3
        Radius: float
        U: float

        Returns
        -------
        gp_Lin

        """
        return _ElSLib.elslib_CylinderUIso(*args)

    @staticmethod
    def CylinderVIso(*args) -> "gp_Circ":
        r"""
        Compute the v isoparametric gp_circ of the cylinder.

        Parameters
        ----------
        Pos: gp_Ax3
        Radius: float
        V: float

        Returns
        -------
        gp_Circ

        """
        return _ElSLib.elslib_CylinderVIso(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float

        Returns
        -------
        gp_Pnt

        """
        return _ElSLib.elslib_CylinderValue(*args)

    @staticmethod
    def D0(*args) -> "void":
        r"""
        For elementary surfaces from the gp package (planes, cones, cylinders, spheres and tori), computes the point p of parameters (u, v).inline.

        Parameters
        ----------
        U: float
        V: float
        Pl: gp_Pln
        P: gp_Pnt

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cone
        P: gp_Pnt

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cylinder
        P: gp_Pnt

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

        Parameters
        ----------
        U: float
        V: float
        S: gp_Sphere
        P: gp_Pnt

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

        Parameters
        ----------
        U: float
        V: float
        T: gp_Torus
        P: gp_Pnt

        Returns
        -------
        None

        """
        return _ElSLib.elslib_D0(*args)

    @staticmethod
    def D1(*args) -> "void":
        r"""
        For elementary surfaces from the gp package (planes, cones, cylinders, spheres and tori), computes: - the point p of parameters (u, v), and - the first derivative vectors vu and vv at this point in the u and v parametric directions respectively.

        Parameters
        ----------
        U: float
        V: float
        Pl: gp_Pln
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cone
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cylinder
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

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

        Parameters
        ----------
        U: float
        V: float
        S: gp_Sphere
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

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

        Parameters
        ----------
        U: float
        V: float
        T: gp_Torus
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_D1(*args)

    @staticmethod
    def D2(*args) -> "void":
        r"""
        For elementary surfaces from the gp package (cones, cylinders, spheres and tori), computes: - the point p of parameters (u, v), and - the first derivative vectors vu and vv at this point in the u and v parametric directions respectively, and - the second derivative vectors vuu, vvv and vuv at this point.

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cone
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cylinder
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec

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

        Parameters
        ----------
        U: float
        V: float
        S: gp_Sphere
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec

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

        Parameters
        ----------
        U: float
        V: float
        T: gp_Torus
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_D2(*args)

    @staticmethod
    def D3(*args) -> "void":
        r"""
        For elementary surfaces from the gp package (cones, cylinders, spheres and tori), computes: - the point p of parameters (u,v), and - the first derivative vectors vu and vv at this point in the u and v parametric directions respectively, and - the second derivative vectors vuu, vvv and vuv at this point, and - the third derivative vectors vuuu, vvvv, vuuv and vuvv at this point.

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cone
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec
        Vuuu: gp_Vec
        Vvvv: gp_Vec
        Vuuv: gp_Vec
        Vuvv: gp_Vec

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cylinder
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec
        Vuuu: gp_Vec
        Vvvv: gp_Vec
        Vuuv: gp_Vec
        Vuvv: gp_Vec

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

        Parameters
        ----------
        U: float
        V: float
        S: gp_Sphere
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec
        Vuuu: gp_Vec
        Vvvv: gp_Vec
        Vuuv: gp_Vec
        Vuvv: gp_Vec

        Returns
        -------
        None
        Surface evaluation the following functions compute the point and the derivatives on elementary surfaces defined with their geometric characterisitics. you don't need to create the surface to use these functions. these functions are called by the previous ones. example : a cylinder is defined with its position and its radius.

        Parameters
        ----------
        U: float
        V: float
        T: gp_Torus
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec
        Vuuu: gp_Vec
        Vvvv: gp_Vec
        Vuuv: gp_Vec
        Vuvv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_D3(*args)

    @staticmethod
    def DN(*args) -> "gp_Vec":
        r"""
        For elementary surfaces from the gp package (planes, cones, cylinders, spheres and tori), computes the derivative vector of order nu and nv in the u and v parametric directions respectively, at the point of parameters (u, v).

        Parameters
        ----------
        U: float
        V: float
        Pl: gp_Pln
        Nu: int
        Nv: int

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cone
        Nu: int
        Nv: int

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cylinder
        Nu: int
        Nv: int

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

        Parameters
        ----------
        U: float
        V: float
        S: gp_Sphere
        Nu: int
        Nv: int

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

        Parameters
        ----------
        U: float
        V: float
        T: gp_Torus
        Nu: int
        Nv: int

        Returns
        -------
        gp_Vec

        """
        return _ElSLib.elslib_DN(*args)

    @staticmethod
    def Parameters(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Parametrization p (u, v) = pl.location() + u * pl.xdirection() + v * pl.ydirection().

        Parameters
        ----------
        Pl: gp_Pln
        P: gp_Pnt

        Returns
        -------
        U: float
        V: float
        Parametrization p (u, v) = location + v * zdirection + radius * (cos(u) * xdirection + sin (u) * ydirection).

        Parameters
        ----------
        C: gp_Cylinder
        P: gp_Pnt

        Returns
        -------
        U: float
        V: float
        Parametrization p (u, v) = location + v * zdirection + (radius + v * tan (semiangle)) * (cos(u) * xdirection + sin(u) * ydirection).

        Parameters
        ----------
        C: gp_Cone
        P: gp_Pnt

        Returns
        -------
        U: float
        V: float
        Parametrization p (u, v) = location + radius * cos (v) * (cos (u) * xdirection + sin (u) * ydirection) + radius * sin (v) * zdirection.

        Parameters
        ----------
        S: gp_Sphere
        P: gp_Pnt

        Returns
        -------
        U: float
        V: float
        Parametrization p (u, v) = location + (majorradius + minorradius * cos(u)) * (cos(v) * xdirection - sin(v) * ydirection) + minorradius * sin(u) * zdirection.

        Parameters
        ----------
        T: gp_Torus
        P: gp_Pnt

        Returns
        -------
        U: float
        V: float

        """
        return _ElSLib.elslib_Parameters(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        P: gp_Pnt

        Returns
        -------
        None

        """
        return _ElSLib.elslib_PlaneD0(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_PlaneD1(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Nu: int
        Nv: int

        Returns
        -------
        gp_Vec

        """
        return _ElSLib.elslib_PlaneDN(*args)

    @staticmethod
    def PlaneParameters(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Parametrization p (u, v) = pl.location() + u * pl.xdirection() + v * pl.ydirection().

        Parameters
        ----------
        Pos: gp_Ax3
        P: gp_Pnt

        Returns
        -------
        U: float
        V: float

        """
        return _ElSLib.elslib_PlaneParameters(*args)

    @staticmethod
    def PlaneUIso(*args) -> "gp_Lin":
        r"""
        Compute the u isoparametric gp_lin of the plane.

        Parameters
        ----------
        Pos: gp_Ax3
        U: float

        Returns
        -------
        gp_Lin

        """
        return _ElSLib.elslib_PlaneUIso(*args)

    @staticmethod
    def PlaneVIso(*args) -> "gp_Lin":
        r"""
        Compute the v isoparametric gp_lin of the plane.

        Parameters
        ----------
        Pos: gp_Ax3
        V: float

        Returns
        -------
        gp_Lin

        """
        return _ElSLib.elslib_PlaneVIso(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3

        Returns
        -------
        gp_Pnt

        """
        return _ElSLib.elslib_PlaneValue(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt

        Returns
        -------
        None

        """
        return _ElSLib.elslib_SphereD0(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_SphereD1(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_SphereD2(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec
        Vuuu: gp_Vec
        Vvvv: gp_Vec
        Vuuv: gp_Vec
        Vuvv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_SphereD3(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float
        Nu: int
        Nv: int

        Returns
        -------
        gp_Vec

        """
        return _ElSLib.elslib_SphereDN(*args)

    @staticmethod
    def SphereParameters(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Parametrization p (u, v) = location + radius * cos (v) * (cos (u) * xdirection + sin (u) * ydirection) + radius * sin (v) * zdirection.

        Parameters
        ----------
        Pos: gp_Ax3
        Radius: float
        P: gp_Pnt

        Returns
        -------
        U: float
        V: float

        """
        return _ElSLib.elslib_SphereParameters(*args)

    @staticmethod
    def SphereUIso(*args) -> "gp_Circ":
        r"""
        Compute the u isoparametric gp_circ of the sphere, (the meridian is not trimmed).

        Parameters
        ----------
        Pos: gp_Ax3
        Radius: float
        U: float

        Returns
        -------
        gp_Circ

        """
        return _ElSLib.elslib_SphereUIso(*args)

    @staticmethod
    def SphereVIso(*args) -> "gp_Circ":
        r"""
        Compute the v isoparametric gp_circ of the sphere, (the meridian is not trimmed).

        Parameters
        ----------
        Pos: gp_Ax3
        Radius: float
        V: float

        Returns
        -------
        gp_Circ

        """
        return _ElSLib.elslib_SphereVIso(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        Radius: float

        Returns
        -------
        gp_Pnt

        """
        return _ElSLib.elslib_SphereValue(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt

        Returns
        -------
        None

        """
        return _ElSLib.elslib_TorusD0(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_TorusD1(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_TorusD2(*args)

    @staticmethod
    def TorusD3(*args) -> "void":
        r"""
        The following functions compute the parametric values corresponding to a given point on a elementary surface. the point should be on the surface.

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        MajorRadius: float
        MinorRadius: float
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec
        Vuuu: gp_Vec
        Vvvv: gp_Vec
        Vuuv: gp_Vec
        Vuvv: gp_Vec

        Returns
        -------
        None

        """
        return _ElSLib.elslib_TorusD3(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        MajorRadius: float
        MinorRadius: float
        Nu: int
        Nv: int

        Returns
        -------
        gp_Vec

        """
        return _ElSLib.elslib_TorusDN(*args)

    @staticmethod
    def TorusParameters(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Parametrization p (u, v) = location + (majorradius + minorradius * cos(u)) * (cos(v) * xdirection - sin(v) * ydirection) + minorradius * sin(u) * zdirection.

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

        Returns
        -------
        U: float
        V: float

        """
        return _ElSLib.elslib_TorusParameters(*args)

    @staticmethod
    def TorusUIso(*args) -> "gp_Circ":
        r"""
        Compute the u isoparametric gp_circ of the torus.

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

        Returns
        -------
        gp_Circ

        """
        return _ElSLib.elslib_TorusUIso(*args)

    @staticmethod
    def TorusVIso(*args) -> "gp_Circ":
        r"""
        Compute the v isoparametric gp_circ of the torus.

        Parameters
        ----------
        Pos: gp_Ax3
        MajorRadius: float
        MinorRadius: float
        V: float

        Returns
        -------
        gp_Circ

        """
        return _ElSLib.elslib_TorusVIso(*args)

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

        Parameters
        ----------
        U: float
        V: float
        Pos: gp_Ax3
        MajorRadius: float
        MinorRadius: float

        Returns
        -------
        gp_Pnt

        """
        return _ElSLib.elslib_TorusValue(*args)

    @staticmethod
    def Value(*args) -> "gp_Pnt":
        r"""
        For elementary surfaces from the gp package (planes, cones, cylinders, spheres and tori), computes the point of parameters (u, v).

        Parameters
        ----------
        U: float
        V: float
        Pl: gp_Pln

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cone

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

        Parameters
        ----------
        U: float
        V: float
        C: gp_Cylinder

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

        Parameters
        ----------
        U: float
        V: float
        S: gp_Sphere

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

        Parameters
        ----------
        U: float
        V: float
        T: gp_Torus

        Returns
        -------
        gp_Pnt

        """
        return _ElSLib.elslib_Value(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _ElSLib.elslib_swiginit(self, _ElSLib.new_elslib())
    __swig_destroy__ = _ElSLib.delete_elslib

# Register elslib in _ElSLib:
_ElSLib.elslib_swigregister(elslib)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    SAngle: float
    P: gp_Pnt

    Returns
    -------
    None

    """
    return _ElSLib.elslib_ConeD0(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    SAngle: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_ConeD1(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    SAngle: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_ConeD2(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    SAngle: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec
    Vuuu: gp_Vec
    Vvvv: gp_Vec
    Vuuv: gp_Vec
    Vuvv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_ConeD3(*args)

def elslib_ConeDN(*args) -> "gp_Vec":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    SAngle: float
    Nu: int
    Nv: int

    Returns
    -------
    gp_Vec

    """
    return _ElSLib.elslib_ConeDN(*args)

def elslib_ConeParameters(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Parametrization p (u, v) = location + v * zdirection + (radius + v * tan (semiangle)) * (cos(u) * xdirection + sin(u) * ydirection).

    Parameters
    ----------
    Pos: gp_Ax3
    Radius: float
    SAngle: float
    P: gp_Pnt

    Returns
    -------
    U: float
    V: float

    """
    return _ElSLib.elslib_ConeParameters(*args)

def elslib_ConeUIso(*args) -> "gp_Lin":
    r"""
    Compute the u isoparametric gp_lin of the cone.

    Parameters
    ----------
    Pos: gp_Ax3
    Radius: float
    SAngle: float
    U: float

    Returns
    -------
    gp_Lin

    """
    return _ElSLib.elslib_ConeUIso(*args)

def elslib_ConeVIso(*args) -> "gp_Circ":
    r"""
    Compute the v isoparametric gp_circ of the cone.

    Parameters
    ----------
    Pos: gp_Ax3
    Radius: float
    SAngle: float
    V: float

    Returns
    -------
    gp_Circ

    """
    return _ElSLib.elslib_ConeVIso(*args)

def elslib_ConeValue(*args) -> "gp_Pnt":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    SAngle: float

    Returns
    -------
    gp_Pnt

    """
    return _ElSLib.elslib_ConeValue(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt

    Returns
    -------
    None

    """
    return _ElSLib.elslib_CylinderD0(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_CylinderD1(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_CylinderD2(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec
    Vuuu: gp_Vec
    Vvvv: gp_Vec
    Vuuv: gp_Vec
    Vuvv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_CylinderD3(*args)

def elslib_CylinderDN(*args) -> "gp_Vec":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    Nu: int
    Nv: int

    Returns
    -------
    gp_Vec

    """
    return _ElSLib.elslib_CylinderDN(*args)

def elslib_CylinderParameters(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Parametrization p (u, v) = location + v * zdirection + radius * (cos(u) * xdirection + sin (u) * ydirection).

    Parameters
    ----------
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt

    Returns
    -------
    U: float
    V: float

    """
    return _ElSLib.elslib_CylinderParameters(*args)

def elslib_CylinderUIso(*args) -> "gp_Lin":
    r"""
    Compute the u isoparametric gp_lin of the cylinder.

    Parameters
    ----------
    Pos: gp_Ax3
    Radius: float
    U: float

    Returns
    -------
    gp_Lin

    """
    return _ElSLib.elslib_CylinderUIso(*args)

def elslib_CylinderVIso(*args) -> "gp_Circ":
    r"""
    Compute the v isoparametric gp_circ of the cylinder.

    Parameters
    ----------
    Pos: gp_Ax3
    Radius: float
    V: float

    Returns
    -------
    gp_Circ

    """
    return _ElSLib.elslib_CylinderVIso(*args)

def elslib_CylinderValue(*args) -> "gp_Pnt":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float

    Returns
    -------
    gp_Pnt

    """
    return _ElSLib.elslib_CylinderValue(*args)

def elslib_D0(*args) -> "void":
    r"""
    For elementary surfaces from the gp package (planes, cones, cylinders, spheres and tori), computes the point p of parameters (u, v).inline.

    Parameters
    ----------
    U: float
    V: float
    Pl: gp_Pln
    P: gp_Pnt

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cone
    P: gp_Pnt

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cylinder
    P: gp_Pnt

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

    Parameters
    ----------
    U: float
    V: float
    S: gp_Sphere
    P: gp_Pnt

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

    Parameters
    ----------
    U: float
    V: float
    T: gp_Torus
    P: gp_Pnt

    Returns
    -------
    None

    """
    return _ElSLib.elslib_D0(*args)

def elslib_D1(*args) -> "void":
    r"""
    For elementary surfaces from the gp package (planes, cones, cylinders, spheres and tori), computes: - the point p of parameters (u, v), and - the first derivative vectors vu and vv at this point in the u and v parametric directions respectively.

    Parameters
    ----------
    U: float
    V: float
    Pl: gp_Pln
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cone
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cylinder
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

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

    Parameters
    ----------
    U: float
    V: float
    S: gp_Sphere
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

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

    Parameters
    ----------
    U: float
    V: float
    T: gp_Torus
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_D1(*args)

def elslib_D2(*args) -> "void":
    r"""
    For elementary surfaces from the gp package (cones, cylinders, spheres and tori), computes: - the point p of parameters (u, v), and - the first derivative vectors vu and vv at this point in the u and v parametric directions respectively, and - the second derivative vectors vuu, vvv and vuv at this point.

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cone
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cylinder
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec

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

    Parameters
    ----------
    U: float
    V: float
    S: gp_Sphere
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec

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

    Parameters
    ----------
    U: float
    V: float
    T: gp_Torus
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_D2(*args)

def elslib_D3(*args) -> "void":
    r"""
    For elementary surfaces from the gp package (cones, cylinders, spheres and tori), computes: - the point p of parameters (u,v), and - the first derivative vectors vu and vv at this point in the u and v parametric directions respectively, and - the second derivative vectors vuu, vvv and vuv at this point, and - the third derivative vectors vuuu, vvvv, vuuv and vuvv at this point.

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cone
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec
    Vuuu: gp_Vec
    Vvvv: gp_Vec
    Vuuv: gp_Vec
    Vuvv: gp_Vec

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cylinder
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec
    Vuuu: gp_Vec
    Vvvv: gp_Vec
    Vuuv: gp_Vec
    Vuvv: gp_Vec

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

    Parameters
    ----------
    U: float
    V: float
    S: gp_Sphere
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec
    Vuuu: gp_Vec
    Vvvv: gp_Vec
    Vuuv: gp_Vec
    Vuvv: gp_Vec

    Returns
    -------
    None
    Surface evaluation the following functions compute the point and the derivatives on elementary surfaces defined with their geometric characterisitics. you don't need to create the surface to use these functions. these functions are called by the previous ones. example : a cylinder is defined with its position and its radius.

    Parameters
    ----------
    U: float
    V: float
    T: gp_Torus
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec
    Vuuu: gp_Vec
    Vvvv: gp_Vec
    Vuuv: gp_Vec
    Vuvv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_D3(*args)

def elslib_DN(*args) -> "gp_Vec":
    r"""
    For elementary surfaces from the gp package (planes, cones, cylinders, spheres and tori), computes the derivative vector of order nu and nv in the u and v parametric directions respectively, at the point of parameters (u, v).

    Parameters
    ----------
    U: float
    V: float
    Pl: gp_Pln
    Nu: int
    Nv: int

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cone
    Nu: int
    Nv: int

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cylinder
    Nu: int
    Nv: int

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

    Parameters
    ----------
    U: float
    V: float
    S: gp_Sphere
    Nu: int
    Nv: int

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

    Parameters
    ----------
    U: float
    V: float
    T: gp_Torus
    Nu: int
    Nv: int

    Returns
    -------
    gp_Vec

    """
    return _ElSLib.elslib_DN(*args)

def elslib_Parameters(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Parametrization p (u, v) = pl.location() + u * pl.xdirection() + v * pl.ydirection().

    Parameters
    ----------
    Pl: gp_Pln
    P: gp_Pnt

    Returns
    -------
    U: float
    V: float
    Parametrization p (u, v) = location + v * zdirection + radius * (cos(u) * xdirection + sin (u) * ydirection).

    Parameters
    ----------
    C: gp_Cylinder
    P: gp_Pnt

    Returns
    -------
    U: float
    V: float
    Parametrization p (u, v) = location + v * zdirection + (radius + v * tan (semiangle)) * (cos(u) * xdirection + sin(u) * ydirection).

    Parameters
    ----------
    C: gp_Cone
    P: gp_Pnt

    Returns
    -------
    U: float
    V: float
    Parametrization p (u, v) = location + radius * cos (v) * (cos (u) * xdirection + sin (u) * ydirection) + radius * sin (v) * zdirection.

    Parameters
    ----------
    S: gp_Sphere
    P: gp_Pnt

    Returns
    -------
    U: float
    V: float
    Parametrization p (u, v) = location + (majorradius + minorradius * cos(u)) * (cos(v) * xdirection - sin(v) * ydirection) + minorradius * sin(u) * zdirection.

    Parameters
    ----------
    T: gp_Torus
    P: gp_Pnt

    Returns
    -------
    U: float
    V: float

    """
    return _ElSLib.elslib_Parameters(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    P: gp_Pnt

    Returns
    -------
    None

    """
    return _ElSLib.elslib_PlaneD0(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_PlaneD1(*args)

def elslib_PlaneDN(*args) -> "gp_Vec":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Nu: int
    Nv: int

    Returns
    -------
    gp_Vec

    """
    return _ElSLib.elslib_PlaneDN(*args)

def elslib_PlaneParameters(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Parametrization p (u, v) = pl.location() + u * pl.xdirection() + v * pl.ydirection().

    Parameters
    ----------
    Pos: gp_Ax3
    P: gp_Pnt

    Returns
    -------
    U: float
    V: float

    """
    return _ElSLib.elslib_PlaneParameters(*args)

def elslib_PlaneUIso(*args) -> "gp_Lin":
    r"""
    Compute the u isoparametric gp_lin of the plane.

    Parameters
    ----------
    Pos: gp_Ax3
    U: float

    Returns
    -------
    gp_Lin

    """
    return _ElSLib.elslib_PlaneUIso(*args)

def elslib_PlaneVIso(*args) -> "gp_Lin":
    r"""
    Compute the v isoparametric gp_lin of the plane.

    Parameters
    ----------
    Pos: gp_Ax3
    V: float

    Returns
    -------
    gp_Lin

    """
    return _ElSLib.elslib_PlaneVIso(*args)

def elslib_PlaneValue(*args) -> "gp_Pnt":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3

    Returns
    -------
    gp_Pnt

    """
    return _ElSLib.elslib_PlaneValue(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt

    Returns
    -------
    None

    """
    return _ElSLib.elslib_SphereD0(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_SphereD1(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_SphereD2(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec
    Vuuu: gp_Vec
    Vvvv: gp_Vec
    Vuuv: gp_Vec
    Vuvv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_SphereD3(*args)

def elslib_SphereDN(*args) -> "gp_Vec":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float
    Nu: int
    Nv: int

    Returns
    -------
    gp_Vec

    """
    return _ElSLib.elslib_SphereDN(*args)

def elslib_SphereParameters(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Parametrization p (u, v) = location + radius * cos (v) * (cos (u) * xdirection + sin (u) * ydirection) + radius * sin (v) * zdirection.

    Parameters
    ----------
    Pos: gp_Ax3
    Radius: float
    P: gp_Pnt

    Returns
    -------
    U: float
    V: float

    """
    return _ElSLib.elslib_SphereParameters(*args)

def elslib_SphereUIso(*args) -> "gp_Circ":
    r"""
    Compute the u isoparametric gp_circ of the sphere, (the meridian is not trimmed).

    Parameters
    ----------
    Pos: gp_Ax3
    Radius: float
    U: float

    Returns
    -------
    gp_Circ

    """
    return _ElSLib.elslib_SphereUIso(*args)

def elslib_SphereVIso(*args) -> "gp_Circ":
    r"""
    Compute the v isoparametric gp_circ of the sphere, (the meridian is not trimmed).

    Parameters
    ----------
    Pos: gp_Ax3
    Radius: float
    V: float

    Returns
    -------
    gp_Circ

    """
    return _ElSLib.elslib_SphereVIso(*args)

def elslib_SphereValue(*args) -> "gp_Pnt":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    Radius: float

    Returns
    -------
    gp_Pnt

    """
    return _ElSLib.elslib_SphereValue(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt

    Returns
    -------
    None

    """
    return _ElSLib.elslib_TorusD0(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_TorusD1(*args)

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

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_TorusD2(*args)

def elslib_TorusD3(*args) -> "void":
    r"""
    The following functions compute the parametric values corresponding to a given point on a elementary surface. the point should be on the surface.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    MajorRadius: float
    MinorRadius: float
    P: gp_Pnt
    Vu: gp_Vec
    Vv: gp_Vec
    Vuu: gp_Vec
    Vvv: gp_Vec
    Vuv: gp_Vec
    Vuuu: gp_Vec
    Vvvv: gp_Vec
    Vuuv: gp_Vec
    Vuvv: gp_Vec

    Returns
    -------
    None

    """
    return _ElSLib.elslib_TorusD3(*args)

def elslib_TorusDN(*args) -> "gp_Vec":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    MajorRadius: float
    MinorRadius: float
    Nu: int
    Nv: int

    Returns
    -------
    gp_Vec

    """
    return _ElSLib.elslib_TorusDN(*args)

def elslib_TorusParameters(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Parametrization p (u, v) = location + (majorradius + minorradius * cos(u)) * (cos(v) * xdirection - sin(v) * ydirection) + minorradius * sin(u) * zdirection.

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

    Returns
    -------
    U: float
    V: float

    """
    return _ElSLib.elslib_TorusParameters(*args)

def elslib_TorusUIso(*args) -> "gp_Circ":
    r"""
    Compute the u isoparametric gp_circ of the torus.

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

    Returns
    -------
    gp_Circ

    """
    return _ElSLib.elslib_TorusUIso(*args)

def elslib_TorusVIso(*args) -> "gp_Circ":
    r"""
    Compute the v isoparametric gp_circ of the torus.

    Parameters
    ----------
    Pos: gp_Ax3
    MajorRadius: float
    MinorRadius: float
    V: float

    Returns
    -------
    gp_Circ

    """
    return _ElSLib.elslib_TorusVIso(*args)

def elslib_TorusValue(*args) -> "gp_Pnt":
    r"""
    No available documentation.

    Parameters
    ----------
    U: float
    V: float
    Pos: gp_Ax3
    MajorRadius: float
    MinorRadius: float

    Returns
    -------
    gp_Pnt

    """
    return _ElSLib.elslib_TorusValue(*args)

def elslib_Value(*args) -> "gp_Pnt":
    r"""
    For elementary surfaces from the gp package (planes, cones, cylinders, spheres and tori), computes the point of parameters (u, v).

    Parameters
    ----------
    U: float
    V: float
    Pl: gp_Pln

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cone

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

    Parameters
    ----------
    U: float
    V: float
    C: gp_Cylinder

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

    Parameters
    ----------
    U: float
    V: float
    S: gp_Sphere

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

    Parameters
    ----------
    U: float
    V: float
    T: gp_Torus

    Returns
    -------
    gp_Pnt

    """
    return _ElSLib.elslib_Value(*args)





