55#ifndef vtkStridedArray_h
56#define vtkStridedArray_h
58#include "vtkCommonCoreModule.h"
64VTK_ABI_NAMESPACE_BEGIN
68VTK_ABI_NAMESPACE_BEGIN
69template <
class ValueTypeT>
72 :
public vtkImplicitArray<vtkStridedImplicitBackend<ValueTypeT>, vtkArrayTypes::VTK_STRIDED_ARRAY>
74 using ImplicitArrayType =
87 using typename Superclass::ValueType;
97#if defined(__VTK_WRAP__) || defined(__WRAP_GCCXML__)
188#define vtkCreateStridedWrappedArrayInterface(T) \
189 vtkCreateImplicitWrappedArrayInterface(T); \
190 void ConstructBackend( \
191 vtkAbstractBuffer* buffer, vtkIdType stride, int components, vtkIdType offset); \
192 void ConstructBackend(vtkAbstractBuffer* buffer, vtkIdType stride, int components); \
193 void ConstructBackend(vtkAbstractBuffer* buffer, vtkIdType stride); \
194 void ConstructBackend(const T* buffer, vtkIdType stride, int components, vtkIdType offset); \
195 void ConstructBackend(const T* buffer, vtkIdType stride, int components); \
196 void ConstructBackend(const T* buffer, vtkIdType stride); \
197 const T* GetBuffer() const; \
198 vtkAbstractBuffer* GetBufferSource() const; \
199 vtkIdType GetStride() const; \
200 vtkIdType GetOffset() const;
208#ifdef VTK_STRIDED_ARRAY_INSTANTIATING
209#define VTK_STRIDED_ARRAY_INSTANTIATE(T) \
210 namespace vtkDataArrayPrivate \
212 VTK_ABI_NAMESPACE_BEGIN \
213 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkStridedArray<T>, double); \
214 VTK_ABI_NAMESPACE_END \
216 VTK_ABI_NAMESPACE_BEGIN \
217 template class VTKCOMMONCORE_EXPORT vtkStridedArray<T>; \
218 VTK_ABI_NAMESPACE_END
222#define VTK_STRIDED_ARRAY_INSTANTIATE_VALUERANGE(T) \
223 namespace vtkDataArrayPrivate \
225 VTK_ABI_NAMESPACE_BEGIN \
226 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkStridedArray<T>, T); \
227 VTK_ABI_NAMESPACE_END \
229#elif defined(VTK_USE_EXTERN_TEMPLATE)
230#ifndef VTK_STRIDED_ARRAY_EXTERN
231#define VTK_STRIDED_ARRAY_EXTERN
236#pragma warning(disable : 4910)
238VTK_ABI_NAMESPACE_BEGIN
244VTK_ABI_NAMESPACE_BEGIN
275#elif defined(_MSC_VER) && !defined(VTK_BUILD_SHARED_LIBS)
279#pragma warning(disable : 4091)
282#pragma warning(disable : 4231)
295#pragma warning(disable : 4910)
299VTK_ABI_NAMESPACE_BEGIN
Abstract superclass for all arrays.
std::integral_constant< int, VTK_OPAQUE > DataTypeTag
std::integral_constant< int, vtkArrayTypes::VTK_ABSTRACT_ARRAY > ArrayTypeTag
Abstract base class for vtkBuffer providing buffer protocol support.
std::shared_ptr< vtkStridedImplicitBackend< ValueTypeT > > GetBackend()
Hold a reference to a vtkObjectBase instance.
A utility array for wrapping a strided buffer in implicit arrays.
void ConstructBackend(vtkAbstractBuffer *buffer, vtkIdType stride)
Set the parameters for the strided backend using a vtkBuffer (via vtkAbstractBuffer) as the buffer so...
vtkAbstractBuffer * GetBufferSource() const
Get the buffer source object, if one was provided via the vtkAbstractBuffer overload of ConstructBack...
const ValueType * GetBuffer() const
Get the buffer of the strided backend.
void ConstructBackend(const ValueType *buffer, vtkIdType stride, int components, vtkIdType offset)
Set the parameters for the strided backend from a raw pointer.
vtkIdType GetStride() const
Get the stride of the strided backend.
~vtkStridedArray() override=default
static vtkStridedArray< ValueType > * FastDownCast(vtkAbstractArray *source)
A faster alternative to SafeDownCast for downcasting vtkAbstractArrays.
void ConstructBackend(vtkAbstractBuffer *buffer, vtkIdType stride, int components, vtkIdType offset)
Set the parameters for the strided backend using a vtkBuffer (via vtkAbstractBuffer) as the buffer so...
vtkStridedArray()=default
static vtkStridedArray * New()
void ConstructBackend(const ValueType *buffer, vtkIdType stride, int components)
Set the parameters for the strided backend from a raw pointer.
void ConstructBackend(const ValueType *buffer, vtkIdType stride)
Set the parameters for the strided backend from a raw pointer.
vtkIdType GetOffset() const
Get the offset of the strided backend.
vtkImplicitArrayTypeMacro(SelfType, ImplicitArrayType)
vtkStridedArray< ValueTypeT > SelfType
void ConstructBackend(vtkAbstractBuffer *buffer, vtkIdType stride, int components)
Set the parameters for the strided backend using a vtkBuffer (via vtkAbstractBuffer) as the buffer so...
#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.