# encoding: utf-8
# module vtkmodules.vtkCommonDataModel
# from C:\Users\xukai\Downloads\发票2\venv\Lib\site-packages\vtkmodules\vtkCommonDataModel.cp311-win_amd64.pyd
# by generator 1.147
# no doc

# imports
import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore
import vtkmodules.vtkCommonMath as __vtkmodules_vtkCommonMath
import vtkmodules.vtkCommonTransforms as __vtkmodules_vtkCommonTransforms


from .vtkAbstractCellLocator import vtkAbstractCellLocator

class vtkCellTreeLocator(vtkAbstractCellLocator):
    """
    vtkCellTreeLocator - This class implements the data structures,
    construction algorithms for fast cell location.
    
    Superclass: vtkAbstractCellLocator
    
    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 from
    avtCellLocatorBIH class in the VisIT Visualization Tool.
    
    vtkCellTreeLocator utilizes the following parent class parameters:
    - NumberOfCellsPerNode        (default 8)
    - CacheCellBounds             (default true)
    - UseExistingSearchStructure  (default false)
    
    vtkCellTreeLocator does NOT utilize the following parameters:
    - Automatic
    - Level
    - MaxLevel
    - Tolerance
    - RetainCellLists
    
    @warning
    This class is templated. It may run slower than serial execution if
    the code is not optimized during compilation. Build in Release or
    ReleaseWithDebugInfo.
    
    From the article: "Fast, Memory-Efficient Cell location in Unstructured Grids for
    Visualization" by Christoph Garth and Kenneth I. Joy in VisWeek,
    2011.
    
    @sa
    vtkAbstractCellLocator vtkCellLocator vtkStaticCellLocator
    vtkModifiedBSPTree vtkOBBTree
    """
    def BuildLocator(self): # real signature unknown; restored from __doc__
        """
        BuildLocator(self) -> None
        C++: void BuildLocator() override;
        
        Build the locator from the input dataset. This will NOT do
        anything if UseExistingSearchStructure is on.
        """
        pass

    def BuildLocatorIfNeeded(self): # real signature unknown; restored from __doc__
        """
        BuildLocatorIfNeeded(self) -> None
        C++: virtual void BuildLocatorIfNeeded()
        """
        pass

    def FindCell(self, pos, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        FindCell(self, pos:[float, float, float], tol2:float,
            cell:vtkGenericCell, subId:int, pcoords:[float, float, float],
             weights:[float, ...]) -> int
        C++: vtkIdType FindCell(double pos[3], double tol2,
            vtkGenericCell *cell, int &subId, double pcoords[3],
            double *weights) override;
        FindCell(self, x:[float, float, float]) -> int
        C++: virtual vtkIdType FindCell(double x[3])
        FindCell(self, x:[float, float, float], tol2:float,
            GenCell:vtkGenericCell, pcoords:[float, float, float],
            weights:[float, ...]) -> int
        C++: virtual vtkIdType FindCell(double x[3], double tol2,
            vtkGenericCell *GenCell, double pcoords[3], double *weights)
        
        Find the cell containing a given point. returns -1 if no cell
        found the cell parameters are copied into the supplied variables,
        a cell must be provided to store the information.
        """
        pass

    def FindCellsAlongLine(self, p1, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        FindCellsAlongLine(self, p1:(float, float, float), p2:(float,
            float, float), tolerance:float, cellsIds:vtkIdList) -> None
        C++: void FindCellsAlongLine(const double p1[3],
            const double p2[3], double tolerance, vtkIdList *cellsIds)
            override;
        
        Take the passed line segment and intersect it with the data set.
        For each intersection with the bounds of a cell, the cellIds have
        the relevant information added sort by t. If cellIds is nullptr
        pointer, then no information is generated for that list.
        
        Reimplemented from vtkAbstractCellLocator to showcase that it's a
        supported function.
        """
        pass

    def FindCellsWithinBounds(self, bbox, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        FindCellsWithinBounds(self, bbox:[float, ...], cells:vtkIdList)
            -> None
        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.
        """
        pass

    def ForceBuildLocator(self): # real signature unknown; restored from __doc__
        """
        ForceBuildLocator(self) -> None
        C++: void ForceBuildLocator() override;
        
        Build the locator from the input dataset (even if
        UseExistingSearchStructure is on).
        
        This function is not pure virtual to maintain backwards
        compatibility.
        """
        pass

    def FreeSearchStructure(self): # real signature unknown; restored from __doc__
        """
        FreeSearchStructure(self) -> None
        C++: void FreeSearchStructure() override;
        
        Satisfy vtkLocator abstract interface.
        """
        pass

    def GenerateRepresentation(self, level, pd): # real signature unknown; restored from __doc__
        """
        GenerateRepresentation(self, level:int, pd:vtkPolyData) -> None
        C++: void GenerateRepresentation(int level, vtkPolyData *pd)
            override;
        
        Method to build a representation at a particular level. Note that
        the method GetLevel() returns the maximum number of levels
        available for the tree. You must provide a vtkPolyData object
        into which to place the data.
        """
        pass

    def GetLargeIds(self): # real signature unknown; restored from __doc__
        """
        GetLargeIds(self) -> bool
        C++: bool GetLargeIds()
        
        Inform the user as to whether large ids are being used. This flag
        only has meaning after the locator has been built. Large ids are
        used when the number of binned points, or the number of bins, is
        >= the maximum number of buckets (specified by the user). Note
        that LargeIds are only available on 64-bit architectures.
        """
        return False

    def GetNumberOfBuckets(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfBuckets(self) -> int
        C++: virtual int GetNumberOfBuckets()
        """
        return 0

    def GetNumberOfGenerationsFromBase(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBase(self, type:str) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def GetNumberOfGenerationsFromBaseType(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBaseType(type:str) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def IntersectWithLine(self, a0, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        IntersectWithLine(self, a0:(float, float, float), a1:(float,
            float, float), tol:float, t:float, x:[float, float, float],
            pcoords:[float, float, float], subId:int, cellId:int,
            cell: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;
        IntersectWithLine(self, p1:(float, float, float), p2:(float,
            float, float), tol:float, points:vtkPoints, cellIds:vtkIdList,
             cell:vtkGenericCell) -> int
        C++: int IntersectWithLine(const double p1[3], const double p2[3],
             const double tol, vtkPoints *points, vtkIdList *cellIds,
            vtkGenericCell *cell) override;
        IntersectWithLine(self, p1:(float, float, float), p2:(float,
            float, float), tol:float, t:float, x:[float, float, float],
            pcoords:[float, float, float], subId:int) -> int
        C++: virtual int IntersectWithLine(const double p1[3],
            const double p2[3], double tol, double &t, double x[3],
            double pcoords[3], int &subId)
        IntersectWithLine(self, p1:(float, float, float), p2:(float,
            float, float), tol:float, t:float, x:[float, float, float],
            pcoords:[float, float, float], subId:int, cellId:int) -> int
        C++: virtual int IntersectWithLine(const double p1[3],
            const double p2[3], double tol, double &t, double x[3],
            double pcoords[3], int &subId, vtkIdType &cellId)
        IntersectWithLine(self, p1:(float, float, float), p2:(float,
            float, float), points:vtkPoints, cellIds:vtkIdList) -> int
        C++: virtual int IntersectWithLine(const double p1[3],
            const double p2[3], vtkPoints *points, vtkIdList *cellIds)
        IntersectWithLine(self, p1:(float, float, float), p2:(float,
            float, float), tol:float, points:vtkPoints, cellIds:vtkIdList)
             -> int
        C++: virtual int IntersectWithLine(const double p1[3],
            const double p2[3], const double tol, vtkPoints *points,
            vtkIdList *cellIds)
        
        Return intersection point (if any) AND the ...
         [Truncated]
        """
        pass

    def IsA(self, type): # real signature unknown; restored from __doc__
        """
        IsA(self, type:str) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Return 1 if this class is the same type of (or a subclass of) the
        named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def IsTypeOf(self, type): # real signature unknown; restored from __doc__
        """
        IsTypeOf(type:str) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Return 1 if this class type is the same type of (or a subclass
        of) the named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def NewInstance(self): # real signature unknown; restored from __doc__
        """
        NewInstance(self) -> vtkCellTreeLocator
        C++: vtkCellTreeLocator *NewInstance()
        """
        return vtkCellTreeLocator

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkCellTreeLocator
        C++: static vtkCellTreeLocator *SafeDownCast(vtkObjectBase *o)
        """
        return vtkCellTreeLocator

    def SetNumberOfBuckets(self, _arg): # real signature unknown; restored from __doc__
        """
        SetNumberOfBuckets(self, _arg:int) -> None
        C++: virtual void SetNumberOfBuckets(int _arg)
        
        Set/Get the number of buckets.
        
        Default is 6.
        """
        pass

    def ShallowCopy(self, locator): # real signature unknown; restored from __doc__
        """
        ShallowCopy(self, locator:vtkAbstractCellLocator) -> None
        C++: void ShallowCopy(vtkAbstractCellLocator *locator) override;
        
        Shallow copy of a vtkCellTreeLocator.
        """
        pass

    def __delattr__(self, *args, **kwargs): # real signature unknown
        """ Implement delattr(self, name). """
        pass

    def __getattribute__(self, *args, **kwargs): # real signature unknown
        """ Return getattr(self, name). """
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __repr__(self, *args, **kwargs): # real signature unknown
        """ Return repr(self). """
        pass

    def __setattr__(self, *args, **kwargs): # real signature unknown
        """ Implement setattr(self, name, value). """
        pass

    def __str__(self, *args, **kwargs): # real signature unknown
        """ Return str(self). """
        pass

    __this__ = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """Pointer to the C++ object."""


    __dict__ = None # (!) real value is 'mappingproxy({\'__vtkname__\': \'vtkCellTreeLocator\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'SetNumberOfBuckets\': <method \'SetNumberOfBuckets\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'GetNumberOfBuckets\': <method \'GetNumberOfBuckets\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'GetLargeIds\': <method \'GetLargeIds\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'IntersectWithLine\': <method \'IntersectWithLine\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'FindCellsWithinBounds\': <method \'FindCellsWithinBounds\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'FindCellsAlongLine\': <method \'FindCellsAlongLine\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'FindCell\': <method \'FindCell\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'FreeSearchStructure\': <method \'FreeSearchStructure\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'BuildLocator\': <method \'BuildLocator\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'ForceBuildLocator\': <method \'ForceBuildLocator\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'GenerateRepresentation\': <method \'GenerateRepresentation\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'BuildLocatorIfNeeded\': <method \'BuildLocatorIfNeeded\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'ShallowCopy\': <method \'ShallowCopy\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D616080>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkCommonDataModel.vtkCellTreeLocator\' objects>, \'__doc__\': \'vtkCellTreeLocator - This class implements the data structures,\\nconstruction algorithms for fast cell location.\\n\\nSuperclass: vtkAbstractCellLocator\\n\\nCell Tree is a bounding interval hierarchy based data structure,\\nwhere child boxes do not form an exact split of the parent boxes\\nalong a dimension.  Therefore two axis- aligned bounding planes (left\\nmax and right min) are stored for each node along a dimension. This\\nclass implements the data structure (Cell Tree Node) and its build\\nand traversal algorithms described in the paper. Some methods in\\nbuilding and traversing the cell tree in this class were derived from\\navtCellLocatorBIH class in the VisIT Visualization Tool.\\n\\nvtkCellTreeLocator utilizes the following parent class parameters:\\n- NumberOfCellsPerNode        (default 8)\\n- CacheCellBounds             (default true)\\n- UseExistingSearchStructure  (default false)\\n\\nvtkCellTreeLocator does NOT utilize the following parameters:\\n- Automatic\\n- Level\\n- MaxLevel\\n- Tolerance\\n- RetainCellLists\\n\\n@warning\\nThis class is templated. It may run slower than serial execution if\\nthe code is not optimized during compilation. Build in Release or\\nReleaseWithDebugInfo.\\n\\nFrom the article: "Fast, Memory-Efficient Cell location in Unstructured Grids for\\nVisualization" by Christoph Garth and Kenneth I. Joy in VisWeek,\\n2011.\\n\\n@sa\\nvtkAbstractCellLocator vtkCellLocator vtkStaticCellLocator\\nvtkModifiedBSPTree vtkOBBTree\\n\\n\'})'
    __vtkname__ = 'vtkCellTreeLocator'


