VTK  9.2.6
vtkStructuredGrid.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkStructuredGrid.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=========================================================================*/
47
48#ifndef vtkStructuredGrid_h
49#define vtkStructuredGrid_h
50
51#include "vtkCommonDataModelModule.h" // For export macro
52#include "vtkPointSet.h"
53
54#include "vtkStructuredData.h" // Needed for inline methods
55
56class vtkEmptyCell;
57class vtkHexahedron;
58class vtkLine;
59class vtkQuad;
61class vtkVertex;
62
63class VTKCOMMONDATAMODEL_EXPORT vtkStructuredGrid : public vtkPointSet
64{
65public:
68
70 void PrintSelf(ostream& os, vtkIndent indent) override;
71
75 int GetDataObjectType() override { return VTK_STRUCTURED_GRID; }
76
80 void CopyStructure(vtkDataSet* ds) override;
81
83
87 double* GetPoint(vtkIdType ptId) VTK_SIZEHINT(3) override
88 {
89 return this->vtkPointSet::GetPoint(ptId);
90 }
91 void GetPoint(vtkIdType ptId, double p[3]) override { this->vtkPointSet::GetPoint(ptId, p); }
92 vtkCell* GetCell(vtkIdType cellId) override;
93 vtkCell* GetCell(int i, int j, int k) override;
94 void GetCell(vtkIdType cellId, vtkGenericCell* cell) override;
95 void GetCellBounds(vtkIdType cellId, double bounds[6]) override;
96 int GetCellType(vtkIdType cellId) override;
98 vtkIdType GetNumberOfCells() override;
100 void GetCellPoints(vtkIdType cellId, vtkIdList* ptIds) override;
101 void GetPointCells(vtkIdType ptId, vtkIdList* cellIds) override
102 {
103 vtkStructuredData::GetPointCells(ptId, cellIds, this->GetDimensions());
104 }
105 void Initialize() override;
106 int GetMaxCellSize() override { return 8; } // hexahedron is the largest
107 void GetCellNeighbors(vtkIdType cellId, vtkIdList* ptIds, vtkIdList* cellIds) override;
108 void GetCellNeighbors(vtkIdType cellId, vtkIdList* ptIds, vtkIdList* cellIds, int* seedLoc);
110
112
115 void SetDimensions(int i, int j, int k);
116 void SetDimensions(const int dim[3]);
118
120
123 virtual int* GetDimensions() VTK_SIZEHINT(3);
124 virtual void GetDimensions(int dim[3]);
126
130 int GetDataDimension();
131
133
138 void SetExtent(int extent[6]);
139 void SetExtent(int xMin, int xMax, int yMin, int yMax, int zMin, int zMax);
140 vtkGetVector6Macro(Extent, int);
142
151 unsigned long GetActualMemorySize() override;
152
154
157 void ShallowCopy(vtkDataObject* src) override;
158 void DeepCopy(vtkDataObject* src) override;
160
164 int GetExtentType() override { return VTK_3D_EXTENT; }
165
167
176
178
187
193 unsigned char IsPointVisible(vtkIdType ptId);
194
200 unsigned char IsCellVisible(vtkIdType cellId);
201
206 bool HasAnyBlankPoints() override;
211 bool HasAnyBlankCells() override;
212
219 void GetCellDims(int cellDims[3]);
220
226 void Crop(const int* updateExtent) override;
227
229
235
245 void GetPoint(int i, int j, int k, double p[3], bool adjustForExtent = true);
246
247protected:
250
251 // for the GetCell method
257
260
261 int Extent[6];
262
267 void ComputeScalarRange() override;
268
269private:
270 // Internal method used by DeepCopy and ShallowCopy.
271 void InternalStructuredGridCopy(vtkStructuredGrid* src);
272
273private:
274 vtkStructuredGrid(const vtkStructuredGrid&) = delete;
275 void operator=(const vtkStructuredGrid&) = delete;
276};
277
279{
280 vtkIdType nCells = 1;
281 int dims[3];
282 int i;
283
284 this->GetDimensions(dims);
285 for (i = 0; i < 3; i++)
286 {
287 if (dims[i] <= 0)
288 {
289 return 0;
290 }
291 if (dims[i] > 1)
292 {
293 nCells *= (dims[i] - 1);
294 }
295 }
296
297 return nCells;
298}
299
304
305#endif
abstract class to specify cell behavior
Definition vtkCell.h:61
virtual void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds)=0
Topological inquiry to get points defining cell.
an empty cell used as a place-holder during processing
provides thread-safe access to cells
a cell that represents a linear 3D hexahedron
list of point or cell ids
Definition vtkIdList.h:34
a simple class to control print indentation
Definition vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
cell represents a 1D line
Definition vtkLine.h:34
vtkIdType GetNumberOfCells() override
This method always returns 0, as there are no cells in a vtkPointSet.
vtkIdType GetNumberOfPoints() override
See vtkDataSet for additional information.
void GetPoint(vtkIdType ptId, double x[3]) override
See vtkDataSet for additional information.
a cell that represents a 2D quadrilateral
Definition vtkQuad.h:39
static int GetDataDimension(int dataDescription)
Return the topological dimension of the data (e.g., 0, 1, 2, or 3D).
static void GetPointCells(vtkIdType ptId, vtkIdList *cellIds, int dim[3])
Get the cells using a point.
vtkHexahedron * Hexahedron
static vtkStructuredGrid * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
void SetDimensions(int i, int j, int k)
following methods are specific to structured grid
vtkIdType GetCellSize(vtkIdType cellId) override
Standard vtkDataSet API methods.
void GetCellDims(int cellDims[3])
Given the node dimensions of this grid instance, this method computes the node dimensions.
void BlankCell(vtkIdType ptId)
Methods for supporting blanking of cells.
void GetPoint(vtkIdType ptId, double p[3]) override
Standard vtkDataSet API methods.
void BlankPoint(vtkIdType ptId)
Methods for supporting blanking of cells.
vtkCell * GetCell(int i, int j, int k) override
Standard vtkDataSet API methods.
void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds, vtkIdList *cellIds) override
Standard vtkDataSet API methods.
void SetDimensions(const int dim[3])
following methods are specific to structured grid
void GetCellBounds(vtkIdType cellId, double bounds[6]) override
Standard vtkDataSet API methods.
void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds) override
Standard vtkDataSet API methods.
int GetDataObjectType() override
Return what type of dataset this is.
void GetCell(vtkIdType cellId, vtkGenericCell *cell) override
Standard vtkDataSet API methods.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for type information and printing.
void GetPointCells(vtkIdType ptId, vtkIdList *cellIds) override
Standard vtkDataSet API methods.
int GetExtentType() override
The extent type is a 3D extent.
int GetMaxCellSize() override
Standard vtkDataSet API methods.
int GetDataDimension()
Return the dimensionality of the data.
~vtkStructuredGrid() override
void ComputeScalarRange() override
Compute the range of the scalars and cache it into ScalarRange only if the cache became invalid (Scal...
void SetExtent(int extent[6])
Different ways to set the extent of the data array.
vtkIdType GetNumberOfPoints() override
Standard vtkDataSet API methods.
double * GetPoint(vtkIdType ptId) override
Standard vtkDataSet API methods.
void DeepCopy(vtkDataObject *src) override
Shallow and Deep copy.
vtkIdType GetNumberOfCells() override
Standard vtkDataSet API methods.
bool HasAnyBlankCells() override
Returns 1 if there is any visibility constraint on the cells, 0 otherwise.
void UnBlankPoint(vtkIdType ptId)
Methods for supporting blanking of cells.
vtkCell * GetCell(vtkIdType cellId) override
Standard vtkDataSet API methods.
unsigned long GetActualMemorySize() override
Return the actual size of the data in kibibytes (1024 bytes).
void Crop(const int *updateExtent) override
Reallocates and copies to set the Extent to the UpdateExtent.
unsigned char IsCellVisible(vtkIdType cellId)
Return non-zero value if specified point is visible.
int GetCellType(vtkIdType cellId) override
Standard vtkDataSet API methods.
void ShallowCopy(vtkDataObject *src) override
Shallow and Deep copy.
void CopyStructure(vtkDataSet *ds) override
Copy the geometric and topological structure of an input poly data object.
static vtkStructuredGrid * GetData(vtkInformationVector *v, int i=0)
Retrieve an instance of this class from an information object.
virtual int * GetDimensions()
Get dimensions of this structured points dataset.
unsigned char IsPointVisible(vtkIdType ptId)
Return non-zero value if specified point is visible.
void GetPoint(int i, int j, int k, double p[3], bool adjustForExtent=true)
Get a point in the grid.
static vtkStructuredGrid * ExtendedNew()
bool HasAnyBlankPoints() override
Returns 1 if there is any visibility constraint on the points, 0 otherwise.
static vtkStructuredGrid * New()
void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds, vtkIdList *cellIds, int *seedLoc)
Standard vtkDataSet API methods.
void UnBlankCell(vtkIdType ptId)
Methods for supporting blanking of cells.
void Initialize() override
Standard vtkDataSet API methods.
vtkEmptyCell * EmptyCell
dynamic, self-adjusting array of unsigned char
a cell that represents a 3D point
Definition vtkVertex.h:34
#define VTK_3D_EXTENT
int vtkIdType
Definition vtkType.h:332
#define VTK_STRUCTURED_GRID
Definition vtkType.h:79
#define VTK_SIZEHINT(...)