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

import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore

class vtkSortFieldData(__vtkmodules_vtkCommonCore.vtkSortDataArray):
    """
    vtkSortFieldData - provides a method for sorting field data
    
    Superclass: vtkSortDataArray
    
    vtkSortFieldData is used to sort data, based on its value, or with an
    associated key, into either ascending or descending order. This is
    useful for operations like selection, or analysis, when evaluating
    and processing data.
    
    This class, which extends the base functionality of vtkSortDataArray,
    is used to sort field data and its various subclasses (vtkFieldData,
    vtkDataSetAttributes, vtkPointData, vtkCellData, etc.)
    
    @warning
    This class has been threaded with vtkSMPTools. Using TBB or other
    non-sequential type (set in the CMake variable
    VTK_SMP_IMPLEMENTATION_TYPE) may improve performance significantly on
    multi-core machines.
    
    @warning
    The sort methods below are static, hence the sorting methods can be
    used without instantiating the class. All methods are thread safe.
    
    @sa
    vtkSortDataArray
    """
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard VTK methods for instantiating, managing type, and
        printing information about this class.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard VTK methods for instantiating, managing type, and
        printing information about this class.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard VTK methods for instantiating, managing type, and
        printing information about this class.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard VTK methods for instantiating, managing type, and
        printing information about this class.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkSortFieldData
        C++: vtkSortFieldData *NewInstance()
        
        Standard VTK methods for instantiating, managing type, and
        printing information about this class.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkSortFieldData
        C++: static vtkSortFieldData *SafeDownCast(vtkObjectBase *o)
        
        Standard VTK methods for instantiating, managing type, and
        printing information about this class.
        """
        ...
    
    def Sort(self, vtkFieldData, string, p_int, p_int_1):
        """
        V.Sort(vtkFieldData, string, int, int) -> (int, ...)
        C++: static vtkIdType *Sort(vtkFieldData *fd,
            const char *arrayName, int k, int returnIndices)
        V.Sort(vtkFieldData, string, int, int, int) -> (int, ...)
        C++: static vtkIdType *Sort(vtkFieldData *fd,
            const char *arrayName, int k, int returnIndices, int dir)
        
        Given field data (and derived classes such as point data and cell
        data), sort all the arrays in the field data given an array and a
        component number k from that array. In other words, if an array
        has n components, the kth component is used to sort the array and
        all of the other arrays in the field data.  Also note that the
        user can indicate whether the function returns the sort indices
        (returnIndices=1). If the indices are returned, then the user
        takes ownership of the data and must delete it. Note that the
        indices are in sorted (ascending) order, and indicate the final
        sorted position of the sort. So for example indices[0]=10
        indicates that the original data in position 10 in the field, was
        moved to position 0 after the sort. By default, returnIndices=0.
        (Other notes: if any array is not the same length as the sorting
        array, then it will be skipped and not sorted.)
        """
        ...
    
    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__ = ...


