|
| ArrayHandleRuntimeVec () |
|
VTKM_CONT | ArrayHandleRuntimeVec (const Thisclass &src) |
|
VTKM_CONT | ArrayHandleRuntimeVec (Thisclass &&src) noexcept |
|
VTKM_CONT | ArrayHandleRuntimeVec (const vtkm::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &src) |
|
VTKM_CONT | ArrayHandleRuntimeVec (vtkm::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &&src) noexcept |
|
VTKM_CONT | ArrayHandleRuntimeVec (const std::vector< vtkm::cont::internal::Buffer > &buffers) |
|
VTKM_CONT | ArrayHandleRuntimeVec (std::vector< vtkm::cont::internal::Buffer > &&buffers) noexcept |
|
VTKM_CONT Thisclass & | operator= (const Thisclass &src) |
|
VTKM_CONT Thisclass & | operator= (Thisclass &&src) noexcept |
|
| ArrayHandleRuntimeVec (vtkm::IdComponent numComponents, const ComponentsArrayType &componentsArray=ComponentsArrayType{}) |
| Construct an ArrayHandleRuntimeVec with a given number of components. More...
|
|
vtkm::IdComponent | GetNumberOfComponents () const |
| Return the number of components in each vec value. More...
|
|
vtkm::cont::ArrayHandleBasic< ComponentType > | GetComponentsArray () const |
| Return a basic array containing the components stored in this array. More...
|
|
template<typename ValueType > |
void | AsArrayHandleBasic (vtkm::cont::ArrayHandle< ValueType > &array) const |
| Converts the array to that of a basic array handle. More...
|
|
template<typename ArrayType > |
ArrayType | AsArrayHandleBasic () const |
| Converts the array to that of a basic array handle. More...
|
|
Public Member Functions inherited from vtkm::cont::ArrayHandle< vtkm::VecFromPortal< ArrayHandleBasic< ComponentType >::WritePortalType >, vtkm::cont::StorageTagRuntimeVec > |
| 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 ComponentType>
class vtkm::cont::ArrayHandleRuntimeVec< ComponentType >
Fancy array handle for a basic array with runtime selected vec size.
It is sometimes the case that you need to create an array of Vec
s where the number of components is not known until runtime. This is problematic for normal ArrayHandle
s because you have to specify the size of the Vec
s as a template parameter at compile time. ArrayHandleRuntimeVec
can be used in this case.
Note that caution should be used with ArrayHandleRuntimeVec
because the size of the Vec
values is not known at compile time. Thus, the value type of this array is forced to a special VecFromPortal
class that can cause surprises if treated as a Vec
. In particular, the static NUM_COMPONENTS
expression does not exist. Furthermore, new variables of type VecFromPortal
cannot be created. This means that simple operators like +
will not work because they require an intermediate object to be created. (Equal operators like +=
do work because they are given an existing variable to place the output.)
It is possible to provide an ArrayHandleBasic
of the same component type as the underlying storage for this array. In this case, the array will be accessed much in the same manner as ArrayHandleGroupVec
.
ArrayHandleRuntimeVec
also allows you to convert the array to an ArrayHandleBasic
of the appropriate Vec
type (or component
type). A runtime check will be performed to make sure the number of components matches.