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

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkPointCloudFilter(__vtkmodules_vtkCommonExecutionModel.vtkPolyDataAlgorithm):
    """
    vtkPointCloudFilter - abstract class for filtering a point cloud
    
    Superclass: vtkPolyDataAlgorithm
    
    vtkPointCloudFilter serves as a base for classes that filter point
    clouds. It takes as input any vtkPointSet (which represents points
    explicitly using vtkPoints) and produces as output an explicit
    representation of filtered points via a vtkPolyData. This output
    vtkPolyData will populate its instance of vtkPoints, and typically no
    cells will be defined (i.e., no vtkVertex or vtkPolyVertex are
    contained in the output unless explicitly requested). Also, after
    filter execution, the user can request a vtkIdType* point map which
    indicates how the input points were mapped to the output. A value of
    PointMap[i] < 0 (where i is the ith input point) means that the ith
    input point was removed. Otherwise PointMap[i] indicates the position
    in the output vtkPoints array (point cloud).
    
    Optionally the filter may produce a second output. This second output
    is another vtkPolyData with a vtkPoints that contains the points that
    were removed during processing. To produce this second output, you
    must enable GenerateOutliers. If this optional, second output is
    created, then the contents of the PointMap are modified as well. In
    this case, a PointMap[i] < 0 means that the ith input point has been
    mapped to the (-PointMap[i])-1 position in the second output's
    vtkPoints.
    
    @warning
    This class has been threaded with vtkSMPTools. Using TBB or other
    non-sequential type (set in the CMake variable
    VTK_SMP_IMPLEMENTATION_TYPE) may improve performance significantly.
    
    @warning
    The filter copies point attributes from input to output consistent
    with the filtering operation.
    
    @warning
    It is convenient to use vtkPointGaussianMapper to render the points
    (since this mapper does not require cells to be defined, and it is
    quite fast).
    
    @sa
    vtkRadiusOutlierRemoval vtkPointGaussianMapper vtkThresholdPoints
    """
    def GenerateOutliersOff(self):
        """
        V.GenerateOutliersOff()
        C++: virtual void GenerateOutliersOff()
        
        If this method is enabled (true), then a second output will be
        created that contains the outlier points. By default this is off
        (false).  Note that if enabled, the PointMap is modified as well:
        the outlier points are listed as well, with similar meaning,
        except their value is negated and shifted by -1.
        """
        ...
    
    def GenerateOutliersOn(self):
        """
        V.GenerateOutliersOn()
        C++: virtual void GenerateOutliersOn()
        
        If this method is enabled (true), then a second output will be
        created that contains the outlier points. By default this is off
        (false).  Note that if enabled, the PointMap is modified as well:
        the outlier points are listed as well, with similar meaning,
        except their value is negated and shifted by -1.
        """
        ...
    
    def GenerateVerticesOff(self):
        """
        V.GenerateVerticesOff()
        C++: virtual void GenerateVerticesOff()
        
        If this method is enabled (true), then the outputs will contain a
        vertex cells (i.e., a vtkPolyVertex for each output). This takes
        a lot more memory but some VTK filters need cells to function
        properly. By default this is off (false).
        """
        ...
    
    def GenerateVerticesOn(self):
        """
        V.GenerateVerticesOn()
        C++: virtual void GenerateVerticesOn()
        
        If this method is enabled (true), then the outputs will contain a
        vertex cells (i.e., a vtkPolyVertex for each output). This takes
        a lot more memory but some VTK filters need cells to function
        properly. By default this is off (false).
        """
        ...
    
    def GetGenerateOutliers(self):
        """
        V.GetGenerateOutliers() -> bool
        C++: virtual bool GetGenerateOutliers()
        
        If this method is enabled (true), then a second output will be
        created that contains the outlier points. By default this is off
        (false).  Note that if enabled, the PointMap is modified as well:
        the outlier points are listed as well, with similar meaning,
        except their value is negated and shifted by -1.
        """
        ...
    
    def GetGenerateVertices(self):
        """
        V.GetGenerateVertices() -> bool
        C++: virtual bool GetGenerateVertices()
        
        If this method is enabled (true), then the outputs will contain a
        vertex cells (i.e., a vtkPolyVertex for each output). This takes
        a lot more memory but some VTK filters need cells to function
        properly. By default this is off (false).
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard methods to obtain type information, and print
        information.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard methods to obtain type information, and print
        information.
        """
        ...
    
    def GetNumberOfPointsRemoved(self):
        """
        V.GetNumberOfPointsRemoved() -> int
        C++: vtkIdType GetNumberOfPointsRemoved()
        
        Return the number of points removed after filter execution. The
        information returned is valid only after the filter executes.
        """
        ...
    
    def GetPointMap(self):
        """
        V.GetPointMap() -> (int, ...)
        C++: const vtkIdType *GetPointMap()
        
        Retrieve a map which indicates, on a point-by-point basis, where
        each input point was placed into the output. In other words,
        map[i] indicates where the ith input point is located in the
        output array of points. If map[i] < 0, then the ith input point
        was removed during filter execution.  This method returns valid
        information only after the filter executes.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods to obtain type information, and print
        information.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard methods to obtain type information, and print
        information.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkPointCloudFilter
        C++: vtkPointCloudFilter *NewInstance()
        
        Standard methods to obtain type information, and print
        information.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkPointCloudFilter
        C++: static vtkPointCloudFilter *SafeDownCast(vtkObjectBase *o)
        
        Standard methods to obtain type information, and print
        information.
        """
        ...
    
    def SetGenerateOutliers(self, bool):
        """
        V.SetGenerateOutliers(bool)
        C++: virtual void SetGenerateOutliers(bool _arg)
        
        If this method is enabled (true), then a second output will be
        created that contains the outlier points. By default this is off
        (false).  Note that if enabled, the PointMap is modified as well:
        the outlier points are listed as well, with similar meaning,
        except their value is negated and shifted by -1.
        """
        ...
    
    def SetGenerateVertices(self, bool):
        """
        V.SetGenerateVertices(bool)
        C++: virtual void SetGenerateVertices(bool _arg)
        
        If this method is enabled (true), then the outputs will contain a
        vertex cells (i.e., a vtkPolyVertex for each output). This takes
        a lot more memory but some VTK filters need cells to function
        properly. By default this is off (false).
        """
        ...
    
    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__ = ...


