00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00059 #ifndef __vtkGenericDataSet_h
00060 #define __vtkGenericDataSet_h
00061
00062 #include "vtkDataObject.h"
00063
00064 class vtkCellTypes;
00065 class vtkGenericCellIterator;
00066 class vtkGenericAttributeCollection;
00067 class vtkGenericCellTessellator;
00068 class vtkGenericPointIterator;
00069 class vtkRenderer;
00070
00071 class VTK_FILTERING_EXPORT vtkGenericDataSet : public vtkDataObject
00072 {
00073 public:
00075
00076 vtkTypeRevisionMacro(vtkGenericDataSet,vtkDataObject);
00077 void PrintSelf(ostream& os, vtkIndent indent);
00079
00082 virtual vtkIdType GetNumberOfPoints() = 0;
00083
00087 virtual vtkIdType GetNumberOfCells(int dim=-1) = 0;
00088
00093 virtual int GetCellDimension() = 0;
00094
00102 virtual void GetCellTypes(vtkCellTypes *types);
00103
00112 virtual vtkGenericCellIterator *NewCellIterator(int dim=-1) = 0;
00113
00115
00121 virtual vtkGenericCellIterator *NewBoundaryIterator(int dim=-1,
00122 int exteriorOnly=0) = 0;
00124
00128 virtual vtkGenericPointIterator *NewPointIterator()=0;
00129
00131
00140 virtual int FindCell(double x[3],
00141 vtkGenericCellIterator* &cell,
00142 double tol2,
00143 int &subId,
00144 double pcoords[3]) = 0;
00146
00148
00150 virtual void FindPoint(double x[3],
00151 vtkGenericPointIterator *p)=0;
00153
00156 virtual unsigned long int GetMTime();
00157
00159 virtual void ComputeBounds()=0;
00160
00164 virtual double *GetBounds();
00165
00168 virtual void GetBounds(double bounds[6]);
00169
00172 virtual double *GetCenter();
00173
00175 virtual void GetCenter(double center[3]);
00176
00179 virtual double GetLength();
00180
00182
00183 vtkGetObjectMacro(Attributes, vtkGenericAttributeCollection);
00185
00187
00189 virtual void SetTessellator(vtkGenericCellTessellator *tessellator);
00190 vtkGetObjectMacro(Tessellator,vtkGenericCellTessellator);
00192
00196 virtual unsigned long GetActualMemorySize();
00197
00199 int GetDataObjectType();
00200
00202 virtual vtkIdType GetEstimatedSize() = 0;
00203
00204
00206
00207 static vtkGenericDataSet* GetData(vtkInformation* info);
00208 static vtkGenericDataSet* GetData(vtkInformationVector* v, int i=0);
00209
00211
00212 protected:
00215 vtkGenericDataSet();
00216
00217 virtual ~vtkGenericDataSet();
00218
00219 vtkGenericAttributeCollection *Attributes;
00220
00221
00222 vtkGenericCellTessellator *Tessellator;
00223
00224 double Bounds[6];
00225 double Center[3];
00226 vtkTimeStamp ComputeTime;
00227
00228 private:
00229 vtkGenericDataSet(const vtkGenericDataSet&);
00230 void operator=(const vtkGenericDataSet&);
00231 };
00232
00233 #endif