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

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkCookieCutter(__vtkmodules_vtkCommonExecutionModel.vtkPolyDataAlgorithm):
    """
    vtkCookieCutter - cut vtkPolyData defined on the 2D plane with one or
    more polygons
    
    Superclass: vtkPolyDataAlgorithm
    
    This filter crops an input vtkPolyData consisting of cells (i.e.,
    points, lines, polygons, and triangle strips) with loops specified by
    a second input containing polygons. Note that this filter can handle
    concave polygons and/or loops. It may produce multiple output
    polygons for each polygon/loop interaction. Similarly, it may produce
    multiple line segments and so on.
    
    @warning
    The z-values of the input vtkPolyData and the points defining the
    loops are assumed to lie at z=constant. In other words, this filter
    assumes that the data lies in a plane orthogonal to the z axis.
    """
    def CreateDefaultLocator(self):
        """
        V.CreateDefaultLocator()
        C++: void CreateDefaultLocator()
        
        Create default locator. Used to create one when none is
        specified. The locator is used to merge coincident points.
        """
        ...
    
    def GetLocator(self):
        """
        V.GetLocator() -> vtkIncrementalPointLocator
        C++: virtual vtkIncrementalPointLocator *GetLocator()
        
        Specify a spatial locator for merging points. By default, an
        instance of vtkMergePoints is used.
        """
        ...
    
    def GetLoops(self):
        """
        V.GetLoops() -> vtkDataObject
        C++: vtkDataObject *GetLoops()
        
        Specify the a second vtkPolyData input which defines loops used
        to cut the input polygonal data. These loops must be manifold,
        i.e., do not self intersect. The loops are defined from the
        polygons defined in this second input.
        """
        ...
    
    def GetLoopsConnection(self):
        """
        V.GetLoopsConnection() -> vtkAlgorithmOutput
        C++: vtkAlgorithmOutput *GetLoopsConnection()
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkCookieCutter
        C++: vtkCookieCutter *NewInstance()
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkCookieCutter
        C++: static vtkCookieCutter *SafeDownCast(vtkObjectBase *o)
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def SetLocator(self, vtkIncrementalPointLocator):
        """
        V.SetLocator(vtkIncrementalPointLocator)
        C++: void SetLocator(vtkIncrementalPointLocator *locator)
        
        Specify a spatial locator for merging points. By default, an
        instance of vtkMergePoints is used.
        """
        ...
    
    def SetLoopsConnection(self, vtkAlgorithmOutput):
        """
        V.SetLoopsConnection(vtkAlgorithmOutput)
        C++: void SetLoopsConnection(vtkAlgorithmOutput *algOutput)
        
        Specify the a second vtkPolyData input which defines loops used
        to cut the input polygonal data. These loops must be manifold,
        i.e., do not self intersect. The loops are defined from the
        polygons defined in this second input.
        """
        ...
    
    def SetLoopsData(self, vtkDataObject):
        """
        V.SetLoopsData(vtkDataObject)
        C++: void SetLoopsData(vtkDataObject *loops)
        
        Specify the a second vtkPolyData input which defines loops used
        to cut the input polygonal data. These loops must be manifold,
        i.e., do not self intersect. The loops are defined from the
        polygons defined in this second input.
        """
        ...
    
    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__ = ...


