VTK
vtkUniformGrid.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkUniformGrid.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 =========================================================================*/
29 #ifndef vtkUniformGrid_h
30 #define vtkUniformGrid_h
31 
32 #include "vtkCommonDataModelModule.h" // For export macro
33 #include "vtkImageData.h"
34 
35 class vtkEmptyCell;
36 class vtkStructuredVisibilityConstraint;
38 class vtkAMRBox;
39 
40 class VTKCOMMONDATAMODEL_EXPORT vtkUniformGrid : public vtkImageData
41 {
42 public:
44 
47  static vtkUniformGrid *New();
49  void PrintSelf(ostream& os, vtkIndent indent) override;
51 
56  void CopyStructure(vtkDataSet *ds) override;
57 
61  int GetDataObjectType() override {return VTK_UNIFORM_GRID;};
62 
64 
67  vtkCell *GetCell(int i, int j, int k) override;
68  vtkCell *GetCell(vtkIdType cellId) override;
69  void GetCell(vtkIdType cellId, vtkGenericCell *cell) override;
71  double x[3], vtkCell *cell, vtkIdType cellId, double tol2,
72  int& subId, double pcoords[3], double *weights) override;
74  double x[3], vtkCell *cell, vtkGenericCell *gencell,
75  vtkIdType cellId, double tol2, int& subId,
76  double pcoords[3], double *weights) override;
78  double x[3], vtkCell *cell, vtkIdType cellId,
79  double tol2, int& subId, double pcoords[3],
80  double *weights) override;
81  int GetCellType(vtkIdType cellId) override;
82  void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds) override
84  this->GetDimensions());}
85  void GetPointCells(vtkIdType ptId, vtkIdList *cellIds) override
86  {vtkStructuredData::GetPointCells(ptId,cellIds,this->GetDimensions());}
87  void Initialize() override;
88  int GetMaxCellSize() override {return 8;}; //voxel is the largest
90 
94  int GetGridDescription();
95 
102  int Initialize(const vtkAMRBox *def, double* origin, double* spacing);
110  int Initialize(const vtkAMRBox *def, double* origin, double* spacing, int nGhosts);
111 
119  int Initialize(const vtkAMRBox *def, double* origin, double* spacing, const int nGhosts[3]);
128  int Initialize(const vtkAMRBox *def, double* origin, double* spacing, int nGhostsI,int nGhostsJ,int nGhostsK);
129 
131 
137  virtual void BlankPoint(vtkIdType ptId);
138  virtual void UnBlankPoint(vtkIdType ptId);
139  virtual void BlankPoint( const int i, const int j, const int k );
140  virtual void UnBlankPoint( const int i, const int j, const int k );
142 
144 
150  virtual void BlankCell(vtkIdType ptId);
151  virtual void UnBlankCell(vtkIdType ptId);
152  virtual void BlankCell( const int i, const int j, const int k );
153  virtual void UnBlankCell( const int i, const int j, const int k );
155 
160  bool HasAnyBlankCells() override;
165  bool HasAnyBlankPoints() override;
166 
172  virtual unsigned char IsPointVisible(vtkIdType ptId);
173 
179  virtual unsigned char IsCellVisible(vtkIdType cellId);
180 
181  virtual vtkImageData* NewImageDataCopy();
182 
184 
188  static vtkUniformGrid* GetData(vtkInformationVector* v, int i=0);
190 
191 protected:
192  vtkUniformGrid();
193  ~vtkUniformGrid() override;
194 
198  void GetCellDims( int cellDims[3] );
199 
203  void ComputeScalarRange() override;
204 
205  vtkEmptyCell* GetEmptyCell();
206 
207 private:
208  vtkUniformGrid(const vtkUniformGrid&) = delete;
209  void operator=(const vtkUniformGrid&) = delete;
210 
211  vtkEmptyCell *EmptyCell;
212 
213  static unsigned char MASKED_CELL_VALUE;
214 };
215 
216 
217 #endif
218 
219 
220 
vtkAMRBox
Encloses a rectangular region of voxel like cells.
Definition: vtkAMRBox.h:39
vtkImageData.h
vtkDataSet::ComputeScalarRange
virtual void ComputeScalarRange()
Compute the range of the scalars and cache it into ScalarRange only if the cache became invalid (Scal...
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkUniformGrid::GetDataObjectType
int GetDataObjectType() override
Return what type of dataset this is.
Definition: vtkUniformGrid.h:61
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkEmptyCell
an empty cell used as a place-holder during processing
Definition: vtkEmptyCell.h:32
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:41
vtkUniformGrid
image data with blanking
Definition: vtkUniformGrid.h:40
vtkImageData::GetCellType
int GetCellType(vtkIdType cellId) override
Get type of cell with cellId such that: 0 <= cellId < NumberOfCells.
vtkImageData::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
VTK_UNIFORM_GRID
#define VTK_UNIFORM_GRID
Definition: vtkType.h:101
vtkImageData::GetCell
vtkCell * GetCell(vtkIdType cellId) override
Get cell with cellId such that: 0 <= cellId < NumberOfCells.
vtkImageData::FindCell
vtkIdType FindCell(double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) override
Locate cell based on global coordinate x and tolerance squared.
vtkImageData::GetDimensions
virtual int * GetDimensions()
Get dimensions of this structured points dataset.
vtkImageData::FindAndGetCell
vtkCell * FindAndGetCell(double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) override
Locate the cell that contains a point and return the cell.
vtkUniformGrid::GetPointCells
void GetPointCells(vtkIdType ptId, vtkIdList *cellIds) override
Topological inquiry to get cells using point.
Definition: vtkUniformGrid.h:85
vtkStructuredData::GetCellPoints
static void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds, int dataDescription, int dim[3])
Get the points defining a cell.
vtkCell
abstract class to specify cell behavior
Definition: vtkCell.h:59
vtkStructuredData::GetPointCells
static void GetPointCells(vtkIdType ptId, vtkIdList *cellIds, int dim[3])
Get the cells using a point.
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:36
vtkDataSet::HasAnyBlankCells
virtual bool HasAnyBlankCells()
Returns 1 if there are any blanking cells 0 otherwise.
Definition: vtkDataSet.h:435
vtkUniformGrid::GetMaxCellSize
int GetMaxCellSize() override
Convenience method returns largest cell size in dataset.
Definition: vtkUniformGrid.h:88
vtkImageData::Initialize
void Initialize() override
Restore data object to initial state.
vtkImageData::vtkUniformGrid
friend class vtkUniformGrid
Definition: vtkImageData.h:483
vtkUniformGrid::GetCellPoints
void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds) override
Topological inquiry to get points defining cell.
Definition: vtkUniformGrid.h:82
vtkDataSet::HasAnyBlankPoints
virtual bool HasAnyBlankPoints()
Returns 1 if there are any blanking points 0 otherwise.
Definition: vtkDataSet.h:444
vtkImageData::CopyStructure
void CopyStructure(vtkDataSet *ds) override
Copy the geometric and topological structure of an input image data object.
vtkX3D::spacing
Definition: vtkX3D.h:481
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkX3D::info
Definition: vtkX3D.h:376
vtkImageData::GetDataDescription
int GetDataDescription()
Definition: vtkImageData.h:477
vtkGenericCell
provides thread-safe access to cells
Definition: vtkGenericCell.h:39
vtkImageData::GetData
static vtkImageData * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
vtkImageData::New
static vtkImageData * New()