Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Common/vtkStructuredGrid.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00064 #ifndef __vtkStructuredGrid_h
00065 #define __vtkStructuredGrid_h
00066
00067 #include "vtkPointSet.h"
00068
00069 #include "vtkStructuredData.h"
00070 #include "vtkUnsignedCharArray.h"
00071
00072 class vtkEmptyCell;
00073 class vtkHexahedron;
00074 class vtkLine;
00075 class vtkQuad;
00076 class vtkVertex;
00077
00078 class VTK_COMMON_EXPORT vtkStructuredGrid : public vtkPointSet
00079 {
00080 public:
00081 static vtkStructuredGrid *New();
00082
00083 vtkTypeRevisionMacro(vtkStructuredGrid,vtkPointSet);
00084 void PrintSelf(ostream& os, vtkIndent indent);
00085
00087 int GetDataObjectType() {return VTK_STRUCTURED_GRID;}
00088
00091 void CopyStructure(vtkDataSet *ds);
00092
00094
00095 vtkIdType GetNumberOfPoints() {return vtkPointSet::GetNumberOfPoints();}
00096 float *GetPoint(vtkIdType ptId) {return this->vtkPointSet::GetPoint(ptId);}
00097 void GetPoint(vtkIdType ptId, float p[3])
00098 {this->vtkPointSet::GetPoint(ptId,p);}
00099 vtkCell *GetCell(vtkIdType cellId);
00100 void GetCell(vtkIdType cellId, vtkGenericCell *cell);
00101 void GetCellBounds(vtkIdType cellId, float bounds[6]);
00102 int GetCellType(vtkIdType cellId);
00103 vtkIdType GetNumberOfCells();
00104 void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds);
00105 void GetPointCells(vtkIdType ptId, vtkIdList *cellIds)
00106 {
00107 vtkStructuredData::GetPointCells(ptId,cellIds,this->GetDimensions());
00108 }
00109 void Initialize();
00110 int GetMaxCellSize() {return 8;};
00111 void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds,
00112 vtkIdList *cellIds);
00113 virtual void GetScalarRange(float range[2]);
00114 float *GetScalarRange() {return this->vtkPointSet::GetScalarRange();}
00116
00118
00119 void SetDimensions(int i, int j, int k);
00120 void SetDimensions(int dim[3]);
00122
00124
00125 virtual int *GetDimensions ();
00126 virtual void GetDimensions (int dim[3]);
00128
00130 int GetDataDimension();
00131
00133
00135 void SetBlanking(int blanking);
00136 int GetBlanking() {return this->Blanking;}
00137 void BlankingOn();
00138 void BlankingOff();
00139 void BlankPoint(vtkIdType ptId);
00140 void UnBlankPoint(vtkIdType ptId);
00142
00144
00145 vtkUnsignedCharArray *GetPointVisibility()
00146 {return this->PointVisibility;}
00148
00152 void SetPointVisibility(vtkUnsignedCharArray *pointVisibility);
00153
00155
00157 unsigned char IsPointVisible(vtkIdType ptId)
00158 {return (this->Blanking ? this->PointVisibility->GetValue(ptId) : 1);}
00160
00163 unsigned char IsCellVisible(vtkIdType cellId);
00164
00166
00169 void SetUpdateExtent(int piece, int numPieces, int ghostLevel);
00170 void SetUpdateExtent(int piece, int numPieces)
00171 {this->SetUpdateExtent(piece, numPieces, 0);}
00173
00175
00176 void SetUpdateExtent( int x1, int x2, int y1, int y2, int z1, int z2 )
00177 { this->vtkPointSet::SetUpdateExtent( x1, x2, y1, y2, z1, z2 ); };
00178 void SetUpdateExtent( int ext[6] )
00179 { this->vtkPointSet::SetUpdateExtent( ext ); };
00181
00183
00186 void SetExtent(int extent[6]);
00187 void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
00188 vtkGetVector6Macro(Extent,int);
00190
00196 unsigned long GetActualMemorySize();
00197
00199
00200 void ShallowCopy(vtkDataObject *src);
00201 void DeepCopy(vtkDataObject *src);
00203
00206 virtual void UpdateData();
00207
00208 protected:
00209 vtkStructuredGrid();
00210 ~vtkStructuredGrid();
00211
00212
00213 vtkVertex *Vertex;
00214 vtkLine *Line;
00215 vtkQuad *Quad;
00216 vtkHexahedron *Hexahedron;
00217 vtkEmptyCell *EmptyCell;
00218
00219
00220 int GetExtentType() { return VTK_3D_EXTENT; }
00221
00225 virtual void Crop();
00226
00227 int Dimensions[3];
00228 int DataDescription;
00229 int Blanking;
00230 vtkUnsignedCharArray *PointVisibility;
00231 void AllocatePointVisibility();
00232
00233 private:
00235
00236 void GetCellNeighbors(vtkIdType cellId, vtkIdList& ptIds, vtkIdList& cellIds)
00237 {this->GetCellNeighbors(cellId, &ptIds, &cellIds);}
00239
00240
00241 void InternalStructuredGridCopy(vtkStructuredGrid *src);
00242
00243 private:
00244 vtkStructuredGrid(const vtkStructuredGrid&);
00245 void operator=(const vtkStructuredGrid&);
00246 };
00247
00248
00249 inline vtkIdType vtkStructuredGrid::GetNumberOfCells()
00250 {
00251 int nCells=1;
00252 int dims[3];
00253 int i;
00254
00255 this->GetDimensions(dims);
00256 for (i=0; i<3; i++)
00257 {
00258 if (dims[i] <= 0)
00259 {
00260 return 0;
00261 }
00262 if (dims[i] > 1)
00263 {
00264 nCells *= (dims[i]-1);
00265 }
00266 }
00267
00268 return nCells;
00269 }
00270
00271 inline int vtkStructuredGrid::GetDataDimension()
00272 {
00273 return vtkStructuredData::GetDataDimension(this->DataDescription);
00274 }
00275
00276 #endif
00277
00278
00279
00280
00281
00282