VTK  9.5.20251008
vtkArrayDispatch.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
205#ifndef vtkArrayDispatch_h
206#define vtkArrayDispatch_h
207
208#include "vtkArrayDispatchArrayList.h"
209#include "vtkType.h"
210#include "vtkTypeList.h"
211
213{
214VTK_ABI_NAMESPACE_BEGIN
215
219typedef vtkTypeList::Create<double, float> Reals;
220
224typedef vtkTypeList::Unique<
225 vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
226 unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
227
232
233//------------------------------------------------------------------------------
240struct Dispatch;
241
242//------------------------------------------------------------------------------
249template <typename ArrayList>
251
252//------------------------------------------------------------------------------
260template <typename ValueTypeList>
262
263//------------------------------------------------------------------------------
270template <typename ArrayList, typename ValueTypeList>
272template <typename ArrayList, typename ValueTypeList>
274 "Use DispatchByArrayAndValueType instead.") DispatchByValueTypeUsingArrays;
275
276//------------------------------------------------------------------------------
284struct Dispatch2;
285
286//------------------------------------------------------------------------------
295struct Dispatch2SameValueType;
296
297//------------------------------------------------------------------------------
309template <typename ArrayList1, typename ArrayList2, typename ValueTypeList1,
310 typename ValueTypeList2>
312template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2>
314 "Use Dispatch2ByArrayAndValueType instead.") Dispatch2ByValueTypeUsingArrays;
315
316//------------------------------------------------------------------------------
326template <typename ArrayList1, typename ArrayList2>
328
329//------------------------------------------------------------------------------
341template <typename ValueTypeList1, typename ValueTypeList2>
343
344//------------------------------------------------------------------------------
355template <typename ArrayList1, typename ArrayList2>
357template <typename ArrayList>
359 "Use Dispatch2ByArrayWithSameValueType instead.") Dispatch2SameValueTypeUsingArrays;
360
361//------------------------------------------------------------------------------
373template <typename ValueTypeList>
375
376//------------------------------------------------------------------------------
388template <typename ArrayList, typename ValueTypeList>
390template <typename ArrayList, typename ValueTypeList>
392 "Use Dispatch2ByArrayAndSameValueType instead.") Dispatch2BySameValueTypeUsingArrays;
393
394//------------------------------------------------------------------------------
402struct Dispatch3;
403
404//------------------------------------------------------------------------------
413struct Dispatch3SameValueType;
414
415//------------------------------------------------------------------------------
426template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
428
429//------------------------------------------------------------------------------
442template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
444
445//------------------------------------------------------------------------------
458template <typename ArrayList1, typename ArrayList2, typename ArrayList3, typename ValueTypeList1,
459 typename ValueTypeList2, typename ValueTypeList3>
461template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2,
462 typename ValueTypeList3>
464 "Use Dispatch3ByArrayAndValueType instead.") Dispatch3ByValueTypeUsingArrays;
465
466//------------------------------------------------------------------------------
477template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
479template <typename ArrayList>
481 "Use Dispatch3ByArrayWithSameValueType instead.") Dispatch3SameValueTypeUsingArrays;
482
483//------------------------------------------------------------------------------
495template <typename ValueTypeList>
497
498//------------------------------------------------------------------------------
510template <typename ArrayList, typename ValueTypeList>
512template <typename ArrayList, typename ValueTypeList>
514 "Use Dispatch3ByArraySameValue instead.") Dispatch3BySameValueTypeUsingArrays;
515
516//----------------------------------------------------------------------------
521template <typename ArrayList, typename ArrayTypeTagList>
523
524//------------------------------------------------------------------------------
529template <typename ArrayList, typename DataTypeTagList>
531
532//------------------------------------------------------------------------------
537template <typename ArrayList, typename ValueList>
539
540VTK_ABI_NAMESPACE_END
541} // end namespace vtkArrayDispatch
542
543#include "vtkArrayDispatch.txx"
544
545#endif // vtkArrayDispatch_h
546// 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, longlong, short, signedchar, unsignedchar, unsignedint, unsignedlong, unsignedlonglong, unsignedshort, vtkIdType > >::Result Integrals
A Typelist containing all integral ValueTypes.
Dispatch two arrays, restricting the valid code paths to use only array types found in ArrayList that...
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the Array...
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 ValueType-filtered versions of ArrayLi...
Dispatch three arrays, restricting the valid code paths to use only array types found in ArrayList Ty...
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 in ArrayList with the added restriction that the arra...
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::ArrayTypeTag that exist in ArrayTypeTagLi...
Filter the ArrayList to contain only arrays with ArrayType::DataTypeTag that exist in DataTypeTagList...
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.
Remove all duplicate types from TypeList TList, storing the new list in Result.
#define VTK_DEPRECATED_IN_9_6_0(reason)
int vtkIdType
Definition vtkType.h:367