"""
This type stub file was generated by pyright.
"""

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkCurvatures(__vtkmodules_vtkCommonExecutionModel.vtkPolyDataAlgorithm):
    """
    vtkCurvatures - compute curvatures (Gauss and mean) of a Polydata
    object
    
    Superclass: vtkPolyDataAlgorithm
    
    vtkCurvatures takes a polydata input and computes the curvature of
    the mesh at each point. Four possible methods of computation are
    available :
    
    Gauss Curvature discrete Gauss curvature (K)
    computation,$K(\text{vertex v}) = 2*\pi - \sum_{\text{facet neighbs f
    of v}} (\text{angle_f at v}) $. The contribution of every facet is
    for the moment weighted by $Area(facet)/3 $. The units of Gaussian
    Curvature are $[1/m^2] $.
    
    Mean Curvature$H(vertex v) = \text{average over edges neighbs e of
    H(e)} $,$H(edge e) = length(e) * dihedral\_angle(e) $.
    
    NB: dihedral_angle is the ORIENTED angle between -PI and PI, this
    means that the surface is assumed to be orientable the computation
    creates the orientation. The units of Mean Curvature are [1/m].
    
    Maximum ( $k_\max $) and Minimum ( $k_\min $) Principal
    Curvatures$k_\max = H + \sqrt{H^2 - K} $,$k_\min = H - \sqrt{H^2 - K}
    $ Excepting spherical and planar surfaces which have equal principal
    curvatures, the curvature at a point on a surface varies with the
    direction one "sets off" from the point. For all directions, the
    curvature will pass through two extrema: a minimum ( $k_\min $) and a
    maximum ( $k_\max $) which occur at mutually orthogonal directions to
    each other.
    
    NB. The sign of the Gauss curvature is a geometric invariant, it
    should be positive when the surface looks like a sphere, negative
    when it looks like a saddle, however the sign of the Mean curvature
    is not, it depends on the convention for normals. This code assumes
    that normals point outwards (i.e. from the surface of a sphere
    outwards). If a given mesh produces curvatures of opposite senses
    then the flag InvertMeanCurvature can be set and the Curvature
    reported by the Mean calculation will be inverted.
    
    @par Thanks: Philip Batchelor philipp.batchelor@kcl.ac.uk for
    creating and contributing the class and Andrew Maclean
    a.maclean@acfr.usyd.edu.au for cleanups and fixes. Thanks also to
    Goodwin Lawlor for contributing patch to calculate principal
    curvatures
    """
    def GetCurvatureType(self):
        """
        V.GetCurvatureType() -> int
        C++: virtual int GetCurvatureType()
        
        Set/Get Curvature type VTK_CURVATURE_GAUSS: Gaussian curvature,
        stored as DataArray "Gauss_Curvature" VTK_CURVATURE_MEAN : Mean
        curvature, stored as DataArray "Mean_Curvature"
        """
        ...
    
    def GetInvertMeanCurvature(self):
        """
        V.GetInvertMeanCurvature() -> int
        C++: virtual vtkTypeBool GetInvertMeanCurvature()
        
        Set/Get the flag which inverts the mean curvature calculation for
        meshes with inward pointing normals (default false)
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def InvertMeanCurvatureOff(self):
        """
        V.InvertMeanCurvatureOff()
        C++: virtual void InvertMeanCurvatureOff()
        
        Set/Get the flag which inverts the mean curvature calculation for
        meshes with inward pointing normals (default false)
        """
        ...
    
    def InvertMeanCurvatureOn(self):
        """
        V.InvertMeanCurvatureOn()
        C++: virtual void InvertMeanCurvatureOn()
        
        Set/Get the flag which inverts the mean curvature calculation for
        meshes with inward pointing normals (default false)
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Return 1 if this class is the same type of (or a subclass of) the
        named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Return 1 if this class type is the same type of (or a subclass
        of) the named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkCurvatures
        C++: vtkCurvatures *NewInstance()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkCurvatures
        C++: static vtkCurvatures *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetCurvatureType(self, p_int):
        """
        V.SetCurvatureType(int)
        C++: virtual void SetCurvatureType(int _arg)
        
        Set/Get Curvature type VTK_CURVATURE_GAUSS: Gaussian curvature,
        stored as DataArray "Gauss_Curvature" VTK_CURVATURE_MEAN : Mean
        curvature, stored as DataArray "Mean_Curvature"
        """
        ...
    
    def SetCurvatureTypeToGaussian(self):
        """
        V.SetCurvatureTypeToGaussian()
        C++: void SetCurvatureTypeToGaussian()
        
        Set/Get Curvature type VTK_CURVATURE_GAUSS: Gaussian curvature,
        stored as DataArray "Gauss_Curvature" VTK_CURVATURE_MEAN : Mean
        curvature, stored as DataArray "Mean_Curvature"
        """
        ...
    
    def SetCurvatureTypeToMaximum(self):
        """
        V.SetCurvatureTypeToMaximum()
        C++: void SetCurvatureTypeToMaximum()
        
        Set/Get Curvature type VTK_CURVATURE_GAUSS: Gaussian curvature,
        stored as DataArray "Gauss_Curvature" VTK_CURVATURE_MEAN : Mean
        curvature, stored as DataArray "Mean_Curvature"
        """
        ...
    
    def SetCurvatureTypeToMean(self):
        """
        V.SetCurvatureTypeToMean()
        C++: void SetCurvatureTypeToMean()
        
        Set/Get Curvature type VTK_CURVATURE_GAUSS: Gaussian curvature,
        stored as DataArray "Gauss_Curvature" VTK_CURVATURE_MEAN : Mean
        curvature, stored as DataArray "Mean_Curvature"
        """
        ...
    
    def SetCurvatureTypeToMinimum(self):
        """
        V.SetCurvatureTypeToMinimum()
        C++: void SetCurvatureTypeToMinimum()
        
        Set/Get Curvature type VTK_CURVATURE_GAUSS: Gaussian curvature,
        stored as DataArray "Gauss_Curvature" VTK_CURVATURE_MEAN : Mean
        curvature, stored as DataArray "Mean_Curvature"
        """
        ...
    
    def SetInvertMeanCurvature(self, p_int):
        """
        V.SetInvertMeanCurvature(int)
        C++: virtual void SetInvertMeanCurvature(vtkTypeBool _arg)
        
        Set/Get the flag which inverts the mean curvature calculation for
        meshes with inward pointing normals (default false)
        """
        ...
    
    def __delattr__(self, *args, **kwargs):
        """ Implement delattr(self, name). """
        ...
    
    def __getattribute__(self, *args, **kwargs):
        """ Return getattr(self, name). """
        ...
    
    def __init__(self, *args, **kwargs) -> None:
        ...
    
    @staticmethod
    def __new__(*args, **kwargs):
        """ Create and return a new object.  See help(type) for accurate signature. """
        ...
    
    def __repr__(self, *args, **kwargs):
        """ Return repr(self). """
        ...
    
    def __setattr__(self, *args, **kwargs):
        """ Implement setattr(self, name, value). """
        ...
    
    def __str__(self, *args, **kwargs) -> str:
        """ Return str(self). """
        ...
    
    __this__ = ...
    __dict__ = ...
    __vtkname__ = ...


