VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkUniformGrid.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00025 #ifndef __vtkUniformGrid_h 00026 #define __vtkUniformGrid_h 00027 00028 #include "vtkImageData.h" 00029 00030 class vtkEmptyCell; 00031 class vtkStructuredVisibilityConstraint; 00032 class vtkUnsignedCharArray; 00033 class vtkAMRBox; 00034 00035 class VTK_FILTERING_EXPORT vtkUniformGrid : public vtkImageData 00036 { 00037 public: 00039 00040 static vtkUniformGrid *New(); 00041 vtkTypeMacro(vtkUniformGrid,vtkImageData); 00042 void PrintSelf(ostream& os, vtkIndent indent); 00044 00047 virtual void CopyStructure(vtkDataSet *ds); 00048 00050 virtual int GetDataObjectType() {return VTK_UNIFORM_GRID;}; 00051 00053 00054 virtual vtkCell *GetCell(vtkIdType cellId); 00055 virtual void GetCell(vtkIdType cellId, vtkGenericCell *cell); 00056 virtual vtkIdType FindCell( 00057 double x[3], vtkCell *cell, vtkIdType cellId, double tol2, 00058 int& subId, double pcoords[3], double *weights); 00059 virtual vtkIdType FindCell( 00060 double x[3], vtkCell *cell, vtkGenericCell *gencell, 00061 vtkIdType cellId, double tol2, int& subId, 00062 double pcoords[3], double *weights); 00063 virtual vtkCell *FindAndGetCell( 00064 double x[3], vtkCell *cell, vtkIdType cellId, 00065 double tol2, int& subId, double pcoords[3], 00066 double *weights); 00067 virtual int GetCellType(vtkIdType cellId); 00068 virtual void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds) 00069 {vtkStructuredData::GetCellPoints(cellId,ptIds,this->GetDataDescription(), 00070 this->GetDimensions());} 00071 virtual void GetPointCells(vtkIdType ptId, vtkIdList *cellIds) 00072 {vtkStructuredData::GetPointCells(ptId,cellIds,this->GetDimensions());} 00073 virtual void Initialize(); 00074 virtual int GetMaxCellSize() {return 8;}; //voxel is the largest 00076 00077 //BTX 00082 int Initialize(const vtkAMRBox *def); 00087 int Initialize(const vtkAMRBox *def, int nGhosts); 00093 int Initialize(const vtkAMRBox *def, const int nGhosts[3]); 00095 00100 int Initialize(const vtkAMRBox *def,int nGhostsI,int nGhostsJ,int nGhostsK); 00101 //ETX 00103 00105 00106 virtual void ShallowCopy(vtkDataObject *src); 00107 virtual void DeepCopy(vtkDataObject *src); 00109 00111 00115 virtual void BlankPoint(vtkIdType ptId); 00116 virtual void UnBlankPoint(vtkIdType ptId); 00118 00120 00123 virtual void BlankCell(vtkIdType ptId); 00124 virtual void UnBlankCell(vtkIdType ptId); 00126 00128 virtual vtkUnsignedCharArray *GetPointVisibilityArray(); 00129 00133 virtual void SetPointVisibilityArray(vtkUnsignedCharArray *pointVisibility); 00134 00136 virtual vtkUnsignedCharArray *GetCellVisibilityArray(); 00137 00141 virtual void SetCellVisibilityArray(vtkUnsignedCharArray *pointVisibility); 00142 00145 virtual unsigned char IsPointVisible(vtkIdType ptId); 00146 00149 virtual unsigned char IsCellVisible(vtkIdType cellId); 00150 00153 virtual unsigned char GetPointBlanking(); 00154 00157 virtual unsigned char GetCellBlanking(); 00158 00159 virtual vtkImageData* NewImageDataCopy(); 00160 00161 //BTX 00163 00164 static vtkUniformGrid* GetData(vtkInformation* info); 00165 static vtkUniformGrid* GetData(vtkInformationVector* v, int i=0); 00166 //ETX 00168 00169 protected: 00170 vtkUniformGrid(); 00171 ~vtkUniformGrid(); 00172 00174 virtual void ComputeScalarRange(); 00175 00176 vtkStructuredVisibilityConstraint* PointVisibility; 00177 00178 void SetPointVisibility(vtkStructuredVisibilityConstraint *pointVisibility); 00179 vtkGetObjectMacro(PointVisibility, vtkStructuredVisibilityConstraint); 00180 00181 vtkStructuredVisibilityConstraint* CellVisibility; 00182 00183 void SetCellVisibility(vtkStructuredVisibilityConstraint *cellVisibility); 00184 vtkGetObjectMacro(CellVisibility, vtkStructuredVisibilityConstraint); 00185 00186 vtkEmptyCell* GetEmptyCell(); 00187 00188 private: 00189 vtkUniformGrid(const vtkUniformGrid&); // Not implemented. 00190 void operator=(const vtkUniformGrid&); // Not implemented. 00191 00192 vtkEmptyCell *EmptyCell; 00193 }; 00194 00195 00196 #endif 00197 00198 00199