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
vtkArrayDispatch::Dispatch3ByArray
Dispatch three arrays with the restriction that the type of the first array is in the ArrayList1 Type...
Definition: vtkArrayDispatch.h:364
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:216
vtkArrayDispatch
Definition: vtkArrayDispatch.h:203
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkArrayDispatch::Dispatch3BySameValueType
Dispatch three arrays, restricting the valid code paths to use only array types found in application-...
Definition: vtkArrayDispatch.h:409
vtkArrayDispatch::Dispatch2BySameValueType
Dispatch two arrays, restricting the valid code paths to use only array types found in application-wi...
Definition: vtkArrayDispatch.h:329
vtkArrayDispatch::DispatchByArray
Dispatch a single array against all array types mentioned in the ArrayList template parameter.
Definition: vtkArrayDispatch.h:240
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:380
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:285
vtkTypeList.h
vtkArrayDispatch::FilterArraysByValueType
Filter the ArrayList to contain only arrays with ArrayType::ValueType that exist in ValueList.
Definition: vtkArrayDispatch.h:417
vtkArrayDispatch::Reals
vtkTypeList::Create< double, float > Reals
A TypeList containing all real ValueTypes.
Definition: vtkArrayDispatch.h:209
vtkArrayDispatch::Dispatch2ByArrayWithSameValueType
Dispatch two arrays, restricting the valid code paths to use only array types specified in the ArrayL...
Definition: vtkArrayDispatch.h:314
vtkArrayDispatch::AllTypes
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
Definition: vtkArrayDispatch.h:221
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:394
vtkArrayDispatch::Dispatch2ByValueType
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the appli...
Definition: vtkArrayDispatch.h:300
vtkArrayDispatch::DispatchByValueType
Dispatch a single array against all array types in the application-wide vtkArrayDispatch::Arrays list...
Definition: vtkArrayDispatch.h:251