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=========================================================================*/
204#ifndef vtkArrayDispatch_h
205#define vtkArrayDispatch_h
206
207#include "vtkArrayDispatchArrayList.h"
208#include "vtkType.h"
209#include "vtkTypeList.h"
210
212{
213
217typedef vtkTypeList::Create<double, float> Reals;
218
222typedef vtkTypeList::Unique<
223 vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
224 unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
225
230
231//------------------------------------------------------------------------------
238struct Dispatch;
239
240//------------------------------------------------------------------------------
247template <typename ArrayList>
249
250//------------------------------------------------------------------------------
258template <typename ValueTypeList>
260
261//------------------------------------------------------------------------------
269struct Dispatch2;
270
271//------------------------------------------------------------------------------
280struct Dispatch2SameValueType;
281
282//------------------------------------------------------------------------------
292template <typename ArrayList1, typename ArrayList2>
294
295//------------------------------------------------------------------------------
307template <typename ValueTypeList1, typename ValueTypeList2>
309
310//------------------------------------------------------------------------------
321template <typename ArrayList1, typename ArrayList2>
323
324//------------------------------------------------------------------------------
336template <typename ValueTypeList>
338
339//------------------------------------------------------------------------------
347struct Dispatch3;
348
349//------------------------------------------------------------------------------
358struct Dispatch3SameValueType;
359
360//------------------------------------------------------------------------------
371template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
373
374//------------------------------------------------------------------------------
387template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
389
390//------------------------------------------------------------------------------
401template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
403
404//------------------------------------------------------------------------------
416template <typename ValueTypeList>
418
419//------------------------------------------------------------------------------
424template <typename ArrayList, typename ValueList>
426
427} // end namespace vtkArrayDispatch
428
429#include "vtkArrayDispatch.txx"
430
431#endif // vtkArrayDispatch_h
432// 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.
typename vtkTypeList::detail::CreateImpl< Ts... >::type Create
Definition: vtkTypeList.h:176
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:166
Remove all duplicate types from TypeList TList, storing the new list in Result.
Definition: vtkTypeList.h:125
int vtkIdType
Definition: vtkType.h:332