VTK  9.4.20241221
vtkStructuredGrid.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
145#ifndef vtkStructuredGrid_h
146#define vtkStructuredGrid_h
147
148#include "vtkCommonDataModelModule.h" // For export macro
149#include "vtkPointSet.h"
150
151#include "vtkStructuredData.h" // Needed for inline methods
152
153VTK_ABI_NAMESPACE_BEGIN
154class vtkEmptyCell;
155class vtkHexahedron;
156class vtkLine;
157class vtkQuad;
159class vtkVertex;
160
161class VTKCOMMONDATAMODEL_EXPORT vtkStructuredGrid : public vtkPointSet
162{
163public:
166
168 void PrintSelf(ostream& os, vtkIndent indent) override;
169
173 int GetDataObjectType() override { return VTK_STRUCTURED_GRID; }
174
178 void CopyStructure(vtkDataSet* ds) override;
179
183 void Initialize() override;
184
186
189 vtkIdType GetNumberOfCells() override;
191 double* GetPoint(vtkIdType ptId) VTK_SIZEHINT(3) override
192 {
193 return this->vtkPointSet::GetPoint(ptId);
194 }
195 void GetPoint(vtkIdType ptId, double p[3]) override { this->vtkPointSet::GetPoint(ptId, p); }
196 vtkCell* GetCell(vtkIdType cellId) override;
197 vtkCell* GetCell(int i, int j, int k) override;
198 void GetCell(vtkIdType cellId, vtkGenericCell* cell) override;
199 void GetCellBounds(vtkIdType cellId, double bounds[6]) override;
200 int GetCellType(vtkIdType cellId) override;
202 void GetCellPoints(vtkIdType cellId, vtkIdType& npts, vtkIdType const*& pts, vtkIdList* ptIds)
203 VTK_SIZEHINT(pts, npts) override;
204 void GetCellPoints(vtkIdType cellId, vtkIdList* ptIds) override;
205 void GetPointCells(vtkIdType ptId, vtkIdList* cellIds) override
206 {
207 int dims[3];
208 this->GetDimensions(dims);
209 vtkStructuredData::GetPointCells(ptId, cellIds, dims);
210 }
211 int GetMaxCellSize() override { return 8; } // hexahedron is the largest
212 int GetMaxSpatialDimension() override;
213 int GetMinSpatialDimension() override;
214 void GetCellNeighbors(vtkIdType cellId, vtkIdList* ptIds, vtkIdList* cellIds) override;
215 void GetCellNeighbors(vtkIdType cellId, vtkIdList* ptIds, vtkIdList* cellIds, int* seedLoc);
217
224
232
234
243
245
254
260 unsigned char IsPointVisible(vtkIdType ptId);
261
267 unsigned char IsCellVisible(vtkIdType cellId);
268
273 bool HasAnyBlankPoints() override;
278 bool HasAnyBlankCells() override;
279
283 vtkGetMacro(DataDescription, int);
284
291 void GetCellDims(int cellDims[3]);
292
294
297 void SetDimensions(int i, int j, int k);
298
302 void SetDimensions(const int dims[3]);
304
308 virtual void GetDimensions(int dims[3]);
309
313 int GetDataDimension();
314
316
321 void SetExtent(VTK_FUTURE_CONST int extent[6]);
322 void SetExtent(int xMin, int xMax, int yMin, int yMax, int zMin, int zMax);
323 vtkGetVector6Macro(Extent, int);
325
334 unsigned long GetActualMemorySize() override;
335
337
340 void ShallowCopy(vtkDataObject* src) override;
341 void DeepCopy(vtkDataObject* src) override;
343
347 int GetExtentType() override { return VTK_3D_EXTENT; }
348
354 void Crop(const int* updateExtent) override;
355
357
363
373 void GetPoint(int i, int j, int k, double p[3], bool adjustForExtent = true);
374
375protected:
378
379 int Dimensions[3];
380
382
383 int Extent[6];
384
387
392 void ComputeScalarRange() override;
393
397
398private:
399 // Internal method used by DeepCopy and ShallowCopy.
400 void InternalStructuredGridCopy(vtkStructuredGrid* src);
401
402 vtkStructuredGrid(const vtkStructuredGrid&) = delete;
403 void operator=(const vtkStructuredGrid&) = delete;
404};
405
406//------------------------------------------------------------------------------
408{
410}
411
412//------------------------------------------------------------------------------
414{
416}
417
418//------------------------------------------------------------------------------
420{
422}
423
424//------------------------------------------------------------------------------
426{
428}
429
430VTK_ABI_NAMESPACE_END
431#endif
abstract class to specify cell behavior
Definition vtkCell.h:130
general representation of visualization data
abstract class to specify dataset behavior
Definition vtkDataSet.h:165
virtual int GetMaxSpatialDimension()
Get the maximum/minimum spatial dimensionality of the data which is the maximum/minimum dimension of ...
virtual int GetMinSpatialDimension()
Get the maximum/minimum spatial dimensionality of the data which is the maximum/minimum dimension of ...
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:133
A read only array class that wraps an implicit function from integers to any value type supported by ...
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
cell represents a 1D line
Definition vtkLine.h:132
concrete class for storing a set of points
Definition vtkPointSet.h:98
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:87
Hold a reference to a vtkObjectBase instance.
implicit object to represent cell connectivity
static vtkIdType GetNumberOfCells(const int ext[6], int dataDescription=VTK_EMPTY)
Given the grid extent, this method returns the total number of cells within the extent.
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, VTK_FUTURE_CONST int dim[3])
Get the cells using a point.
topologically regular array of data
vtkSmartPointer< vtkStructuredCellArray > StructuredCells
virtual void GetDimensions(int dims[3])
Get dimensions of this structured grid based on its extent.
static vtkStructuredGrid * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
void SetDimensions(int i, int j, int k)
Sets the extent to be 0 to i-1, 0 to j-1, and 0 to k-1.
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.
vtkStructuredCellArray * GetCells()
Return the structured grid connectivity array.
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 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.
void BuildImplicitStructures()
~vtkStructuredGrid() override
void ComputeScalarRange() override
Compute the range of the scalars and cache it into ScalarRange only if the cache became invalid (Scal...
int GetMaxSpatialDimension() override
Standard vtkDataSet API methods.
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.
void GetCellPoints(vtkIdType cellId, vtkIdType &npts, vtkIdType const *&pts, vtkIdList *ptIds) override
Standard vtkDataSet API methods.
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.
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 SetExtent(int xMin, int xMax, int yMin, int yMax, int zMin, int zMax)
Different ways to set the extent of the data array.
vtkSmartPointer< vtkConstantArray< int > > StructuredCellTypes
void SetExtent(VTK_FUTURE_CONST int extent[6])
Different ways to set the extent of the data array.
void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds, vtkIdList *cellIds, int *seedLoc)
Standard vtkDataSet API methods.
void UnBlankCell(vtkIdType ptId)
Methods for supporting blanking of cells.
int GetMinSpatialDimension() override
Standard vtkDataSet API methods.
void Initialize() override
Restore object to initial state.
vtkConstantArray< int > * GetCellTypesArray()
Get the array of all cell types in the structured grid.
void SetDimensions(const int dims[3])
Sets the extent to be 0 to dim[i]-1 in all 3 dimensions.
dynamic, self-adjusting array of unsigned char
a cell that represents a 3D point
Definition vtkVertex.h:92
#define VTK_3D_EXTENT
int vtkIdType
Definition vtkType.h:315
#define VTK_STRUCTURED_GRID
Definition vtkType.h:67
#define VTK_SIZEHINT(...)