30 #ifndef __vtkImageData_h
31 #define __vtkImageData_h
33 #include "vtkCommonDataModelModule.h"
34 #include "vtkDataSet.h"
50 void PrintSelf(ostream& os,
vtkIndent indent);
54 virtual void CopyStructure(vtkDataSet *ds);
64 virtual void GetPoint(
vtkIdType id,
double x[3]);
65 virtual vtkCell *GetCell(
vtkIdType cellId);
67 virtual void GetCellBounds(
vtkIdType cellId,
double bounds[6]);
70 return this->vtkDataSet::FindPoint(x, y, z);
74 double x[3], vtkCell *cell,
vtkIdType cellId,
double tol2,
75 int& subId,
double pcoords[3],
double *weights);
78 vtkIdType cellId,
double tol2,
int& subId,
79 double pcoords[3],
double *weights);
80 virtual vtkCell *FindAndGetCell(
double x[3], vtkCell *cell,
vtkIdType cellId,
81 double tol2,
int& subId,
double pcoords[3],
83 virtual int GetCellType(
vtkIdType cellId);
86 this->GetDimensions());}
89 virtual void ComputeBounds();
94 virtual void Initialize();
98 virtual void SetDimensions(
int i,
int j,
int k);
103 virtual void SetDimensions(
const int dims[3]);
109 virtual int *GetDimensions();
110 virtual void GetDimensions(
int dims[3]);
119 virtual int ComputeStructuredCoordinates(
120 const double x[3],
int ijk[3],
double pcoords[3]);
123 static int ComputeStructuredCoordinates(
const double x[3],
int ijk[3],
double pcoords[3],
125 const double* spacing,
126 const double* origin,
127 const double* bounds);
137 virtual void GetVoxelGradient(
147 virtual void GetPointGradient(
152 virtual int GetDataDimension();
170 virtual void SetAxisUpdateExtent(
int axis,
int min,
int max,
171 const int* updateExtent,
172 int* axisUpdateExtent);
173 virtual void GetAxisUpdateExtent(
int axis,
int &min,
int &max,
const int* updateExtent);
185 virtual void SetExtent(
int extent[6]);
186 virtual void SetExtent(
int x1,
int x2,
int y1,
int y2,
int z1,
int z2);
187 vtkGetVector6Macro(Extent,
int);
194 virtual double GetScalarTypeMin();
196 virtual double GetScalarTypeMax();
202 virtual int GetScalarSize();
213 virtual void GetIncrements(
vtkIdType inc[3]);
232 virtual void GetContinuousIncrements(
234 virtual void GetContinuousIncrements(
vtkDataArray *scalars,
240 virtual void *GetScalarPointerForExtent(
int extent[6]);
241 virtual void *GetScalarPointer(
int coordinates[3]);
242 virtual void *GetScalarPointer(
int x,
int y,
int z);
243 virtual void *GetScalarPointer();
248 virtual float GetScalarComponentAsFloat(
int x,
int y,
int z,
int component);
249 virtual void SetScalarComponentFromFloat(
250 int x,
int y,
int z,
int component,
float v);
251 virtual double GetScalarComponentAsDouble(
int x,
int y,
int z,
int component);
252 virtual void SetScalarComponentFromDouble(
253 int x,
int y,
int z,
int component,
double v);
259 virtual void AllocateScalars(
int dataType,
int numComponents);
272 virtual void CopyAndCastFrom(
vtkImageData *inData,
int extent[6]);
274 int y0,
int y1,
int z0,
int z1)
275 {
int e[6]; e[0]=x0; e[1]=x1; e[2]=y0; e[3]=y1; e[4]=z0; e[5]=z1;
276 this->CopyAndCastFrom(inData, e);}
282 virtual void Crop(
const int* updateExtent);
289 virtual unsigned long GetActualMemorySize();
294 vtkSetVector3Macro(Spacing,
double);
295 vtkGetVector3Macro(Spacing,
double);
305 vtkSetVector3Macro(Origin,
double);
306 vtkGetVector3Macro(Origin,
double);
314 {
return vtkImageScalarTypeNameMacro ( this->GetScalarType() ); };
319 static void SetNumberOfScalarComponents(
int n,
vtkInformation* meta_data);
320 static int GetNumberOfScalarComponents(
vtkInformation* meta_data);
321 static bool HasNumberOfScalarComponents(
vtkInformation* meta_data);
322 int GetNumberOfScalarComponents();
327 virtual void CopyInformationFromPipeline(
vtkInformation* information);
332 virtual void PrepareForNewData();
349 void *GetArrayPointerForExtent(
vtkDataArray* array,
int extent[6]);
350 void *GetArrayPointer(
vtkDataArray* array,
int coordinates[3]);
361 void ComputeInternalExtent(
int *intExt,
int *tgtExt,
int *bnds);
390 void ComputeIncrements();
393 void ComputeIncrements(
int numberOfComponents);
397 void ComputeIncrements(
vtkIdType inc[3]);
400 void ComputeIncrements(
int numberOfComponents,
vtkIdType inc[3]);
406 void SetDataDescription(
int desc);
461 const int *extent = this->
Extent;
463 dims[0] = extent[1] - extent[0] + 1;
464 dims[1] = extent[3] - extent[2] + 1;
465 dims[2] = extent[5] - extent[4] + 1;
467 return dims[0]*dims[1]*dims[2];
virtual int GetExtentType()
virtual int GetMaxCellSize()
virtual void GetPointCells(vtkIdType ptId, vtkIdList *cellIds)
record modification and/or execution time
static int GetDataDimension(int dataDescription)
virtual vtkIdType FindPoint(double x, double y, double z)
virtual vtkIdType ComputeCellId(int ijk[3])
provides thread-safe access to cells
virtual vtkIdType ComputePointId(int ijk[3])
cell represents a 1D line
virtual int GetDataObjectType()
virtual void CopyAndCastFrom(vtkImageData *inData, int x0, int x1, int y0, int y1, int z0, int z1)
a simple class to control print indentation
static void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds, int dataDescription, int dim[3])
topologically and geometrically regular array of data
list of point or cell ids
abstract superclass for arrays of numeric data
virtual double * GetPoint(vtkIdType ptId)
virtual void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds)
static void GetPointCells(vtkIdType ptId, vtkIdList *cellIds, int dim[3])
const char * GetScalarTypeAsString()
static vtkIdType ComputeCellIdForExtent(int extent[6], int ijk[3], int dataDescription=VTK_EMPTY)
helper class to get VTK data object types as string and instantiate them
virtual vtkIdType GetNumberOfPoints()
virtual int GetDataDimension()
static vtkIdType ComputePointIdForExtent(int extent[6], int ijk[3], int dataDescription=VTK_EMPTY)
vtkTimeStamp ExtentComputeTime