Viskores  1.0
Public Types | Public Member Functions | List of all members
viskores::cont::ArrayHandleCompositeVector< ArrayTs > Class Template Reference

An ArrayHandle that combines components from other arrays. More...

#include <ArrayHandleCompositeVector.h>

Inheritance diagram for viskores::cont::ArrayHandleCompositeVector< ArrayTs >:
viskores::cont::ArrayHandle< internal::CompositeVectorTraits< ArrayTs... >::ValueType, internal::CompositeVectorTraits< ArrayTs... >::StorageTag >

Public Types

using Thisclass = typename viskores::cont::detail::GetTypeInParentheses< void(ArrayHandleCompositeVector< ArrayTs... >) >::type
 
using Superclass = typename viskores::cont::detail::GetTypeInParentheses< void(typename internal::CompositeVectorTraits< ArrayTs... >::Superclass) >::type
 
using ValueType = typename Superclass::ValueType
 
using StorageTag = typename Superclass::StorageTag
 
using StorageType = typename Superclass::StorageType
 
using ReadPortalType = typename Superclass::ReadPortalType
 
using WritePortalType = typename Superclass::WritePortalType
 

Public Member Functions

 ArrayHandleCompositeVector ()
 
VISKORES_CONT ArrayHandleCompositeVector (const Thisclass &src)
 
VISKORES_CONT ArrayHandleCompositeVector (Thisclass &&src) noexcept
 
VISKORES_CONT ArrayHandleCompositeVector (const viskores::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &src)
 
VISKORES_CONT ArrayHandleCompositeVector (viskores::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &&src) noexcept
 
VISKORES_CONT ArrayHandleCompositeVector (const std::vector< viskores::cont::internal::Buffer > &buffers)
 
VISKORES_CONT ArrayHandleCompositeVector (std::vector< viskores::cont::internal::Buffer > &&buffers) noexcept
 
VISKORES_CONT Thisclassoperator= (const Thisclass &src)
 
VISKORES_CONT Thisclassoperator= (Thisclass &&src) noexcept
 
 ArrayHandleCompositeVector (const ArrayTs &... arrays)
 Construct an ArrayHandleCompositeVector from a set of component vectors. More...
 
viskores::Tuple< ArrayTs... > GetArrayTuple () const
 Return the arrays of all of the components in a viskores::Tuple object. More...
 

Detailed Description

template<typename... ArrayTs>
class viskores::cont::ArrayHandleCompositeVector< ArrayTs >

An ArrayHandle that combines components from other arrays.

ArrayHandleCompositeVector is a specialization of ArrayHandle that derives its content from other arrays. It takes any number of single-component ArrayHandle objects and mimics an array that contains vectors with components that come from these delegate arrays.

The easiest way to create and type an ArrayHandleCompositeVector is to use the make_ArrayHandleCompositeVector functions.

The ArrayHandleExtractComponent class may be helpful when a desired component is part of an ArrayHandle with a viskores::Vec ValueType.

If you are attempted to combine components that you know are stored in basic ArrayHandles, consider using ArrayHandleSOA instead.

Member Typedef Documentation

◆ ReadPortalType

template<typename... ArrayTs>
using viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ReadPortalType = typename Superclass::ReadPortalType

◆ StorageTag

template<typename... ArrayTs>
using viskores::cont::ArrayHandleCompositeVector< ArrayTs >::StorageTag = typename Superclass::StorageTag

◆ StorageType

template<typename... ArrayTs>
using viskores::cont::ArrayHandleCompositeVector< ArrayTs >::StorageType = typename Superclass::StorageType

◆ Superclass

template<typename... ArrayTs>
using viskores::cont::ArrayHandleCompositeVector< ArrayTs >::Superclass = typename viskores::cont::detail::GetTypeInParentheses<void (typename internal::CompositeVectorTraits<ArrayTs...>::Superclass) >::type

◆ Thisclass

template<typename... ArrayTs>
using viskores::cont::ArrayHandleCompositeVector< ArrayTs >::Thisclass = typename viskores::cont::detail::GetTypeInParentheses<void (ArrayHandleCompositeVector<ArrayTs...>) >::type

◆ ValueType

template<typename... ArrayTs>
using viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ValueType = typename Superclass::ValueType

◆ WritePortalType

template<typename... ArrayTs>
using viskores::cont::ArrayHandleCompositeVector< ArrayTs >::WritePortalType = typename Superclass::WritePortalType

Constructor & Destructor Documentation

◆ ArrayHandleCompositeVector() [1/8]

template<typename... ArrayTs>
viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ArrayHandleCompositeVector ( )
inline

◆ ArrayHandleCompositeVector() [2/8]

template<typename... ArrayTs>
VISKORES_CONT viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ArrayHandleCompositeVector ( const Thisclass src)
inline

◆ ArrayHandleCompositeVector() [3/8]

template<typename... ArrayTs>
VISKORES_CONT viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ArrayHandleCompositeVector ( Thisclass &&  src)
inlinenoexcept

◆ ArrayHandleCompositeVector() [4/8]

template<typename... ArrayTs>
VISKORES_CONT viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ArrayHandleCompositeVector ( const viskores::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &  src)
inline

◆ ArrayHandleCompositeVector() [5/8]

template<typename... ArrayTs>
VISKORES_CONT viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ArrayHandleCompositeVector ( viskores::cont::ArrayHandle< typename Superclass::ValueType, typename Superclass::StorageTag > &&  src)
inlinenoexcept

◆ ArrayHandleCompositeVector() [6/8]

template<typename... ArrayTs>
VISKORES_CONT viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ArrayHandleCompositeVector ( const std::vector< viskores::cont::internal::Buffer > &  buffers)
inlineexplicit

◆ ArrayHandleCompositeVector() [7/8]

template<typename... ArrayTs>
VISKORES_CONT viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ArrayHandleCompositeVector ( std::vector< viskores::cont::internal::Buffer > &&  buffers)
inlineexplicitnoexcept

◆ ArrayHandleCompositeVector() [8/8]

template<typename... ArrayTs>
viskores::cont::ArrayHandleCompositeVector< ArrayTs >::ArrayHandleCompositeVector ( const ArrayTs &...  arrays)
inline

Construct an ArrayHandleCompositeVector from a set of component vectors.

Member Function Documentation

◆ GetArrayTuple()

template<typename... ArrayTs>
viskores::Tuple<ArrayTs...> viskores::cont::ArrayHandleCompositeVector< ArrayTs >::GetArrayTuple ( ) const
inline

Return the arrays of all of the components in a viskores::Tuple object.

◆ operator=() [1/2]

template<typename... ArrayTs>
VISKORES_CONT Thisclass& viskores::cont::ArrayHandleCompositeVector< ArrayTs >::operator= ( const Thisclass src)
inline

◆ operator=() [2/2]

template<typename... ArrayTs>
VISKORES_CONT Thisclass& viskores::cont::ArrayHandleCompositeVector< ArrayTs >::operator= ( Thisclass &&  src)
inlinenoexcept

The documentation for this class was generated from the following file: