15#ifndef vtkConstantArray_h
16#define vtkConstantArray_h
18#include "vtkCommonCoreModule.h"
23VTK_ABI_NAMESPACE_BEGIN
24template <
class ValueTypeT>
28 vtkArrayTypes::VTK_CONSTANT_ARRAY>
30 using ImplicitArrayType =
43 using typename Superclass::ValueType;
53#if defined(__VTK_WRAP__) || defined(__WRAP_GCCXML__)
103#define vtkCreateConstantWrappedArrayInterface(T) \
104 vtkCreateImplicitWrappedArrayInterface(T); \
105 void ConstructBackend(T value); \
106 T GetConstantValue() const; \
107 bool IsBackendConstructed() const;
115#ifdef VTK_CONSTANT_ARRAY_INSTANTIATING
116#define VTK_CONSTANT_ARRAY_INSTANTIATE(T) \
117 namespace vtkDataArrayPrivate \
119 VTK_ABI_NAMESPACE_BEGIN \
120 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkConstantArray<T>, double); \
121 VTK_ABI_NAMESPACE_END \
123 VTK_ABI_NAMESPACE_BEGIN \
124 template class VTKCOMMONCORE_EXPORT vtkConstantArray<T>; \
125 VTK_ABI_NAMESPACE_END
129#define VTK_CONSTANT_ARRAY_INSTANTIATE_VALUERANGE(T) \
130 namespace vtkDataArrayPrivate \
132 VTK_ABI_NAMESPACE_BEGIN \
133 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkConstantArray<T>, T); \
134 VTK_ABI_NAMESPACE_END \
136#elif defined(VTK_USE_EXTERN_TEMPLATE)
137#ifndef VTK_CONSTANT_ARRAY_EXTERN
138#define VTK_CONSTANT_ARRAY_EXTERN
143#pragma warning(disable : 4910)
145VTK_ABI_NAMESPACE_BEGIN
151VTK_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 constant functions in implicit arrays.
vtkConstantArray()=default
static vtkConstantArray< ValueType > * FastDownCast(vtkAbstractArray *source)
A faster alternative to SafeDownCast for downcasting vtkAbstractArrays.
ValueType GetConstantValue() const
Get the constant value stored in this array.
static vtkConstantArray * New()
void ConstructBackend(ValueType value)
Set the constant value for this array.
~vtkConstantArray() override=default
vtkConstantArray< ValueTypeT > SelfType
bool IsBackendConstructed() const
Check whether the backend has been constructed.
vtkImplicitArrayTypeMacro(SelfType, ImplicitArrayType)
std::shared_ptr< vtkConstantImplicitBackend< ValueTypeT > > GetBackend()
#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.