VTK  9.1.0
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 =========================================================================*/
214 #ifndef vtkArrayDispatch_h
215 #define vtkArrayDispatch_h
216 
217 #include "vtkArrayDispatchArrayList.h"
218 #include "vtkType.h"
219 #include "vtkTypeList.h"
220 
222 {
223 
227 typedef vtkTypeList::Create<double, float> Reals;
228 
232 typedef vtkTypeList::Unique<
233  vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
234  unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
235 
240 
241 //------------------------------------------------------------------------------
248 struct Dispatch;
249 
250 //------------------------------------------------------------------------------
257 template <typename ArrayList>
259 
260 //------------------------------------------------------------------------------
268 template <typename ValueTypeList>
270 
271 //------------------------------------------------------------------------------
279 struct Dispatch2;
280 
281 //------------------------------------------------------------------------------
290 struct Dispatch2SameValueType;
291 
292 //------------------------------------------------------------------------------
302 template <typename ArrayList1, typename ArrayList2>
304 
305 //------------------------------------------------------------------------------
317 template <typename ValueTypeList1, typename ValueTypeList2>
319 
320 //------------------------------------------------------------------------------
331 template <typename ArrayList1, typename ArrayList2>
333 
334 //------------------------------------------------------------------------------
346 template <typename ValueTypeList>
348 
349 //------------------------------------------------------------------------------
357 struct Dispatch3;
358 
359 //------------------------------------------------------------------------------
368 struct Dispatch3SameValueType;
369 
370 //------------------------------------------------------------------------------
381 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
383 
384 //------------------------------------------------------------------------------
397 template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
399 
400 //------------------------------------------------------------------------------
411 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
413 
414 //------------------------------------------------------------------------------
426 template <typename ValueTypeList>
428 
429 //------------------------------------------------------------------------------
434 template <typename ArrayList, typename ValueList>
436 
437 } // end namespace vtkArrayDispatch
438 
439 #include "vtkArrayDispatch.txx"
440 
441 #endif // vtkArrayDispatch_h
442 // VTK-HeaderTest-Exclude: vtkArrayDispatch.h
vtkArrayDispatch::Dispatch3ByArray
Dispatch three arrays with the restriction that the type of the first array is in the ArrayList1 Type...
Definition: vtkArrayDispatch.h:382
vtkArrayDispatch::Integrals
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.
Definition: vtkArrayDispatch.h:234
vtkArrayDispatch
Definition: vtkArrayDispatch.h:222
vtkIdType
int vtkIdType
Definition: vtkType.h:332
vtkArrayDispatch::Dispatch3BySameValueType
Dispatch three arrays, restricting the valid code paths to use only array types found in application-...
Definition: vtkArrayDispatch.h:427
vtkArrayDispatch::Dispatch2BySameValueType
Dispatch two arrays, restricting the valid code paths to use only array types found in application-wi...
Definition: vtkArrayDispatch.h:347
vtkArrayDispatch::DispatchByArray
Dispatch a single array against all array types mentioned in the ArrayList template parameter.
Definition: vtkArrayDispatch.h:258
vtkType.h
vtkTypeList::Create
typename vtkTypeList::detail::CreateImpl< Ts... >::type Create
Definition: vtkTypeList.h:176
vtkArrayDispatch::Dispatch3ByValueType
Dispatch three arrays, restricting the valid code paths to use ValueType-filtered versions of the app...
Definition: vtkArrayDispatch.h:398
vtkTypeList::Unique
Remove all duplicate types from TypeList TList, storing the new list in Result.
Definition: vtkTypeList.h:125
vtkArrayDispatch::Dispatch2ByArray
Dispatch two arrays with the restriction that the type of the first array is in the ArrayList1 TypeLi...
Definition: vtkArrayDispatch.h:303
vtkTypeList.h
vtkArrayDispatch::FilterArraysByValueType
Filter the ArrayList to contain only arrays with ArrayType::ValueType that exist in ValueList.
Definition: vtkArrayDispatch.h:435
vtkArrayDispatch::Reals
vtkTypeList::Create< double, float > Reals
A TypeList containing all real ValueTypes.
Definition: vtkArrayDispatch.h:227
vtkArrayDispatch::Dispatch2ByArrayWithSameValueType
Dispatch two arrays, restricting the valid code paths to use only array types specified in the ArrayL...
Definition: vtkArrayDispatch.h:332
vtkArrayDispatch::AllTypes
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
Definition: vtkArrayDispatch.h:239
vtkTypeList::Append
Appends type T to TypeList TList and stores the result in Result.
Definition: vtkTypeList.h:166
vtkArrayDispatch::Dispatch3ByArrayWithSameValueType
Dispatch three arrays, restricting the valid code paths to use only array types specified in the Arra...
Definition: vtkArrayDispatch.h:412
vtkArrayDispatch::Dispatch2ByValueType
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the appli...
Definition: vtkArrayDispatch.h:318
vtkArrayDispatch::DispatchByValueType
Dispatch a single array against all array types in the application-wide vtkArrayDispatch::Arrays list...
Definition: vtkArrayDispatch.h:269