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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _BRepLProp:
_BRepLProp.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 _BRepLProp.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.BRepAdaptor
import OCC.Core.Adaptor3d
import OCC.Core.Geom
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.TopoDS
import OCC.Core.TopLoc
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor

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



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

    @staticmethod
    def Continuity(*args) -> "GeomAbs_Shape":
        r"""
        Computes the regularity at the junction between c1 and c2. the point u1 on c1 and the point u2 on c2 must be confused. tl and ta are the linear and angular tolerance used two compare the derivative.

        Parameters
        ----------
        C1: BRepAdaptor_Curve
        C2: BRepAdaptor_Curve
        u1: float
        u2: float
        tl: float
        ta: float

        Returns
        -------
        GeomAbs_Shape
        The same as preciding but using the standard tolerances from package precision.

        Parameters
        ----------
        C1: BRepAdaptor_Curve
        C2: BRepAdaptor_Curve
        u1: float
        u2: float

        Returns
        -------
        GeomAbs_Shape

        """
        return _BRepLProp.breplprop_Continuity(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepLProp.breplprop_swiginit(self, _BRepLProp.new_breplprop())
    __swig_destroy__ = _BRepLProp.delete_breplprop

# Register breplprop in _BRepLProp:
_BRepLProp.breplprop_swigregister(breplprop)

def breplprop_Continuity(*args) -> "GeomAbs_Shape":
    r"""
    Computes the regularity at the junction between c1 and c2. the point u1 on c1 and the point u2 on c2 must be confused. tl and ta are the linear and angular tolerance used two compare the derivative.

    Parameters
    ----------
    C1: BRepAdaptor_Curve
    C2: BRepAdaptor_Curve
    u1: float
    u2: float
    tl: float
    ta: float

    Returns
    -------
    GeomAbs_Shape
    The same as preciding but using the standard tolerances from package precision.

    Parameters
    ----------
    C1: BRepAdaptor_Curve
    C2: BRepAdaptor_Curve
    u1: float
    u2: float

    Returns
    -------
    GeomAbs_Shape

    """
    return _BRepLProp.breplprop_Continuity(*args)

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

    def __init__(self, *args):
        r"""
        Initializes the local properties of the curve <c> the current point and the derivatives are computed at the same time, which allows an optimization of the computation time. <n> indicates the maximum number of derivations to be done (0, 1, 2 or 3). for example, to compute only the tangent, n should be equal to 1. <resolution> is the linear tolerance (it is used to test if a vector is null).

        Parameters
        ----------
        C: BRepAdaptor_Curve
        N: int
        Resolution: float

        Returns
        -------
        None
        Same as previous constructor but here the parameter is set to the value <u>. all the computations done will be related to <c> and <u>.

        Parameters
        ----------
        C: BRepAdaptor_Curve
        U: float
        N: int
        Resolution: float

        Returns
        -------
        None
        Same as previous constructor but here the parameter is set to the value <u> and the curve is set with setcurve. the curve can have a empty constructor all the computations done will be related to <c> and <u> when the functions 'set' will be done.

        Parameters
        ----------
        N: int
        Resolution: float

        Returns
        -------
        None

        """
        _BRepLProp.BRepLProp_CLProps_swiginit(self, _BRepLProp.new_BRepLProp_CLProps(*args))

    def CentreOfCurvature(self, *args) -> "void":
        r"""
        Returns the centre of curvature <p>.

        Parameters
        ----------
        P: gp_Pnt

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_CLProps_CentreOfCurvature(self, *args)

    def Curvature(self, *args) -> "Standard_Real":
        r"""
        Returns the curvature.

        Returns
        -------
        float

        """
        return _BRepLProp.BRepLProp_CLProps_Curvature(self, *args)

    def D1(self, *args) -> "gp_Vec const":
        r"""
        Returns the first derivative. the derivative is computed if it has not been yet.

        Returns
        -------
        gp_Vec

        """
        return _BRepLProp.BRepLProp_CLProps_D1(self, *args)

    def D2(self, *args) -> "gp_Vec const":
        r"""
        Returns the second derivative. the derivative is computed if it has not been yet.

        Returns
        -------
        gp_Vec

        """
        return _BRepLProp.BRepLProp_CLProps_D2(self, *args)

    def D3(self, *args) -> "gp_Vec const":
        r"""
        Returns the third derivative. the derivative is computed if it has not been yet.

        Returns
        -------
        gp_Vec

        """
        return _BRepLProp.BRepLProp_CLProps_D3(self, *args)

    def IsTangentDefined(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the tangent is defined. for example, the tangent is not defined if the three first derivatives are all null.

        Returns
        -------
        bool

        """
        return _BRepLProp.BRepLProp_CLProps_IsTangentDefined(self, *args)

    def Normal(self, *args) -> "void":
        r"""
        Returns the normal direction <n>.

        Parameters
        ----------
        N: gp_Dir

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_CLProps_Normal(self, *args)

    def SetCurve(self, *args) -> "void":
        r"""
        Initializes the local properties of the curve for the new curve.

        Parameters
        ----------
        C: BRepAdaptor_Curve

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_CLProps_SetCurve(self, *args)

    def SetParameter(self, *args) -> "void":
        r"""
        Initializes the local properties of the curve for the parameter value <u>.

        Parameters
        ----------
        U: float

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_CLProps_SetParameter(self, *args)

    def Tangent(self, *args) -> "void":
        r"""
        Output the tangent direction <d>.

        Parameters
        ----------
        D: gp_Dir

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_CLProps_Tangent(self, *args)

    def Value(self, *args) -> "gp_Pnt const":
        r"""
        Returns the point.

        Returns
        -------
        gp_Pnt

        """
        return _BRepLProp.BRepLProp_CLProps_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepLProp.delete_BRepLProp_CLProps

# Register BRepLProp_CLProps in _BRepLProp:
_BRepLProp.BRepLProp_CLProps_swigregister(BRepLProp_CLProps)

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

    @staticmethod
    def Continuity(*args) -> "Standard_Integer":
        r"""
        Returns the order of continuity of the curve <c>. returns 1 : first derivative only is computable returns 2 : first and second derivative only are computable. returns 3 : first, second and third are computable.

        Parameters
        ----------
        C: BRepAdaptor_Curve

        Returns
        -------
        int

        """
        return _BRepLProp.BRepLProp_CurveTool_Continuity(*args)

    @staticmethod
    def D1(*args) -> "void":
        r"""
        Computes the point <p> and first derivative <v1> of parameter <u> on the curve <c>.

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

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_CurveTool_D1(*args)

    @staticmethod
    def D2(*args) -> "void":
        r"""
        Computes the point <p>, the first derivative <v1> and second derivative <v2> of parameter <u> on the curve <c>.

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

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_CurveTool_D2(*args)

    @staticmethod
    def D3(*args) -> "void":
        r"""
        Computes the point <p>, the first derivative <v1>, the second derivative <v2> and third derivative <v3> of parameter <u> on the curve <c>.

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

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_CurveTool_D3(*args)

    @staticmethod
    def FirstParameter(*args) -> "Standard_Real":
        r"""
        Returns the first parameter bound of the curve.

        Parameters
        ----------
        C: BRepAdaptor_Curve

        Returns
        -------
        float

        """
        return _BRepLProp.BRepLProp_CurveTool_FirstParameter(*args)

    @staticmethod
    def LastParameter(*args) -> "Standard_Real":
        r"""
        Returns the last parameter bound of the curve. firstparameter must be less than lastparamenter.

        Parameters
        ----------
        C: BRepAdaptor_Curve

        Returns
        -------
        float

        """
        return _BRepLProp.BRepLProp_CurveTool_LastParameter(*args)

    @staticmethod
    def Value(*args) -> "void":
        r"""
        Computes the point <p> of parameter <u> on the curve <c>.

        Parameters
        ----------
        C: BRepAdaptor_Curve
        U: float
        P: gp_Pnt

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_CurveTool_Value(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepLProp.BRepLProp_CurveTool_swiginit(self, _BRepLProp.new_BRepLProp_CurveTool())
    __swig_destroy__ = _BRepLProp.delete_BRepLProp_CurveTool

# Register BRepLProp_CurveTool in _BRepLProp:
_BRepLProp.BRepLProp_CurveTool_swigregister(BRepLProp_CurveTool)

def BRepLProp_CurveTool_Continuity(*args) -> "Standard_Integer":
    r"""
    Returns the order of continuity of the curve <c>. returns 1 : first derivative only is computable returns 2 : first and second derivative only are computable. returns 3 : first, second and third are computable.

    Parameters
    ----------
    C: BRepAdaptor_Curve

    Returns
    -------
    int

    """
    return _BRepLProp.BRepLProp_CurveTool_Continuity(*args)

def BRepLProp_CurveTool_D1(*args) -> "void":
    r"""
    Computes the point <p> and first derivative <v1> of parameter <u> on the curve <c>.

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

    Returns
    -------
    None

    """
    return _BRepLProp.BRepLProp_CurveTool_D1(*args)

def BRepLProp_CurveTool_D2(*args) -> "void":
    r"""
    Computes the point <p>, the first derivative <v1> and second derivative <v2> of parameter <u> on the curve <c>.

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

    Returns
    -------
    None

    """
    return _BRepLProp.BRepLProp_CurveTool_D2(*args)

def BRepLProp_CurveTool_D3(*args) -> "void":
    r"""
    Computes the point <p>, the first derivative <v1>, the second derivative <v2> and third derivative <v3> of parameter <u> on the curve <c>.

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

    Returns
    -------
    None

    """
    return _BRepLProp.BRepLProp_CurveTool_D3(*args)

def BRepLProp_CurveTool_FirstParameter(*args) -> "Standard_Real":
    r"""
    Returns the first parameter bound of the curve.

    Parameters
    ----------
    C: BRepAdaptor_Curve

    Returns
    -------
    float

    """
    return _BRepLProp.BRepLProp_CurveTool_FirstParameter(*args)

def BRepLProp_CurveTool_LastParameter(*args) -> "Standard_Real":
    r"""
    Returns the last parameter bound of the curve. firstparameter must be less than lastparamenter.

    Parameters
    ----------
    C: BRepAdaptor_Curve

    Returns
    -------
    float

    """
    return _BRepLProp.BRepLProp_CurveTool_LastParameter(*args)

def BRepLProp_CurveTool_Value(*args) -> "void":
    r"""
    Computes the point <p> of parameter <u> on the curve <c>.

    Parameters
    ----------
    C: BRepAdaptor_Curve
    U: float
    P: gp_Pnt

    Returns
    -------
    None

    """
    return _BRepLProp.BRepLProp_CurveTool_Value(*args)

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

    def __init__(self, *args):
        r"""
        Initializes the local properties of the surface <s> for the parameter values (<u>, <v>). the current point and the derivatives are computed at the same time, which allows an optimization of the computation time. <n> indicates the maximum number of derivations to be done (0, 1, or 2). for example, to compute only the tangent, n should be equal to 1. <resolution> is the linear tolerance (it is used to test if a vector is null).

        Parameters
        ----------
        S: BRepAdaptor_Surface
        U: float
        V: float
        N: int
        Resolution: float

        Returns
        -------
        None
        Idem as previous constructor but without setting the value of parameters <u> and <v>.

        Parameters
        ----------
        S: BRepAdaptor_Surface
        N: int
        Resolution: float

        Returns
        -------
        None
        Idem as previous constructor but without setting the value of parameters <u> and <v> and the surface. the surface can have an empty constructor.

        Parameters
        ----------
        N: int
        Resolution: float

        Returns
        -------
        None

        """
        _BRepLProp.BRepLProp_SLProps_swiginit(self, _BRepLProp.new_BRepLProp_SLProps(*args))

    def CurvatureDirections(self, *args) -> "void":
        r"""
        Returns the direction of the maximum and minimum curvature <maxd> and <mind>.

        Parameters
        ----------
        MaxD: gp_Dir
        MinD: gp_Dir

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_SLProps_CurvatureDirections(self, *args)

    def D1U(self, *args) -> "gp_Vec const":
        r"""
        Returns the first u derivative. the derivative is computed if it has not been yet.

        Returns
        -------
        gp_Vec

        """
        return _BRepLProp.BRepLProp_SLProps_D1U(self, *args)

    def D1V(self, *args) -> "gp_Vec const":
        r"""
        Returns the first v derivative. the derivative is computed if it has not been yet.

        Returns
        -------
        gp_Vec

        """
        return _BRepLProp.BRepLProp_SLProps_D1V(self, *args)

    def D2U(self, *args) -> "gp_Vec const":
        r"""
        Returns the second u derivatives the derivative is computed if it has not been yet.

        Returns
        -------
        gp_Vec

        """
        return _BRepLProp.BRepLProp_SLProps_D2U(self, *args)

    def D2V(self, *args) -> "gp_Vec const":
        r"""
        Returns the second v derivative. the derivative is computed if it has not been yet.

        Returns
        -------
        gp_Vec

        """
        return _BRepLProp.BRepLProp_SLProps_D2V(self, *args)

    def DUV(self, *args) -> "gp_Vec const":
        r"""
        Returns the second uv cross-derivative. the derivative is computed if it has not been yet.

        Returns
        -------
        gp_Vec

        """
        return _BRepLProp.BRepLProp_SLProps_DUV(self, *args)

    def GaussianCurvature(self, *args) -> "Standard_Real":
        r"""
        Returns the gaussian curvature.

        Returns
        -------
        float

        """
        return _BRepLProp.BRepLProp_SLProps_GaussianCurvature(self, *args)

    def IsCurvatureDefined(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the curvature is defined.

        Returns
        -------
        bool

        """
        return _BRepLProp.BRepLProp_SLProps_IsCurvatureDefined(self, *args)

    def IsNormalDefined(self, *args) -> "Standard_Boolean":
        r"""
        Tells if the normal is defined.

        Returns
        -------
        bool

        """
        return _BRepLProp.BRepLProp_SLProps_IsNormalDefined(self, *args)

    def IsTangentUDefined(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the u tangent is defined. for example, the tangent is not defined if the two first u derivatives are null.

        Returns
        -------
        bool

        """
        return _BRepLProp.BRepLProp_SLProps_IsTangentUDefined(self, *args)

    def IsTangentVDefined(self, *args) -> "Standard_Boolean":
        r"""
        Returns if the v tangent is defined. for example, the tangent is not defined if the two first v derivatives are null.

        Returns
        -------
        bool

        """
        return _BRepLProp.BRepLProp_SLProps_IsTangentVDefined(self, *args)

    def IsUmbilic(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the point is umbilic (i.e. if the curvature is constant).

        Returns
        -------
        bool

        """
        return _BRepLProp.BRepLProp_SLProps_IsUmbilic(self, *args)

    def MaxCurvature(self, *args) -> "Standard_Real":
        r"""
        Returns the maximum curvature.

        Returns
        -------
        float

        """
        return _BRepLProp.BRepLProp_SLProps_MaxCurvature(self, *args)

    def MeanCurvature(self, *args) -> "Standard_Real":
        r"""
        Returns the mean curvature.

        Returns
        -------
        float

        """
        return _BRepLProp.BRepLProp_SLProps_MeanCurvature(self, *args)

    def MinCurvature(self, *args) -> "Standard_Real":
        r"""
        Returns the minimum curvature.

        Returns
        -------
        float

        """
        return _BRepLProp.BRepLProp_SLProps_MinCurvature(self, *args)

    def Normal(self, *args) -> "gp_Dir const":
        r"""
        Returns the normal direction.

        Returns
        -------
        gp_Dir

        """
        return _BRepLProp.BRepLProp_SLProps_Normal(self, *args)

    def SetParameters(self, *args) -> "void":
        r"""
        Initializes the local properties of the surface s for the new parameter values (<u>, <v>).

        Parameters
        ----------
        U: float
        V: float

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_SLProps_SetParameters(self, *args)

    def SetSurface(self, *args) -> "void":
        r"""
        Initializes the local properties of the surface s for the new surface.

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_SLProps_SetSurface(self, *args)

    def TangentU(self, *args) -> "void":
        r"""
        Returns the tangent direction <d> on the iso-v.

        Parameters
        ----------
        D: gp_Dir

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_SLProps_TangentU(self, *args)

    def TangentV(self, *args) -> "void":
        r"""
        Returns the tangent direction <d> on the iso-v.

        Parameters
        ----------
        D: gp_Dir

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_SLProps_TangentV(self, *args)

    def Value(self, *args) -> "gp_Pnt const":
        r"""
        Returns the point.

        Returns
        -------
        gp_Pnt

        """
        return _BRepLProp.BRepLProp_SLProps_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepLProp.delete_BRepLProp_SLProps

# Register BRepLProp_SLProps in _BRepLProp:
_BRepLProp.BRepLProp_SLProps_swigregister(BRepLProp_SLProps)

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

    @staticmethod
    def Bounds(*args) -> "Standard_Real &, Standard_Real &, Standard_Real &, Standard_Real &":
        r"""
        Returns the bounds of the surface.

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Returns
        -------
        U1: float
        V1: float
        U2: float
        V2: float

        """
        return _BRepLProp.BRepLProp_SurfaceTool_Bounds(*args)

    @staticmethod
    def Continuity(*args) -> "Standard_Integer":
        r"""
        Returns the order of continuity of the surface <s>. returns 1 : first derivative only is computable returns 2 : first and second derivative only are computable.

        Parameters
        ----------
        S: BRepAdaptor_Surface

        Returns
        -------
        int

        """
        return _BRepLProp.BRepLProp_SurfaceTool_Continuity(*args)

    @staticmethod
    def D1(*args) -> "void":
        r"""
        Computes the point <p> and first derivative <d1*> of parameter <u> and <v> on the surface <s>.

        Parameters
        ----------
        S: BRepAdaptor_Surface
        U: float
        V: float
        P: gp_Pnt
        D1U: gp_Vec
        D1V: gp_Vec

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_SurfaceTool_D1(*args)

    @staticmethod
    def D2(*args) -> "void":
        r"""
        Computes the point <p>, the first derivative <d1*> and second derivative <d2*> of parameter <u> and <v> on the surface <s>.

        Parameters
        ----------
        S: BRepAdaptor_Surface
        U: float
        V: float
        P: gp_Pnt
        D1U: gp_Vec
        D1V: gp_Vec
        D2U: gp_Vec
        D2V: gp_Vec
        DUV: gp_Vec

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_SurfaceTool_D2(*args)

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

        Parameters
        ----------
        S: BRepAdaptor_Surface
        U: float
        V: float
        IU: int
        IV: int

        Returns
        -------
        gp_Vec

        """
        return _BRepLProp.BRepLProp_SurfaceTool_DN(*args)

    @staticmethod
    def Value(*args) -> "void":
        r"""
        Computes the point <p> of parameter <u> and <v> on the surface <s>.

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

        Returns
        -------
        None

        """
        return _BRepLProp.BRepLProp_SurfaceTool_Value(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepLProp.BRepLProp_SurfaceTool_swiginit(self, _BRepLProp.new_BRepLProp_SurfaceTool())
    __swig_destroy__ = _BRepLProp.delete_BRepLProp_SurfaceTool

# Register BRepLProp_SurfaceTool in _BRepLProp:
_BRepLProp.BRepLProp_SurfaceTool_swigregister(BRepLProp_SurfaceTool)

def BRepLProp_SurfaceTool_Bounds(*args) -> "Standard_Real &, Standard_Real &, Standard_Real &, Standard_Real &":
    r"""
    Returns the bounds of the surface.

    Parameters
    ----------
    S: BRepAdaptor_Surface

    Returns
    -------
    U1: float
    V1: float
    U2: float
    V2: float

    """
    return _BRepLProp.BRepLProp_SurfaceTool_Bounds(*args)

def BRepLProp_SurfaceTool_Continuity(*args) -> "Standard_Integer":
    r"""
    Returns the order of continuity of the surface <s>. returns 1 : first derivative only is computable returns 2 : first and second derivative only are computable.

    Parameters
    ----------
    S: BRepAdaptor_Surface

    Returns
    -------
    int

    """
    return _BRepLProp.BRepLProp_SurfaceTool_Continuity(*args)

def BRepLProp_SurfaceTool_D1(*args) -> "void":
    r"""
    Computes the point <p> and first derivative <d1*> of parameter <u> and <v> on the surface <s>.

    Parameters
    ----------
    S: BRepAdaptor_Surface
    U: float
    V: float
    P: gp_Pnt
    D1U: gp_Vec
    D1V: gp_Vec

    Returns
    -------
    None

    """
    return _BRepLProp.BRepLProp_SurfaceTool_D1(*args)

def BRepLProp_SurfaceTool_D2(*args) -> "void":
    r"""
    Computes the point <p>, the first derivative <d1*> and second derivative <d2*> of parameter <u> and <v> on the surface <s>.

    Parameters
    ----------
    S: BRepAdaptor_Surface
    U: float
    V: float
    P: gp_Pnt
    D1U: gp_Vec
    D1V: gp_Vec
    D2U: gp_Vec
    D2V: gp_Vec
    DUV: gp_Vec

    Returns
    -------
    None

    """
    return _BRepLProp.BRepLProp_SurfaceTool_D2(*args)

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

    Parameters
    ----------
    S: BRepAdaptor_Surface
    U: float
    V: float
    IU: int
    IV: int

    Returns
    -------
    gp_Vec

    """
    return _BRepLProp.BRepLProp_SurfaceTool_DN(*args)

def BRepLProp_SurfaceTool_Value(*args) -> "void":
    r"""
    Computes the point <p> of parameter <u> and <v> on the surface <s>.

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

    Returns
    -------
    None

    """
    return _BRepLProp.BRepLProp_SurfaceTool_Value(*args)





