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

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

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _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 == "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__ = _ElSLib.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args):
        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, method_name, class_name):
    return _ElSLib.process_exception(error, method_name, class_name)

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

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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    erase_event = _ElSLib.ios_base_erase_event
    imbue_event = _ElSLib.ios_base_imbue_event
    copyfmt_event = _ElSLib.ios_base_copyfmt_event

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

endl_cb_ptr = _ElSLib.endl_cb_ptr
endl = _ElSLib.endl
ends_cb_ptr = _ElSLib.ends_cb_ptr
ends = _ElSLib.ends
flush_cb_ptr = _ElSLib.flush_cb_ptr
flush = _ElSLib.flush
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):
        r"""

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_ConeD0(*args)

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_ConeD1(*args)

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

        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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_ConeD2(*args)

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

        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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_ConeD3(*args)

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

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

        Return
        -------
        gp_Vec

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

        """
        return _ElSLib.elslib_ConeDN(*args)

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

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

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

        Description
        -----------
        parametrization P (U, V) = Location + V * ZDirection + (Radius + V * Tan (SemiAngle)) * (Cos(U) * XDirection + Sin(U) * YDirection).

        """
        return _ElSLib.elslib_ConeParameters(*args)

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

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

        Return
        -------
        gp_Lin

        Description
        -----------
        compute the U Isoparametric gp_Lin of the cone.

        """
        return _ElSLib.elslib_ConeUIso(*args)

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

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

        Return
        -------
        gp_Circ

        Description
        -----------
        compute the V Isoparametric gp_Circ of the cone.

        """
        return _ElSLib.elslib_ConeVIso(*args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        return _ElSLib.elslib_ConeValue(*args)

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_CylinderD0(*args)

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_CylinderD1(*args)

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

        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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_CylinderD2(*args)

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

        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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_CylinderD3(*args)

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

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

        Return
        -------
        gp_Vec

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

        """
        return _ElSLib.elslib_CylinderDN(*args)

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

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

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

        Description
        -----------
        parametrization P (U, V) = Location + V * ZDirection + Radius * (Cos(U) * XDirection + Sin (U) * YDirection).

        """
        return _ElSLib.elslib_CylinderParameters(*args)

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

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

        Return
        -------
        gp_Lin

        Description
        -----------
        compute the U Isoparametric gp_Lin of the cylinder.

        """
        return _ElSLib.elslib_CylinderUIso(*args)

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

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

        Return
        -------
        gp_Circ

        Description
        -----------
        compute the V Isoparametric gp_Circ of the cylinder.

        """
        return _ElSLib.elslib_CylinderVIso(*args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        return _ElSLib.elslib_CylinderValue(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        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
        C: gp_Cone
        P: gp_Pnt

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_D0(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        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
        C: gp_Cone
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_D1(*args)

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

        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

        Return
        -------
        None

        Description
        -----------
        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_Cylinder
        P: gp_Pnt
        Vu: gp_Vec
        Vv: gp_Vec
        Vuu: gp_Vec
        Vvv: gp_Vec
        Vuv: gp_Vec

        Return
        -------
        None

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

        Return
        -------
        None

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_D2(*args)

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

        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

        Return
        -------
        None

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

        Return
        -------
        None

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

        Return
        -------
        None

        Description
        -----------
        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
        Vuuu: gp_Vec
        Vvvv: gp_Vec
        Vuuv: gp_Vec
        Vuvv: gp_Vec

        Return
        -------
        None

        Description
        -----------
        Surface evaluation The following functions compute the point and the derivatives on elementary surfaces defined with their geometric characteristics. 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.

        """
        return _ElSLib.elslib_D3(*args)

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

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

        Return
        -------
        gp_Vec

        Description
        -----------
        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
        C: gp_Cone
        Nu: int
        Nv: int

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec

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

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

        Return
        -------
        gp_Vec

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

        """
        return _ElSLib.elslib_DN(*args)

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

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

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

        Description
        -----------
        parametrization P (U, V) = Pl.Location() + U * Pl.XDirection() + V * Pl.YDirection().

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

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

        Description
        -----------
        parametrization P (U, V) = Location + V * ZDirection + Radius * (Cos(U) * XDirection + Sin (U) * YDirection).

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

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

        Description
        -----------
        parametrization P (U, V) = Location + V * ZDirection + (Radius + V * Tan (SemiAngle)) * (Cos(U) * XDirection + Sin(U) * YDirection).

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

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

        Description
        -----------
        parametrization P (U, V) = Location + Radius * Cos (V) * (Cos (U) * XDirection + Sin (U) * YDirection) + Radius * Sin (V) * ZDirection.

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

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

        Description
        -----------
        parametrization P (U, V) = Location + (MajorRadius + MinorRadius * Cos(U)) * (Cos(V) * XDirection - Sin(V) * YDirection) + MinorRadius * Sin(U) * ZDirection.

        """
        return _ElSLib.elslib_Parameters(*args)

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_PlaneD0(*args)

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_PlaneD1(*args)

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

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

        Return
        -------
        gp_Vec

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

        """
        return _ElSLib.elslib_PlaneDN(*args)

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

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

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

        Description
        -----------
        parametrization P (U, V) = Pl.Location() + U * Pl.XDirection() + V * Pl.YDirection().

        """
        return _ElSLib.elslib_PlaneParameters(*args)

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

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

        Return
        -------
        gp_Lin

        Description
        -----------
        compute the U Isoparametric gp_Lin of the plane.

        """
        return _ElSLib.elslib_PlaneUIso(*args)

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

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

        Return
        -------
        gp_Lin

        Description
        -----------
        compute the V Isoparametric gp_Lin of the plane.

        """
        return _ElSLib.elslib_PlaneVIso(*args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        return _ElSLib.elslib_PlaneValue(*args)

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_SphereD0(*args)

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_SphereD1(*args)

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

        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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_SphereD2(*args)

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

        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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_SphereD3(*args)

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

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

        Return
        -------
        gp_Vec

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

        """
        return _ElSLib.elslib_SphereDN(*args)

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

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

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

        Description
        -----------
        parametrization P (U, V) = Location + Radius * Cos (V) * (Cos (U) * XDirection + Sin (U) * YDirection) + Radius * Sin (V) * ZDirection.

        """
        return _ElSLib.elslib_SphereParameters(*args)

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

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

        Return
        -------
        gp_Circ

        Description
        -----------
        compute the U Isoparametric gp_Circ of the sphere, (the meridian is not trimmed).

        """
        return _ElSLib.elslib_SphereUIso(*args)

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

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

        Return
        -------
        gp_Circ

        Description
        -----------
        compute the V Isoparametric gp_Circ of the sphere, (the meridian is not trimmed).

        """
        return _ElSLib.elslib_SphereVIso(*args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        return _ElSLib.elslib_SphereValue(*args)

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_TorusD0(*args)

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

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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_TorusD1(*args)

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

        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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_TorusD2(*args)

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

        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

        Return
        -------
        None

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

        """
        return _ElSLib.elslib_TorusD3(*args)

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

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

        Return
        -------
        gp_Vec

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

        """
        return _ElSLib.elslib_TorusDN(*args)

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

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

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

        Description
        -----------
        parametrization P (U, V) = Location + (MajorRadius + MinorRadius * Cos(U)) * (Cos(V) * XDirection - Sin(V) * YDirection) + MinorRadius * Sin(U) * ZDirection.

        """
        return _ElSLib.elslib_TorusParameters(*args)

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

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

        Return
        -------
        gp_Circ

        Description
        -----------
        compute the U Isoparametric gp_Circ of the torus.

        """
        return _ElSLib.elslib_TorusUIso(*args)

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

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

        Return
        -------
        gp_Circ

        Description
        -----------
        compute the V Isoparametric gp_Circ of the torus.

        """
        return _ElSLib.elslib_TorusVIso(*args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        return _ElSLib.elslib_TorusValue(*args)

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

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

        Return
        -------
        gp_Pnt

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt

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

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

        Return
        -------
        gp_Pnt

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

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



@deprecated
def elslib_ConeD0(*args):
	return elslib.ConeD0(*args)

@deprecated
def elslib_ConeD1(*args):
	return elslib.ConeD1(*args)

@deprecated
def elslib_ConeD2(*args):
	return elslib.ConeD2(*args)

@deprecated
def elslib_ConeD3(*args):
	return elslib.ConeD3(*args)

@deprecated
def elslib_ConeDN(*args):
	return elslib.ConeDN(*args)

@deprecated
def elslib_ConeParameters(*args):
	return elslib.ConeParameters(*args)

@deprecated
def elslib_ConeUIso(*args):
	return elslib.ConeUIso(*args)

@deprecated
def elslib_ConeVIso(*args):
	return elslib.ConeVIso(*args)

@deprecated
def elslib_ConeValue(*args):
	return elslib.ConeValue(*args)

@deprecated
def elslib_CylinderD0(*args):
	return elslib.CylinderD0(*args)

@deprecated
def elslib_CylinderD1(*args):
	return elslib.CylinderD1(*args)

@deprecated
def elslib_CylinderD2(*args):
	return elslib.CylinderD2(*args)

@deprecated
def elslib_CylinderD3(*args):
	return elslib.CylinderD3(*args)

@deprecated
def elslib_CylinderDN(*args):
	return elslib.CylinderDN(*args)

@deprecated
def elslib_CylinderParameters(*args):
	return elslib.CylinderParameters(*args)

@deprecated
def elslib_CylinderUIso(*args):
	return elslib.CylinderUIso(*args)

@deprecated
def elslib_CylinderVIso(*args):
	return elslib.CylinderVIso(*args)

@deprecated
def elslib_CylinderValue(*args):
	return elslib.CylinderValue(*args)

@deprecated
def elslib_D0(*args):
	return elslib.D0(*args)

@deprecated
def elslib_D0(*args):
	return elslib.D0(*args)

@deprecated
def elslib_D0(*args):
	return elslib.D0(*args)

@deprecated
def elslib_D0(*args):
	return elslib.D0(*args)

@deprecated
def elslib_D0(*args):
	return elslib.D0(*args)

@deprecated
def elslib_D1(*args):
	return elslib.D1(*args)

@deprecated
def elslib_D1(*args):
	return elslib.D1(*args)

@deprecated
def elslib_D1(*args):
	return elslib.D1(*args)

@deprecated
def elslib_D1(*args):
	return elslib.D1(*args)

@deprecated
def elslib_D1(*args):
	return elslib.D1(*args)

@deprecated
def elslib_D2(*args):
	return elslib.D2(*args)

@deprecated
def elslib_D2(*args):
	return elslib.D2(*args)

@deprecated
def elslib_D2(*args):
	return elslib.D2(*args)

@deprecated
def elslib_D2(*args):
	return elslib.D2(*args)

@deprecated
def elslib_D3(*args):
	return elslib.D3(*args)

@deprecated
def elslib_D3(*args):
	return elslib.D3(*args)

@deprecated
def elslib_D3(*args):
	return elslib.D3(*args)

@deprecated
def elslib_D3(*args):
	return elslib.D3(*args)

@deprecated
def elslib_DN(*args):
	return elslib.DN(*args)

@deprecated
def elslib_DN(*args):
	return elslib.DN(*args)

@deprecated
def elslib_DN(*args):
	return elslib.DN(*args)

@deprecated
def elslib_DN(*args):
	return elslib.DN(*args)

@deprecated
def elslib_DN(*args):
	return elslib.DN(*args)

@deprecated
def elslib_Parameters(*args):
	return elslib.Parameters(*args)

@deprecated
def elslib_Parameters(*args):
	return elslib.Parameters(*args)

@deprecated
def elslib_Parameters(*args):
	return elslib.Parameters(*args)

@deprecated
def elslib_Parameters(*args):
	return elslib.Parameters(*args)

@deprecated
def elslib_Parameters(*args):
	return elslib.Parameters(*args)

@deprecated
def elslib_PlaneD0(*args):
	return elslib.PlaneD0(*args)

@deprecated
def elslib_PlaneD1(*args):
	return elslib.PlaneD1(*args)

@deprecated
def elslib_PlaneDN(*args):
	return elslib.PlaneDN(*args)

@deprecated
def elslib_PlaneParameters(*args):
	return elslib.PlaneParameters(*args)

@deprecated
def elslib_PlaneUIso(*args):
	return elslib.PlaneUIso(*args)

@deprecated
def elslib_PlaneVIso(*args):
	return elslib.PlaneVIso(*args)

@deprecated
def elslib_PlaneValue(*args):
	return elslib.PlaneValue(*args)

@deprecated
def elslib_SphereD0(*args):
	return elslib.SphereD0(*args)

@deprecated
def elslib_SphereD1(*args):
	return elslib.SphereD1(*args)

@deprecated
def elslib_SphereD2(*args):
	return elslib.SphereD2(*args)

@deprecated
def elslib_SphereD3(*args):
	return elslib.SphereD3(*args)

@deprecated
def elslib_SphereDN(*args):
	return elslib.SphereDN(*args)

@deprecated
def elslib_SphereParameters(*args):
	return elslib.SphereParameters(*args)

@deprecated
def elslib_SphereUIso(*args):
	return elslib.SphereUIso(*args)

@deprecated
def elslib_SphereVIso(*args):
	return elslib.SphereVIso(*args)

@deprecated
def elslib_SphereValue(*args):
	return elslib.SphereValue(*args)

@deprecated
def elslib_TorusD0(*args):
	return elslib.TorusD0(*args)

@deprecated
def elslib_TorusD1(*args):
	return elslib.TorusD1(*args)

@deprecated
def elslib_TorusD2(*args):
	return elslib.TorusD2(*args)

@deprecated
def elslib_TorusD3(*args):
	return elslib.TorusD3(*args)

@deprecated
def elslib_TorusDN(*args):
	return elslib.TorusDN(*args)

@deprecated
def elslib_TorusParameters(*args):
	return elslib.TorusParameters(*args)

@deprecated
def elslib_TorusUIso(*args):
	return elslib.TorusUIso(*args)

@deprecated
def elslib_TorusVIso(*args):
	return elslib.TorusVIso(*args)

@deprecated
def elslib_TorusValue(*args):
	return elslib.TorusValue(*args)

@deprecated
def elslib_Value(*args):
	return elslib.Value(*args)

@deprecated
def elslib_Value(*args):
	return elslib.Value(*args)

@deprecated
def elslib_Value(*args):
	return elslib.Value(*args)

@deprecated
def elslib_Value(*args):
	return elslib.Value(*args)

@deprecated
def elslib_Value(*args):
	return elslib.Value(*args)



