|
VTK
9.7.1
|
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 More... | |
| unsigned long | getMemorySize () const |
| Returns the smallest integer memory size in KiB needed to store the array. More... | |
| vtkDataArray * | GetBaseArray () const |
| Get the original base array used for value lookup. More... | |
| vtkDataArray * | GetIndexArray () const |
| Get the original index array used for indirection. More... | |
| bool | GetMapTuples () const |
| Get if the indexed array is mapping tuples or values. More... | |
| vtkIndexedImplicitBackend (vtkIdList *indexes, vtkDataArray *array, bool mapTuples=false) | |
| Constructor. More... | |
| vtkIndexedImplicitBackend (vtkDataArray *indexes, vtkDataArray *array, bool mapTuples=false) | |
| Constructor. More... | |
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:
``` vtkNew<vtkIntArray> baseArray; baseArray->SetNumberOfComponents(1); baseArray->SetNumberOfTuples(100); auto range = vtk::DataArrayValueRange<1>(baseArray); std::iota(range.begin(), range.end(), 0);
vtkNew<vtkIdList> handles; handles->SetNumberOfIds(100); for (vtkIdType idx = 0; idx < 100; idx++) { handles->SetId(idx, 99-idx); }
vtkNew<vtkImplicitArray<vtkIndexedImplicitBackend<int>>> indexedArr; // More compact with // vtkIndexedArray<int> // if available indexedArr->SetBackend(std::make_shared<vtkIndexedImplicitBackend<int>>(handles, baseArray)); indexedArr->SetNumberOfComponents(1); indexedArr->SetNumberOfTuples(100); CHECK(indexedArr->GetValue(57) == 42);
```
Definition at line 55 of file vtkIndexedImplicitBackend.h.
| vtkIndexedImplicitBackend< ValueType >::vtkIndexedImplicitBackend | ( | vtkIdList * | indexes, |
| vtkDataArray * | array, | ||
| bool | mapTuples = false |
||
| ) |
Constructor.
| indexes | list of indexes to use for indirection of the array |
| array | base array of interest |
| mapTuples | decides if the indexes are mapping the tuples or the values WARNING: Mapping tuples only works with AOS and doesn't support SOA. |
| vtkIndexedImplicitBackend< ValueType >::vtkIndexedImplicitBackend | ( | vtkDataArray * | indexes, |
| vtkDataArray * | array, | ||
| bool | mapTuples = false |
||
| ) |
Constructor.
| indexes | list of indexes to use for indirection of the array |
| array | base array of interest |
| mapTuples | decides if the indexes are mapping the tuples or the values WARNING: Mapping tuples only works with AOS and doesn't support SOA. |
| vtkIndexedImplicitBackend< ValueType >::~vtkIndexedImplicitBackend | ( | ) |
| ValueType vtkIndexedImplicitBackend< ValueType >::operator() | ( | vtkIdType | idx | ) | const |
Indexing operation for the indexed array respecting the backend expectations of vtkImplicitArray
| 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.
| vtkDataArray* vtkIndexedImplicitBackend< ValueType >::GetBaseArray | ( | ) | const |
Get the original base array used for value lookup.
| vtkDataArray* vtkIndexedImplicitBackend< ValueType >::GetIndexArray | ( | ) | const |
Get the original index array used for indirection.
| bool vtkIndexedImplicitBackend< ValueType >::GetMapTuples | ( | ) | const |
Get if the indexed array is mapping tuples or values.
1.8.10