VTK  9.1.0
vtkImageData.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkImageData.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
40#ifndef vtkImageData_h
41#define vtkImageData_h
42
43#include "vtkCommonDataModelModule.h" // For export macro
44#include "vtkDataSet.h"
45
46#include "vtkStructuredData.h" // Needed for inline methods
47
48class vtkDataArray;
49class vtkLine;
50class vtkMatrix3x3;
51class vtkMatrix4x4;
52class vtkPixel;
53class vtkVertex;
54class vtkVoxel;
55
56class VTKCOMMONDATAMODEL_EXPORT vtkImageData : public vtkDataSet
57{
58public:
59 static vtkImageData* New();
61
62 vtkTypeMacro(vtkImageData, vtkDataSet);
63 void PrintSelf(ostream& os, vtkIndent indent) override;
64
69 void CopyStructure(vtkDataSet* ds) override;
70
74 int GetDataObjectType() override { return VTK_IMAGE_DATA; }
75
77
86 double* GetPoint(vtkIdType ptId) VTK_SIZEHINT(3) override;
87 void GetPoint(vtkIdType id, double x[3]) override;
88 vtkCell* GetCell(vtkIdType cellId) override;
89 vtkCell* GetCell(int i, int j, int k) override;
90 void GetCell(vtkIdType cellId, vtkGenericCell* cell) override;
91 void GetCellBounds(vtkIdType cellId, double bounds[6]) override;
92 virtual vtkIdType FindPoint(double x, double y, double z)
93 {
94 return this->vtkDataSet::FindPoint(x, y, z);
95 }
96 vtkIdType FindPoint(double x[3]) override;
97 vtkIdType FindCell(double x[3], vtkCell* cell, vtkIdType cellId, double tol2, int& subId,
98 double pcoords[3], double* weights) override;
99 vtkIdType FindCell(double x[3], vtkCell* cell, vtkGenericCell* gencell, vtkIdType cellId,
100 double tol2, int& subId, double pcoords[3], double* weights) override;
101 vtkCell* FindAndGetCell(double x[3], vtkCell* cell, vtkIdType cellId, double tol2, int& subId,
102 double pcoords[3], double* weights) override;
103 int GetCellType(vtkIdType cellId) override;
104 void GetCellPoints(vtkIdType cellId, vtkIdList* ptIds) override
105 {
106 int dimensions[3];
107 this->GetDimensions(dimensions);
108 vtkStructuredData::GetCellPoints(cellId, ptIds, this->DataDescription, dimensions);
109 }
110 void GetPointCells(vtkIdType ptId, vtkIdList* cellIds) override
111 {
112 int dimensions[3];
113 this->GetDimensions(dimensions);
114 vtkStructuredData::GetPointCells(ptId, cellIds, dimensions);
115 }
116 void ComputeBounds() override;
117 int GetMaxCellSize() override { return 8; } // voxel is the largest
118 void GetCellNeighbors(vtkIdType cellId, vtkIdList* ptIds, vtkIdList* cellIds) override;
120
128 void GetCellNeighbors(vtkIdType cellId, vtkIdList* ptIds, vtkIdList* cellIds, int* seedLoc);
129
133 void Initialize() override;
134
140 unsigned char IsPointVisible(vtkIdType ptId);
141
147 unsigned char IsCellVisible(vtkIdType cellId);
148
153 bool HasAnyBlankPoints() override;
158 bool HasAnyBlankCells() override;
159
166 void GetCellDims(int cellDims[3]);
167
171 virtual void SetDimensions(int i, int j, int k);
172
176 virtual void SetDimensions(const int dims[3]);
177
184 virtual int* GetDimensions() VTK_SIZEHINT(3);
185
192 virtual void GetDimensions(int dims[3]);
193#if VTK_ID_TYPE_IMPL != VTK_INT
194 virtual void GetDimensions(vtkIdType dims[3]);
195#endif
196
203 virtual int ComputeStructuredCoordinates(const double x[3], int ijk[3], double pcoords[3]);
204
214 virtual void GetVoxelGradient(int i, int j, int k, vtkDataArray* s, vtkDataArray* g);
215
222 virtual void GetPointGradient(int i, int j, int k, vtkDataArray* s, double g[3]);
223
227 virtual int GetDataDimension();
228
232 virtual vtkIdType ComputePointId(int ijk[3])
233 {
234 return vtkStructuredData::ComputePointIdForExtent(this->Extent, ijk);
235 }
236
240 virtual vtkIdType ComputeCellId(int ijk[3])
241 {
242 return vtkStructuredData::ComputeCellIdForExtent(this->Extent, ijk);
243 }
244
246
250 int axis, int min, int max, const int* updateExtent, int* axisUpdateExtent);
251 virtual void GetAxisUpdateExtent(int axis, int& min, int& max, const int* updateExtent);
253
255
266 virtual void SetExtent(int extent[6]);
267 virtual void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
268 vtkGetVector6Macro(Extent, int);
270
272
276 virtual double GetScalarTypeMin(vtkInformation* meta_data);
277 virtual double GetScalarTypeMin();
278 virtual double GetScalarTypeMax(vtkInformation* meta_data);
279 virtual double GetScalarTypeMax();
281
283
286 virtual int GetScalarSize(vtkInformation* meta_data);
287 virtual int GetScalarSize();
289
291
298 virtual void GetIncrements(vtkIdType& incX, vtkIdType& incY, vtkIdType& incZ);
299 virtual void GetIncrements(vtkIdType inc[3]);
300 virtual vtkIdType* GetIncrements(vtkDataArray* scalars) VTK_SIZEHINT(3);
301 virtual void GetIncrements(
302 vtkDataArray* scalars, vtkIdType& incX, vtkIdType& incY, vtkIdType& incZ);
303 virtual void GetIncrements(vtkDataArray* scalars, vtkIdType inc[3]);
305
307
320 virtual void GetContinuousIncrements(
321 int extent[6], vtkIdType& incX, vtkIdType& incY, vtkIdType& incZ);
322 virtual void GetContinuousIncrements(
323 vtkDataArray* scalars, int extent[6], vtkIdType& incX, vtkIdType& incY, vtkIdType& incZ);
325
327
330 virtual void* GetScalarPointerForExtent(int extent[6]);
331 virtual void* GetScalarPointer(int coordinates[3]);
332 virtual void* GetScalarPointer(int x, int y, int z);
333 virtual void* GetScalarPointer();
335
337
340 virtual vtkIdType GetScalarIndexForExtent(int extent[6]);
341 virtual vtkIdType GetScalarIndex(int coordinates[3]);
342 virtual vtkIdType GetScalarIndex(int x, int y, int z);
344
346
349 virtual float GetScalarComponentAsFloat(int x, int y, int z, int component);
350 virtual void SetScalarComponentFromFloat(int x, int y, int z, int component, float v);
351 virtual double GetScalarComponentAsDouble(int x, int y, int z, int component);
352 virtual void SetScalarComponentFromDouble(int x, int y, int z, int component, double v);
354
360 virtual void AllocateScalars(int dataType, int numComponents);
361
368 virtual void AllocateScalars(vtkInformation* pipeline_info);
369
371
377 virtual void CopyAndCastFrom(vtkImageData* inData, int extent[6]);
378 virtual void CopyAndCastFrom(vtkImageData* inData, int x0, int x1, int y0, int y1, int z0, int z1)
379 {
380 int e[6];
381 e[0] = x0;
382 e[1] = x1;
383 e[2] = y0;
384 e[3] = y1;
385 e[4] = z0;
386 e[5] = z1;
387 this->CopyAndCastFrom(inData, e);
388 }
390
396 void Crop(const int* updateExtent) override;
397
406 unsigned long GetActualMemorySize() override;
407
409
413 vtkGetVector3Macro(Spacing, double);
414 virtual void SetSpacing(double i, double j, double k);
415 virtual void SetSpacing(const double ijk[3]);
417
419
427 vtkGetVector3Macro(Origin, double);
428 virtual void SetOrigin(double i, double j, double k);
429 virtual void SetOrigin(const double ijk[3]);
431
433
437 vtkGetObjectMacro(DirectionMatrix, vtkMatrix3x3);
439 virtual void SetDirectionMatrix(const double elements[9]);
440 virtual void SetDirectionMatrix(double e00, double e01, double e02, double e10, double e11,
441 double e12, double e20, double e21, double e22);
443
445
449 vtkGetObjectMacro(IndexToPhysicalMatrix, vtkMatrix4x4);
451
453
456 virtual void TransformContinuousIndexToPhysicalPoint(double i, double j, double k, double xyz[3]);
457 virtual void TransformContinuousIndexToPhysicalPoint(const double ijk[3], double xyz[3]);
458 virtual void TransformIndexToPhysicalPoint(int i, int j, int k, double xyz[3]);
459 virtual void TransformIndexToPhysicalPoint(const int ijk[3], double xyz[3]);
460 static void TransformContinuousIndexToPhysicalPoint(double i, double j, double k,
461 double const origin[3], double const spacing[3], double const direction[9], double xyz[3]);
463
465
469 vtkGetObjectMacro(PhysicalToIndexMatrix, vtkMatrix4x4);
471
473
476 virtual void TransformPhysicalPointToContinuousIndex(double x, double y, double z, double ijk[3]);
477 virtual void TransformPhysicalPointToContinuousIndex(const double xyz[3], double ijk[3]);
479
481 double const origin[3], double const spacing[3], double const direction[9], double result[16]);
482
484
487 virtual void TransformPhysicalNormalToContinuousIndex(const double xyz[3], double ijk[3]);
489
494 virtual void TransformPhysicalPlaneToContinuousIndex(double const pplane[4], double iplane[4]);
495
496 static void SetScalarType(int, vtkInformation* meta_data);
497 static int GetScalarType(vtkInformation* meta_data);
498 static bool HasScalarType(vtkInformation* meta_data);
500 const char* GetScalarTypeAsString() { return vtkImageScalarTypeNameMacro(this->GetScalarType()); }
501
503
507 static void SetNumberOfScalarComponents(int n, vtkInformation* meta_data);
512
517 void CopyInformationFromPipeline(vtkInformation* information) override;
518
524 void CopyInformationToPipeline(vtkInformation* information) override;
525
531 void PrepareForNewData() override;
532
534
537 void ShallowCopy(vtkDataObject* src) override;
538 void DeepCopy(vtkDataObject* src) override;
540
541 //--------------------------------------------------------------------------
542 // Methods that apply to any array (not just scalars).
543 // I am starting to experiment with generalizing imaging filters
544 // to operate on more than just scalars.
545
547
553 void* GetArrayPointer(vtkDataArray* array, int coordinates[3]);
555
557
564 vtkIdType GetTupleIndex(vtkDataArray* array, int coordinates[3]);
566
571 void GetArrayIncrements(vtkDataArray* array, vtkIdType increments[3]);
572
579 void ComputeInternalExtent(int* intExt, int* tgtExt, int* bnds);
580
584 int GetExtentType() override { return VTK_3D_EXTENT; }
585
587
593
594protected:
596 ~vtkImageData() override;
597
598 // The extent of what is currently in the structured grid.
599 // Dimensions is just an array to return a value.
600 // Its contents are out of data until GetDimensions is called.
601 int Dimensions[3];
602 vtkIdType Increments[3];
603
604 // Variables used to define dataset physical orientation
605 double Origin[3];
606 double Spacing[3];
610
611 int Extent[6];
612
613 // The first method assumes Active Scalars
614 void ComputeIncrements();
615 // This one is given the number of components of the
616 // scalar field explicitly
617 void ComputeIncrements(int numberOfComponents);
618 void ComputeIncrements(vtkDataArray* scalars);
619
620 // The first method assumes Acitive Scalars
622 // This one is given the number of components of the
623 // scalar field explicitly
624 void ComputeIncrements(int numberOfComponents, vtkIdType inc[3]);
626
627 // for the index to physical methods
629
630 // Cell utilities
633 bool GetIJKMinForCellId(vtkIdType cellId, int ijkMin[3]);
634 bool GetIJKMaxForIJKMin(int ijkMin[3], int ijkMax[3]);
635 void AddPointsToCellTemplate(vtkCell* cell, int ijkMin[3], int ijkMax[3]);
636
638
639 void SetDataDescription(int desc);
640 int GetDataDescription() { return this->DataDescription; }
641
642private:
643 void InternalImageDataCopy(vtkImageData* src);
644
645private:
646 friend class vtkUniformGrid;
647
648 // for the GetCell method
649 vtkVertex* Vertex;
650 vtkLine* Line;
651 vtkPixel* Pixel;
652 vtkVoxel* Voxel;
653
654 // for the GetPoint method
655 double Point[3];
656
657 int DataDescription;
658
659 vtkImageData(const vtkImageData&) = delete;
660 void operator=(const vtkImageData&) = delete;
661};
662
663//----------------------------------------------------------------------------
665{
666 this->ComputeIncrements(this->Increments);
667}
668
669//----------------------------------------------------------------------------
670inline void vtkImageData::ComputeIncrements(int numberOfComponents)
671{
672 this->ComputeIncrements(numberOfComponents, this->Increments);
673}
674
675//----------------------------------------------------------------------------
677{
678 this->ComputeIncrements(scalars, this->Increments);
679}
680
681//----------------------------------------------------------------------------
683{
684 this->GetPoint(id, this->Point);
685 return this->Point;
686}
687
688//----------------------------------------------------------------------------
690{
691 const int* extent = this->Extent;
692 vtkIdType dims[3];
693 dims[0] = extent[1] - extent[0] + 1;
694 dims[1] = extent[3] - extent[2] + 1;
695 dims[2] = extent[5] - extent[4] + 1;
696
697 return dims[0] * dims[1] * dims[2];
698}
699
700//----------------------------------------------------------------------------
702{
703 return vtkStructuredData::GetDataDimension(this->DataDescription);
704}
705
706#endif
abstract class to specify cell behavior
Definition: vtkCell.h:67
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:59
general representation of visualization data
Definition: vtkDataObject.h:69
abstract class to specify dataset behavior
Definition: vtkDataSet.h:66
virtual vtkIdType GetNumberOfPoints()=0
Determine the number of points composing the dataset.
virtual double * GetPoint(vtkIdType ptId)=0
Get point coordinates with ptId such that: 0 <= ptId < NumberOfPoints.
vtkIdType FindPoint(double x, double y, double z)
Locate the closest point to the global coordinate x.
Definition: vtkDataSet.h:210
provides thread-safe access to cells
list of point or cell ids
Definition: vtkIdList.h:40
topologically and geometrically regular array of data
Definition: vtkImageData.h:57
void Crop(const int *updateExtent) override
Reallocates and copies to set the Extent to updateExtent.
virtual void TransformPhysicalPointToContinuousIndex(const double xyz[3], double ijk[3])
Convert coordinates from physical space (xyz) to index space (ijk).
bool GetCellTemplateForDataDescription(vtkGenericCell *cell)
virtual int GetDataDimension()
Return the dimensionality of the data.
Definition: vtkImageData.h:701
vtkIdType FindCell(double x[3], vtkCell *cell, vtkGenericCell *gencell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) override
Standard vtkDataSet API methods.
virtual vtkIdType * GetIncrements()
Different ways to get the increments for moving around the data.
void GetArrayIncrements(vtkDataArray *array, vtkIdType increments[3])
Since various arrays have different number of components, the will have different increments.
virtual void TransformContinuousIndexToPhysicalPoint(const double ijk[3], double xyz[3])
Convert coordinates from index space (ijk) to physical space (xyz).
void CopyInformationToPipeline(vtkInformation *information) override
Copy information from this data object to the pipeline information.
bool GetIJKMaxForIJKMin(int ijkMin[3], int ijkMax[3])
vtkCell * GetCellTemplateForDataDescription()
bool HasAnyBlankCells() override
Returns 1 if there is any visibility constraint on the cells, 0 otherwise.
virtual vtkIdType ComputePointId(int ijk[3])
Given a location in structured coordinates (i-j-k), return the point id.
Definition: vtkImageData.h:232
void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds, vtkIdList *cellIds) override
Standard vtkDataSet API methods.
virtual void SetDirectionMatrix(vtkMatrix3x3 *m)
Set/Get the direction transform of the dataset.
vtkMatrix4x4 * IndexToPhysicalMatrix
Definition: vtkImageData.h:608
virtual int * GetDimensions()
Get dimensions of this structured points dataset.
void ComputeInternalExtent(int *intExt, int *tgtExt, int *bnds)
Given how many pixel are required on a side for bounrary conditions (in bnds), the target extent to t...
virtual void SetDimensions(int i, int j, int k)
Same as SetExtent(0, i-1, 0, j-1, 0, k-1)
virtual double GetScalarTypeMin()
These returns the minimum and maximum values the ScalarType can hold without overflowing.
virtual void SetDirectionMatrix(const double elements[9])
Set/Get the direction transform of the dataset.
void ComputeIncrements()
Definition: vtkImageData.h:664
vtkCell * FindAndGetCell(double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) override
Standard vtkDataSet API methods.
static vtkImageData * GetData(vtkInformationVector *v, int i=0)
Retrieve an instance of this class from an information object.
virtual void TransformIndexToPhysicalPoint(const int ijk[3], double xyz[3])
Convert coordinates from index space (ijk) to physical space (xyz).
static int GetScalarType(vtkInformation *meta_data)
void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds, vtkIdList *cellIds, int *seedLoc)
Get cell neighbors around cell located at seedloc, except cell of id cellId.
void AddPointsToCellTemplate(vtkCell *cell, int ijkMin[3], int ijkMax[3])
void ComputeBounds() override
Standard vtkDataSet API methods.
double * GetPoint(vtkIdType ptId) override
Standard vtkDataSet API methods.
Definition: vtkImageData.h:682
void * GetArrayPointerForExtent(vtkDataArray *array, int extent[6])
These are convenience methods for getting a pointer from any filed array.
vtkCell * GetCell(vtkIdType cellId) override
Standard vtkDataSet API methods.
bool GetIJKMinForCellId(vtkIdType cellId, int ijkMin[3])
static vtkImageData * ExtendedNew()
virtual double GetScalarTypeMin(vtkInformation *meta_data)
These returns the minimum and maximum values the ScalarType can hold without overflowing.
void GetCellBounds(vtkIdType cellId, double bounds[6]) override
Standard vtkDataSet API methods.
virtual void TransformPhysicalNormalToContinuousIndex(const double xyz[3], double ijk[3])
Convert normal from physical space (xyz) to index space (ijk).
void SetDataDescription(int desc)
void GetPoint(vtkIdType id, double x[3]) override
Standard vtkDataSet API methods.
void GetCellDims(int cellDims[3])
Given the node dimensions of this grid instance, this method computes the node dimensions.
vtkTimeStamp ExtentComputeTime
Definition: vtkImageData.h:637
int GetDataDescription()
Definition: vtkImageData.h:640
virtual int GetScalarSize(vtkInformation *meta_data)
Get the size of the scalar type in bytes.
virtual void SetExtent(int extent[6])
Set/Get the extent.
static int GetNumberOfScalarComponents(vtkInformation *meta_data)
Set/Get the number of scalar components for points.
virtual void TransformPhysicalPlaneToContinuousIndex(double const pplane[4], double iplane[4])
Convert a plane from physical to a continuous index.
void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds) override
Standard vtkDataSet API methods.
Definition: vtkImageData.h:104
virtual void GetVoxelGradient(int i, int j, int k, vtkDataArray *s, vtkDataArray *g)
Given structured coordinates (i,j,k) for a voxel cell, compute the eight gradient values for the voxe...
virtual double GetScalarTypeMax(vtkInformation *meta_data)
These returns the minimum and maximum values the ScalarType can hold without overflowing.
static vtkImageData * New()
vtkIdType GetTupleIndex(vtkDataArray *array, int coordinates[3])
Given a data array and a coordinate, return the index of the tuple in the array corresponding to that...
void ComputeIncrements(int numberOfComponents, vtkIdType inc[3])
int GetNumberOfScalarComponents()
Set/Get the number of scalar components for points.
vtkIdType GetNumberOfPoints() override
Standard vtkDataSet API methods.
Definition: vtkImageData.h:689
vtkIdType FindCell(double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) override
Standard vtkDataSet API methods.
void ComputeIncrements(vtkDataArray *scalars, vtkIdType inc[3])
virtual void GetAxisUpdateExtent(int axis, int &min, int &max, const int *updateExtent)
Set / Get the extent on just one axis.
void * GetArrayPointer(vtkDataArray *array, int coordinates[3])
These are convenience methods for getting a pointer from any filed array.
int GetExtentType() override
The extent type is a 3D extent.
Definition: vtkImageData.h:584
virtual int ComputeStructuredCoordinates(const double x[3], int ijk[3], double pcoords[3])
Convenience function computes the structured coordinates for a point x[3].
virtual void SetSpacing(double i, double j, double k)
Set the spacing (width,height,length) of the cubical cells that compose the data set.
static void SetNumberOfScalarComponents(int n, vtkInformation *meta_data)
Set/Get the number of scalar components for points.
virtual void SetDirectionMatrix(double e00, double e01, double e02, double e10, double e11, double e12, double e20, double e21, double e22)
Set/Get the direction transform of the dataset.
vtkIdType Increments[3]
Definition: vtkImageData.h:602
int GetCellType(vtkIdType cellId) override
Standard vtkDataSet API methods.
virtual void SetSpacing(const double ijk[3])
Set the spacing (width,height,length) of the cubical cells that compose the data set.
static void SetScalarType(int, vtkInformation *meta_data)
vtkIdType GetNumberOfCells() override
Standard vtkDataSet API methods.
virtual void SetOrigin(const double ijk[3])
Set/Get the origin of the dataset.
void DeepCopy(vtkDataObject *src) override
Shallow and Deep copy.
virtual int GetScalarSize()
Get the size of the scalar type in bytes.
int GetScalarType()
virtual void TransformPhysicalPointToContinuousIndex(double x, double y, double z, double ijk[3])
Convert coordinates from physical space (xyz) to index space (ijk).
int GetDataObjectType() override
Return what type of dataset this is.
Definition: vtkImageData.h:74
const char * GetScalarTypeAsString()
Definition: vtkImageData.h:500
void CopyInformationFromPipeline(vtkInformation *information) override
Override these to handle origin, spacing, scalar type, and scalar number of components.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static void TransformContinuousIndexToPhysicalPoint(double i, double j, double k, double const origin[3], double const spacing[3], double const direction[9], double xyz[3])
Convert coordinates from index space (ijk) to physical space (xyz).
void ComputeIncrements(vtkIdType inc[3])
void ComputeTransforms()
vtkMatrix3x3 * DirectionMatrix
Definition: vtkImageData.h:607
vtkIdType FindPoint(double x[3]) override
Standard vtkDataSet API methods.
unsigned long GetActualMemorySize() override
Return the actual size of the data in kibibytes (1024 bytes).
void GetCell(vtkIdType cellId, vtkGenericCell *cell) override
Standard vtkDataSet API methods.
void Initialize() override
Restore data object to initial state.
static void ComputeIndexToPhysicalMatrix(double const origin[3], double const spacing[3], double const direction[9], double result[16])
virtual void TransformContinuousIndexToPhysicalPoint(double i, double j, double k, double xyz[3])
Convert coordinates from index space (ijk) to physical space (xyz).
virtual void SetOrigin(double i, double j, double k)
Set/Get the origin of the dataset.
virtual double GetScalarTypeMax()
These returns the minimum and maximum values the ScalarType can hold without overflowing.
virtual void TransformIndexToPhysicalPoint(int i, int j, int k, double xyz[3])
Convert coordinates from index space (ijk) to physical space (xyz).
int GetMaxCellSize() override
Standard vtkDataSet API methods.
Definition: vtkImageData.h:117
unsigned char IsPointVisible(vtkIdType ptId)
Return non-zero value if specified point is visible.
void GetPointCells(vtkIdType ptId, vtkIdList *cellIds) override
Standard vtkDataSet API methods.
Definition: vtkImageData.h:110
void ShallowCopy(vtkDataObject *src) override
Shallow and Deep copy.
vtkCell * GetCell(int i, int j, int k) override
Standard vtkDataSet API methods.
virtual void SetAxisUpdateExtent(int axis, int min, int max, const int *updateExtent, int *axisUpdateExtent)
Set / Get the extent on just one axis.
static bool HasNumberOfScalarComponents(vtkInformation *meta_data)
Set/Get the number of scalar components for points.
static bool HasScalarType(vtkInformation *meta_data)
virtual void GetPointGradient(int i, int j, int k, vtkDataArray *s, double g[3])
Given structured coordinates (i,j,k) for a point in a structured point dataset, compute the gradient ...
~vtkImageData() override
unsigned char IsCellVisible(vtkIdType cellId)
Return non-zero value if specified point is visible.
void PrepareForNewData() override
make the output data ready for new data to be inserted.
virtual void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2)
Set/Get the extent.
void CopyStructure(vtkDataSet *ds) override
Copy the geometric and topological structure of an input image data object.
bool HasAnyBlankPoints() override
Returns 1 if there is any visibility constraint on the points, 0 otherwise.
virtual void SetDimensions(const int dims[3])
Same as SetExtent(0, dims[0]-1, 0, dims[1]-1, 0, dims[2]-1)
virtual vtkIdType FindPoint(double x, double y, double z)
Standard vtkDataSet API methods.
Definition: vtkImageData.h:92
vtkMatrix4x4 * PhysicalToIndexMatrix
Definition: vtkImageData.h:609
virtual vtkIdType ComputeCellId(int ijk[3])
Given a location in structured coordinates (i-j-k), return the cell id.
Definition: vtkImageData.h:240
static vtkImageData * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
a simple class to control print indentation
Definition: vtkIndent.h:43
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
cell represents a 1D line
Definition: vtkLine.h:40
represent and manipulate 3x3 transformation matrices
Definition: vtkMatrix3x3.h:43
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:45
a cell that represents an orthogonal quadrilateral
Definition: vtkPixel.h:44
static vtkIdType ComputePointIdForExtent(const int extent[6], const int ijk[3], int dataDescription=VTK_EMPTY)
Given a location in structured coordinates (i-j-k), and the extent of the structured dataset,...
static void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds, int dataDescription, int dim[3])
Get the points defining a cell.
static int GetDataDimension(int dataDescription)
Return the topological dimension of the data (e.g., 0, 1, 2, or 3D).
static vtkIdType ComputeCellIdForExtent(const int extent[6], const int ijk[3], int dataDescription=VTK_EMPTY)
Given a location in structured coordinates (i-j-k), and the extent of the structured dataset,...
static void GetPointCells(vtkIdType ptId, vtkIdList *cellIds, int dim[3])
Get the cells using a point.
record modification and/or execution time
Definition: vtkTimeStamp.h:42
image data with blanking
a cell that represents a 3D point
Definition: vtkVertex.h:40
a cell that represents a 3D orthogonal parallelepiped
Definition: vtkVoxel.h:48
@ component
Definition: vtkX3D.h:181
@ info
Definition: vtkX3D.h:382
@ direction
Definition: vtkX3D.h:266
@ extent
Definition: vtkX3D.h:351
@ spacing
Definition: vtkX3D.h:487
#define VTK_3D_EXTENT
Definition: vtkDataObject.h:65
int vtkIdType
Definition: vtkType.h:332
#define VTK_IMAGE_DATA
Definition: vtkType.h:83
#define VTK_SIZEHINT(...)
#define max(a, b)