VTK  9.2.6
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 =========================================================================*/
198 #ifndef vtkArrayDispatch_h
199 #define vtkArrayDispatch_h
200 
201 #include "vtkArrayDispatchArrayList.h"
202 #include "vtkType.h"
203 #include "vtkTypeList.h"
204 
206 {
207 
212 
216 typedef vtkTypeList::Unique<
217  vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
218  unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
219 
224 
225 //------------------------------------------------------------------------------
232 struct Dispatch;
233 
234 //------------------------------------------------------------------------------
241 template <typename ArrayList>
243 
244 //------------------------------------------------------------------------------
252 template <typename ValueTypeList>
254 
255 //------------------------------------------------------------------------------
263 struct Dispatch2;
264 
265 //------------------------------------------------------------------------------
274 struct Dispatch2SameValueType;
275 
276 //------------------------------------------------------------------------------
286 template <typename ArrayList1, typename ArrayList2>
288 
289 //------------------------------------------------------------------------------
301 template <typename ValueTypeList1, typename ValueTypeList2>
303 
304 //------------------------------------------------------------------------------
315 template <typename ArrayList1, typename ArrayList2>
317 
318 //------------------------------------------------------------------------------
330 template <typename ValueTypeList>
332 
333 //------------------------------------------------------------------------------
341 struct Dispatch3;
342 
343 //------------------------------------------------------------------------------
352 struct Dispatch3SameValueType;
353 
354 //------------------------------------------------------------------------------
365 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
367 
368 //------------------------------------------------------------------------------
381 template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
383 
384 //------------------------------------------------------------------------------
395 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
397 
398 //------------------------------------------------------------------------------
410 template <typename ValueTypeList>
412 
413 //------------------------------------------------------------------------------
418 template <typename ArrayList, typename ValueList>
420 
421 } // end namespace vtkArrayDispatch
422 
423 #include "vtkArrayDispatch.txx"
424 
425 #endif // vtkArrayDispatch_h
426 // VTK-HeaderTest-Exclude: vtkArrayDispatch.h
Remove all duplicate types from TypeList TList, storing the new list in Result.
Definition: vtkTypeList.h:126
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:332
typename vtkTypeList::detail::CreateImpl< Ts... >::type Create
Definition: vtkTypeList.h:177
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the appli...
vtkTypeList::Create< double, float > Reals
A TypeList containing all real ValueTypes.
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< 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:167
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-...