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=========================================================================*/
195#ifndef vtkArrayDispatch_h
196#define vtkArrayDispatch_h
197
198#include "vtkArrayDispatchArrayList.h"
199#include "vtkType.h"
200#include "vtkTypeList.h"
201
203{
204
208typedef vtkTypeList::Create<double, float> Reals;
209
213typedef vtkTypeList::Unique<
214 vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
215 unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
216
221
222//------------------------------------------------------------------------------
229struct Dispatch;
230
231//------------------------------------------------------------------------------
238template <typename ArrayList>
240
241//------------------------------------------------------------------------------
249template <typename ValueTypeList>
251
252//------------------------------------------------------------------------------
260struct Dispatch2;
261
262//------------------------------------------------------------------------------
271struct Dispatch2SameValueType;
272
273//------------------------------------------------------------------------------
283template <typename ArrayList1, typename ArrayList2>
285
286//------------------------------------------------------------------------------
298template <typename ValueTypeList1, typename ValueTypeList2>
300
301//------------------------------------------------------------------------------
312template <typename ArrayList1, typename ArrayList2>
314
315//------------------------------------------------------------------------------
327template <typename ValueTypeList>
329
330//------------------------------------------------------------------------------
338struct Dispatch3;
339
340//------------------------------------------------------------------------------
349struct Dispatch3SameValueType;
350
351//------------------------------------------------------------------------------
362template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
364
365//------------------------------------------------------------------------------
378template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
380
381//------------------------------------------------------------------------------
392template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
394
395//------------------------------------------------------------------------------
407template <typename ValueTypeList>
409
410//------------------------------------------------------------------------------
415template <typename ArrayList, typename ValueList>
417
418} // end namespace vtkArrayDispatch
419
420#include "vtkArrayDispatch.txx"
421
422#endif // vtkArrayDispatch_h
423// 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, longlong, short, signedchar, unsignedchar, unsignedint, unsignedlong, unsignedlonglong, unsignedshort, vtkIdType > >::Result Integrals
A Typelist containing all integral ValueTypes.
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.
Remove all duplicate types from TypeList TList, storing the new list in Result.
int vtkIdType
Definition vtkType.h:332