VTK  9.2.20220706
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 =========================================================================*/
217 #ifndef vtkArrayDispatch_h
218 #define vtkArrayDispatch_h
219 
220 #include "vtkArrayDispatchArrayList.h"
221 #include "vtkType.h"
222 #include "vtkTypeList.h"
223 
225 {
226 
230 typedef vtkTypeList::Create<double, float> Reals;
231 
235 typedef vtkTypeList::Unique<
236  vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
237  unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
238 
243 
244 //------------------------------------------------------------------------------
251 struct Dispatch;
252 
253 //------------------------------------------------------------------------------
260 template <typename ArrayList>
262 
263 //------------------------------------------------------------------------------
271 template <typename ValueTypeList>
273 
274 //------------------------------------------------------------------------------
282 struct Dispatch2;
283 
284 //------------------------------------------------------------------------------
293 struct Dispatch2SameValueType;
294 
295 //------------------------------------------------------------------------------
305 template <typename ArrayList1, typename ArrayList2>
307 
308 //------------------------------------------------------------------------------
320 template <typename ValueTypeList1, typename ValueTypeList2>
322 
323 //------------------------------------------------------------------------------
334 template <typename ArrayList1, typename ArrayList2>
336 
337 //------------------------------------------------------------------------------
349 template <typename ValueTypeList>
351 
352 //------------------------------------------------------------------------------
360 struct Dispatch3;
361 
362 //------------------------------------------------------------------------------
371 struct Dispatch3SameValueType;
372 
373 //------------------------------------------------------------------------------
384 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
386 
387 //------------------------------------------------------------------------------
400 template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
402 
403 //------------------------------------------------------------------------------
414 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
416 
417 //------------------------------------------------------------------------------
429 template <typename ValueTypeList>
431 
432 //------------------------------------------------------------------------------
437 template <typename ArrayList, typename ValueList>
439 
440 } // end namespace vtkArrayDispatch
441 
442 #include "vtkArrayDispatch.txx"
443 
444 #endif // vtkArrayDispatch_h
445 // VTK-HeaderTest-Exclude: vtkArrayDispatch.h
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
vtkTypeList::Create< double, float > Reals
A TypeList containing all real ValueTypes.
vtkTypeList::Unique< vtkTypeList::Create< 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.
typename vtkTypeList::detail::CreateImpl< Ts... >::type Create
Definition: vtkTypeList.h:177
Dispatch two arrays, restricting the valid code paths to use only array types specified in the ArrayL...
Dispatch two arrays with the restriction that the type of the first array is in the ArrayList1 TypeLi...
Dispatch two arrays, restricting the valid code paths to use only array types found in application-wi...
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the appli...
Dispatch three arrays, restricting the valid code paths to use only array types specified in the Arra...
Dispatch three arrays with the restriction that the type of the first array is in the ArrayList1 Type...
Dispatch three arrays, restricting the valid code paths to use only array types found in application-...
Dispatch three arrays, restricting the valid code paths to use ValueType-filtered versions of the app...
Dispatch a single array against all array types mentioned in the ArrayList template parameter.
Dispatch a single array against all array types in the application-wide vtkArrayDispatch::Arrays list...
Filter the ArrayList to contain only arrays with ArrayType::ValueType that exist in ValueList.
Appends type T to TypeList TList and stores the result in Result.
Definition: vtkTypeList.h:167
Remove all duplicate types from TypeList TList, storing the new list in Result.
Definition: vtkTypeList.h:126
int vtkIdType
Definition: vtkType.h:325