# 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 vtkCellIterator(__vtkmodules_vtkCommonCore.vtkObject):
    """
    vtkCellIterator - Efficient cell iterator for vtkDataSet topologies.
    
    Superclass: vtkObject
    
    vtkCellIterator provides a method for traversing cells in a data set.
    Call the vtkDataSet::NewCellIterator() method to use this class.
    
    The cell is represented as a set of three pieces of information: The
    cell type, the ids of the points constituting the cell, and the
    points themselves. This iterator fetches these as needed. If only the
    cell type is used, the type is not looked up until GetCellType is
    called, and the point information is left uninitialized. This allows
    efficient screening of cells, since expensive point lookups may be
    skipped depending on the cell type/etc.
    
    An example usage of this class: ~~~ void myWorkerFunction(vtkDataSet
    *ds) {
      vtkCellIterator *it = ds->NewCellIterator();
      for (it->InitTraversal(); !it->IsDoneWithTraversal();
    it->GoToNextCell())
        {
        if (it->GetCellType() != VTK_TETRA)
          {
          continue; // Skip non-tetrahedral cells
          }
    
    
        vtkIdList *pointIds = it->GetPointIds();
        // Do screening on the point ids, maybe figure out scalar range
    and skip
           cells that do not lie in a certain range?
    
    
        vtkPoints *points = it->GetPoints();
        // Do work using the cell points, or ...
    
    
        vtkGenericCell *cell = ...;
        it->GetCell(cell);
        // ... do work with a vtkCell.
        }
      it->Delete(); } ~~~
    
    The example above pulls in bits of information as needed to filter
    out cells that aren't relevant. The least expensive lookups are
    performed first (cell type, then point ids, then points/full cell) to
    prevent wasted cycles fetching unnecessary data. Also note that at
    the end of the loop, the iterator must be deleted as these iterators
    are vtkObject subclasses.
    """
    def GetCell(self, cell): # real signature unknown; restored from __doc__
        """
        GetCell(self, cell:vtkGenericCell) -> None
        C++: void GetCell(vtkGenericCell *cell)
        
        Write the current full cell information into the argument. This
        is usually a very expensive call, and should be avoided when
        possible. This should only be called when IsDoneWithTraversal()
        returns false.
        """
        pass

    def GetCellDimension(self): # real signature unknown; restored from __doc__
        """
        GetCellDimension(self) -> int
        C++: int GetCellDimension()
        
        Get the current cell dimension (0, 1, 2, or 3). This should only
        be called when IsDoneWithTraversal() returns false.
        """
        return 0

    def GetCellId(self): # real signature unknown; restored from __doc__
        """
        GetCellId(self) -> int
        C++: virtual vtkIdType GetCellId()
        
        Get the id of the current cell.
        """
        return 0

    def GetCellType(self): # real signature unknown; restored from __doc__
        """
        GetCellType(self) -> int
        C++: int GetCellType()
        
        Get the current cell type (e.g. VTK_LINE, VTK_VERTEX, VTK_TETRA,
        etc). This should only be called when IsDoneWithTraversal()
        returns false.
        """
        return 0

    def GetFaces(self): # real signature unknown; restored from __doc__
        """
        GetFaces(self) -> vtkIdList
        C++: vtkIdList *GetFaces()
        
        Get the faces for a polyhedral cell. This is only valid when
        CellType is VTK_POLYHEDRON.
        """
        pass

    def GetNumberOfFaces(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfFaces(self) -> int
        C++: vtkIdType GetNumberOfFaces()
        
        Return the number of faces in the current cell. This should only
        be called when IsDoneWithTraversal() returns false.
        """
        return 0

    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 GetNumberOfPoints(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfPoints(self) -> int
        C++: vtkIdType GetNumberOfPoints()
        
        Return the number of points in the current cell. This should only
        be called when IsDoneWithTraversal() returns false.
        """
        return 0

    def GetPointIds(self): # real signature unknown; restored from __doc__
        """
        GetPointIds(self) -> vtkIdList
        C++: vtkIdList *GetPointIds()
        
        Get the ids of the points in the current cell. This should only
        be called when IsDoneWithTraversal() returns false.
        """
        pass

    def GetPoints(self): # real signature unknown; restored from __doc__
        """
        GetPoints(self) -> vtkPoints
        C++: vtkPoints *GetPoints()
        
        Get the points in the current cell. This is usually a very
        expensive call, and should be avoided when possible. This should
        only be called when IsDoneWithTraversal() returns false.
        """
        pass

    def GoToNextCell(self): # real signature unknown; restored from __doc__
        """
        GoToNextCell(self) -> None
        C++: void GoToNextCell()
        
        Increment to next cell. Always safe to call.
        """
        pass

    def InitTraversal(self): # real signature unknown; restored from __doc__
        """
        InitTraversal(self) -> None
        C++: void InitTraversal()
        
        Reset to the first cell.
        """
        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 IsDoneWithTraversal(self): # real signature unknown; restored from __doc__
        """
        IsDoneWithTraversal(self) -> bool
        C++: virtual bool IsDoneWithTraversal()
        
        Returns false while the iterator is valid. Always safe to call.
        """
        return False

    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) -> vtkCellIterator
        C++: vtkCellIterator *NewInstance()
        """
        return vtkCellIterator

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkCellIterator
        C++: static vtkCellIterator *SafeDownCast(vtkObjectBase *o)
        """
        return vtkCellIterator

    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__\': \'vtkCellIterator\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'InitTraversal\': <method \'InitTraversal\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GoToNextCell\': <method \'GoToNextCell\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'IsDoneWithTraversal\': <method \'IsDoneWithTraversal\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetCellType\': <method \'GetCellType\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetCellDimension\': <method \'GetCellDimension\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetCellId\': <method \'GetCellId\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetPointIds\': <method \'GetPointIds\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetPoints\': <method \'GetPoints\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetFaces\': <method \'GetFaces\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetCell\': <method \'GetCell\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetNumberOfPoints\': <method \'GetNumberOfPoints\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'GetNumberOfFaces\': <method \'GetNumberOfFaces\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D614FC0>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkCommonDataModel.vtkCellIterator\' objects>, \'__doc__\': "vtkCellIterator - Efficient cell iterator for vtkDataSet topologies.\\n\\nSuperclass: vtkObject\\n\\nvtkCellIterator provides a method for traversing cells in a data set.\\nCall the vtkDataSet::NewCellIterator() method to use this class.\\n\\nThe cell is represented as a set of three pieces of information: The\\ncell type, the ids of the points constituting the cell, and the\\npoints themselves. This iterator fetches these as needed. If only the\\ncell type is used, the type is not looked up until GetCellType is\\ncalled, and the point information is left uninitialized. This allows\\nefficient screening of cells, since expensive point lookups may be\\nskipped depending on the cell type/etc.\\n\\nAn example usage of this class: ~~~ void myWorkerFunction(vtkDataSet\\n*ds) {\\n  vtkCellIterator *it = ds->NewCellIterator();\\n  for (it->InitTraversal(); !it->IsDoneWithTraversal();\\nit->GoToNextCell())\\n    {\\n    if (it->GetCellType() != VTK_TETRA)\\n      {\\n      continue; // Skip non-tetrahedral cells\\n      }\\n\\n\\n    vtkIdList *pointIds = it->GetPointIds();\\n    // Do screening on the point ids, maybe figure out scalar range\\nand skip\\n       cells that do not lie in a certain range?\\n\\n\\n    vtkPoints *points = it->GetPoints();\\n    // Do work using the cell points, or ...\\n\\n\\n    vtkGenericCell *cell = ...;\\n    it->GetCell(cell);\\n    // ... do work with a vtkCell.\\n    }\\n  it->Delete(); } ~~~\\n\\nThe example above pulls in bits of information as needed to filter\\nout cells that aren\'t relevant. The least expensive lookups are\\nperformed first (cell type, then point ids, then points/full cell) to\\nprevent wasted cycles fetching unnecessary data. Also note that at\\nthe end of the loop, the iterator must be deleted as these iterators\\nare vtkObject subclasses.\\n\\n"})'
    __vtkname__ = 'vtkCellIterator'


