VTK  9.3.1
vtkCompositeImplicitBackend.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
3 // Funded by CEA, DAM, DIF, F-91297 Arpajon, France
4 #ifndef vtkCompositeImplicitBackend_h
5 #define vtkCompositeImplicitBackend_h
6 
41 #include "vtkCommonCoreModule.h"
42 #include "vtkCompiler.h" // For VTK_USE_EXTERN_TEMPLATE
43 #include "vtkType.h" // For vtkExternTemplateMacro
44 
45 #include <memory>
46 #include <vector>
47 
48 VTK_ABI_NAMESPACE_BEGIN
49 class vtkDataArray;
50 template <typename ValueType>
51 class VTKCOMMONCORE_EXPORT vtkCompositeImplicitBackend final
52 {
53 public:
59  vtkCompositeImplicitBackend(const std::vector<vtkDataArray*>& arrays);
61 
69  ValueType operator()(int idx) const;
70 
71 protected:
72  struct Internals;
73  std::unique_ptr<Internals> Internal;
74 };
75 VTK_ABI_NAMESPACE_END
76 
77 #endif // vtkCompositeImplicitBackend_h
78 
79 #if defined(VTK_COMPOSITE_BACKEND_INSTANTIATING)
80 
81 #define VTK_INSTANTIATE_COMPOSITE_BACKEND(ValueType) \
82  VTK_ABI_NAMESPACE_BEGIN \
83  template class VTKCOMMONCORE_EXPORT vtkCompositeImplicitBackend<ValueType>; \
84  VTK_ABI_NAMESPACE_END
85 
86 #elif defined(VTK_USE_EXTERN_TEMPLATE)
87 
88 #ifndef VTK_COMPOSITE_BACKEND_TEMPLATE_EXTERN
89 #define VTK_COMPOSITE_BACKEND_TEMPLATE_EXTERN
90 #ifdef _MSC_VER
91 #pragma warning(push)
92 #pragma warning(disable : 4910) // extern and dllexport incompatible
93 #endif
94 VTK_ABI_NAMESPACE_BEGIN
95 vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkCompositeImplicitBackend);
96 VTK_ABI_NAMESPACE_END
97 #ifdef _MSC_VER
98 #pragma warning(pop)
99 #endif
100 #endif // VTK_COMPOSITE_IMPLICIT_BACKEND_TEMPLATE_EXTERN
101 
102 #endif
vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkCompositeImplicitBackend)
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:44
std::unique_ptr< Internals > Internal
A utility structure serving as a backend for composite arrays: an array composed of multiple arrays c...