14 #ifndef vtkAffineArray_h
15 #define vtkAffineArray_h
18 #include "vtkCommonCoreModule.h"
22 VTK_ABI_NAMESPACE_BEGIN
23 template <
class ValueTypeT>
26 :
public vtkImplicitArray<vtkAffineImplicitBackend<ValueTypeT>, vtkArrayTypes::VTK_AFFINE_ARRAY>
30 #else // Fake the superclass for the wrappers.
39 using typename Superclass::ArrayTypeTag;
40 using typename Superclass::DataTypeTag;
41 using typename Superclass::ValueType;
51 #if defined(__VTK_WRAP__) || defined(__WRAP_GCCXML__)
107 VTK_ABI_NAMESPACE_END
112 #define vtkCreateAffineWrappedArrayInterface(T) \
113 vtkCreateImplicitWrappedArrayInterface(T); \
114 void ConstructBackend(T slope, T intercept); \
115 T GetSlope() const; \
116 T GetIntercept() const; \
117 bool IsBackendConstructed() const;
119 #endif // vtkAffineArray_h
125 #ifdef VTK_AFFINE_ARRAY_INSTANTIATING
126 #define VTK_AFFINE_ARRAY_INSTANTIATE(T) \
127 namespace vtkDataArrayPrivate \
129 VTK_ABI_NAMESPACE_BEGIN \
130 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkAffineArray<T>, double); \
131 VTK_ABI_NAMESPACE_END \
133 VTK_ABI_NAMESPACE_BEGIN \
134 template class VTKCOMMONCORE_EXPORT vtkAffineArray<T>; \
135 VTK_ABI_NAMESPACE_END
139 #define VTK_AFFINE_ARRAY_INSTANTIATE_VALUERANGE(T) \
140 namespace vtkDataArrayPrivate \
142 VTK_ABI_NAMESPACE_BEGIN \
143 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkAffineArray<T>, T); \
144 VTK_ABI_NAMESPACE_END \
146 #elif defined(VTK_USE_EXTERN_TEMPLATE)
147 #ifndef VTK_AFFINE_ARRAY_EXTERN
148 #define VTK_AFFINE_ARRAY_EXTERN
150 #pragma warning(push)
153 #pragma warning(disable : 4910) // extern and dllexport incompatible
155 VTK_ABI_NAMESPACE_BEGIN
157 VTK_ABI_NAMESPACE_END
161 VTK_ABI_NAMESPACE_BEGIN
182 VTK_ABI_NAMESPACE_END
188 #endif // VTK_AFFINE_ARRAY_EXTERN
191 #elif defined(_MSC_VER) && !defined(VTK_BUILD_SHARED_LIBS)
192 #pragma warning(push)
195 #pragma warning(disable : 4091)
198 #pragma warning(disable : 4231)
211 #pragma warning(disable : 4910) // extern and dllexport incompatible
215 VTK_ABI_NAMESPACE_BEGIN
217 VTK_ABI_NAMESPACE_END
vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkAffineArray)
Abstract superclass for all arrays.
vtkImplicitArrayTypeMacro(SelfType, GenericDataArrayType)
ValueType GetIntercept() const
Get the intercept of the affine function.
ValueType GetSlope() const
Get the slope of the affine function.
#define VTK_DECLARE_VALUERANGE_ARRAYTYPE(ArrayType, ValueType)
std::shared_ptr< BackendT > GetBackend()
Setter/Getter for Backend.
static vtkAffineArray< ValueType > * FastDownCast(vtkAbstractArray *source)
A faster alternative to SafeDownCast for downcasting vtkAbstractArrays.
vtkInstantiateTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate)
abstract superclass for arrays of numeric data
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
A read only array class that wraps an implicit function from integers to any value type supported by ...
bool IsBackendConstructed() const
Check whether the backend has been constructed.
A utility array for wrapping affine functions in implicit arrays.
vtkArrayDownCast_TemplateFastCastMacro(vtkAffineArray)
#define vtkCreateImplicitWrappedArrayInterface(T)
static vtkImplicitArray * New()
void ConstructBackend(Params &&...params)
Utility method for setting backend parameterization directly.