14 #ifndef vtkDataArrayRange_h
15 #define vtkDataArrayRange_h
29 #include <type_traits>
90 VTK_ABI_NAMESPACE_BEGIN
106 template <
typename ArrayTypePtr, ComponentIdType TupleSize>
118 std::decay_t<decltype(vtk::detail::DeclareTupleRangeSpecialization<ArrayType, TupleSize>(
119 std::declval<ArrayType*>()))>;
123 typename ForceValueTypeForVtkDataArray =
double>
136 TupleSize, ForceValueTypeForVtkDataArray>(std::declval<ArrayType*>()))>;
139 VTK_ABI_NAMESPACE_END
248 VTK_ABI_NAMESPACE_BEGIN
259 return RangeType(array, start < 0 ? 0 : start, end < 0 ? array->GetNumberOfTuples() : end);
360 typename ForceValueTypeForVtkDataArray = double,
typename ArrayTypePtr =
vtkDataArray*>
370 return RangeType(array, start < 0 ? 0 : start, end < 0 ? array->GetNumberOfValues() : end);
373 VTK_ABI_NAMESPACE_END
378 #endif // vtkDataArrayRange_h
VTK_ITER_INLINE auto DataArrayTupleRange(const ArrayTypePtr &array, TupleIdType start=-1, TupleIdType end=-1) -> typename detail::SelectTupleRange< ArrayTypePtr, TupleSize >::type
Generate an stl and for-range compatible range of tuple iterators from a vtkDataArray.
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.
ValueRange< AOSArrayType, TupleSize, ForceValueTypeForVtkDataArray > DeclareValueRangeSpecialization(ArrayType *)
abstract superclass for arrays of numeric data
static constexpr ComponentIdType DynamicTupleSize
VTK_ITER_INLINE auto DataArrayValueRange(const ArrayTypePtr &array, ValueIdType start=-1, ValueIdType end=-1) -> typename detail::SelectValueRange< ArrayTypePtr, TupleSize, ForceValueTypeForVtkDataArray >::type
Generate an stl and for-range compatible range of flat AOS iterators from a vtkDataArray.
std::decay_t< decltype(vtk::detail::DeclareTupleRangeSpecialization< ArrayType, TupleSize >(std::declval< ArrayType * >()))> type
std::remove_reference_t< decltype(vtk::detail::DeclareValueRangeSpecialization< ArrayType, TupleSize, ForceValueTypeForVtkDataArray >(std::declval< ArrayType * >()))> type