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 =========================================================================*/
159 #ifndef vtkArrayDispatch_h
160 #define vtkArrayDispatch_h
161 
162 #include "vtkArrayDispatchArrayList.h"
163 #include "vtkConfigure.h"
164 #include "vtkType.h"
165 #include "vtkTypeList.h"
166 
167 namespace vtkArrayDispatch {
168 
172 typedef vtkTypeList_Create_2(double, float) Reals;
173 
177 typedef vtkTypeList::Unique<
178  vtkTypeList_Create_12(char, int, long, long long, short, signed char,
179  unsigned char, unsigned int, unsigned long,
180  unsigned long long, unsigned short, vtkIdType)
181  >::Result Integrals;
182 
187 
188 //------------------------------------------------------------------------------
195 struct Dispatch;
196 
197 //------------------------------------------------------------------------------
204 template <typename ArrayList>
206 
207 //------------------------------------------------------------------------------
215 template <typename ValueTypeList>
217 
218 //------------------------------------------------------------------------------
226 struct Dispatch2;
227 
228 //------------------------------------------------------------------------------
237 struct Dispatch2SameValueType;
238 
239 //------------------------------------------------------------------------------
249 template <
250  typename ArrayList1,
251  typename ArrayList2
252  >
254 
255 //------------------------------------------------------------------------------
267 template <
268  typename ValueTypeList1,
269  typename ValueTypeList2
270  >
272 
273 //------------------------------------------------------------------------------
284 template <
285  typename ArrayList1,
286  typename ArrayList2
287  >
289 
290 //------------------------------------------------------------------------------
302 template <typename ValueTypeList>
304 
305 //------------------------------------------------------------------------------
313 struct Dispatch3;
314 
315 //------------------------------------------------------------------------------
324 struct Dispatch3SameValueType;
325 
326 //------------------------------------------------------------------------------
337 template <
338  typename ArrayList1,
339  typename ArrayList2,
340  typename ArrayList3
341  >
343 
344 //------------------------------------------------------------------------------
357 template <
358  typename ValueTypeList1,
359  typename ValueTypeList2,
360  typename ValueTypeList3
361  >
363 
364 //------------------------------------------------------------------------------
375 template <
376  typename ArrayList1,
377  typename ArrayList2,
378  typename ArrayList3
379  >
381 
382 //------------------------------------------------------------------------------
394 template <typename ValueTypeList>
396 
397 //------------------------------------------------------------------------------
402 template <typename ArrayList, typename ValueList>
404 
405 } // end namespace vtkArrayDispatch
406 
407 #include "vtkArrayDispatch.txx"
408 
409 #endif // vtkArrayDispatch_h
410 // 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:342
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:181
vtkArrayDispatch
Definition: vtkArrayDispatch.h:167
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:395
vtkArrayDispatch::Dispatch2BySameValueType
Dispatch two arrays, restricting the valid code paths to use only array types found in application-wi...
Definition: vtkArrayDispatch.h:303
vtkArrayDispatch::DispatchByArray
Dispatch a single array against all array types mentioned in the ArrayList template parameter.
Definition: vtkArrayDispatch.h:205
vtkType.h
vtkArrayDispatch::Dispatch3ByValueType
Dispatch three arrays, restricting the valid code paths to use ValueType-filtered versions of the app...
Definition: vtkArrayDispatch.h:362
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:253
vtkTypeList.h
vtkArrayDispatch::FilterArraysByValueType
Filter the ArrayList to contain only arrays with ArrayType::ValueType that exist in ValueList.
Definition: vtkArrayDispatch.h:403
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:288
vtkArrayDispatch::AllTypes
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
Definition: vtkArrayDispatch.h:186
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:380
vtkArrayDispatch::Dispatch2ByValueType
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the appli...
Definition: vtkArrayDispatch.h:271
vtkArrayDispatch::DispatchByValueType
Dispatch a single array against all array types in the application-wide vtkArrayDispatch::Arrays list...
Definition: vtkArrayDispatch.h:216