1 /*========================================================================= 2 3 Program: Visualization Toolkit 4 Module: vtkCPExodusIIElementBlockCellIterator.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 =========================================================================*/ 15 /** 16 * @class vtkCPExodusIIElementBlockCellIterator 17 * @brief vtkCellIterator subclass 18 * specialized for vtkCPExodusIIElementBlock. 19 */ 20 21 #ifndef vtkCPExodusIIElementBlockCellIterator_h 22 #define vtkCPExodusIIElementBlockCellIterator_h 23 24 #include "vtkCellIterator.h" 25 #include "vtkIOExodusModule.h" // For export macro 26 27 #include "vtkSmartPointer.h" // For smart pointer 28 29 class vtkCPExodusIIElementBlock; 30 class vtkCPExodusIIElementBlockPrivate; 31 32 class VTKIOEXODUS_EXPORT vtkCPExodusIIElementBlockCellIterator : public vtkCellIterator 33 { 34 public: 35 typedef vtkCPExodusIIElementBlockPrivate StorageType; 36 37 static vtkCPExodusIIElementBlockCellIterator* New(); 38 vtkTypeMacro(vtkCPExodusIIElementBlockCellIterator, vtkCellIterator); 39 void PrintSelf(ostream& os, vtkIndent indent); 40 41 bool IsValid(); 42 vtkIdType GetCellId(); 43 44 protected: 45 vtkCPExodusIIElementBlockCellIterator(); 46 ~vtkCPExodusIIElementBlockCellIterator(); 47 48 void ResetToFirstCell(); 49 void IncrementToNextCell(); 50 void FetchCellType(); 51 void FetchPointIds(); 52 void FetchPoints(); 53 54 friend class ::vtkCPExodusIIElementBlock; 55 void SetStorage(vtkCPExodusIIElementBlock* eb); 56 57 private: 58 vtkCPExodusIIElementBlockCellIterator(const vtkCPExodusIIElementBlockCellIterator&) = delete; 59 void operator=(const vtkCPExodusIIElementBlockCellIterator&) = delete; 60 61 vtkSmartPointer<StorageType> Storage; 62 vtkSmartPointer<vtkPoints> DataSetPoints; 63 vtkIdType CellId; 64 }; 65 66 #endif // vtkCPExodusIIElementBlockCellIterator_h 67