VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vtkStructuredData.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkStructuredData.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 =========================================================================*/
31 #ifndef __vtkStructuredData_h
32 #define __vtkStructuredData_h
33 
34 #include "vtkCommonDataModelModule.h" // For export macro
35 #include "vtkObject.h"
36 
37 class vtkIdList;
38 
39 #define VTK_UNCHANGED 0
40 #define VTK_SINGLE_POINT 1
41 #define VTK_X_LINE 2
42 #define VTK_Y_LINE 3
43 #define VTK_Z_LINE 4
44 #define VTK_XY_PLANE 5
45 #define VTK_YZ_PLANE 6
46 #define VTK_XZ_PLANE 7
47 #define VTK_XYZ_GRID 8
48 #define VTK_EMPTY 9
49 
50 class VTKCOMMONDATAMODEL_EXPORT vtkStructuredData : public vtkObject
51 {
52 public:
53  vtkTypeMacro(vtkStructuredData,vtkObject);
54 
56 
61  static int SetDimensions(int inDim[3], int dim[3]);
62  static int SetExtent(int inExt[6], int ext[6]);
64 
66 
68  static int GetDataDescription(int dims[3]);
69  static int GetDataDescriptionFromExtent( int ext[6] );
71 
73 
74  static int GetDataDimension(int dataDescription);
75  static int GetDataDimension( int ext[6] );
77 
85  static int GetNumberOfNodes( int ext[6], int dataDescription=VTK_EMPTY );
86 
94  static int GetNumberOfCells( int ext[6], int dataDescription=VTK_EMPTY );
95 
97 
105  static void GetCellExtentFromNodeExtent(
106  int nodeExtent[6], int cellExtent[6], int dataDescription=VTK_EMPTY );
108 
110 
111  static void GetDimensionsFromExtent(
112  int ext[6], int dims[3], int dataDescription=VTK_EMPTY );
114 
116 
119  static void GetCellDimensionsFromExtent(
120  int ext[6], int celldims[3], int dataDescription=VTK_EMPTY );
122 
124 
126  static void GetCellDimensionsFromNodeDimensions(
127  int nodeDims[3],int cellDims[3] );
129 
131 
140  static void GetLocalStructuredCoordinates(
141  int ijk[3], int ext[6], int lijk[3], int dataDescription=VTK_EMPTY );
143 
145 
153  static void GetGlobalStructuredCoordinates(
154  int lijk[3], int ext[6], int ijk[3], int dataDescription=VTK_EMPTY );
156 
158 
159  static void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds,
160  int dataDescription, int dim[3]);
162 
164  static void GetPointCells(vtkIdType ptId, vtkIdList *cellIds, int dim[3]);
165 
167 
169  static void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds,
170  vtkIdList *cellIds, int dim[3]);
172 
174 
182  static vtkIdType ComputePointIdForExtent(
183  int extent[6], int ijk[3], int dataDescription=VTK_EMPTY );
185 
187 
189  static vtkIdType ComputeCellIdForExtent(
190  int extent[6], int ijk[3], int dataDescription=VTK_EMPTY );
192 
194 
203  static vtkIdType ComputePointId(
204  int dim[3], int ijk[3], int dataDescription=VTK_EMPTY );
206 
208 
217  static vtkIdType ComputeCellId(
218  int dim[3], int ijk[3], int dataDescription=VTK_EMPTY );
220 
222 
231  static void ComputeCellStructuredCoordsForExtent(
232  const vtkIdType cellIdx, int ext[6], int ijk[3],
233  int dataDescription=VTK_EMPTY );
235 
237 
245  static void ComputeCellStructuredCoords(
246  const vtkIdType cellId, int dim[3], int ijk[3],
247  int dataDescription=VTK_EMPTY );
249 
251 
259  static void ComputePointStructuredCoordsForExtent(
260  const vtkIdType ptId, int ext[6], int ijk[3],
261  int dataDescription=VTK_EMPTY );
263 
265 
273  static void ComputePointStructuredCoords(
274  const vtkIdType ptId, int dim[3], int ijk[3],
275  int dataDescription=VTK_EMPTY );
277 
278 protected:
281 
283 
288  static vtkIdType GetLinearIndex(
289  const int i, const int j, const int k, const int N1, const int N2 )
290  {
291  return( (k*N2+j)*N1+i );
292  }
294 
296 
301  const vtkIdType idx, const int N1, const int N2,int &i, int &j, int &k )
302  {
303  int N12 = N1*N2;
304  k = idx/N12;
305  j = (idx-k*N12)/N1;
306  i = idx-k*N12-j*N1;
307  }
309 
310 private:
311  vtkStructuredData(const vtkStructuredData&); // Not implemented.
312  void operator=(const vtkStructuredData&); // Not implemented.
313 };
314 
315 
316 #endif
317 
318 // VTK-HeaderTest-Exclude: vtkStructuredData.h
Singleton class for topologically regular data.
#define N2
#define VTK_EMPTY
#define N1
static vtkIdType GetLinearIndex(const int i, const int j, const int k, const int N1, const int N2)
static void GetStructuredCoordinates(const vtkIdType idx, const int N1, const int N2, int &i, int &j, int &k)