VTK
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 
51 {
52 public:
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 
289  const int i, const int j, const int k, const int N1, const int N2 )
290  {
291  return( (static_cast<vtkIdType>(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.
abstract base class for most VTK objects
Definition: vtkObject.h:61
#define N2
int vtkIdType
Definition: vtkType.h:268
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:619
#define VTK_EMPTY
#define N1
static vtkIdType GetLinearIndex(const int i, const int j, const int k, const int N1, const int N2)
list of point or cell ids
Definition: vtkIdList.h:35
static void GetStructuredCoordinates(const vtkIdType idx, const int N1, const int N2, int &i, int &j, int &k)
#define VTKCOMMONDATAMODEL_EXPORT