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

from .vtkPointSet import vtkPointSet

class vtkExplicitStructuredGrid(vtkPointSet):
    """
    vtkExplicitStructuredGrid - structured grid with explicit topology
    and geometry
    
    Superclass: vtkPointSet
    
    vtkExplicitStructuredGrid is a data object that is a concrete
    implementation of vtkDataSet. vtkExplicitStructuredGrid represents a
    geometric structure that is a topologically regular array of
    hexahedron. The topology is that of a cube that has been subdivided
    into a regular array of smaller cubes. Each cell can be addressed
    with i-j-k indices, however neighbor hexahedrons does not necessarily
    share a face and hexahedron can be blanked (turned-off).
    
    Like unstructured grid, vtkExplicitStructuredGrid has explicit point
    coordinates and cell to point indexing. Unlike unstructured grid,
    vtkExplicitStructuredGrid does not keep a cell type list as all
    visible cells are known to be hexahedra. vtkExplicitStructuredGrid
    can take advantage of its layout to perform operations based on the
    i, j, k parameters, similar to structured grid. This makes some
    operations faster on this class, without losing the flexibility of
    the cell -> points mapping. The most common use of this class would
    be in situations where you have all hexahedra but the points used by
    the cells are not exactly defined by the i, j, k parameters. One
    example of this is a structured grid with a half voxel shift
    occurring in the middle of it such as with a geologic fault.
    
    The order and number of points is arbitrary. The order and number of
    cells must match that specified by the dimensions of the grid minus
    1, because in vtk structured datasets the dimensions correspond to
    the points. The cells order increases in i fastest (from 0 <= i <=
    dims[0] - 2), then j (0 <= j <= dims[1] - 2), then k ( 0 <= k <=
    dims[2] - 2) where dims[] are the dimensions of the grid in the i-j-k
    topological directions. The number of cells is (dims[0] - 1) *
    (dims[1] - 1) * (dims[2] - 1).
    """
    def BlankCell(self, p_int):
        """
        V.BlankCell(int)
        C++: void BlankCell(vtkIdType cellId)
        
        Methods for supporting blanking of cells. Blanking turns on or
        off cells in the structured grid. These methods should be called
        only after the dimensions of the grid are set.
        """
        ...
    
    def BuildLinks(self):
        """
        V.BuildLinks()
        C++: void BuildLinks()
        
        Create/Get upward links from points to cells that use each point.
        Enables topologically complex queries.
        """
        ...
    
    def CheckAndReorderFaces(self):
        """
        V.CheckAndReorderFaces()
        C++: void CheckAndReorderFaces()
        
        Check faces are numbered correctly regarding ijk numbering If not
        this will reorganize cell points order so face order is valid.
        This is made in two pass, first it check that faces are on the
        correct axis and corrects it Then it check if faces are mirrored
        and corrects it. Make sure cells and extent have been set before
        calling this method and recompute face connectivity afterwards.
        """
        ...
    
    def ComputeCellId(self, p_int, p_int_1, p_int_2, bool):
        """
        V.ComputeCellId(int, int, int, bool) -> int
        C++: vtkIdType ComputeCellId(int i, int j, int k,
            bool adjustForExtent=true)
        
        Given a location in structured coordinates (i-j-k), return the
        cell id. If adjustForExtent is true, (i,j,k) is interpreted as a
        position relative to the beginning of the extent. If
        adjustForExtent is false, (i,j,k) is interpreted literally and
        the cell id is returned regardless of the extent beginning. The
        default adjustForExtent is true.
        """
        ...
    
    def ComputeCellStructuredCoords(self, p_int, p_int_1, p_int_2, p_int_3, bool):
        """
        V.ComputeCellStructuredCoords(int, int, int, int, bool)
        C++: void ComputeCellStructuredCoords(vtkIdType cellId, int &i,
            int &j, int &k, bool adjustForExtent=true)
        
        Given a cellId, get the structured coordinates (i-j-k). If
        adjustForExtent is true, (i,j,k) is computed as a position
        relative to the beginning of the extent. If adjustForExtent is
        false, (i,j,k) is computed regardless of the extent beginning.
        The default adjustForExtent is true.
        """
        ...
    
    def ComputeFacesConnectivityFlagsArray(self):
        """
        V.ComputeFacesConnectivityFlagsArray()
        C++: void ComputeFacesConnectivityFlagsArray()
        
        Compute the faces connectivity flags array.
        """
        ...
    
    def CopyStructure(self, vtkDataSet):
        """
        V.CopyStructure(vtkDataSet)
        C++: void CopyStructure(vtkDataSet *ds) override;
        
        Copy the geometric and topological structure of an input poly
        data object.
        """
        ...
    
    def Crop(self, int_tuple):
        """
        V.Crop((int, ...))
        C++: void Crop(const int *updateExtent) override;
        V.Crop(vtkExplicitStructuredGrid, (int, ...), bool)
        C++: virtual void Crop(vtkExplicitStructuredGrid *input,
            const int *updateExtent, bool generateOriginalCellIds)
        
        Reallocates and copies to set the Extent to the UpdateExtent.
        This is used internally when the exact extent is requested, and
        the source generated more than the update extent.
        """
        ...
    
    def DeepCopy(self, vtkDataObject):
        """
        V.DeepCopy(vtkDataObject)
        C++: void DeepCopy(vtkDataObject *src) override;
        
        Shallow and Deep copy.
        """
        ...
    
    def GenerateGhostArray(self, p_int=..., p_int=..., p_int=..., p_int=..., p_int=..., p_int=..., *args, **kwargs):
        """
        V.GenerateGhostArray([int, int, int, int, int, int], bool)
        C++: void GenerateGhostArray(int zeroExt[6], bool cellOnly)
            override;
        V.GenerateGhostArray([int, int, int, int, int, int])
        C++: virtual void GenerateGhostArray(int zeroExt[6])
        
        Normally called by pipeline executives or algorithms only. This
        method computes the ghost arrays for a given dataset. The zeroExt
        argument specifies the extent of the region which ghost type = 0.
        """
        ...
    
    def GetActualMemorySize(self):
        """
        V.GetActualMemorySize() -> int
        C++: unsigned long GetActualMemorySize() override;
        
        Return the actual size of the data in kilobytes. This number is
        valid only after the pipeline has updated. The memory size
        returned is guaranteed to be greater than or equal to the memory
        required to represent the data (e.g., extra space in arrays, etc.
        are not included in the return value). THIS METHOD IS THREAD
        SAFE.
        """
        ...
    
    def GetCell(self, p_int):
        """
        V.GetCell(int) -> vtkCell
        C++: vtkCell *GetCell(vtkIdType cellId) override;
        V.GetCell(int, vtkGenericCell)
        C++: void GetCell(vtkIdType cellId, vtkGenericCell *cell)
            override;
        V.GetCell(int, int, int) -> vtkCell
        C++: virtual vtkCell *GetCell(int i, int j, int k)
        
        Standard vtkDataSet API methods. See vtkDataSet for more
        information.
        """
        ...
    
    def GetCellBounds(self, p_int, p_float=..., p_float=..., p_float=..., p_float=..., p_float=..., p_float=...):
        """
        V.GetCellBounds(int, [float, float, float, float, float, float])
        C++: void GetCellBounds(vtkIdType cellId, double bounds[6])
            override;
        
        Standard vtkDataSet API methods. See vtkDataSet for more
        information.
        """
        ...
    
    def GetCellDims(self, p_int=..., p_int=..., p_int=...):
        """
        V.GetCellDims([int, int, int])
        C++: void GetCellDims(int cellDims[3])
        
        Computes the cell dimensions according to internal point
        dimensions. The total number of cells can be achieved simply by
        cellDims[0] * cellDims[1] * cellDims[2].
        """
        ...
    
    def GetCellNeighbors(self, p_int, vtkIdList, vtkIdList_1):
        """
        V.GetCellNeighbors(int, vtkIdList, vtkIdList)
        C++: void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds,
            vtkIdList *cellIds) override;
        V.GetCellNeighbors(int, [int, int, int, int, int, int], [int,
            ...])
        C++: void GetCellNeighbors(vtkIdType cellId,
            vtkIdType neighbors[6], int *wholeExtent=nullptr)
        
        Standard vtkDataSet API methods. See vtkDataSet for more
        information.
        """
        ...
    
    def GetCellPoints(self, p_int, vtkIdList):
        """
        V.GetCellPoints(int, vtkIdList)
        C++: void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds)
            override;
        V.GetCellPoints(int) -> (int, ...)
        C++: vtkIdType *GetCellPoints(vtkIdType cellId)
        V.GetCellPoints(int, int, [int, ...])
        C++: void GetCellPoints(vtkIdType cellId, vtkIdType &npts,
            vtkIdType *&pts)
        
        Standard vtkDataSet API methods. See vtkDataSet for more
        information.
        """
        ...
    
    def GetCells(self):
        """
        V.GetCells() -> vtkCellArray
        C++: virtual vtkCellArray *GetCells()
        
        Set/Get the cell array defining hexahedron.
        """
        ...
    
    def GetCellType(self, p_int):
        """
        V.GetCellType(int) -> int
        C++: int GetCellType(vtkIdType cellId) override;
        
        Standard vtkDataSet API methods. See vtkDataSet for more
        information.
        """
        ...
    
    def GetData(self, vtkInformation):
        """
        V.GetData(vtkInformation) -> vtkExplicitStructuredGrid
        C++: static vtkExplicitStructuredGrid *GetData(
            vtkInformation *info)
        V.GetData(vtkInformationVector, int) -> vtkExplicitStructuredGrid
        C++: static vtkExplicitStructuredGrid *GetData(
            vtkInformationVector *v, int i=0)
        
        Retrieve an instance of this class from an information object.
        """
        ...
    
    def GetDataDimension(self):
        """
        V.GetDataDimension() -> int
        C++: int GetDataDimension()
        
        Return the dimensionality of the data.
        """
        ...
    
    def GetDataObjectType(self):
        """
        V.GetDataObjectType() -> int
        C++: int GetDataObjectType() override;
        
        Return what type of dataset this is.
        """
        ...
    
    def GetDimensions(self, p_int=..., p_int=..., p_int=...):
        """
        V.GetDimensions([int, int, int])
        C++: void GetDimensions(int dim[3])
        
        Set/Get the dimensions of this structured dataset in term of
        number of points along each direction. This is just a convenience
        method which calls Set/GetExtent internally.
        """
        ...
    
    def GetExtent(self):
        """
        V.GetExtent() -> (int, int, int, int, int, int)
        C++: virtual int *GetExtent()
        
        Set/Get the extent of this structured dataset in term of number
        of points along each direction. Setting the extent will reset the
        internal CellArray and Links and a correctly sized cell array
        will be created. The Extent is stored  in the order (X, Y, Z).
        """
        ...
    
    def GetExtentType(self):
        """
        V.GetExtentType() -> int
        C++: int GetExtentType() override;
        
        The extent type is a 3D extent
        """
        ...
    
    def GetFacesConnectivityFlagsArrayName(self):
        """
        V.GetFacesConnectivityFlagsArrayName() -> string
        C++: virtual char *GetFacesConnectivityFlagsArrayName()
        
        Set/Get the name of the faces connectivity flags array.
        """
        ...
    
    def GetLinks(self):
        """
        V.GetLinks() -> vtkAbstractCellLinks
        C++: virtual vtkAbstractCellLinks *GetLinks()
        
        Create/Get upward links from points to cells that use each point.
        Enables topologically complex queries.
        """
        ...
    
    def GetMaxCellSize(self):
        """
        V.GetMaxCellSize() -> int
        C++: int GetMaxCellSize() override;
        
        Standard vtkDataSet API methods. See vtkDataSet for more
        information.
        """
        ...
    
    def GetNumberOfCells(self):
        """
        V.GetNumberOfCells() -> int
        C++: vtkIdType GetNumberOfCells() override;
        
        Standard vtkDataSet API methods. See vtkDataSet for more
        information.
        """
        ...
    
    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 GetPointCells(self, p_int, vtkIdList):
        """
        V.GetPointCells(int, vtkIdList)
        C++: void GetPointCells(vtkIdType ptId, vtkIdList *cellIds)
            override;
        
        Standard vtkDataSet API methods. See vtkDataSet for more
        information.
        """
        ...
    
    def HasAnyBlankCells(self):
        """
        V.HasAnyBlankCells() -> bool
        C++: bool HasAnyBlankCells() override;
        
        Returns true if one or more cells are blanked, false otherwise.
        """
        ...
    
    def HasAnyGhostCells(self):
        """
        V.HasAnyGhostCells() -> bool
        C++: bool HasAnyGhostCells()
        
        Returns true if one or more cells are ghost, false otherwise.
        """
        ...
    
    def Initialize(self):
        """
        V.Initialize()
        C++: void Initialize() override;
        
        Standard vtkDataSet API methods. See vtkDataSet for more
        information.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods for instantiation, type information, and
        printing.
        """
        ...
    
    def IsCellGhost(self, p_int):
        """
        V.IsCellGhost(int) -> int
        C++: unsigned char IsCellGhost(vtkIdType cellId)
        
        Return non-zero value if specified cell is a ghost cell. These
        methods should be called only after the dimensions of the grid
        are set.
        """
        ...
    
    def IsCellVisible(self, p_int):
        """
        V.IsCellVisible(int) -> int
        C++: unsigned char IsCellVisible(vtkIdType cellId)
        
        Return non-zero value if specified cell is visible. These methods
        should be called only after the dimensions of the grid are set.
        """
        ...
    
    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() -> vtkExplicitStructuredGrid
        C++: vtkExplicitStructuredGrid *NewInstance()
        
        Standard methods for instantiation, type information, and
        printing.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkExplicitStructuredGrid
        C++: static vtkExplicitStructuredGrid *SafeDownCast(
            vtkObjectBase *o)
        
        Standard methods for instantiation, type information, and
        printing.
        """
        ...
    
    def SetCells(self, vtkCellArray):
        """
        V.SetCells(vtkCellArray)
        C++: void SetCells(vtkCellArray *cells)
        
        Set/Get the cell array defining hexahedron.
        """
        ...
    
    def SetDimensions(self, p_int, p_int_1, p_int_2):
        """
        V.SetDimensions(int, int, int)
        C++: void SetDimensions(int i, int j, int k)
        V.SetDimensions([int, int, int])
        C++: void SetDimensions(int dim[3])
        
        Set/Get the dimensions of this structured dataset in term of
        number of points along each direction. This is just a convenience
        method which calls Set/GetExtent internally.
        """
        ...
    
    def SetExtent(self, p_int, p_int_1, p_int_2, p_int_3, p_int_4, p_int_5):
        """
        V.SetExtent(int, int, int, int, int, int)
        C++: void SetExtent(int x0, int x1, int y0, int y1, int z0,
            int z1)
        V.SetExtent([int, int, int, int, int, int])
        C++: void SetExtent(int extent[6])
        
        Set/Get the extent of this structured dataset in term of number
        of points along each direction. Setting the extent will reset the
        internal CellArray and Links and a correctly sized cell array
        will be created. The Extent is stored  in the order (X, Y, Z).
        """
        ...
    
    def SetFacesConnectivityFlagsArrayName(self, string):
        """
        V.SetFacesConnectivityFlagsArrayName(string)
        C++: virtual void SetFacesConnectivityFlagsArrayName(
            const char *_arg)
        
        Set/Get the name of the faces connectivity flags array.
        """
        ...
    
    def ShallowCopy(self, vtkDataObject):
        """
        V.ShallowCopy(vtkDataObject)
        C++: void ShallowCopy(vtkDataObject *src) override;
        
        Shallow and Deep copy.
        """
        ...
    
    def UnBlankCell(self, p_int):
        """
        V.UnBlankCell(int)
        C++: void UnBlankCell(vtkIdType cellId)
        
        Methods for supporting blanking of cells. Blanking turns on or
        off cells in the structured grid. These methods should be called
        only after the dimensions of the grid are set.
        """
        ...
    
    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__ = ...


