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

from .vtkPlanes import vtkPlanes

class vtkPlanesIntersection(vtkPlanes):
    """
    vtkPlanesIntersection - A vtkPlanesIntersection object is a
       vtkPlanes object that can compute whether the arbitrary convex
    region
       bounded by it's planes intersects an axis-aligned box.
    
    Superclass: vtkPlanes
    
    A subclass of vtkPlanes, this class determines whether it
       intersects an axis aligned box.   This is motivated by the
       need to intersect the axis aligned region of a spacial
       decomposition of volume data with various other regions.
       It uses the algorithm from Graphics Gems IV, page 81.
    
    @par Caveat:
       An instance of vtkPlanes can be redefined by changing the planes,
       but this subclass then will not know if the region vertices are
       up to date.  (Region vertices can be specified in
    SetRegionVertices
       or computed by the subclass.)  So Delete and recreate if you want
       to change the set of planes.
    """
    def Convert3DCell(self, vtkCell):
        """
        V.Convert3DCell(vtkCell) -> vtkPlanesIntersection
        C++: static vtkPlanesIntersection *Convert3DCell(vtkCell *cell)
        
        Another convenience function provided by this class, returns the
        vtkPlanesIntersection object representing a 3D cell.  The point
        IDs for each face must be given in counter-clockwise order from
        the outside of the cell.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard methods for instantiation, type information, and
        printing.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard methods for instantiation, type information, and
        printing.
        """
        ...
    
    def GetNumberOfRegionVertices(self):
        """
        V.GetNumberOfRegionVertices() -> int
        C++: int GetNumberOfRegionVertices()
        """
        ...
    
    def GetNumRegionVertices(self):
        """
        V.GetNumRegionVertices() -> int
        C++: int GetNumRegionVertices()
        """
        ...
    
    def GetRegionVertices(self, *float, **kwargs):
        """
        V.GetRegionVertices([float, ...], int) -> int
        C++: int GetRegionVertices(double *v, int nvertices)
        """
        ...
    
    def IntersectsRegion(self, vtkPoints):
        """
        V.IntersectsRegion(vtkPoints) -> int
        C++: int IntersectsRegion(vtkPoints *R)
        
        Return 1 if the axis aligned box defined by R intersects the
        region defined by the planes, or 0 otherwise.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods for instantiation, type information, and
        printing.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard methods for instantiation, type information, and
        printing.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkPlanesIntersection
        C++: vtkPlanesIntersection *NewInstance()
        
        Standard methods for instantiation, type information, and
        printing.
        """
        ...
    
    def PolygonIntersectsBBox(self, p_float=..., p_float=..., p_float=..., p_float=..., p_float=..., p_float=..., *args, **kwargs):
        """
        V.PolygonIntersectsBBox([float, float, float, float, float,
            float], vtkPoints) -> int
        C++: static int PolygonIntersectsBBox(double bounds[6],
            vtkPoints *pts)
        
        A convenience function provided by this class, returns 1 if the
        polygon defined in pts intersects the bounding box defined in
        bounds, 0 otherwise.
        
        * The points must define a planar polygon.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkPlanesIntersection
        C++: static vtkPlanesIntersection *SafeDownCast(vtkObjectBase *o)
        
        Standard methods for instantiation, type information, and
        printing.
        """
        ...
    
    def SetRegionVertices(self, vtkPoints):
        """
        V.SetRegionVertices(vtkPoints)
        C++: void SetRegionVertices(vtkPoints *pts)
        V.SetRegionVertices([float, ...], int)
        C++: void SetRegionVertices(double *v, int nvertices)
        
        It helps if you know the vertices of the convex region. If you
        don't, we will calculate them.  Region vertices are 3-tuples.
        """
        ...
    
    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__ = ...


