VTK  9.3.20240418
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() (int idx) const
 Indexing operation for the indexed array respecting the backend expectations of vtkImplicitArray More...
 
unsigned long getMemorySize () const
 Returns the smallest integer memory size in KiB needed to store the array. More...
 
 vtkIndexedImplicitBackend (vtkIdList *indexes, vtkDataArray *array)
 Constructor. More...
 
 vtkIndexedImplicitBackend (vtkDataArray *indexes, vtkDataArray *array)
 Constructor. More...
 

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);
void SetNumberOfComponents(int num) override
Set/Get the dimension (n) of the components.
void SetNumberOfTuples(vtkIdType number) override
Set the number of tuples (a component group) in the array.
void SetNumberOfIds(vtkIdType number)
Specify the number of ids for this object to hold.
void SetId(vtkIdType i, vtkIdType vtkid)
Set the id at location i.
Definition: vtkIdList.h:188
A backend for the vtkImplicitArray framework allowing one to use a subset of a given data array,...
@ range
Definition: vtkX3D.h:238
int vtkIdType
Definition: vtkType.h:315
See also
vtkImplicitArray, vtkIndexedArray

Definition at line 53 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() ( int  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: