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

import vtkmodules.vtkCommonDataModel as __vtkmodules_vtkCommonDataModel

class vtkCellTreeLocator(__vtkmodules_vtkCommonDataModel.vtkAbstractCellLocator):
    """
    vtkCellTreeLocator - This class implements the data structures,
    construction algorithms for fast cell location presented in "Fast,
    Memory-Efficient Cell location in Unstructured Grids for
    Visualization" by Christop Garth and Kenneth
    
    Superclass: vtkAbstractCellLocator
    
    I. Joy in VisWeek, 2011.
    
    Cell Tree is a bounding interval hierarchy based data structure,
    where child boxes do not form an exact split of the parent boxes
    along a dimension.  Therefore two axis- aligned bounding planes (left
    max and right min) are stored for each node along a dimension. This
    class implements the data structure (Cell Tree Node) and its build
    and traversal algorithms described in the paper. Some methods in
    building and traversing the cell tree in this class were derived
    avtCellLocatorBIH class in the VisIT Visualization Tool
    
    @sa
    vtkLocator vtkCellLocator vtkModifiedBSPTree
    """
    def BuildLocator(self):
        """
        V.BuildLocator()
        C++: void BuildLocator() override;
        
        Satisfy vtkLocator abstract interface.
        """
        ...
    
    def BuildLocatorIfNeeded(self):
        """
        V.BuildLocatorIfNeeded()
        C++: virtual void BuildLocatorIfNeeded()
        
        Satisfy vtkLocator abstract interface.
        """
        ...
    
    def BuildLocatorInternal(self):
        """
        V.BuildLocatorInternal()
        C++: virtual void BuildLocatorInternal()
        
        Satisfy vtkLocator abstract interface.
        """
        ...
    
    def FindCell(self, p_float=..., p_float=..., p_float=..., *args, **kwargs):
        """
        V.FindCell([float, float, float], float, vtkGenericCell, [float,
            float, float], [float, ...]) -> int
        C++: vtkIdType FindCell(double pos[3], double,
            vtkGenericCell *cell, double pcoords[3], double *weights)
            override;
        V.FindCell([float, float, float]) -> int
        C++: vtkIdType FindCell(double x[3]) override;
        
        Test a point to find if it is inside a cell. Returns the cellId
        if inside or -1 if not.
        """
        ...
    
    def FindCellsWithinBounds(self, *float, **kwargs):
        """
        V.FindCellsWithinBounds([float, ...], vtkIdList)
        C++: void FindCellsWithinBounds(double *bbox, vtkIdList *cells)
            override;
        
        Return a list of unique cell ids inside of a given bounding box.
        The user must provide the vtkIdList to populate. This method
        returns data only after the locator has been built.
        """
        ...
    
    def ForceBuildLocator(self):
        """
        V.ForceBuildLocator()
        C++: virtual void ForceBuildLocator()
        
        Satisfy vtkLocator abstract interface.
        """
        ...
    
    def FreeSearchStructure(self):
        """
        V.FreeSearchStructure()
        C++: void FreeSearchStructure() override;
        
        Satisfy vtkLocator abstract interface.
        """
        ...
    
    def GenerateRepresentation(self, p_int, vtkPolyData):
        """
        V.GenerateRepresentation(int, vtkPolyData)
        C++: void GenerateRepresentation(int level, vtkPolyData *pd)
            override;
        
        Satisfy vtkLocator abstract interface.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard type and print methods.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard type and print methods.
        """
        ...
    
    def IntersectWithLine(self, , , p_float_6, p_float_7, p_float=..., p_float=..., p_float=..., *args, **kwargs):
        """
        V.IntersectWithLine((float, float, float), (float, float, float),
            float, float, [float, float, float], [float, float, float],
            int, int, vtkGenericCell) -> int
        C++: int IntersectWithLine(const double a0[3], const double a1[3],
             double tol, double &t, double x[3], double pcoords[3],
            int &subId, vtkIdType &cellId, vtkGenericCell *cell) override;
        V.IntersectWithLine((float, float, float), (float, float, float),
            float, float, [float, float, float], [float, float, float],
            int) -> int
        C++: int IntersectWithLine(const double p1[3], const double p2[3],
             double tol, double &t, double x[3], double pcoords[3],
            int &subId) override;
        V.IntersectWithLine((float, float, float), (float, float, float),
            float, float, [float, float, float], [float, float, float],
            int, int) -> int
        C++: int IntersectWithLine(const double p1[3], const double p2[3],
             double tol, double &t, double x[3], double pcoords[3],
            int &subId, vtkIdType &cellId) override;
        V.IntersectWithLine((float, float, float), (float, float, float),
            vtkPoints, vtkIdList) -> int
        C++: int IntersectWithLine(const double p1[3], const double p2[3],
             vtkPoints *points, vtkIdList *cellIds) override;
        
        Return intersection point (if any) AND the cell which was
        intersected by the finite line. The cell is returned as a cell id
        and as a generic cell.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard type and print methods.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard type and print methods.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkCellTreeLocator
        C++: vtkCellTreeLocator *NewInstance()
        
        Standard type and print methods.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkCellTreeLocator
        C++: static vtkCellTreeLocator *SafeDownCast(vtkObjectBase *o)
        
        Standard type and print methods.
        """
        ...
    
    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__ = ...


