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
168
172typedef vtkTypeList_Create_2(double, float) Reals;
173
177typedef 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//------------------------------------------------------------------------------
195struct Dispatch;
196
197//------------------------------------------------------------------------------
204template <typename ArrayList>
206
207//------------------------------------------------------------------------------
215template <typename ValueTypeList>
217
218//------------------------------------------------------------------------------
226struct Dispatch2;
227
228//------------------------------------------------------------------------------
237struct Dispatch2SameValueType;
238
239//------------------------------------------------------------------------------
249template <
250 typename ArrayList1,
251 typename ArrayList2
252 >
254
255//------------------------------------------------------------------------------
267template <
268 typename ValueTypeList1,
269 typename ValueTypeList2
270 >
272
273//------------------------------------------------------------------------------
284template <
285 typename ArrayList1,
286 typename ArrayList2
287 >
289
290//------------------------------------------------------------------------------
302template <typename ValueTypeList>
304
305//------------------------------------------------------------------------------
313struct Dispatch3;
314
315//------------------------------------------------------------------------------
324struct Dispatch3SameValueType;
325
326//------------------------------------------------------------------------------
337template <
338 typename ArrayList1,
339 typename ArrayList2,
340 typename ArrayList3
341 >
343
344//------------------------------------------------------------------------------
357template <
358 typename ValueTypeList1,
359 typename ValueTypeList2,
360 typename ValueTypeList3
361 >
363
364//------------------------------------------------------------------------------
375template <
376 typename ArrayList1,
377 typename ArrayList2,
378 typename ArrayList3
379 >
381
382//------------------------------------------------------------------------------
394template <typename ValueTypeList>
396
397//------------------------------------------------------------------------------
402template <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
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
vtkTypeList::Unique< vtkTypeList_Create_12(char, int, long, longlong, short, signedchar, unsignedchar, unsignedint, unsignedlong, unsignedlonglong, unsignedshort, vtkIdType)>::Result Integrals
A Typelist containing all integral ValueTypes.
typedef vtkTypeList_Create_2(double, float) Reals
A TypeList containing all real ValueTypes.
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:287