|
| 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) |
|
| ArrayHandleSOA (std::initializer_list< const ComponentType * > componentArrays, vtkm::Id length, vtkm::CopyFlag copy) |
|
template<typename... RemainingArrays> |
| ArrayHandleSOA (vtkm::Id length, vtkm::CopyFlag copy, 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 > |
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 WritePortalType | WritePortal () const |
| Get an array portal that can be used in the control environment. More...
|
|
VTKM_CONT WritePortalType | WritePortal (vtkm::cont::Token &token) const |
|
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 bool | IsOnDevice (vtkm::cont::DeviceAdapterId device) const |
| Returns true if the ArrayHandle's data is on the given device. More...
|
|
VTKM_CONT bool | IsOnHost () const |
| Returns true if the ArrayHandle's data is on the host. More...
|
|
VTKM_CONT void | SyncControlArray () const |
| Synchronizes the control array with the execution array. More...
|
|
VTKM_CONT void | Enqueue (const vtkm::cont::Token &token) const |
| Enqueue a token for access to this ArrayHandle. More...
|
|
VTKM_CONT void | DeepCopyFrom (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &source) const |
| Deep copies the data in the array. More...
|
|
const VTKM_CONT std::vector< vtkm::cont::internal::Buffer > & | GetBuffers () const |
| Returns the internal Buffer structures that hold the data. More...
|
|
VTKM_CONT std::vector< vtkm::cont::internal::Buffer > & | GetBuffers () |
|
VTKM_CONT | ArrayHandle (const std::vector< vtkm::cont::internal::Buffer > &buffers) |
|
VTKM_CONT | ArrayHandle (std::vector< vtkm::cont::internal::Buffer > &&buffers) noexcept |
|
VTKM_CONT ReadPortalType | ReadPortal () const |
| Get an array portal that can be used in the control environment. More...
|
|
VTKM_CONT ReadPortalType | ReadPortal (vtkm::cont::Token &token) const |
| Get an array portal that can be used in the control environment. More...
|
|
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.