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

from .vtkDataObject import vtkDataObject

class vtkCompositeDataSet(vtkDataObject):
    """
    vtkCompositeDataSet - abstract superclass for composite (multi-block
    or AMR) datasets
    
    Superclass: vtkDataObject
    
    vtkCompositeDataSet is an abstract class that represents a collection
    of datasets (including other composite datasets). It provides an
    interface to access the datasets through iterators.
    vtkCompositeDataSet provides methods that are used by subclasses to
    store the datasets. vtkCompositeDataSet provides the datastructure
    for a full tree representation. Subclasses provide the semantics for
    it and control how this tree is built.
    
    @sa
    vtkCompositeDataIterator
    """
    def CopyStructure(self, vtkCompositeDataSet):
        """
        V.CopyStructure(vtkCompositeDataSet)
        C++: virtual void CopyStructure(vtkCompositeDataSet *input)
        
        Copies the tree structure from the input. All pointers to
        non-composite data objects are initialized to nullptr. This also
        shallow copies the meta data associated with all the nodes.
        """
        ...
    
    def CURRENT_PROCESS_CAN_LOAD_BLOCK(self):
        """
        V.CURRENT_PROCESS_CAN_LOAD_BLOCK() -> vtkInformationIntegerKey
        C++: static vtkInformationIntegerKey *CURRENT_PROCESS_CAN_LOAD_BLOCK(
            )
        
        Key used to indicate that the current process can load the data
        in the node.  Used for parallel readers where the nodes are
        assigned to the processes by the reader to indicate further down
        the pipeline which nodes will be on which processes.
        ***THIS IS AN EXPERIMENTAL KEY SUBJECT TO CHANGE WITHOUT
            NOTICE***
        """
        ...
    
    def DeepCopy(self, vtkDataObject):
        """
        V.DeepCopy(vtkDataObject)
        C++: void DeepCopy(vtkDataObject *src) override;
        
        Shallow and Deep copy.
        """
        ...
    
    def GetActualMemorySize(self):
        """
        V.GetActualMemorySize() -> int
        C++: unsigned long GetActualMemorySize() override;
        
        Return the actual size of the data in kibibytes (1024 bytes).
        This number is valid only after the pipeline has updated.
        """
        ...
    
    def GetBounds(self, p_float=..., p_float=..., p_float=..., p_float=..., p_float=..., p_float=...):
        """
        V.GetBounds([float, float, float, float, float, float])
        C++: void GetBounds(double bounds[6])
        
        Return the geometric bounding box in the form (xmin,xmax,
        ymin,ymax, zmin,zmax).  Note that if the composite dataset
        contains abstract types (i.e., non vtkDataSet types) such as
        tables these will be ignored by the method. In cases where no
        vtkDataSet is contained in the composite dataset then the
        returned bounds will be undefined. THIS METHOD IS THREAD SAFE IF
        FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT
        MODIFIED.
        """
        ...
    
    def GetData(self, vtkInformation):
        """
        V.GetData(vtkInformation) -> vtkCompositeDataSet
        C++: static vtkCompositeDataSet *GetData(vtkInformation *info)
        V.GetData(vtkInformationVector, int) -> vtkCompositeDataSet
        C++: static vtkCompositeDataSet *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 GetDataSet(self, vtkCompositeDataIterator):
        """
        V.GetDataSet(vtkCompositeDataIterator) -> vtkDataObject
        C++: virtual vtkDataObject *GetDataSet(
            vtkCompositeDataIterator *iter)
        
        Returns the dataset located at the positiong pointed by the
        iterator. The iterator does not need to be iterating over this
        dataset itself. It can be an iterator for composite dataset with
        similar structure (achieved by using CopyStructure).
        """
        ...
    
    def GetNumberOfCells(self):
        """
        V.GetNumberOfCells() -> int
        C++: virtual vtkIdType GetNumberOfCells()
        
        Returns the total number of cells of all blocks. This will
        iterate over all blocks and call GetNumberOfPoints() so it might
        be expensive.
        """
        ...
    
    def GetNumberOfElements(self, p_int):
        """
        V.GetNumberOfElements(int) -> int
        C++: vtkIdType GetNumberOfElements(int type) override;
        
        Get the number of elements for a specific attribute type (POINT,
        CELL, etc.).
        """
        ...
    
    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 GetNumberOfPoints(self):
        """
        V.GetNumberOfPoints() -> int
        C++: virtual vtkIdType GetNumberOfPoints()
        
        Returns the total number of points of all blocks. This will
        iterate over all blocks and call GetNumberOfPoints() so it might
        be expensive.
        """
        ...
    
    def Initialize(self):
        """
        V.Initialize()
        C++: void Initialize() override;
        
        Restore data object to initial state,
        """
        ...
    
    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 NAME(self):
        """
        V.NAME() -> vtkInformationStringKey
        C++: static vtkInformationStringKey *NAME()
        
        Key used to put node name in the meta-data associated with a
        node.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkCompositeDataSet
        C++: vtkCompositeDataSet *NewInstance()
        """
        ...
    
    def NewIterator(self):
        """
        V.NewIterator() -> vtkCompositeDataIterator
        C++: virtual vtkCompositeDataIterator *NewIterator()
        
        Return a new iterator (the iterator has to be deleted by user).
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkCompositeDataSet
        C++: static vtkCompositeDataSet *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetDataSet(self, vtkCompositeDataIterator, vtkDataObject):
        """
        V.SetDataSet(vtkCompositeDataIterator, vtkDataObject)
        C++: virtual void SetDataSet(vtkCompositeDataIterator *iter,
            vtkDataObject *dataObj)
        
        Sets the data set at the location pointed by the iterator. The
        iterator does not need to be iterating over this dataset itself.
        It can be any composite datasite with similar structure (achieved
        by using CopyStructure).
        """
        ...
    
    def ShallowCopy(self, vtkDataObject):
        """
        V.ShallowCopy(vtkDataObject)
        C++: void ShallowCopy(vtkDataObject *src) override;
        
        Shallow and Deep copy.
        """
        ...
    
    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__ = ...


