VTK  9.5.20251120
vtkIndexedImplicitBackend< ValueType > Class Template Reference

A backend for the vtkImplicitArray framework allowing one to use a subset of a given data array, by providing a vtkIdList or vtkDataArray of indexes as indirection, as another vtkDataArray without any excess memory consumption. More...

#include <vtkIndexedImplicitBackend.h>

Public Member Functions

 ~vtkIndexedImplicitBackend ()
 
ValueType operator() (vtkIdType idx) const
 Indexing operation for the indexed array respecting the backend expectations of vtkImplicitArray
 
unsigned long getMemorySize () const
 Returns the smallest integer memory size in KiB needed to store the array.
 
 vtkIndexedImplicitBackend (vtkIdList *indexes, vtkDataArray *array)
 Constructor.
 
 vtkIndexedImplicitBackend (vtkDataArray *indexes, vtkDataArray *array)
 Constructor.
 

Detailed Description

template<typename ValueType>
class vtkIndexedImplicitBackend< ValueType >

A backend for the vtkImplicitArray framework allowing one to use a subset of a given data array, by providing a vtkIdList or vtkDataArray of indexes as indirection, as another vtkDataArray without any excess memory consumption.

This structure can be classified as a closure and can be called using syntax similar to a function call.

An example of potential usage in a vtkImplicitArray:

baseArray->SetNumberOfComponents(1);
baseArray->SetNumberOfTuples(100);
auto range = vtk::DataArrayValueRange<1>(baseArray);
std::iota(range.begin(), range.end(), 0);
handles->SetNumberOfIds(100);
for (vtkIdType idx = 0; idx < 100; idx++)
{
handles->SetId(idx, 99-idx);
}
// `vtkIndexedArray<int>`
// if available
indexedArr->SetBackend(std::make_shared<vtkIndexedImplicitBackend<int>>(handles, baseArray));
indexedArr->SetNumberOfComponents(1);
indexedArr->SetNumberOfTuples(100);
CHECK(indexedArr->GetValue(57) == 42);
A backend for the vtkImplicitArray framework allowing one to use a subset of a given data array,...
Allocate and hold a VTK object.
Definition vtkNew.h:167
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.
int vtkIdType
Definition vtkType.h:367
See also
vtkImplicitArray, vtkIndexedArray

Definition at line 55 of file vtkIndexedImplicitBackend.h.

Constructor & Destructor Documentation

◆ vtkIndexedImplicitBackend() [1/2]

template<typename ValueType>
vtkIndexedImplicitBackend< ValueType >::vtkIndexedImplicitBackend ( vtkIdList * indexes,
vtkDataArray * array )

Constructor.

Parameters
indexeslist of indexes to use for indirection of the array
arraybase array of interest

◆ vtkIndexedImplicitBackend() [2/2]

template<typename ValueType>
vtkIndexedImplicitBackend< ValueType >::vtkIndexedImplicitBackend ( vtkDataArray * indexes,
vtkDataArray * array )

Constructor.

Parameters
indexeslist of indexes to use for indirection of the array
arraybase array of interest

◆ ~vtkIndexedImplicitBackend()

template<typename ValueType>
vtkIndexedImplicitBackend< ValueType >::~vtkIndexedImplicitBackend ( )

Member Function Documentation

◆ operator()()

template<typename ValueType>
ValueType vtkIndexedImplicitBackend< ValueType >::operator() ( vtkIdType idx) const

Indexing operation for the indexed array respecting the backend expectations of vtkImplicitArray

◆ getMemorySize()

template<typename ValueType>
unsigned long vtkIndexedImplicitBackend< ValueType >::getMemorySize ( ) const

Returns the smallest integer memory size in KiB needed to store the array.

Used to implement GetActualMemorySize on vtkIndexedImplicitBackend.


The documentation for this class was generated from the following files: