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

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkGenerateIndexArray(__vtkmodules_vtkCommonExecutionModel.vtkDataObjectAlgorithm):
    """
    vtkGenerateIndexArray - Generates a new vtkIdTypeArray containing
    zero-base indices.
    
    Superclass: vtkDataObjectAlgorithm
    
    vtkGenerateIndexArray operates in one of two distinct "modes". By
    default, it simply generates an index array containing
    monotonically-increasing integers in the range [0, N), where N is
    appropriately sized for the field type that will store the results. 
    This mode is useful for generating a unique ID field for datasets
    that have none.
    
    The second "mode" uses an existing array from the input data object
    as a "reference".  Distinct values from the reference array are
    sorted in ascending order, and an integer index in the range [0, N)
    is assigned to each.  The resulting map is used to populate the
    output index array, mapping each value in the reference array to its
    corresponding index and storing the result in the output array.  This
    mode is especially useful when generating tensors, since it allows us
    to "map" from an array with arbitrary contents to an index that can
    be used as tensor coordinates.
    """
    def GetArrayName(self):
        """
        V.GetArrayName() -> string
        C++: virtual char *GetArrayName()
        
        Control the output index array name.  Default: "index".
        """
        ...
    
    def GetFieldType(self):
        """
        V.GetFieldType() -> int
        C++: virtual int GetFieldType()
        
        Control the location where the index array will be stored.
        """
        ...
    
    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 GetPedigreeID(self):
        """
        V.GetPedigreeID() -> int
        C++: virtual int GetPedigreeID()
        
        Specifies whether the index array should be marked as pedigree
        ids.  Default: false.
        """
        ...
    
    def GetReferenceArrayName(self):
        """
        V.GetReferenceArrayName() -> string
        C++: virtual char *GetReferenceArrayName()
        
        Specifies an optional reference array for index-generation.
        """
        ...
    
    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() -> vtkGenerateIndexArray
        C++: vtkGenerateIndexArray *NewInstance()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkGenerateIndexArray
        C++: static vtkGenerateIndexArray *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetArrayName(self, string):
        """
        V.SetArrayName(string)
        C++: virtual void SetArrayName(const char *_arg)
        
        Control the output index array name.  Default: "index".
        """
        ...
    
    def SetFieldType(self, p_int):
        """
        V.SetFieldType(int)
        C++: virtual void SetFieldType(int _arg)
        
        Control the location where the index array will be stored.
        """
        ...
    
    def SetPedigreeID(self, p_int):
        """
        V.SetPedigreeID(int)
        C++: virtual void SetPedigreeID(int _arg)
        
        Specifies whether the index array should be marked as pedigree
        ids.  Default: false.
        """
        ...
    
    def SetReferenceArrayName(self, string):
        """
        V.SetReferenceArrayName(string)
        C++: virtual void SetReferenceArrayName(const char *_arg)
        
        Specifies an optional reference array for index-generation.
        """
        ...
    
    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__ = ...
    CELL_DATA = ...
    EDGE_DATA = ...
    POINT_DATA = ...
    ROW_DATA = ...
    VERTEX_DATA = ...
    __dict__ = ...
    __vtkname__ = ...


