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 33 : public vtkCellIterator 34 { 35 public: 36 typedef vtkCPExodusIIElementBlockPrivate StorageType; 37 38 static vtkCPExodusIIElementBlockCellIterator *New(); 39 vtkTypeMacro(vtkCPExodusIIElementBlockCellIterator, vtkCellIterator) 40 void PrintSelf(ostream &os, vtkIndent indent); 41 42 bool IsValid(); 43 vtkIdType GetCellId(); 44 45 protected: 46 vtkCPExodusIIElementBlockCellIterator(); 47 ~vtkCPExodusIIElementBlockCellIterator(); 48 49 void ResetToFirstCell(); 50 void IncrementToNextCell(); 51 void FetchCellType(); 52 void FetchPointIds(); 53 void FetchPoints(); 54 55 friend class ::vtkCPExodusIIElementBlock; 56 void SetStorage(vtkCPExodusIIElementBlock *eb); 57 58 private: 59 vtkCPExodusIIElementBlockCellIterator(const vtkCPExodusIIElementBlockCellIterator &) = delete; 60 void operator=(const vtkCPExodusIIElementBlockCellIterator &) = delete; 61 62 vtkSmartPointer<StorageType> Storage; 63 vtkSmartPointer<vtkPoints> DataSetPoints; 64 vtkIdType CellId; 65 }; 66 67 #endif //vtkCPExodusIIElementBlockCellIterator_h 68