00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00022 #ifndef __vtkUniformGrid_h
00023 #define __vtkUniformGrid_h
00024 
00025 #include "vtkImageData.h"
00026 
00027 class vtkEmptyCell;
00028 class vtkStructuredVisibilityConstraint;
00029 class vtkUnsignedCharArray;
00030 class vtkAMRBox;
00031 
00032 class VTK_FILTERING_EXPORT vtkUniformGrid : public vtkImageData
00033 {
00034 public:
00036 
00037   static vtkUniformGrid *New();
00038   vtkTypeMacro(vtkUniformGrid,vtkImageData);
00039   void PrintSelf(ostream& os, vtkIndent indent);
00041 
00044   virtual void CopyStructure(vtkDataSet *ds);
00045 
00047   virtual int GetDataObjectType() {return VTK_UNIFORM_GRID;};
00048 
00050 
00051   virtual vtkCell *GetCell(vtkIdType cellId);
00052   virtual void GetCell(vtkIdType cellId, vtkGenericCell *cell);
00053   virtual vtkIdType FindCell(
00054     double x[3], vtkCell *cell, vtkIdType cellId, double tol2,
00055     int& subId, double pcoords[3], double *weights);
00056   virtual vtkIdType FindCell(
00057     double x[3], vtkCell *cell, vtkGenericCell *gencell,
00058     vtkIdType cellId, double tol2, int& subId,
00059     double pcoords[3], double *weights);
00060   virtual vtkCell *FindAndGetCell(
00061     double x[3], vtkCell *cell, vtkIdType cellId,
00062     double tol2, int& subId, double pcoords[3],
00063     double *weights);
00064   virtual int GetCellType(vtkIdType cellId);
00065   virtual void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds)
00066     {vtkStructuredData::GetCellPoints(cellId,ptIds,this->GetDataDescription(),
00067                                       this->GetDimensions());}
00068   virtual void GetPointCells(vtkIdType ptId, vtkIdList *cellIds)
00069     {vtkStructuredData::GetPointCells(ptId,cellIds,this->GetDimensions());}
00070   virtual void Initialize();
00071   virtual int GetMaxCellSize() {return 8;}; 
00073 
00074   
00076 
00080   int Initialize(const vtkAMRBox *def);
00081   
00082   
00083   
00084   
00085   
00086   
00087   int Initialize(const vtkAMRBox *def, int nGhosts);
00088   
00089   
00090   
00091   
00092   
00093   
00094   int Initialize(const vtkAMRBox *def, const int nGhosts[3]);
00095   
00096   
00097   
00098   
00099   
00100   
00101   
00102   int Initialize(const vtkAMRBox *def,int nGhostsI,int nGhostsJ,int nGhostsK);
00103   
00105 
00107 
00108   virtual void ShallowCopy(vtkDataObject *src);
00109   virtual void DeepCopy(vtkDataObject *src);
00111 
00113 
00117   virtual void BlankPoint(vtkIdType ptId);
00118   virtual void UnBlankPoint(vtkIdType ptId);
00120 
00122 
00125   virtual void BlankCell(vtkIdType ptId);
00126   virtual void UnBlankCell(vtkIdType ptId);
00128 
00130   virtual vtkUnsignedCharArray *GetPointVisibilityArray();
00131 
00135   virtual void SetPointVisibilityArray(vtkUnsignedCharArray *pointVisibility);
00136 
00138   virtual vtkUnsignedCharArray *GetCellVisibilityArray();
00139 
00143   virtual void SetCellVisibilityArray(vtkUnsignedCharArray *pointVisibility);
00144 
00147   virtual unsigned char IsPointVisible(vtkIdType ptId);
00148 
00151   virtual unsigned char IsCellVisible(vtkIdType cellId);
00152 
00155   virtual unsigned char GetPointBlanking();
00156 
00159   virtual unsigned char GetCellBlanking();
00160 
00161   virtual vtkImageData* NewImageDataCopy();
00162 
00163   
00165 
00166   static vtkUniformGrid* GetData(vtkInformation* info);
00167   static vtkUniformGrid* GetData(vtkInformationVector* v, int i=0);
00168   
00170 
00171 protected:
00172   vtkUniformGrid();
00173   ~vtkUniformGrid();
00174   
00176   virtual void ComputeScalarRange();
00177   
00178   vtkStructuredVisibilityConstraint* PointVisibility;
00179 
00180   void SetPointVisibility(vtkStructuredVisibilityConstraint *pointVisibility);
00181   vtkGetObjectMacro(PointVisibility, vtkStructuredVisibilityConstraint);
00182 
00183   vtkStructuredVisibilityConstraint* CellVisibility;
00184 
00185   void SetCellVisibility(vtkStructuredVisibilityConstraint *cellVisibility);
00186   vtkGetObjectMacro(CellVisibility, vtkStructuredVisibilityConstraint);
00187 
00188   vtkEmptyCell* GetEmptyCell();
00189 
00190 private:
00191   vtkUniformGrid(const vtkUniformGrid&);  
00192   void operator=(const vtkUniformGrid&);  
00193 
00194   vtkEmptyCell *EmptyCell;
00195 };
00196 
00197 
00198 #endif
00199 
00200 
00201