65 #ifndef vtkCellIterator_h 66 #define vtkCellIterator_h 69 #include "vtkCommonDataModelModule.h" 96 virtual bool IsDoneWithTraversal() = 0;
108 int GetCellDimension();
160 virtual void ResetToFirstCell() = 0;
165 virtual void IncrementToNextCell() = 0;
170 virtual void FetchCellType() = 0;
175 virtual void FetchPointIds() = 0;
180 virtual void FetchPoints() = 0;
201 UninitializedFlag = 0x0,
210 this->CacheFlags = UninitializedFlag;
214 void SetCache(
unsigned char flags) { this->CacheFlags |= flags; }
216 bool CheckCache(
unsigned char flags) {
return (this->CacheFlags & flags) == flags; }
221 unsigned char CacheFlags;
227 this->ResetToFirstCell();
234 this->IncrementToNextCell();
241 if (!this->CheckCache(CellTypeFlag))
243 this->FetchCellType();
244 this->SetCache(CellTypeFlag);
246 return this->CellType;
252 if (!this->CheckCache(PointIdsFlag))
254 this->FetchPointIds();
255 this->SetCache(PointIdsFlag);
257 return this->PointIds;
263 if (!this->CheckCache(PointsFlag))
266 this->SetCache(PointsFlag);
274 if (!this->CheckCache(FacesFlag))
277 this->SetCache(FacesFlag);
285 if (!this->CheckCache(PointIdsFlag))
287 this->FetchPointIds();
288 this->SetCache(PointIdsFlag);
290 return this->PointIds->GetNumberOfIds();
296 switch (this->GetCellType())
371 if (!this->CheckCache(FacesFlag))
374 this->SetCache(FacesFlag);
376 return this->Faces->GetNumberOfIds() != 0 ? this->Faces->GetId(0) : 0;
379 vtkGenericWarningMacro(
"Unknown cell type: " << this->CellType);
386 #endif // vtkCellIterator_h
vtkIdType GetNumberOfFaces()
Return the number of faces in the current cell.
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
provides thread-safe access to cells
void GoToNextCell()
Increment to next cell.
a simple class to control print indentation
list of point or cell ids
vtkIdList * GetPointIds()
Get the ids of the points in the current cell.
vtkIdList * GetFaces()
Get the faces for a polyhedral cell.
virtual void FetchFaces()
Lookup the cell faces in the data set and store them in this->Faces.
int GetCellType()
Get the current cell type (e.g.
void InitTraversal()
Reset to the first cell.
vtkPoints * GetPoints()
Get the points in the current cell.
Efficient cell iterator for vtkDataSet topologies.
represent and manipulate 3D points
vtkIdType GetNumberOfPoints()
Return the number of points in the current cell.