14#ifndef vtkAffineArray_h
15#define vtkAffineArray_h
18#include "vtkCommonCoreModule.h"
22VTK_ABI_NAMESPACE_BEGIN
23template <
class ValueTypeT>
26 :
public vtkImplicitArray<vtkAffineImplicitBackend<ValueTypeT>, vtkArrayTypes::VTK_AFFINE_ARRAY>
28 using ImplicitArrayType =
41 using typename Superclass::ValueType;
51#if defined(__VTK_WRAP__) || defined(__WRAP_GCCXML__)
104#define vtkCreateAffineWrappedArrayInterface(T) \
105 vtkCreateImplicitWrappedArrayInterface(T); \
106 void ConstructBackend(T slope, T intercept); \
107 T GetSlope() const; \
108 T GetIntercept() const;
116#ifdef VTK_AFFINE_ARRAY_INSTANTIATING
117#define VTK_AFFINE_ARRAY_INSTANTIATE(T) \
118 namespace vtkDataArrayPrivate \
120 VTK_ABI_NAMESPACE_BEGIN \
121 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkAffineArray<T>, double); \
122 VTK_ABI_NAMESPACE_END \
124 VTK_ABI_NAMESPACE_BEGIN \
125 template class VTKCOMMONCORE_EXPORT vtkAffineArray<T>; \
126 VTK_ABI_NAMESPACE_END
130#define VTK_AFFINE_ARRAY_INSTANTIATE_VALUERANGE(T) \
131 namespace vtkDataArrayPrivate \
133 VTK_ABI_NAMESPACE_BEGIN \
134 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkAffineArray<T>, T); \
135 VTK_ABI_NAMESPACE_END \
137#elif defined(VTK_USE_EXTERN_TEMPLATE)
138#ifndef VTK_AFFINE_ARRAY_EXTERN
139#define VTK_AFFINE_ARRAY_EXTERN
144#pragma warning(disable : 4910)
146VTK_ABI_NAMESPACE_BEGIN
152VTK_ABI_NAMESPACE_BEGIN
182#elif defined(_MSC_VER) && !defined(VTK_BUILD_SHARED_LIBS)
186#pragma warning(disable : 4091)
189#pragma warning(disable : 4231)
202#pragma warning(disable : 4910)
206VTK_ABI_NAMESPACE_BEGIN
Abstract superclass for all arrays.
std::integral_constant< int, VTK_OPAQUE > DataTypeTag
std::integral_constant< int, vtkArrayTypes::VTK_ABSTRACT_ARRAY > ArrayTypeTag
A utility array for wrapping affine functions in implicit arrays.
ValueType GetIntercept() const
Get the intercept of the affine function.
vtkAffineArray< ValueTypeT > SelfType
static vtkAffineArray< ValueType > * FastDownCast(vtkAbstractArray *source)
A faster alternative to SafeDownCast for downcasting vtkAbstractArrays.
vtkImplicitArrayTypeMacro(SelfType, ImplicitArrayType)
void ConstructBackend(ValueType slope, ValueType intercept)
Set the parameters for the affine backend.
~vtkAffineArray() override=default
static vtkAffineArray * New()
ValueType GetSlope() const
Get the slope of the affine function.
vtk::detail::implicit_array_traits< BackendT >::rtype ValueType
std::shared_ptr< BackendT > GetBackend()
Setter/Getter for Backend.
#define vtkArrayDownCast_TemplateFastCastMacro(ArrayT)
Same as vtkArrayDownCast_FastCastMacro, but treats ArrayT as a single-parameter template (the paramet...
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTK_DECLARE_VALUERANGE_ARRAYTYPE(ArrayType, ValueType)
#define vtkCreateImplicitWrappedArrayInterface(T)
#define vtkExternTemplateMacro(decl)
A macro to declare extern templates for all numerical types.
#define vtkInstantiateTemplateMacro(decl)
A macro to instantiate a template over all numerical types.