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

from .vtkCompositeDataSet import vtkCompositeDataSet

class vtkDataObjectTree(vtkCompositeDataSet):
    """
    vtkDataObjectTree - provides implementation for most abstract methods
    in the superclass vtkCompositeDataSet
    
    Superclass: vtkCompositeDataSet
    
    vtkDataObjectTree is represents a collection of datasets (including
    other composite datasets). It provides an interface to access the
    datasets through iterators. vtkDataObjectTree provides methods that
    are used by subclasses to store the datasets. vtkDataObjectTree
    provides the datastructure for a full tree representation. Subclasses
    provide the semantics for it and control how this tree is built.
    
    @sa
    vtkDataObjectTreeIterator
    """
    def CopyStructure(self, vtkCompositeDataSet):
        """
        V.CopyStructure(vtkCompositeDataSet)
        C++: void CopyStructure(vtkCompositeDataSet *input) override;
        
        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 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 GetData(self, vtkInformation):
        """
        V.GetData(vtkInformation) -> vtkDataObjectTree
        C++: static vtkDataObjectTree *GetData(vtkInformation *info)
        V.GetData(vtkInformationVector, int) -> vtkDataObjectTree
        C++: static vtkDataObjectTree *GetData(vtkInformationVector *v,
            int i=0)
        
        Retrieve an instance of this class from an information object.
        """
        ...
    
    def GetDataSet(self, vtkCompositeDataIterator):
        """
        V.GetDataSet(vtkCompositeDataIterator) -> vtkDataObject
        C++: vtkDataObject *GetDataSet(vtkCompositeDataIterator *iter)
            override;
        
        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 GetMetaData(self, vtkCompositeDataIterator):
        """
        V.GetMetaData(vtkCompositeDataIterator) -> vtkInformation
        C++: virtual vtkInformation *GetMetaData(
            vtkCompositeDataIterator *iter)
        
        Returns the meta-data associated with the position pointed by the
        iterator. This will create a new vtkInformation object if none
        already exists. Use HasMetaData to avoid creating the
        vtkInformation object unnecessarily. 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++: vtkIdType GetNumberOfCells() override;
        
        Returns the total number of cells of all blocks. This will
        iterate over all blocks and call GetNumberOfPoints() so it might
        be expensive.
        """
        ...
    
    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++: vtkIdType GetNumberOfPoints() override;
        
        Returns the total number of points of all blocks. This will
        iterate over all blocks and call GetNumberOfPoints() so it might
        be expansive.
        """
        ...
    
    def HasMetaData(self, vtkCompositeDataIterator):
        """
        V.HasMetaData(vtkCompositeDataIterator) -> int
        C++: virtual int HasMetaData(vtkCompositeDataIterator *iter)
        
        Returns if any meta-data associated with the position 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 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 NewInstance(self):
        """
        V.NewInstance() -> vtkDataObjectTree
        C++: vtkDataObjectTree *NewInstance()
        """
        ...
    
    def NewIterator(self):
        """
        V.NewIterator() -> vtkCompositeDataIterator
        C++: vtkCompositeDataIterator *NewIterator() override;
        
        Return a new iterator (the iterator has to be deleted by user).
        
        * Use NewTreeIterator when you have a pointer to a
          vtkDataObjectTree
        * and NewIterator when you have a pointer to a
          vtkCompositeDataSet;
        * NewIterator is inherited and calls NewTreeIterator internally.
        """
        ...
    
    def NewTreeIterator(self):
        """
        V.NewTreeIterator() -> vtkDataObjectTreeIterator
        C++: virtual vtkDataObjectTreeIterator *NewTreeIterator()
        
        Return a new iterator (the iterator has to be deleted by user).
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkDataObjectTree
        C++: static vtkDataObjectTree *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetDataSet(self, vtkCompositeDataIterator, vtkDataObject):
        """
        V.SetDataSet(vtkCompositeDataIterator, vtkDataObject)
        C++: void SetDataSet(vtkCompositeDataIterator *iter,
            vtkDataObject *dataObj) override;
        
        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 SetDataSetFrom(self, vtkDataObjectTreeIterator, vtkDataObject):
        """
        V.SetDataSetFrom(vtkDataObjectTreeIterator, vtkDataObject)
        C++: void SetDataSetFrom(vtkDataObjectTreeIterator *iter,
            vtkDataObject *dataObj)
        
        Sets the data at the location provided by a
        vtkDataObjectTreeIterator
        """
        ...
    
    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__ = ...


