# 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


class vtkIncrementalOctreeNode(__vtkmodules_vtkCommonCore.vtkObject):
    """
    vtkIncrementalOctreeNode - Octree node constituting incremental
     octree (in support of both point location and point insertion)
    
    Superclass: vtkObject
    
    Octree nodes serve as spatial sub-division primitives to build the
    search
     structure of an incremental octree in a recursive top-down manner.
    The
     hierarchy takes the form of a tree-like representation by which a
    parent
     node contains eight mutually non-overlapping child nodes. Each child
    is
     assigned with an axis-aligned rectangular volume (Spatial Bounding
    Box)
     and the eight children together cover exactly the same region as
    governed
     by their parent. The eight child nodes / octants are ordered as
    
    
     { (xBBoxMin, xBBoxMid] & (yBBoxMin, yBBoxMid] & (zBBoxMin, zBBoxMid]
    },
     { (xBBoxMid, xBBoxMax] & (yBBoxMin, yBBoxMid] & (zBBoxMin, zBBoxMid]
    },
     { (xBBoxMin, xBBoxMid] & (yBBoxMid, yBBoxMax] & (zBBoxMin, zBBoxMid]
    },
     { (xBBoxMid, xBBoxMax] & (yBBoxMid, yBBoxMax] & (zBBoxMin, zBBoxMid]
    },
     { (xBBoxMin, xBBoxMid] & (yBBoxMin, yBBoxMid] & (zBBoxMid, zBBoxMax]
    },
     { (xBBoxMid, xBBoxMax] & (yBBoxMin, yBBoxMid] & (zBBoxMid, zBBoxMax]
    },
     { (xBBoxMin, xBBoxMid] & (yBBoxMid, yBBoxMax] & (zBBoxMid, zBBoxMax]
    },
     { (xBBoxMid, xBBoxMax] & (yBBoxMid, yBBoxMax] & (zBBoxMid, zBBoxMax]
    },
    
    
     where { xrange & yRange & zRange } defines the region of each 3D
    octant.
     In addition, the points falling within and registered, by means of
    point
     indices, in the parent node are distributed to the child nodes for
    delegated
     maintenance. In fact, only leaf nodes, i.e., those without any
    descendants,
     actually store point indices while each node, regardless of a leaf
    or non-
     leaf node, keeps a dynamically updated Data Bounding Box of the
    inhabitant
     points, if any. Given a maximum number of points per leaf node, an
    octree
     is initialized with an empty leaf node that is then recursively
    sub-divided,
     but only on demand as points are incrementally inserted, to
    construct a
     populated tree.
    
    
     Please note that this octree node class is able to handle a large
    number
     of EXACTLY duplicate points that is greater than the specified
    maximum
     number of points per leaf node. In other words, as an exception, a
    leaf
     node may maintain an arbitrary number of exactly duplicate points to
    deal
     with possible extreme cases.
    
    @sa
     vtkIncrementalOctreePointLocator
    """
    def ContainsPoint(self, pnt, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        ContainsPoint(self, pnt:(float, float, float)) -> int
        C++: vtkTypeBool ContainsPoint(const double pnt[3])
        
        A point is in a node if and only if MinBounds[i] < p[i] <=
        MaxBounds[i], which allows a node to be divided into eight
        non-overlapping children.
        """
        pass

    def ContainsPointByData(self, pnt, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        ContainsPointByData(self, pnt:(float, float, float)) -> int
        C++: vtkTypeBool ContainsPointByData(const double pnt[3])
        
        A point is in a node, in terms of data, if and only if
        MinDataBounds[i] <= p[i] <= MaxDataBounds[i].
        """
        pass

    def DeleteChildNodes(self): # real signature unknown; restored from __doc__
        """
        DeleteChildNodes(self) -> None
        C++: void DeleteChildNodes()
        
        Delete the eight child nodes.
        """
        pass

    def ExportAllPointIdsByDirectSet(self, pntIdx, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        ExportAllPointIdsByDirectSet(self, pntIdx:[int, ...],
            idList:vtkIdList) -> None
        C++: void ExportAllPointIdsByDirectSet(vtkIdType *pntIdx,
            vtkIdList *idList)
        
        Export all the indices of the points (contained in or under this
        node) by directly setting them in an allocated vtkIdList object.
        pntIdx indicates the starting location (in terms of vtkIdList)
        from which new point indices are added to vtkIdList by
        vtkIdList::SetId().
        """
        pass

    def ExportAllPointIdsByInsertion(self, idList): # real signature unknown; restored from __doc__
        """
        ExportAllPointIdsByInsertion(self, idList:vtkIdList) -> None
        C++: void ExportAllPointIdsByInsertion(vtkIdList *idList)
        
        Export all the indices of the points (contained in or under this
        node) by inserting them to an allocated vtkIdList via
        vtkIdList::InsertNextId().
        """
        pass

    def GetBounds(self, bounds, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        GetBounds(self, bounds:[float, float, float, float, float, float])
             -> None
        C++: void GetBounds(double bounds[6])
        
        Get the spatial bounding box of the node. The values are returned
        via an array in order of: x_min, x_max, y_min, y_max, z_min,
        z_max.
        """
        pass

    def GetChild(self, i): # real signature unknown; restored from __doc__
        """
        GetChild(self, i:int) -> vtkIncrementalOctreeNode
        C++: vtkIncrementalOctreeNode *GetChild(int i)
        
        Get quick access to a child of this node. Note that this node is
        assumed to be a non-leaf one and no checking is performed on the
        node type.
        """
        return vtkIncrementalOctreeNode

    def GetChildIndex(self, point, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        GetChildIndex(self, point:(float, float, float)) -> int
        C++: int GetChildIndex(const double point[3])
        
        Determine which specific child / octant contains a given point.
        Note that the point is assumed to be inside this node and no
        checking is performed on the inside issue.
        """
        pass

    def GetDistance2ToBoundary(self, point, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        GetDistance2ToBoundary(self, point:(float, float, float),
            rootNode:vtkIncrementalOctreeNode, checkData:int) -> float
        C++: double GetDistance2ToBoundary(const double point[3],
            vtkIncrementalOctreeNode *rootNode, int checkData)
        GetDistance2ToBoundary(self, point:(float, float, float),
            closest:[float, float, float],
            rootNode:vtkIncrementalOctreeNode, checkData:int) -> float
        C++: double GetDistance2ToBoundary(const double point[3],
            double closest[3], vtkIncrementalOctreeNode *rootNode,
            int checkData)
        
        Compute the minimum squared distance from a point to this node,
        with all six boundaries considered. The data bounding box is
        checked if checkData is non-zero.
        """
        pass

    def GetDistance2ToInnerBoundary(self, point, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        GetDistance2ToInnerBoundary(self, point:(float, float, float),
            rootNode:vtkIncrementalOctreeNode) -> float
        C++: double GetDistance2ToInnerBoundary(const double point[3],
            vtkIncrementalOctreeNode *rootNode)
        
        Given a point inside this node, get the minimum squared distance
        to all inner boundaries. An inner boundary is a node's face that
        is shared by another non-root node.
        """
        pass

    def GetID(self): # real signature unknown; restored from __doc__
        """
        GetID(self) -> int
        C++: int GetID()
        
        Returns the ID of this node which is the index of the node in the
        octree. The index of the node enables users of this class to
        associate additional information with each node.
        """
        return 0

    def GetMaxBounds(self): # real signature unknown; restored from __doc__
        """
        GetMaxBounds(self) -> (float, float, float)
        C++: virtual double *GetMaxBounds()
        
        Get access to MaxBounds. Do not free this pointer.
        """
        pass

    def GetMaxDataBounds(self): # real signature unknown; restored from __doc__
        """
        GetMaxDataBounds(self) -> Pointer
        C++: double *GetMaxDataBounds()
        
        Get access to MaxDataBounds. Note that MaxDataBounds is not valid
        until point insertion.
        """
        pass

    def GetMinBounds(self): # real signature unknown; restored from __doc__
        """
        GetMinBounds(self) -> (float, float, float)
        C++: virtual double *GetMinBounds()
        
        Get access to MinBounds. Do not free this pointer.
        """
        pass

    def GetMinDataBounds(self): # real signature unknown; restored from __doc__
        """
        GetMinDataBounds(self) -> Pointer
        C++: double *GetMinDataBounds()
        
        Get access to MinDataBounds. Note that MinDataBounds is not valid
        until point insertion.
        """
        pass

    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 GetNumberOfLevels(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfLevels(self) -> int
        C++: int GetNumberOfLevels()
        
        Computes and returns the maximum level of the tree. If a tree has
        one node it returns 1 else it returns the maximum level of its
        children plus 1.
        """
        return 0

    def GetNumberOfPoints(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfPoints(self) -> int
        C++: virtual int GetNumberOfPoints()
        
        Get the number of points inside or under this node.
        """
        return 0

    def GetPointIds(self): # real signature unknown; restored from __doc__
        """
        GetPointIds(self) -> vtkIdList
        C++: vtkIdList *GetPointIds()
        """
        pass

    def GetPointIdSet(self): # real signature unknown; restored from __doc__
        """
        GetPointIdSet(self) -> vtkIdList
        C++: virtual vtkIdList *GetPointIdSet()
        
        Get the list of point indices, nullptr for a non-leaf node.
        """
        pass

    def InsertPoint(self, points, newPnt, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        InsertPoint(self, points:vtkPoints, newPnt:(float, float, float),
            maxPts:int, pntId:[int, ...], ptMode:int) -> int
        C++: int InsertPoint(vtkPoints *points, const double newPnt[3],
            int maxPts, vtkIdType *pntId, int ptMode)
        InsertPoint(self, points:vtkPoints, newPnt:(float, float, float),
            maxPts:int, pntId:[int, ...], ptMode:int, numberOfNodes:int)
            -> int
        C++: int InsertPoint(vtkPoints *points, const double newPnt[3],
            int maxPts, vtkIdType *pntId, int ptMode, int &numberOfNodes)
        
        This function is called after a successful point-insertion check
        and only applies to a leaf node. Prior to a call to this
        function, the octree should have been retrieved top-down to find
        the specific leaf node in which this new point (newPt) will be
        inserted. The actual index of the new point (to be inserted to
        points) is stored in pntId. Argument ptMode specifies whether the
        point is not inserted at all but instead only the point index is
        provided upon 0, the point is inserted via vtkPoints::
        InsertPoint() upon 1, or it is inserted via
        vtkPoints::InsertNextPoint() upon 2. For case 0, pntId needs to
        be specified. For cases 1 and 2, the actual point index is
        returned via pntId. Note that this function always returns 1 to
        indicate the success of point insertion. numberOfNodes is the
        number of nodes present in the tree at this time. it is used to
        assign an ID to each node which can be used to associate
        application specific information with each node. It is updated if
        new nodes are added to the tree.
        """
        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 IsLeaf(self): # real signature unknown; restored from __doc__
        """
        IsLeaf(self) -> int
        C++: int IsLeaf()
        
        Determine whether or not this node is a leaf.
        """
        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) -> vtkIncrementalOctreeNode
        C++: vtkIncrementalOctreeNode *NewInstance()
        """
        return vtkIncrementalOctreeNode

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkIncrementalOctreeNode
        C++: static vtkIncrementalOctreeNode *SafeDownCast(
            vtkObjectBase *o)
        """
        return vtkIncrementalOctreeNode

    def SetBounds(self, x1, x2, y1, y2, z1, z2): # real signature unknown; restored from __doc__
        """
        SetBounds(self, x1:float, x2:float, y1:float, y2:float, z1:float,
            z2:float) -> None
        C++: void SetBounds(double x1, double x2, double y1, double y2,
            double z1, double z2)
        
        Set the spatial bounding box of the node. This function sets a
        default data bounding box.
        """
        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__': 'vtkIncrementalOctreeNode', 'IsTypeOf': <method 'IsTypeOf' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'IsA': <method 'IsA' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'SafeDownCast': <method 'SafeDownCast' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'NewInstance': <method 'NewInstance' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetNumberOfGenerationsFromBaseType': <method 'GetNumberOfGenerationsFromBaseType' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetNumberOfGenerationsFromBase': <method 'GetNumberOfGenerationsFromBase' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetNumberOfPoints': <method 'GetNumberOfPoints' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetPointIdSet': <method 'GetPointIdSet' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'DeleteChildNodes': <method 'DeleteChildNodes' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'SetBounds': <method 'SetBounds' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetBounds': <method 'GetBounds' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetMinBounds': <method 'GetMinBounds' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetMaxBounds': <method 'GetMaxBounds' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetMinDataBounds': <method 'GetMinDataBounds' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetMaxDataBounds': <method 'GetMaxDataBounds' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'IsLeaf': <method 'IsLeaf' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetChildIndex': <method 'GetChildIndex' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetChild': <method 'GetChild' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'ContainsPoint': <method 'ContainsPoint' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'ContainsPointByData': <method 'ContainsPointByData' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'InsertPoint': <method 'InsertPoint' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetDistance2ToInnerBoundary': <method 'GetDistance2ToInnerBoundary' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetDistance2ToBoundary': <method 'GetDistance2ToBoundary' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'ExportAllPointIdsByInsertion': <method 'ExportAllPointIdsByInsertion' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'ExportAllPointIdsByDirectSet': <method 'ExportAllPointIdsByDirectSet' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetNumberOfLevels': <method 'GetNumberOfLevels' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetID': <method 'GetID' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, 'GetPointIds': <method 'GetPointIds' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, '__new__': <built-in method __new__ of type object at 0x00007FF81D633900>, '__repr__': <slot wrapper '__repr__' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, '__str__': <slot wrapper '__str__' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, '__getattribute__': <slot wrapper '__getattribute__' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, '__setattr__': <slot wrapper '__setattr__' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, '__delattr__': <slot wrapper '__delattr__' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, '__dict__': <attribute '__dict__' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, '__this__': <attribute '__this__' of 'vtkmodules.vtkCommonDataModel.vtkIncrementalOctreeNode' objects>, '__doc__': 'vtkIncrementalOctreeNode - Octree node constituting incremental\\n octree (in support of both point location and point insertion)\\n\\nSuperclass: vtkObject\\n\\nOctree nodes serve as spatial sub-division primitives to build the\\nsearch\\n structure of an incremental octree in a recursive top-down manner.\\nThe\\n hierarchy takes the form of a tree-like representation by which a\\nparent\\n node contains eight mutually non-overlapping child nodes. Each child\\nis\\n assigned with an axis-aligned rectangular volume (Spatial Bounding\\nBox)\\n and the eight children together cover exactly the same region as\\ngoverned\\n by their parent. The eight child nodes / octants are ordered as\\n\\n\\n { (xBBoxMin, xBBoxMid] & (yBBoxMin, yBBoxMid] & (zBBoxMin, zBBoxMid]\\n},\\n { (xBBoxMid, xBBoxMax] & (yBBoxMin, yBBoxMid] & (zBBoxMin, zBBoxMid]\\n},\\n { (xBBoxMin, xBBoxMid] & (yBBoxMid, yBBoxMax] & (zBBoxMin, zBBoxMid]\\n},\\n { (xBBoxMid, xBBoxMax] & (yBBoxMid, yBBoxMax] & (zBBoxMin, zBBoxMid]\\n},\\n { (xBBoxMin, xBBoxMid] & (yBBoxMin, yBBoxMid] & (zBBoxMid, zBBoxMax]\\n},\\n { (xBBoxMid, xBBoxMax] & (yBBoxMin, yBBoxMid] & (zBBoxMid, zBBoxMax]\\n},\\n { (xBBoxMin, xBBoxMid] & (yBBoxMid, yBBoxMax] & (zBBoxMid, zBBoxMax]\\n},\\n { (xBBoxMid, xBBoxMax] & (yBBoxMid, yBBoxMax] & (zBBoxMid, zBBoxMax]\\n},\\n\\n\\n where { xrange & yRange & zRange } defines the region of each 3D\\noctant.\\n In addition, the points falling within and registered, by means of\\npoint\\n indices, in the parent node are distributed to the child nodes for\\ndelegated\\n maintenance. In fact, only leaf nodes, i.e., those without any\\ndescendants,\\n actually store point indices while each node, regardless of a leaf\\nor non-\\n leaf node, keeps a dynamically updated Data Bounding Box of the\\ninhabitant\\n points, if any. Given a maximum number of points per leaf node, an\\noctree\\n is initialized with an empty leaf node that is then recursively\\nsub-divided,\\n but only on demand as points are incrementally inserted, to\\nconstruct a\\n populated tree.\\n\\n\\n Please note that this octree node class is able to handle a large\\nnumber\\n of EXACTLY duplicate points that is greater than the specified\\nmaximum\\n number of points per leaf node. In other words, as an exception, a\\nleaf\\n node may maintain an arbitrary number of exactly duplicate points to\\ndeal\\n with possible extreme cases.\\n\\n@sa\\n vtkIncrementalOctreePointLocator\\n\\n'})"
    __vtkname__ = 'vtkIncrementalOctreeNode'


