74#ifndef vtkCellArrayIterator_h
75#define vtkCellArrayIterator_h
77#include "vtkCommonDataModelModule.h"
112 this->CurrentCellId = cellId;
113 this->NumberOfCells = this->CellArray->GetNumberOfCells();
114 assert(cellId <= this->NumberOfCells);
132 this->GoToCell(cellId);
133 this->GetCurrentCell(numCellPts, cellPts);
137 this->GoToCell(cellId);
138 this->GetCurrentCell(cellIds);
142 this->GoToCell(cellId);
143 return this->GetCurrentCell();
157 this->CurrentCellId = 0;
158 this->NumberOfCells = this->CellArray->GetNumberOfCells();
187 assert(this->CurrentCellId < this->NumberOfCells);
189 if (this->CellArray->IsStorageShareable())
191 this->CellArray->GetCellAtId(this->CurrentCellId, cellSize, cellPoints);
195 this->CellArray->GetCellAtId(this->CurrentCellId, this->TempCell);
196 cellSize = this->TempCell->GetNumberOfIds();
197 cellPoints = this->TempCell->GetPointer(0);
202 assert(this->CurrentCellId < this->NumberOfCells);
203 this->CellArray->GetCellAtId(this->CurrentCellId, ids);
207 assert(this->CurrentCellId < this->NumberOfCells);
208 this->CellArray->GetCellAtId(this->CurrentCellId, this->TempCell);
209 return this->TempCell;
225 assert(this->CurrentCellId < this->NumberOfCells);
226 this->CellArray->ReplaceCellAtId(this->CurrentCellId, list);
236 assert(this->CurrentCellId < this->NumberOfCells);
237 this->CellArray->ReplaceCellAtId(this->CurrentCellId, npts, pts);
245 assert(this->CurrentCellId < this->NumberOfCells);
246 this->CellArray->ReverseCellAtId(this->CurrentCellId);
Encapsulate traversal logic for vtkCellArray.
bool IsDoneWithTraversal()
Returns true if the iterator has completed the traversal.
vtkNew< vtkIdList > TempCell
vtkSmartPointer< vtkCellArray > CellArray
void GetCurrentCell(vtkIdList *ids)
Returns the definition of the current cell during forward traversal.
void ReplaceCurrentCell(vtkIdType npts, const vtkIdType *pts)
Replace the current cell with the ids in pts.
~vtkCellArrayIterator() override=default
void GetCellAtId(vtkIdType cellId, vtkIdList *cellIds)
The following are methods supporting random access iteration.
void GoToCell(vtkIdType cellId)
Intialize the iterator to a specific cell.
vtkIdList * GetCellAtId(vtkIdType cellId)
The following are methods supporting random access iteration.
void GoToNextCell()
Advance the forward iterator to the next cell.
void GetCellAtId(vtkIdType cellId, vtkIdType &numCellPts, vtkIdType const *&cellPts)
The following are methods supporting random access iteration.
void ReverseCurrentCell()
Reverses the order of the point ids in the current cell.
vtkIdList * GetCurrentCell()
Returns the definition of the current cell during forward traversal.
vtkIdType GetCurrentCellId() const
Returns the id of the current cell during forward iteration.
vtkCellArray * GetCellArray()
Return the vtkCellArray object over which iteration is occuring.
void GetCurrentCell(vtkIdType &cellSize, vtkIdType const *&cellPoints)
Returns the definition of the current cell during forward traversal.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instantiation, type information, and printing.
vtkCellArrayIterator()=default
void ReplaceCurrentCell(vtkIdList *list)
Specialized methods for performing operations on the vtkCellArray.
static vtkCellArrayIterator * New()
Standard methods for instantiation, type information, and printing.
void GoToFirstCell()
The following are methods supporting forward iteration.
object to represent cell connectivity
friend class vtkCellArrayIterator
list of point or cell ids
a simple class to control print indentation
abstract base class for most VTK objects