VTK
vtkArrayDispatch.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkArrayDispatch.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 =========================================================================*/
156 #ifndef vtkArrayDispatch_h
157 #define vtkArrayDispatch_h
158 
159 #include "vtkArrayDispatchArrayList.h"
160 #include "vtkConfigure.h"
161 #include "vtkType.h"
162 #include "vtkTypeList.h"
163 
164 namespace vtkArrayDispatch {
165 
169 typedef vtkTypeList_Create_2(double, float) Reals;
170 
174 typedef vtkTypeList::Unique<
175  vtkTypeList_Create_12(char, int, long, long long, short, signed char,
176  unsigned char, unsigned int, unsigned long,
177  unsigned long long, unsigned short, vtkIdType)
178  >::Result Integrals;
179 
184 
185 //------------------------------------------------------------------------------
192 struct Dispatch;
193 
194 //------------------------------------------------------------------------------
201 template <typename ArrayList>
203 
204 //------------------------------------------------------------------------------
212 template <typename ValueTypeList>
214 
215 //------------------------------------------------------------------------------
223 struct Dispatch2;
224 
225 //------------------------------------------------------------------------------
234 struct Dispatch2SameValueType;
235 
236 //------------------------------------------------------------------------------
246 template <
247  typename ArrayList1,
248  typename ArrayList2
249  >
251 
252 //------------------------------------------------------------------------------
264 template <
265  typename ValueTypeList1,
266  typename ValueTypeList2
267  >
269 
270 //------------------------------------------------------------------------------
281 template <
282  typename ArrayList1,
283  typename ArrayList2
284  >
286 
287 //------------------------------------------------------------------------------
299 template <typename ValueTypeList>
301 
302 //------------------------------------------------------------------------------
310 struct Dispatch3;
311 
312 //------------------------------------------------------------------------------
321 struct Dispatch3SameValueType;
322 
323 //------------------------------------------------------------------------------
334 template <
335  typename ArrayList1,
336  typename ArrayList2,
337  typename ArrayList3
338  >
340 
341 //------------------------------------------------------------------------------
354 template <
355  typename ValueTypeList1,
356  typename ValueTypeList2,
357  typename ValueTypeList3
358  >
360 
361 //------------------------------------------------------------------------------
372 template <
373  typename ArrayList1,
374  typename ArrayList2,
375  typename ArrayList3
376  >
378 
379 //------------------------------------------------------------------------------
391 template <typename ValueTypeList>
393 
394 //------------------------------------------------------------------------------
399 template <typename ArrayList, typename ValueList>
401 
402 } // end namespace vtkArrayDispatch
403 
404 #include "vtkArrayDispatch.txx"
405 
406 #endif // vtkArrayDispatch_h
407 // VTK-HeaderTest-Exclude: vtkArrayDispatch.h
typedef vtkTypeList_Create_2(double, float) Reals
A TypeList containing all real ValueTypes.
Remove all duplicate types from TypeList TList, storing the new list in Result.
Definition: vtkTypeList.h:122
Dispatch two arrays, restricting the valid code paths to use only array types specified in the ArrayL...
Dispatch three arrays with the restriction that the type of the first array is in the ArrayList1 Type...
Dispatch two arrays, restricting the valid code paths to use only array types found in application-wi...
Dispatch a single array against all array types in the application-wide vtkArrayDispatch::Arrays list...
int vtkIdType
Definition: vtkType.h:345
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the appli...
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
Dispatch three arrays, restricting the valid code paths to use only array types specified in the Arra...
vtkTypeList::Unique< vtkTypeList_Create_12(char, int, long, long long, short, signed char, unsigned char, unsigned int, unsigned long, unsigned long long, unsigned short, vtkIdType) >::Result Integrals
A Typelist containing all integral ValueTypes.
vtkDataArray code generator/dispatcher.
Filter the ArrayList to contain only arrays with ArrayType::ValueType that exist in ValueList...
Dispatch two arrays with the restriction that the type of the first array is in the ArrayList1 TypeLi...
Dispatch three arrays, restricting the valid code paths to use ValueType-filtered versions of the app...
Appends type T to TypeList TList and stores the result in Result.
Definition: vtkTypeList.h:163
Dispatch a single array against all array types mentioned in the ArrayList template parameter...
Dispatch three arrays, restricting the valid code paths to use only array types found in application-...