VTK  9.3.20240529
Public Member Functions | List of all members
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:160
int vtkIdType
Definition vtkType.h:315
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: