VTK
vtkUnstructuredGridCellIterator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkUnstructuredGridCellIterator.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
24 #ifndef vtkUnstructuredGridCellIterator_h
25 #define vtkUnstructuredGridCellIterator_h
26 
27 #include "vtkCommonDataModelModule.h" // For export macro
28 #include "vtkCellIterator.h"
29 #include "vtkSmartPointer.h" // For vtkSmartPointer
30 
31 class vtkCellArray;
34 class vtkPoints;
35 
36 class VTKCOMMONDATAMODEL_EXPORT vtkUnstructuredGridCellIterator :
37  public vtkCellIterator
38 {
39 public:
42  void PrintSelf(ostream& os, vtkIndent indent) override;
43 
44  bool IsDoneWithTraversal() override;
45  vtkIdType GetCellId() override;
46 
47 protected:
50 
51  void ResetToFirstCell() override;
52  void IncrementToNextCell() override;
53  void FetchCellType() override;
54  void FetchPointIds() override;
55  void FetchPoints() override;
56  void FetchFaces() override;
57 
58  friend class vtkUnstructuredGrid;
59  void SetUnstructuredGrid(vtkUnstructuredGrid *ug);
60 
61  unsigned char *CellTypeBegin;
62  unsigned char *CellTypePtr;
63  unsigned char *CellTypeEnd;
64 
70 
71  // Cache misses make updating ConnectivityPtr in IncrementToNextCell too
72  // expensive, so we wait to walk through the array until the point ids are
73  // needed. This variable keeps track of how far we need to increment.
75  void CatchUpSkippedCells();
76 
78 
79 private:
81  void operator=(const vtkUnstructuredGridCellIterator &) = delete;
82 };
83 
84 #endif //vtkUnstructuredGridCellIterator_h
vtkSmartPointer< vtkPoints > UnstructuredGridPoints
int vtkIdType
Definition: vtkType.h:347
virtual void FetchCellType()=0
Lookup the cell type in the data set and store it in this->CellType.
virtual void ResetToFirstCell()=0
Update internal state to point to the first cell.
Implementation of vtkCellIterator specialized for vtkUnstructuredGrid.
virtual void IncrementToNextCell()=0
Update internal state to point to the next cell.
virtual vtkIdType GetCellId()=0
Get the id of the current cell.
virtual void FetchPointIds()=0
Lookup the cell point ids in the data set and store them in this->PointIds.
a simple class to control print indentation
Definition: vtkIndent.h:39
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
dataset represents arbitrary combinations of all possible cell types
virtual void FetchFaces()
Lookup the cell faces in the data set and store them in this->Points.
dynamic, self-adjusting array of unsigned char
object to represent cell connectivity
Definition: vtkCellArray.h:50
virtual void FetchPoints()=0
Lookup the cell points in the data set and store them in this->Points.
Efficient cell iterator for vtkDataSet topologies.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
virtual bool IsDoneWithTraversal()=0
Returns false while the iterator is valid.
represent and manipulate 3D points
Definition: vtkPoints.h:39