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

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkExtractCellsByType(__vtkmodules_vtkCommonExecutionModel.vtkDataSetAlgorithm):
    """
    vtkExtractCellsByType - extract cells of a specified type
    
    Superclass: vtkDataSetAlgorithm
    
    Given an input vtkDataSet and a list of cell types, produce an output
    dataset containing only cells of the specified type(s). Note that if
    the input dataset is homogeneous (e.g., all cells are of the same
    type) and the cell type is one of the cells specified, then the input
    dataset is shallow copied to the output.
    
    The type of output dataset is always the same as the input type.
    Since structured types of data (i.e., vtkImageData,
    vtkStructuredGrid, vtkRectilnearGrid, vtkUniformGrid) are all
    composed of a cell of the same type, the output is either empty, or a
    shallow copy of the input. Unstructured data (vtkUnstructuredGrid,
    vtkPolyData) input may produce a subset of the input data (depending
    on the selected cell types).
    
    Note this filter can be used in a pipeline with composite datasets to
    extract blocks of (a) particular cell type(s).
    
    @warning
    Unlike the filter vtkExtractCells which always produces
    vtkUnstructuredGrid output, this filter produces the same output type
    as input type (i.e., it is a vtkDataSetAlgorithm). Also,
    vtkExtractCells extracts cells based on their ids.
    
    * @sa
    * vtkExtractBlock vtkExtractCells
    """
    def AddAllCellTypes(self):
        """
        V.AddAllCellTypes()
        C++: void AddAllCellTypes()
        
        Specify the cell types to extract. Any cells of the type
        specified are extracted. Methods for clearing the set of cells,
        adding all cells, and determining if a cell is in the set are
        also provided.
        """
        ...
    
    def AddCellType(self, p_int):
        """
        V.AddCellType(int)
        C++: void AddCellType(unsigned int type)
        
        Specify the cell types to extract. Any cells of the type
        specified are extracted. Methods for clearing the set of cells,
        adding all cells, and determining if a cell is in the set are
        also provided.
        """
        ...
    
    def ExtractCellType(self, p_int):
        """
        V.ExtractCellType(int) -> bool
        C++: bool ExtractCellType(unsigned int type)
        
        Specify the cell types to extract. Any cells of the type
        specified are extracted. Methods for clearing the set of cells,
        adding all cells, and determining if a cell is in the set are
        also provided.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard methods for construction, type info, and printing.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard methods for construction, type info, and printing.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods for construction, type info, and printing.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard methods for construction, type info, and printing.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkExtractCellsByType
        C++: vtkExtractCellsByType *NewInstance()
        
        Standard methods for construction, type info, and printing.
        """
        ...
    
    def RemoveAllCellTypes(self):
        """
        V.RemoveAllCellTypes()
        C++: void RemoveAllCellTypes()
        
        Specify the cell types to extract. Any cells of the type
        specified are extracted. Methods for clearing the set of cells,
        adding all cells, and determining if a cell is in the set are
        also provided.
        """
        ...
    
    def RemoveCellType(self, p_int):
        """
        V.RemoveCellType(int)
        C++: void RemoveCellType(unsigned int type)
        
        Specify the cell types to extract. Any cells of the type
        specified are extracted. Methods for clearing the set of cells,
        adding all cells, and determining if a cell is in the set are
        also provided.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkExtractCellsByType
        C++: static vtkExtractCellsByType *SafeDownCast(vtkObjectBase *o)
        
        Standard methods for construction, type info, and printing.
        """
        ...
    
    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__ = ...


