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

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkMergeDataObjectFilter(__vtkmodules_vtkCommonExecutionModel.vtkDataSetAlgorithm):
    """
    vtkMergeDataObjectFilter - merge dataset and data object field to
    create dataset with attribute data
    
    Superclass: vtkDataSetAlgorithm
    
    vtkMergeDataObjectFilter is a filter that merges the field from a
    vtkDataObject with a vtkDataSet. The resulting combined dataset can
    then be processed by other filters (e.g.,
    vtkFieldDataToAttributeDataFilter) to create attribute data like
    scalars, vectors, etc.
    
    The filter operates as follows. The field data from the vtkDataObject
    is merged with the input's vtkDataSet and then placed in the output.
    You can choose to place the field data into the cell data field, the
    point data field, or the datasets field (i.e., the one inherited from
    vtkDataSet's superclass vtkDataObject). All this data shuffling
    occurs via reference counting, therefore memory is not copied.
    
    One of the uses of this filter is to allow you to read/generate the
    structure of a dataset independent of the attributes. So, for
    example, you could store the dataset geometry/topology in one file,
    and field data in another. Then use this filter in combination with
    vtkFieldDataToAttributeData to create a dataset ready for processing
    in the visualization pipeline.
    """
    def GetDataObject(self):
        """
        V.GetDataObject() -> vtkDataObject
        C++: vtkDataObject *GetDataObject()
        
        Specify the data object to merge with the input dataset.
        """
        ...
    
    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 GetOutputField(self):
        """
        V.GetOutputField() -> int
        C++: virtual int GetOutputField()
        
        Specify where to place the field data during the merge process. 
        There are three choices: the field data associated with the
        vtkDataObject superclass; the point field attribute data; and the
        cell field attribute data.
        """
        ...
    
    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() -> vtkMergeDataObjectFilter
        C++: vtkMergeDataObjectFilter *NewInstance()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkMergeDataObjectFilter
        C++: static vtkMergeDataObjectFilter *SafeDownCast(
            vtkObjectBase *o)
        """
        ...
    
    def SetDataObjectInputData(self, vtkDataObject):
        """
        V.SetDataObjectInputData(vtkDataObject)
        C++: void SetDataObjectInputData(vtkDataObject *object)
        
        Specify the data object to merge with the input dataset.
        """
        ...
    
    def SetOutputField(self, p_int):
        """
        V.SetOutputField(int)
        C++: virtual void SetOutputField(int _arg)
        
        Specify where to place the field data during the merge process. 
        There are three choices: the field data associated with the
        vtkDataObject superclass; the point field attribute data; and the
        cell field attribute data.
        """
        ...
    
    def SetOutputFieldToCellDataField(self):
        """
        V.SetOutputFieldToCellDataField()
        C++: void SetOutputFieldToCellDataField()
        
        Specify where to place the field data during the merge process. 
        There are three choices: the field data associated with the
        vtkDataObject superclass; the point field attribute data; and the
        cell field attribute data.
        """
        ...
    
    def SetOutputFieldToDataObjectField(self):
        """
        V.SetOutputFieldToDataObjectField()
        C++: void SetOutputFieldToDataObjectField()
        
        Specify where to place the field data during the merge process. 
        There are three choices: the field data associated with the
        vtkDataObject superclass; the point field attribute data; and the
        cell field attribute data.
        """
        ...
    
    def SetOutputFieldToPointDataField(self):
        """
        V.SetOutputFieldToPointDataField()
        C++: void SetOutputFieldToPointDataField()
        
        Specify where to place the field data during the merge process. 
        There are three choices: the field data associated with the
        vtkDataObject superclass; the point field attribute data; and the
        cell field attribute data.
        """
        ...
    
    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__ = ...


