VTK  9.0.1
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 "vtkConfigure.h"
200 #include "vtkType.h"
201 #include "vtkTypeList.h"
202 
204 {
205 
209 typedef vtkTypeList::Create<double, float> Reals;
210 
214 typedef vtkTypeList::Unique<
215  vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
216  unsigned long, unsigned long long, unsigned short, vtkIdType> >::Result Integrals;
217 
222 
223 //------------------------------------------------------------------------------
230 struct Dispatch;
231 
232 //------------------------------------------------------------------------------
239 template <typename ArrayList>
241 
242 //------------------------------------------------------------------------------
250 template <typename ValueTypeList>
252 
253 //------------------------------------------------------------------------------
261 struct Dispatch2;
262 
263 //------------------------------------------------------------------------------
272 struct Dispatch2SameValueType;
273 
274 //------------------------------------------------------------------------------
284 template <typename ArrayList1, typename ArrayList2>
286 
287 //------------------------------------------------------------------------------
299 template <typename ValueTypeList1, typename ValueTypeList2>
301 
302 //------------------------------------------------------------------------------
313 template <typename ArrayList1, typename ArrayList2>
315 
316 //------------------------------------------------------------------------------
328 template <typename ValueTypeList>
330 
331 //------------------------------------------------------------------------------
339 struct Dispatch3;
340 
341 //------------------------------------------------------------------------------
350 struct Dispatch3SameValueType;
351 
352 //------------------------------------------------------------------------------
363 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
365 
366 //------------------------------------------------------------------------------
379 template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
381 
382 //------------------------------------------------------------------------------
393 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
395 
396 //------------------------------------------------------------------------------
408 template <typename ValueTypeList>
410 
411 //------------------------------------------------------------------------------
416 template <typename ArrayList, typename ValueList>
418 
419 } // end namespace vtkArrayDispatch
420 
421 #include "vtkArrayDispatch.txx"
422 
423 #endif // vtkArrayDispatch_h
424 // 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: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:338