VTK
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 =========================================================================*/
156 #ifndef vtkArrayDispatch_h
157 #define vtkArrayDispatch_h
158 
159 #include "vtkArrayDispatchArrayList.h"
160 #include "vtkConfigure.h"
161 #include "vtkType.h"
162 #include "vtkTypeList.h"
163 
164 namespace vtkArrayDispatch {
165 
169 typedef vtkTypeList_Create_2(double, float) Reals;
170 
174 typedef vtkTypeList::Unique<
175  vtkTypeList_Create_12(char, int, long, long long, short, signed char,
176  unsigned char, unsigned int, unsigned long,
177  unsigned long long, unsigned short, vtkIdType)
178  >::Result Integrals;
179 
184 
185 //------------------------------------------------------------------------------
192 struct Dispatch;
193 
194 //------------------------------------------------------------------------------
201 template <typename ArrayList>
203 
204 //------------------------------------------------------------------------------
212 template <typename ValueTypeList>
214 
215 //------------------------------------------------------------------------------
223 struct Dispatch2;
224 
225 //------------------------------------------------------------------------------
234 struct Dispatch2SameValueType;
235 
236 //------------------------------------------------------------------------------
246 template <
247  typename ArrayList1,
248  typename ArrayList2
249  >
251 
252 //------------------------------------------------------------------------------
264 template <
265  typename ValueTypeList1,
266  typename ValueTypeList2
267  >
269 
270 //------------------------------------------------------------------------------
281 template <
282  typename ArrayList1,
283  typename ArrayList2
284  >
286 
287 //------------------------------------------------------------------------------
299 template <typename ValueTypeList>
301 
302 //------------------------------------------------------------------------------
310 struct Dispatch3;
311 
312 //------------------------------------------------------------------------------
321 struct Dispatch3SameValueType;
322 
323 //------------------------------------------------------------------------------
334 template <
335  typename ArrayList1,
336  typename ArrayList2,
337  typename ArrayList3
338  >
340 
341 //------------------------------------------------------------------------------
354 template <
355  typename ValueTypeList1,
356  typename ValueTypeList2,
357  typename ValueTypeList3
358  >
360 
361 //------------------------------------------------------------------------------
372 template <
373  typename ArrayList1,
374  typename ArrayList2,
375  typename ArrayList3
376  >
378 
379 //------------------------------------------------------------------------------
391 template <typename ValueTypeList>
393 
394 //------------------------------------------------------------------------------
399 template <typename ArrayList, typename ValueList>
401 
402 } // end namespace vtkArrayDispatch
403 
404 #include "vtkArrayDispatch.txx"
405 
406 #endif // vtkArrayDispatch_h
407 // 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:339
vtkArrayDispatch::Integrals
vtkTypeList::Unique< vtkTypeList_Create_12(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:178
vtkArrayDispatch
Definition: vtkArrayDispatch.h:164
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkArrayDispatch::Dispatch3BySameValueType
Dispatch three arrays, restricting the valid code paths to use only array types found in application-...
Definition: vtkArrayDispatch.h:392
vtkArrayDispatch::Dispatch2BySameValueType
Dispatch two arrays, restricting the valid code paths to use only array types found in application-wi...
Definition: vtkArrayDispatch.h:300
vtkArrayDispatch::DispatchByArray
Dispatch a single array against all array types mentioned in the ArrayList template parameter.
Definition: vtkArrayDispatch.h:202
vtkType.h
vtkArrayDispatch::Dispatch3ByValueType
Dispatch three arrays, restricting the valid code paths to use ValueType-filtered versions of the app...
Definition: vtkArrayDispatch.h:359
vtkTypeList::Unique
Remove all duplicate types from TypeList TList, storing the new list in Result.
Definition: vtkTypeList.h:122
vtkArrayDispatch::Dispatch2ByArray
Dispatch two arrays with the restriction that the type of the first array is in the ArrayList1 TypeLi...
Definition: vtkArrayDispatch.h:250
vtkTypeList.h
vtkArrayDispatch::FilterArraysByValueType
Filter the ArrayList to contain only arrays with ArrayType::ValueType that exist in ValueList.
Definition: vtkArrayDispatch.h:400
vtkArrayDispatch::vtkTypeList_Create_2
typedef vtkTypeList_Create_2(double, float) Reals
A TypeList containing all real ValueTypes.
vtkArrayDispatch::Dispatch2ByArrayWithSameValueType
Dispatch two arrays, restricting the valid code paths to use only array types specified in the ArrayL...
Definition: vtkArrayDispatch.h:285
vtkArrayDispatch::AllTypes
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
Definition: vtkArrayDispatch.h:183
vtkTypeList::Append
Appends type T to TypeList TList and stores the result in Result.
Definition: vtkTypeList.h:163
vtkArrayDispatch::Dispatch3ByArrayWithSameValueType
Dispatch three arrays, restricting the valid code paths to use only array types specified in the Arra...
Definition: vtkArrayDispatch.h:377
vtkArrayDispatch::Dispatch2ByValueType
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the appli...
Definition: vtkArrayDispatch.h:268
vtkArrayDispatch::DispatchByValueType
Dispatch a single array against all array types in the application-wide vtkArrayDispatch::Arrays list...
Definition: vtkArrayDispatch.h:213