|
| VTKM_ARRAY_HANDLE_SUBCLASS (ArrayHandleSOA,(ArrayHandleSOA< T >),(ArrayHandle< T, vtkm::cont::StorageTagSOA >)) |
|
| ArrayHandleSOA (std::initializer_list< vtkm::cont::internal::Buffer > &&componentBuffers) |
|
| ArrayHandleSOA (const std::array< ComponentArrayType, NUM_COMPONENTS > &componentArrays) |
|
| ArrayHandleSOA (const std::vector< ComponentArrayType > &componentArrays) |
|
| ArrayHandleSOA (std::initializer_list< ComponentArrayType > &&componentArrays) |
|
| ArrayHandleSOA (std::initializer_list< std::vector< ComponentType >> &&componentVectors) |
|
template<typename Allocator , typename... RemainingVectors> |
| ArrayHandleSOA (vtkm::CopyFlag copy, const std::vector< ComponentType, Allocator > &vector0, RemainingVectors &&... componentVectors) |
|
template<typename... RemainingVectors> |
| ArrayHandleSOA (vtkm::CopyFlag copy, std::vector< ComponentType > &&vector0, RemainingVectors &&... componentVectors) |
|
template<typename... RemainingVectors> |
| ArrayHandleSOA (const std::vector< ComponentType > &vector0, const RemainingVectors &... componentVectors) |
|
| ArrayHandleSOA (std::initializer_list< const ComponentType * > componentArrays, vtkm::Id length, vtkm::CopyFlag copy) |
|
| ArrayHandleSOA (std::initializer_list< const ComponentType * > componentArrays, vtkm::Id length) |
|
template<typename... RemainingArrays> |
| ArrayHandleSOA (vtkm::Id length, vtkm::CopyFlag copy, const ComponentType *array0, const RemainingArrays &... componentArrays) |
|
template<typename... RemainingArrays> |
| ArrayHandleSOA (vtkm::Id length, const ComponentType *array0, const RemainingArrays &... componentArrays) |
|
VTKM_CONT vtkm::cont::ArrayHandleBasic< ComponentType > | GetArray (vtkm::IdComponent index) const |
|
VTKM_CONT void | SetArray (vtkm::IdComponent index, const ComponentArrayType &array) |
|
Public Member Functions inherited from vtkm::cont::ArrayHandle< T, vtkm::cont::StorageTagSOA > |
struct | VTKM_DEPRECATED (1.6, "Use ReadPortalType and WritePortalType.") ExecutionTypes |
|
VTKM_CONT | VTKM_DEPRECATED (1.6, "Use ArrayHandle::WritePortal() instead. " "Note that the returned portal will lock the array while it is in scope.") VTKM_CONT VTKM_DEPRECATED(1.6 |
| Get the array portal of the control array. More...
|
|
| VTKM_DEPRECATED (1.6, "Use Allocate(n, vtkm::CopyFlag::On) instead of Shrink(n).") VTKM_CONT void Shrink(vtkm |
|
VTKM_CONT | VTKM_DEPRECATED (1.6, "PrepareForInput now requires a vtkm::cont::Token object.") ReadPortalType PrepareForInput(vtkm |
|
VTKM_CONT | ArrayHandle () |
| Constructs an empty ArrayHandle. More...
|
|
VTKM_CONT | ArrayHandle (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &src) |
| Copy constructor. More...
|
|
VTKM_CONT | ArrayHandle (vtkm::cont::ArrayHandle< ValueType, StorageTag > &&src) noexcept |
| Move constructor. More...
|
|
VTKM_CONT | ~ArrayHandle () |
| Destructs an empty ArrayHandle. More...
|
|
VTKM_CONT vtkm::cont::ArrayHandle< ValueType, StorageTag > & | operator= (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &src) |
| Copies an ArrayHandle. More...
|
|
VTKM_CONT vtkm::cont::ArrayHandle< ValueType, StorageTag > & | operator= (vtkm::cont::ArrayHandle< ValueType, StorageTag > &&src) noexcept |
| Move and Assignment of an ArrayHandle. More...
|
|
VTKM_CONT bool | operator== (const ArrayHandle< ValueType, StorageTag > &rhs) const |
| Like a pointer, two ArrayHandles are considered equal if they point to the same location in memory. More...
|
|
VTKM_CONT bool | operator== (const ArrayHandle< VT, ST > &) const |
|
VTKM_CONT bool | operator!= (const ArrayHandle< ValueType, StorageTag > &rhs) const |
|
VTKM_CONT bool | operator!= (const ArrayHandle< VT, ST > &) const |
|
VTKM_CONT StorageType | GetStorage () const |
| Get the storage. More...
|
|
VTKM_CONT Use | ArrayHandle::ReadPortal () instead. " "Note that the returned portal will lock the array while it is in scope.") VTKM_CONT ReadPortalType ReadPortal() const |
| Get an array portal that can be used in the control environment. More...
|
|
VTKM_CONT WritePortalType | WritePortal () const |
| Get an array portal that can be used in the control environment. More...
|
|
VTKM_CONT vtkm::Id | GetNumberOfValues () const |
| Returns the number of entries in the array. More...
|
|
VTKM_CONT void | ReleaseResourcesExecution () const |
| Releases any resources being used in the execution environment (that are not being shared by the control environment). More...
|
|
VTKM_CONT void | ReleaseResources () const |
| Releases all resources in both the control and execution environments. More...
|
|
VTKM_CONT ReadPortalType | PrepareForInput (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const |
| Prepares this array to be used as an input to an operation in the execution environment. More...
|
|
VTKM_CONT WritePortalType | PrepareForInPlace (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const |
| Prepares this array to be used in an in-place operation (both as input and output) in the execution environment. More...
|
|
VTKM_CONT WritePortalType | PrepareForOutput (vtkm::Id numberOfValues, vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const |
| Prepares (allocates) this array to be used as an output from an operation in the execution environment. More...
|
|
VTKM_CONT | ArrayHandle (const std::vector< vtkm::cont::internal::Buffer > &buffers) |
|
VTKM_CONT | ArrayHandle (std::vector< vtkm::cont::internal::Buffer > &&buffers) noexcept |
|
VTKM_CONT | ArrayHandle (const vtkm::cont::internal::Buffer *buffers) |
|
VTKM_CONT void | Allocate (vtkm::Id numberOfValues, vtkm::CopyFlag preserve, vtkm::cont::Token &token) const |
| Allocates an array large enough to hold the given number of values. More...
|
|
VTKM_CONT void | Allocate (vtkm::Id numberOfValues, vtkm::CopyFlag preserve=vtkm::CopyFlag::Off) const |
| Allocates an array large enough to hold the given number of values. More...
|
|
VTKM_CONT void | AllocateAndFill (vtkm::Id numberOfValues, const ValueType &fillValue, vtkm::CopyFlag preserve, vtkm::cont::Token &token) const |
| Allocates an array and fills it with an initial value. More...
|
|
VTKM_CONT void | AllocateAndFill (vtkm::Id numberOfValues, const ValueType &fillValue, vtkm::CopyFlag preserve=vtkm::CopyFlag::Off) const |
| Allocates an array and fills it with an initial value. More...
|
|
VTKM_CONT void | Fill (const ValueType &fillValue, vtkm::Id startIndex, vtkm::Id endIndex, vtkm::cont::Token &token) const |
| Fills the array with a given value. More...
|
|
VTKM_CONT void | Fill (const ValueType &fillValue, vtkm::Id startIndex, vtkm::Id endIndex) const |
| Fills the array with a given value. More...
|
|
VTKM_CONT void | Fill (const ValueType &fillValue, vtkm::Id startIndex=0) const |
| Fills the array with a given value. More...
|
|
template<typename T>
class vtkm::cont::ArrayHandleSOA< T >
An ArrayHandle
that for Vecs stores each component in a separate physical array.
ArrayHandleSOA
behaves like a regular ArrayHandle
(with a basic storage) except that if you specify a ValueType
of a Vec
or a Vec-like
, it will actually store each component in a separate physical array. When data are retrieved from the array, they are reconstructed into Vec
objects as expected.
The intention of this array type is to help cover the most common ways data is lain out in memory. Typically, arrays of data are either an "array of structures" like the basic storage where you have a single array of structures (like Vec
) or a "structure of arrays" where you have an array of a basic type (like float
) for each component of the data being represented. The ArrayHandleSOA
makes it easy to cover this second case without creating special types.
ArrayHandleSOA
can be constructed from a collection of ArrayHandle
with basic storage. This allows you to construct Vec
arrays from components without deep copies.