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

from .vtkFindCellStrategy import vtkFindCellStrategy

class vtkClosestPointStrategy(vtkFindCellStrategy):
    """
    vtkClosestPointStrategy - implement a specific
    vtkPointSet::FindCell() strategy based
             on closest point
    
    Superclass: vtkFindCellStrategy
    
    vtkClosestPointStrategy is implements a FindCell() strategy based on
    locating the closest point in a dataset, and then searching the
    attached cells. While relatively fast, it does not always return the
    correct result (it may not find a cell, since the closest cell may
    not be connected to the closest point). vtkCellLocatorStrategy or
    vtkClosestNPointsStrategy will produce better results at the cost of
    speed.
    
    @sa
    vtkFindCellStrategy vtkPointSet vtkCellLocatorStrategy
    vtkClosestNPointsStrategy
    """
    def FindCell(self, p_float=..., p_float=..., p_float=..., *args, **kwargs):
        """
        V.FindCell([float, float, float], vtkCell, vtkGenericCell, int,
            float, int, [float, float, float], [float, ...]) -> int
        C++: vtkIdType FindCell(double x[3], vtkCell *cell,
            vtkGenericCell *gencell, vtkIdType cellId, double tol2,
            int &subId, double pcoords[3], double *weights) override;
        
        Implement the specific strategy. This method should only be
        called after the Initialize() method has been invoked.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard methods for type information and printing.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard methods for type information and printing.
        """
        ...
    
    def GetPointLocator(self):
        """
        V.GetPointLocator() -> vtkAbstractPointLocator
        C++: virtual vtkAbstractPointLocator *GetPointLocator()
        
        Set / get an instance of vtkAbstractPointLocator which is used to
        implement the strategy for FindCell(). Note if a locator is not
        specified, then the default locator instantiated by the
        vtkPointSet provided in the Initialize() method is used.
        """
        ...
    
    def Initialize(self, vtkPointSet):
        """
        V.Initialize(vtkPointSet) -> int
        C++: int Initialize(vtkPointSet *ps) override;
        
        Provide the necessary initialization method (see superclass for
        more information). This method sets up the point locator,
        vtkPointSet relationship. It will use the vtkPointSet's default
        locator if not defined by SetPointLocator() below.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods for type information and printing.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard methods for type information and printing.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkClosestPointStrategy
        C++: vtkClosestPointStrategy *NewInstance()
        
        Standard methods for type information and printing.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkClosestPointStrategy
        C++: static vtkClosestPointStrategy *SafeDownCast(
            vtkObjectBase *o)
        
        Standard methods for type information and printing.
        """
        ...
    
    def SelectCell(self, vtkPointSet, p_int, vtkCell, vtkGenericCell):
        """
        V.SelectCell(vtkPointSet, int, vtkCell, vtkGenericCell) -> vtkCell
        C++: vtkCell *SelectCell(vtkPointSet *self, vtkIdType cellId,
            vtkCell *cell, vtkGenericCell *gencell)
        
        Subclasses use this method to select the current cell.
        """
        ...
    
    def SetPointLocator(self, vtkAbstractPointLocator):
        """
        V.SetPointLocator(vtkAbstractPointLocator)
        C++: virtual void SetPointLocator(vtkAbstractPointLocator *)
        
        Set / get an instance of vtkAbstractPointLocator which is used to
        implement the strategy for FindCell(). Note if a locator is not
        specified, then the default locator instantiated by the
        vtkPointSet provided in the Initialize() method is used.
        """
        ...
    
    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__ = ...


