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

import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore

class vtkVisibilitySort(__vtkmodules_vtkCommonCore.vtkObject):
    """
    vtkVisibilitySort - Abstract class that can sort cell data along a
    viewpoint.
    
    Superclass: vtkObject
    
    vtkVisibilitySort encapsulates a method for depth sorting the cells
    of a vtkDataSet for a given viewpoint.  It should be noted that
    subclasses are not required to give an absolutely correct sorting. 
    Many types of unstructured grids may have sorting cycles, meaning
    that there is no possible correct sorting.  Some subclasses also only
    give an approximate sorting in the interest of speed.
    
    @attention The Input field of this class tends to causes reference
    cycles.  To help break these cycles, garbage collection is enabled on
    this object and the input parameter is traced.  For this to work,
    though, an object in the loop holding the visibility sort should also
    report that to the garbage collector.
    """
    def GetCamera(self):
        """
        V.GetCamera() -> vtkCamera
        C++: virtual vtkCamera *GetCamera()
        
        Set/Get the camera that specifies the viewing parameters.
        """
        ...
    
    def GetDirection(self):
        """
        V.GetDirection() -> int
        C++: virtual int GetDirection()
        
        Set/Get the sorting direction.  Be default, the direction is set
        to back to front.
        """
        ...
    
    def GetInput(self):
        """
        V.GetInput() -> vtkDataSet
        C++: virtual vtkDataSet *GetInput()
        
        Set/Get the data set containing the cells to sort.
        """
        ...
    
    def GetInverseModelTransform(self):
        """
        V.GetInverseModelTransform() -> vtkMatrix4x4
        C++: virtual vtkMatrix4x4 *GetInverseModelTransform()
        """
        ...
    
    def GetMaxCellsReturned(self):
        """
        V.GetMaxCellsReturned() -> int
        C++: virtual int GetMaxCellsReturned()
        
        Set/Get the maximum number of cells that GetNextCells will return
        in one invocation.
        """
        ...
    
    def GetMaxCellsReturnedMaxValue(self):
        """
        V.GetMaxCellsReturnedMaxValue() -> int
        C++: virtual int GetMaxCellsReturnedMaxValue()
        
        Set/Get the maximum number of cells that GetNextCells will return
        in one invocation.
        """
        ...
    
    def GetMaxCellsReturnedMinValue(self):
        """
        V.GetMaxCellsReturnedMinValue() -> int
        C++: virtual int GetMaxCellsReturnedMinValue()
        
        Set/Get the maximum number of cells that GetNextCells will return
        in one invocation.
        """
        ...
    
    def GetModelTransform(self):
        """
        V.GetModelTransform() -> vtkMatrix4x4
        C++: virtual vtkMatrix4x4 *GetModelTransform()
        
        Set/Get the matrix that transforms from object space to world
        space. Generally, you get this matrix from a call to GetMatrix of
        a vtkProp3D (vtkActor).
        """
        ...
    
    def GetNextCells(self):
        """
        V.GetNextCells() -> vtkIdTypeArray
        C++: virtual vtkIdTypeArray *GetNextCells()
        
        To facilitate incremental sorting algorithms, the cells are
        retrieved in an iteration process.  That is, call InitTraversal
        to start the iteration and call GetNextCells to get the cell IDs
        in order. However, for efficiencies sake, GetNextCells returns an
        ordered list of several id's in once call (but not necessarily
        all).  GetNextCells will return NULL once the entire sorted list
        is output.  The vtkIdTypeArray returned from GetNextCells is a
        cached array, so do not delete it.  At the same note, do not
        expect the array to be valid after subsequent calls to
        GetNextCells.
        """
        ...
    
    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 InitTraversal(self):
        """
        V.InitTraversal()
        C++: virtual void InitTraversal()
        
        To facilitate incremental sorting algorithms, the cells are
        retrieved in an iteration process.  That is, call InitTraversal
        to start the iteration and call GetNextCells to get the cell IDs
        in order. However, for efficiencies sake, GetNextCells returns an
        ordered list of several id's in once call (but not necessarily
        all).  GetNextCells will return NULL once the entire sorted list
        is output.  The vtkIdTypeArray returned from GetNextCells is a
        cached array, so do not delete it.  At the same note, do not
        expect the array to be valid after subsequent calls to
        GetNextCells.
        """
        ...
    
    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() -> vtkVisibilitySort
        C++: vtkVisibilitySort *NewInstance()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkVisibilitySort
        C++: static vtkVisibilitySort *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetCamera(self, vtkCamera):
        """
        V.SetCamera(vtkCamera)
        C++: virtual void SetCamera(vtkCamera *camera)
        
        Set/Get the camera that specifies the viewing parameters.
        """
        ...
    
    def SetDirection(self, p_int):
        """
        V.SetDirection(int)
        C++: virtual void SetDirection(int _arg)
        
        Set/Get the sorting direction.  Be default, the direction is set
        to back to front.
        """
        ...
    
    def SetDirectionToBackToFront(self):
        """
        V.SetDirectionToBackToFront()
        C++: void SetDirectionToBackToFront()
        
        Set/Get the sorting direction.  Be default, the direction is set
        to back to front.
        """
        ...
    
    def SetDirectionToFrontToBack(self):
        """
        V.SetDirectionToFrontToBack()
        C++: void SetDirectionToFrontToBack()
        
        Set/Get the sorting direction.  Be default, the direction is set
        to back to front.
        """
        ...
    
    def SetInput(self, vtkDataSet):
        """
        V.SetInput(vtkDataSet)
        C++: virtual void SetInput(vtkDataSet *data)
        
        Set/Get the data set containing the cells to sort.
        """
        ...
    
    def SetMaxCellsReturned(self, p_int):
        """
        V.SetMaxCellsReturned(int)
        C++: virtual void SetMaxCellsReturned(int _arg)
        
        Set/Get the maximum number of cells that GetNextCells will return
        in one invocation.
        """
        ...
    
    def SetModelTransform(self, vtkMatrix4x4):
        """
        V.SetModelTransform(vtkMatrix4x4)
        C++: virtual void SetModelTransform(vtkMatrix4x4 *mat)
        
        Set/Get the matrix that transforms from object space to world
        space. Generally, you get this matrix from a call to GetMatrix of
        a vtkProp3D (vtkActor).
        """
        ...
    
    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__ = ...
    BACK_TO_FRONT = ...
    FRONT_TO_BACK = ...
    __dict__ = ...
    __vtkname__ = ...


