VTK
9.3.1
|
A utility structure serving as a backend for composite arrays: an array composed of multiple arrays concatenated together. More...
#include <vtkCompositeImplicitBackend.h>
Public Member Functions | |
vtkCompositeImplicitBackend (const std::vector< vtkDataArray * > &arrays) | |
Constructor for the backend. More... | |
~vtkCompositeImplicitBackend () | |
ValueType | operator() (int idx) const |
Indexing operator for the composite of the two arrays respecting the vtkImplicitArray expectations. More... | |
Protected Attributes | |
std::unique_ptr< Internals > | Internal |
A utility structure serving as a backend for composite arrays: an array composed of multiple arrays concatenated together.
This structure can be classified as a closure and can be called using syntax similar to a function call.
This class uses indirect addressing of cached arrays to provide an access compute complexity of O(log_2(number_of_arrays)) through its ()
operator.
At construction it takes an array arrays in order to represent their concatenation.
An example of potential usage in a vtkImplicitArray
vtkNew<vtkCompositeArray<int>> compositeArr;
if applicable std::vector<vtkDataArray*> arrays({leftArr, rightArr}); compositeArr->SetBackend(std::make_shared<vtkCompositeImplicitBackend<int>>(arrays)); CHECK(compositArr->GetValue(1) == 1);WARNING: Arrays input to the backend are flattened upon use and are no longer sensitive to component information.
Definition at line 51 of file vtkCompositeImplicitBackend.h.
vtkCompositeImplicitBackend< ValueType >::vtkCompositeImplicitBackend | ( | const std::vector< vtkDataArray * > & | arrays | ) |
Constructor for the backend.
arrays | std::vector of arrays to composite together leftArr->GetNumberOfTuples() |
vtkCompositeImplicitBackend< ValueType >::~vtkCompositeImplicitBackend | ( | ) |
ValueType vtkCompositeImplicitBackend< ValueType >::operator() | ( | int | idx | ) | const |
Indexing operator for the composite of the two arrays respecting the vtkImplicitArray
expectations.
Conceptually, the composite array uses a binary search algorithm through the use of std::upper_bounds
to offer a compute complexity of O(log_2(n_arrays))
|
protected |
Definition at line 72 of file vtkCompositeImplicitBackend.h.