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

from .vtkDataObjectTree import vtkDataObjectTree

class vtkPartitionedDataSet(vtkDataObjectTree):
    """
    vtkPartitionedDataSet - composite dataset to encapsulates a dataset
    consisting of partitions.
    
    Superclass: vtkDataObjectTree
    
    A vtkPartitionedDataSet dataset groups multiple datasets together.
    For example, say a simulation running in parallel on 16 processes
    generated 16 datasets that when considering together form a whole
    dataset. These are referred to as the partitions of the whole
    dataset. Now imagine that we want to load a volume of 16 partitions
    in a visualization cluster of 4 nodes. Each node could get 4
    partitions, not necessarily forming a whole rectangular region. In
    this case, it is not possible to append the 4 partitions together
    into a vtkImageData. We can then collect these 4 partitions together
    using a vtkPartitionedDataSet.
    
    It is required that all non-empty partitions have the same arrays and
    that they can be processed together as a whole by the same kind of
    filter. However, it is not required that they are of the same type.
    For example, it is possible to have structured datasets together with
    unstructured datasets as long as they are compatible meshes (i.e. can
    be processed together for the same kind of filter).
    """
    def GetData(self, vtkInformation):
        """
        V.GetData(vtkInformation) -> vtkPartitionedDataSet
        C++: static vtkPartitionedDataSet *GetData(vtkInformation *info)
        V.GetData(vtkInformationVector, int) -> vtkPartitionedDataSet
        C++: static vtkPartitionedDataSet *GetData(
            vtkInformationVector *v, int i=0)
        
        Retrieve an instance of this class from an information object.
        """
        ...
    
    def GetDataObjectType(self):
        """
        V.GetDataObjectType() -> int
        C++: int GetDataObjectType() override;
        
        Return class name of data type (see vtkType.h for definitions).
        """
        ...
    
    def GetMetaData(self, p_int):
        """
        V.GetMetaData(int) -> vtkInformation
        C++: vtkInformation *GetMetaData(unsigned int idx)
        V.GetMetaData(vtkCompositeDataIterator) -> vtkInformation
        C++: vtkInformation *GetMetaData(vtkCompositeDataIterator *iter)
            override;
        
        Returns the meta-data for the partition. If none is already
        present, a new vtkInformation object will be allocated. Use
        HasMetaData to avoid allocating vtkInformation objects.
        """
        ...
    
    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 GetNumberOfPartitions(self):
        """
        V.GetNumberOfPartitions() -> int
        C++: unsigned int GetNumberOfPartitions()
        
        Returns the number of partitions.
        """
        ...
    
    def GetPartition(self, p_int):
        """
        V.GetPartition(int) -> vtkDataSet
        C++: vtkDataSet *GetPartition(unsigned int idx)
        
        Returns the partition at the given index.
        """
        ...
    
    def GetPartitionAsDataObject(self, p_int):
        """
        V.GetPartitionAsDataObject(int) -> vtkDataObject
        C++: vtkDataObject *GetPartitionAsDataObject(unsigned int idx)
        
        Returns the partition at the given index.
        """
        ...
    
    def HasMetaData(self, p_int):
        """
        V.HasMetaData(int) -> int
        C++: int HasMetaData(unsigned int idx)
        V.HasMetaData(vtkCompositeDataIterator) -> int
        C++: int HasMetaData(vtkCompositeDataIterator *iter) override;
        
        Returns true if meta-data is available for a given partition.
        """
        ...
    
    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() -> vtkPartitionedDataSet
        C++: vtkPartitionedDataSet *NewInstance()
        """
        ...
    
    def RemoveNullPartitions(self):
        """
        V.RemoveNullPartitions()
        C++: void RemoveNullPartitions()
        
        Removes all partitions that have null datasets and resizes the
        dataset. Note any meta data associated with the null datasets
        will get lost.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkPartitionedDataSet
        C++: static vtkPartitionedDataSet *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetNumberOfPartitions(self, p_int):
        """
        V.SetNumberOfPartitions(int)
        C++: void SetNumberOfPartitions(unsigned int numPartitions)
        
        Set the number of partitionss. This will cause allocation if the
        new number of partitions is greater than the current size. All
        new partitions are initialized to null.
        """
        ...
    
    def SetPartition(self, p_int, vtkDataObject):
        """
        V.SetPartition(int, vtkDataObject)
        C++: void SetPartition(unsigned int idx, vtkDataObject *partition)
        
        Sets the data object as the given partition. The total number of
        partitions will be resized to fit the requested partition no.
        """
        ...
    
    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__ = ...


