00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00056 #ifndef __vtkGenericDataSet_h
00057 #define __vtkGenericDataSet_h
00058
00059 #include "vtkDataObject.h"
00060
00061 class vtkCellTypes;
00062 class vtkGenericCellIterator;
00063 class vtkGenericAttributeCollection;
00064 class vtkGenericCellTessellator;
00065 class vtkGenericPointIterator;
00066
00067 class VTK_FILTERING_EXPORT vtkGenericDataSet : public vtkDataObject
00068 {
00069 public:
00071
00072 vtkTypeMacro(vtkGenericDataSet,vtkDataObject);
00073 void PrintSelf(ostream& os, vtkIndent indent);
00075
00078 virtual vtkIdType GetNumberOfPoints() = 0;
00079
00083 virtual vtkIdType GetNumberOfCells(int dim=-1) = 0;
00084
00089 virtual int GetCellDimension() = 0;
00090
00098 virtual void GetCellTypes(vtkCellTypes *types);
00099
00108 virtual vtkGenericCellIterator *NewCellIterator(int dim=-1) = 0;
00109
00111
00117 virtual vtkGenericCellIterator *NewBoundaryIterator(int dim=-1,
00118 int exteriorOnly=0) = 0;
00120
00125 virtual vtkGenericPointIterator *NewPointIterator()=0;
00126
00128
00137 virtual int FindCell(double x[3],
00138 vtkGenericCellIterator* &cell,
00139 double tol2,
00140 int &subId,
00141 double pcoords[3]) = 0;
00143
00145
00147 virtual void FindPoint(double x[3],
00148 vtkGenericPointIterator *p)=0;
00150
00153 virtual unsigned long int GetMTime();
00154
00156 virtual void ComputeBounds()=0;
00157
00161 virtual double *GetBounds();
00162
00165 virtual void GetBounds(double bounds[6]);
00166
00169 virtual double *GetCenter();
00170
00172 virtual void GetCenter(double center[3]);
00173
00176 virtual double GetLength();
00177
00179
00180 vtkGetObjectMacro(Attributes, vtkGenericAttributeCollection);
00182
00184
00192 virtual vtkDataSetAttributes* GetAttributes(int type)
00193 { return this->Superclass::GetAttributes(type); }
00195
00197
00199 virtual void SetTessellator(vtkGenericCellTessellator *tessellator);
00200 vtkGetObjectMacro(Tessellator,vtkGenericCellTessellator);
00202
00206 virtual unsigned long GetActualMemorySize();
00207
00209 int GetDataObjectType();
00210
00212 virtual vtkIdType GetEstimatedSize() = 0;
00213
00214
00216
00217 static vtkGenericDataSet* GetData(vtkInformation* info);
00218 static vtkGenericDataSet* GetData(vtkInformationVector* v, int i=0);
00219
00221
00222 protected:
00225 vtkGenericDataSet();
00226
00227 virtual ~vtkGenericDataSet();
00228
00229 vtkGenericAttributeCollection *Attributes;
00230
00231
00232 vtkGenericCellTessellator *Tessellator;
00233
00234 double Bounds[6];
00235 double Center[3];
00236 vtkTimeStamp ComputeTime;
00237
00238 private:
00239 vtkGenericDataSet(const vtkGenericDataSet&);
00240 void operator=(const vtkGenericDataSet&);
00241 };
00242
00243 #endif