|
| ArrayHandleSOA () |
|
VTKM_CONT | ArrayHandleSOA (const Thisclass &src) |
|
VTKM_CONT | ArrayHandleSOA (Thisclass &&src) noexcept |
|
VTKM_CONT | ArrayHandleSOA (const vtkm::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &src) |
|
VTKM_CONT | ArrayHandleSOA (vtkm::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &&src) noexcept |
|
VTKM_CONT | ArrayHandleSOA (const std::vector< vtkm::cont::internal::Buffer > &buffers) |
|
VTKM_CONT | ArrayHandleSOA (std::vector< vtkm::cont::internal::Buffer > &&buffers) noexcept |
|
VTKM_CONT Thisclass & | operator= (const Thisclass &src) |
|
VTKM_CONT Thisclass & | operator= (Thisclass &&src) noexcept |
|
| ArrayHandleSOA (std::initializer_list< vtkm::cont::internal::Buffer > &&componentBuffers) |
|
| ArrayHandleSOA (const std::array< ComponentArrayType, NUM_COMPONENTS > &componentArrays) |
| Construct an ArrayHandleSOA from a collection of component arrays. More...
|
|
| ArrayHandleSOA (const std::vector< ComponentArrayType > &componentArrays) |
| Construct an ArrayHandleSOA from a collection of component arrays. More...
|
|
| ArrayHandleSOA (std::initializer_list< ComponentArrayType > &&componentArrays) |
| Construct an ArrayHandleSOA from a collection of component arrays. More...
|
|
| ArrayHandleSOA (std::initializer_list< std::vector< ComponentType >> &&componentVectors) |
| Construct an ArrayHandleSOA from a collection of component arrays. More...
|
|
template<typename Allocator , typename... RemainingVectors> |
| ArrayHandleSOA (vtkm::CopyFlag copy, const std::vector< ComponentType, Allocator > &vector0, RemainingVectors &&... componentVectors) |
| Construct an ArrayHandleSOA from a collection of component arrays. More...
|
|
template<typename... RemainingVectors> |
| ArrayHandleSOA (vtkm::CopyFlag copy, std::vector< ComponentType > &&vector0, RemainingVectors &&... componentVectors) |
| Construct an ArrayHandleSOA from a collection of component arrays. More...
|
|
| ArrayHandleSOA (std::initializer_list< const ComponentType * > componentArrays, vtkm::Id length, vtkm::CopyFlag copy) |
| Construct an ArrayHandleSOA from a collection of component arrays. More...
|
|
template<typename... RemainingArrays> |
| ArrayHandleSOA (vtkm::Id length, vtkm::CopyFlag copy, const ComponentType *array0, const RemainingArrays &... componentArrays) |
| Construct an ArrayHandleSOA from a collection of component arrays. More...
|
|
vtkm::cont::ArrayHandleBasic< ComponentType > | GetArray (vtkm::IdComponent index) const |
| Get a basic array representing the component for the given index. More...
|
|
void | SetArray (vtkm::IdComponent index, const ComponentArrayType &array) |
| Replace a component array. More...
|
|
Public Member Functions inherited from vtkm::cont::ArrayHandle< T, vtkm::cont::StorageTagSOA > |
| ArrayHandle () |
| Constructs an empty ArrayHandle. More...
|
|
| ArrayHandle (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &src) |
| Copy constructor. More...
|
|
| ArrayHandle (vtkm::cont::ArrayHandle< ValueType, StorageTag > &&src) noexcept |
| Move constructor. More...
|
|
| ArrayHandle (const std::vector< vtkm::cont::internal::Buffer > &buffers) |
| Special constructor for subclass specializations that need to set the initial state array. More...
|
|
| ArrayHandle (std::vector< vtkm::cont::internal::Buffer > &&buffers) noexcept |
| Special constructor for subclass specializations that need to set the initial state array. More...
|
|
| ~ArrayHandle () |
| Destructs an empty ArrayHandle. More...
|
|
vtkm::cont::ArrayHandle< ValueType, StorageTag > & | operator= (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &src) |
| Shallow copies an ArrayHandle. More...
|
|
vtkm::cont::ArrayHandle< ValueType, StorageTag > & | operator= (vtkm::cont::ArrayHandle< ValueType, StorageTag > &&src) noexcept |
| Move and Assignment of an ArrayHandle. More...
|
|
bool | operator== (const ArrayHandle< ValueType, StorageTag > &rhs) const |
| Like a pointer, two ArrayHandle s are considered equal if they point to the same location in memory. More...
|
|
bool | operator== (const ArrayHandle< VT, ST > &) const |
|
bool | operator!= (const ArrayHandle< ValueType, StorageTag > &rhs) const |
|
bool | operator!= (const ArrayHandle< VT, ST > &) const |
|
StorageType | GetStorage () const |
| Get the storage. More...
|
|
ReadPortalType | ReadPortal () const |
| Get an array portal that can be used in the control environment. More...
|
|
ReadPortalType | ReadPortal (vtkm::cont::Token &token) const |
| The type of portal used when accessing data in a read-only mode. More...
|
|
WritePortalType | WritePortal () const |
| Get an array portal that can be used in the control environment. More...
|
|
WritePortalType | WritePortal (vtkm::cont::Token &token) const |
| Get an array portal that can be used in the control environment. More...
|
|
vtkm::Id | GetNumberOfValues () const |
| Returns the number of entries in the array. More...
|
|
vtkm::IdComponent | GetNumberOfComponentsFlat () const |
| Returns the total number of components for each value in the array. More...
|
|
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...
|
|
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...
|
|
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...
|
|
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...
|
|
void | Fill (const ValueType &fillValue, vtkm::Id startIndex, vtkm::Id endIndex, vtkm::cont::Token &token) const |
| Fills the array with a given value. More...
|
|
void | Fill (const ValueType &fillValue, vtkm::Id startIndex, vtkm::Id endIndex) const |
| Fills the array with a given value. More...
|
|
void | Fill (const ValueType &fillValue, vtkm::Id startIndex=0) const |
| Fills the array with a given value. More...
|
|
void | ReleaseResourcesExecution () const |
| Releases any resources being used in the execution environment (that are not being shared by the control environment). More...
|
|
void | ReleaseResources () const |
| Releases all resources in both the control and execution environments. More...
|
|
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...
|
|
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...
|
|
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...
|
|
bool | IsOnDevice (vtkm::cont::DeviceAdapterId device) const |
| Returns true if the ArrayHandle's data is on the given device. More...
|
|
bool | IsOnHost () const |
| Returns true if the ArrayHandle's data is on the host. More...
|
|
void | SyncControlArray () const |
| Synchronizes the control array with the execution array. More...
|
|
void | Enqueue (const vtkm::cont::Token &token) const |
| Enqueue a token for access to this ArrayHandle. More...
|
|
void | DeepCopyFrom (const vtkm::cont::ArrayHandle< ValueType, StorageTag > &source) const |
| Deep copies the data in the array. More...
|
|
const std::vector< vtkm::cont::internal::Buffer > & | GetBuffers () const |
| Returns the internal Buffer structures that hold the data. More...
|
|
std::vector< vtkm::cont::internal::Buffer > & | GetBuffers () |
|
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.