00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkBridgeDataSet.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00025 #ifndef __vtkBridgeDataSet_h 00026 #define __vtkBridgeDataSet_h 00027 00028 #include "vtkBridgeExport.h" 00029 #include "vtkGenericDataSet.h" 00030 00031 class vtkDataSet; 00032 00033 class VTK_BRIDGE_EXPORT vtkBridgeDataSet : public vtkGenericDataSet 00034 { 00035 public: 00036 static vtkBridgeDataSet *New(); 00037 vtkTypeRevisionMacro(vtkBridgeDataSet,vtkGenericDataSet); 00038 void PrintSelf(ostream& os, vtkIndent indent); 00039 00041 00043 void SetDataSet(vtkDataSet *ds); 00044 // Description: 00045 // Number of points composing the dataset. See NewPointIterator for more 00046 // details. 00047 // \post positive_result: result>=0 00048 vtkIdType GetNumberOfPoints(); 00050 00054 vtkIdType GetNumberOfCells(int dim=-1); 00055 00060 int GetCellDimension(); 00061 00069 void GetCellTypes(vtkCellTypes *types); 00070 00077 vtkGenericCellIterator *NewCellIterator(int dim=-1); 00078 00080 00085 vtkGenericCellIterator *NewBoundaryIterator(int dim=-1, 00086 int exteriorOnly=0); 00088 00091 vtkGenericPointIterator *NewPointIterator(); 00092 00093 00095 vtkIdType GetEstimatedSize(); 00096 00098 00107 int FindCell(double x[3], 00108 vtkGenericCellIterator* &cell, 00109 double tol2, 00110 int &subId, 00111 double pcoords[3]); 00113 00115 00117 void FindPoint(double x[3], 00118 vtkGenericPointIterator *p); 00120 00122 unsigned long int GetMTime(); 00123 00125 void ComputeBounds(); 00126 00127 protected: 00128 // Constructor with default bounds (0,1, 0,1, 0,1). 00129 vtkBridgeDataSet(); 00130 virtual ~vtkBridgeDataSet(); 00131 00132 //BTX 00133 friend class vtkBridgeCell; 00134 friend class vtkBridgeCellIterator; 00135 friend class vtkBridgeCellIteratorOnDataSet; 00136 friend class vtkBridgeCellIteratorOne; 00137 friend class vtkBridgePointIterator; 00138 friend class vtkBridgePointIteratorOnCell; 00139 friend class vtkBridgePointIteratorOnDataSet; 00140 friend class vtkBridgePointIteratorOne; 00141 //ETX 00142 00145 void ComputeNumberOfCellsAndTypes(); 00146 00147 vtkDataSet *Implementation; 00148 vtkIdType NumberOf0DCells; 00149 vtkIdType NumberOf1DCells; 00150 vtkIdType NumberOf2DCells; 00151 vtkIdType NumberOf3DCells; 00152 vtkCellTypes *Types; 00153 vtkTimeStamp ComputeNumberOfCellsTime; // for number of cells and cell types 00154 00155 private: 00156 vtkBridgeDataSet(const vtkBridgeDataSet&); // Not implemented. 00157 void operator=(const vtkBridgeDataSet&); // Not implemented. 00158 }; 00159 00160 #endif