Common/vtkDataSet.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00046 #ifndef __vtkDataSet_h
00047 #define __vtkDataSet_h
00048
00049 #include "vtkDataObject.h"
00050
00051 class vtkCell;
00052 class vtkCellData;
00053 class vtkCellTypes;
00054 class vtkGenericCell;
00055 class vtkIdList;
00056 class vtkPointData;
00057
00058 class VTK_COMMON_EXPORT vtkDataSet : public vtkDataObject
00059 {
00060 public:
00061 vtkTypeRevisionMacro(vtkDataSet,vtkDataObject);
00062 void PrintSelf(ostream& os, vtkIndent indent);
00063
00067 virtual void CopyStructure(vtkDataSet *ds) = 0;
00068
00071 virtual vtkIdType GetNumberOfPoints() = 0;
00072
00075 virtual vtkIdType GetNumberOfCells() = 0;
00076
00079 virtual float *GetPoint(vtkIdType ptId) = 0;
00080
00084 virtual void GetPoint(vtkIdType id, float x[3]);
00085
00088 virtual vtkCell *GetCell(vtkIdType cellId) = 0;
00089
00094 virtual void GetCell(vtkIdType cellId, vtkGenericCell *cell) = 0;
00095
00104 virtual void GetCellBounds(vtkIdType cellId, float bounds[6]);
00105
00109 virtual int GetCellType(vtkIdType cellId) = 0;
00110
00118 virtual void GetCellTypes(vtkCellTypes *types);
00119
00123 virtual void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds) = 0;
00124
00128 virtual void GetPointCells(vtkIdType ptId, vtkIdList *cellIds) = 0;
00129
00131
00135 virtual void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds,
00136 vtkIdList *cellIds);
00138
00140
00144 vtkIdType FindPoint(float x, float y, float z)
00145 {
00146 float xyz[3];
00147 xyz[0] = x; xyz[1] = y; xyz[2] = z;
00148 return this->FindPoint (xyz);
00149 }
00150 virtual vtkIdType FindPoint(float x[3]) = 0;
00152
00154
00162 virtual vtkIdType FindCell(float x[3], vtkCell *cell, vtkIdType cellId,
00163 float tol2, int& subId, float pcoords[3],
00164 float *weights) = 0;
00166
00168
00173 virtual vtkIdType FindCell(float x[3], vtkCell *cell,
00174 vtkGenericCell *gencell, vtkIdType cellId,
00175 float tol2, int& subId, float pcoords[3],
00176 float *weights) = 0;
00178
00180
00186 virtual vtkCell *FindAndGetCell(float x[3], vtkCell *cell, vtkIdType cellId,
00187 float tol2, int& subId, float pcoords[3],
00188 float *weights);
00190
00193 unsigned long int GetMTime();
00194
00197 vtkCellData *GetCellData() {return this->CellData;};
00198
00201 vtkPointData *GetPointData() {return this->PointData;};
00202
00205 virtual void Squeeze();
00206
00209 virtual void ComputeBounds();
00210
00213 float *GetBounds();
00214
00218 void GetBounds(float bounds[6]);
00219
00221 float *GetCenter();
00222
00225 void GetCenter(float center[3]);
00226
00230 float GetLength();
00231
00233 void Initialize();
00234
00241 virtual void GetScalarRange(float range[2]);
00242
00245 float *GetScalarRange();
00246
00250 virtual int GetMaxCellSize() = 0;
00251
00257 unsigned long GetActualMemorySize();
00258
00260
00261 int GetDataObjectType()
00262 {return VTK_DATA_SET;}
00264
00266
00267 void ShallowCopy(vtkDataObject *src);
00268 void DeepCopy(vtkDataObject *src);
00270
00271
00272 enum FieldDataType
00273 {
00274 DATA_OBJECT_FIELD=0,
00275 POINT_DATA_FIELD=1,
00276 CELL_DATA_FIELD=2
00277 };
00278
00279
00286 int CheckAttributes();
00287
00288 protected:
00289
00290 vtkDataSet();
00291 ~vtkDataSet();
00292
00293 vtkCellData *CellData;
00294 vtkPointData *PointData;
00295 vtkTimeStamp ComputeTime;
00296 float Bounds[6];
00297 float ScalarRange[2];
00298 float Center[3];
00299
00300 private:
00301 void InternalDataSetCopy(vtkDataSet *src);
00302 private:
00303 vtkDataSet(const vtkDataSet&);
00304 void operator=(const vtkDataSet&);
00305 };
00306
00307 inline void vtkDataSet::GetPoint(vtkIdType id, float x[3])
00308 {
00309 float *pt = this->GetPoint(id);
00310 x[0] = pt[0]; x[1] = pt[1]; x[2] = pt[2];
00311 }
00312
00313 #endif