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

from .vtkDataObject import vtkDataObject

class vtkBSPCuts(vtkDataObject):
    """
    vtkBSPCuts - This class represents an axis-aligned Binary Spatial
       Partitioning of a 3D space.
    
    Superclass: vtkDataObject
    
    This class converts between the vtkKdTree
       representation of a tree of vtkKdNodes (used by
    vtkDistributedDataFilter)
       and a compact array representation that might be provided by a
       graph partitioning library like Zoltan.  Such a representation
       could be used in message passing.
    
    @sa
         vtkKdTree vtkKdNode vtkDistributedDataFilter
    """
    def CreateCuts(self, *float, **kwargs):
        """
        V.CreateCuts([float, ...], int, [int, ...], [float, ...], [int,
            ...], [int, ...], [float, ...], [float, ...], [int, ...])
        C++: void CreateCuts(double *bounds, int ncuts, int *dim,
            double *coord, int *lower, int *upper, double *lowerDataCoord,
             double *upperDataCoord, int *npoints)
        V.CreateCuts(vtkKdNode)
        C++: void CreateCuts(vtkKdNode *kd)
        
        Initialize the cuts with arrays of information.  This type of
        information would be obtained from a graph partitioning software
        package like Zoltan.
        
        * bounds - the bounds (xmin, xmax, ymin, ymax, zmin, zmax) of the
        * space being partitioned
        * ncuts - the number cuts, also the size of the following arrays
        * dim   - the dimension along which the cut is made (x/y/z -
          0/1/2)
        * coord - the location of the cut along the axis
        * lower - array index for the lower region bounded by the cut
        * upper - array index for the upper region bounded by the cut
        * lowerDataCoord - optional upper bound of the data in the lower
          region
        * upperDataCoord - optional lower bound of the data in the upper
          region
        * npoints - optional number of points in the spatial region
        """
        ...
    
    def DeepCopy(self, vtkDataObject):
        """
        V.DeepCopy(vtkDataObject)
        C++: void DeepCopy(vtkDataObject *src) override;
        
        Shallow copy.  These copy the data, but not any of the pipeline
        connections.
        """
        ...
    
    def Equals(self, vtkBSPCuts, p_float):
        """
        V.Equals(vtkBSPCuts, float) -> int
        C++: int Equals(vtkBSPCuts *other, double tolerance=0.0)
        
        Compare these cuts with those of the other tree.  Returns true if
        the two trees are the same.
        """
        ...
    
    def GetArrays(self, p_int, *int, **kwargs):
        """
        V.GetArrays(int, [int, ...], [float, ...], [int, ...], [int, ...],
             [float, ...], [float, ...], [int, ...]) -> int
        C++: int GetArrays(int len, int *dim, double *coord, int *lower,
            int *upper, double *lowerDataCoord, double *upperDataCoord,
            int *npoints)
        
        Get the arrays representing the cuts in the partitioning.
        """
        ...
    
    def GetData(self, vtkInformation):
        """
        V.GetData(vtkInformation) -> vtkBSPCuts
        C++: static vtkBSPCuts *GetData(vtkInformation *info)
        V.GetData(vtkInformationVector, int) -> vtkBSPCuts
        C++: static vtkBSPCuts *GetData(vtkInformationVector *v, int i=0)
        
        Retrieve an instance of this class from an information object.
        """
        ...
    
    def GetKdNodeTree(self):
        """
        V.GetKdNodeTree() -> vtkKdNode
        C++: vtkKdNode *GetKdNodeTree()
        
        Return a tree of vtkKdNode's representing the cuts specified in
        this object.  This is our copy, don't delete it.
        """
        ...
    
    def GetNumberOfCuts(self):
        """
        V.GetNumberOfCuts() -> int
        C++: virtual int GetNumberOfCuts()
        
        Get the number of cuts in the partitioning, which also the size
        of the arrays in the array representation of the partitioning.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        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.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> 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.
        """
        ...
    
    def Initialize(self):
        """
        V.Initialize()
        C++: void Initialize() override;
        
        Restore data object to initial state,
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> 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.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> 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.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkBSPCuts
        C++: vtkBSPCuts *NewInstance()
        """
        ...
    
    def PrintArrays(self):
        """
        V.PrintArrays()
        C++: void PrintArrays()
        """
        ...
    
    def PrintTree(self):
        """
        V.PrintTree()
        C++: void PrintTree()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkBSPCuts
        C++: static vtkBSPCuts *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def ShallowCopy(self, vtkDataObject):
        """
        V.ShallowCopy(vtkDataObject)
        C++: void ShallowCopy(vtkDataObject *src) override;
        
        Shallow copy.  These copy the data, but not any of the pipeline
        connections.
        """
        ...
    
    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__ = ...


