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 =========================================================================*/
159 #ifndef vtkArrayDispatch_h
160 #define vtkArrayDispatch_h
161 
162 #include "vtkArrayDispatchArrayList.h"
163 #include "vtkConfigure.h"
164 #include "vtkType.h"
165 #include "vtkTypeList.h"
166 
167 namespace vtkArrayDispatch {
168 
172 typedef vtkTypeList_Create_2(double, float) Reals;
173 
177 typedef vtkTypeList::Unique<
178  vtkTypeList_Create_12(char, int, long, long long, short, signed char,
179  unsigned char, unsigned int, unsigned long,
180  unsigned long long, unsigned short, vtkIdType)
181  >::Result Integrals;
182 
187 
188 //------------------------------------------------------------------------------
195 struct Dispatch;
196 
197 //------------------------------------------------------------------------------
204 template <typename ArrayList>
206 
207 //------------------------------------------------------------------------------
215 template <typename ValueTypeList>
217 
218 //------------------------------------------------------------------------------
226 struct Dispatch2;
227 
228 //------------------------------------------------------------------------------
237 struct Dispatch2SameValueType;
238 
239 //------------------------------------------------------------------------------
249 template <
250  typename ArrayList1,
251  typename ArrayList2
252  >
254 
255 //------------------------------------------------------------------------------
267 template <
268  typename ValueTypeList1,
269  typename ValueTypeList2
270  >
272 
273 //------------------------------------------------------------------------------
284 template <
285  typename ArrayList1,
286  typename ArrayList2
287  >
289 
290 //------------------------------------------------------------------------------
302 template <typename ValueTypeList>
304 
305 //------------------------------------------------------------------------------
313 struct Dispatch3;
314 
315 //------------------------------------------------------------------------------
324 struct Dispatch3SameValueType;
325 
326 //------------------------------------------------------------------------------
337 template <
338  typename ArrayList1,
339  typename ArrayList2,
340  typename ArrayList3
341  >
343 
344 //------------------------------------------------------------------------------
357 template <
358  typename ValueTypeList1,
359  typename ValueTypeList2,
360  typename ValueTypeList3
361  >
363 
364 //------------------------------------------------------------------------------
375 template <
376  typename ArrayList1,
377  typename ArrayList2,
378  typename ArrayList3
379  >
381 
382 //------------------------------------------------------------------------------
394 template <typename ValueTypeList>
396 
397 //------------------------------------------------------------------------------
402 template <typename ArrayList, typename ValueList>
404 
405 } // end namespace vtkArrayDispatch
406 
407 #include "vtkArrayDispatch.txx"
408 
409 #endif // vtkArrayDispatch_h
410 // 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:125
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:287
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.
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:166
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-...