VTK-m  2.2
Public Types | Static Public Member Functions | List of all members
vtkm::VecTraits< vtkm::VecC< T > > Struct Template Reference

#include <VecTraits.h>

Public Types

using VecType = vtkm::VecC< T >
 
using ComponentType = typename VecType::ComponentType
 Type of the components in the vector. More...
 
using BaseComponentType = typename vtkm::VecTraits< ComponentType >::BaseComponentType
 Base component type in the vector. More...
 
using HasMultipleComponents = vtkm::VecTraitsTagMultipleComponents
 A tag specifying whether this vector has multiple components (i.e. More...
 
using IsSizeStatic = vtkm::VecTraitsTagSizeVariable
 A tag specifying whether the size of this vector is known at compile time. More...
 
template<typename NewComponentType >
using ReplaceComponentType = vtkm::VecC< NewComponentType >
 Get a vector of the same type but with a different component. More...
 
template<typename NewComponentType >
using ReplaceBaseComponentType = vtkm::VecC< typename vtkm::VecTraits< ComponentType >::template ReplaceBaseComponentType< NewComponentType > >
 Get a vector of the same type but with a different base component. More...
 

Static Public Member Functions

static vtkm::IdComponent GetNumberOfComponents (const VecType &vector)
 Number of components in the given vector. More...
 
static const ComponentTypeGetComponent (const VecType &vector, vtkm::IdComponent component)
 Returns the value in a given component of the vector. More...
 
static ComponentTypeGetComponent (VecType &vector, vtkm::IdComponent component)
 
static void SetComponent (VecType &vector, vtkm::IdComponent component, ComponentType value)
 Changes the value in a given component of the vector. More...
 
template<vtkm::IdComponent destSize>
static void CopyInto (const VecType &src, vtkm::Vec< ComponentType, destSize > &dest)
 Converts whatever type this vector is into the standard VTKm Tuple. More...
 

Member Typedef Documentation

◆ BaseComponentType

Base component type in the vector.

Similar to ComponentType except that for nested vectors (e.g. Vec<Vec<T, M>, N>), it returns the base scalar type at the end of the composition (T in this example).

◆ ComponentType

template<typename T >
using vtkm::VecTraits< vtkm::VecC< T > >::ComponentType = typename VecType::ComponentType

Type of the components in the vector.

If the type is really a scalar, then the component type is the same as the scalar type.

◆ HasMultipleComponents

A tag specifying whether this vector has multiple components (i.e.

is a "real" vector). This tag can be useful for creating specialized functions when a vector is really just a scalar.

The size of a VecC is not known until runtime and can always potentially have multiple components, this is always set to HasMultipleComponents.

◆ IsSizeStatic

A tag specifying whether the size of this vector is known at compile time.

If set to VecTraitsTagSizeStatic, then NUM_COMPONENTS is set. If set to VecTraitsTagSizeVariable, then the number of components is not known at compile time and must be queried with GetNumberOfComponents.

◆ ReplaceBaseComponentType

template<typename T >
template<typename NewComponentType >
using vtkm::VecTraits< vtkm::VecC< T > >::ReplaceBaseComponentType = vtkm::VecC< typename vtkm::VecTraits<ComponentType>::template ReplaceBaseComponentType<NewComponentType> >

Get a vector of the same type but with a different base component.

This type resolves to another vector with a different base component type. The replacement is recursive for nested types. For example,

VecTraits<Vec<Vec<T, M>, N>::ReplaceComponentType<T2>

is Vec<Vec<T2, M>, N>.

◆ ReplaceComponentType

template<typename T >
template<typename NewComponentType >
using vtkm::VecTraits< vtkm::VecC< T > >::ReplaceComponentType = vtkm::VecC<NewComponentType>

Get a vector of the same type but with a different component.

This type resolves to another vector with a different component type. For example,

vtkm::VecTraits<vtkm::Vec<T, N>>::ReplaceComponentType<T2>

is vtkm::Vec<T2, N>. This replacement is not recursive. So

VecTraits<Vec<Vec<T, M>, N>::ReplaceComponentType<T2>

is vtkm::Vec<T2, N>.

◆ VecType

template<typename T >
using vtkm::VecTraits< vtkm::VecC< T > >::VecType = vtkm::VecC<T>

Member Function Documentation

◆ CopyInto()

template<typename T >
template<vtkm::IdComponent destSize>
static void vtkm::VecTraits< vtkm::VecC< T > >::CopyInto ( const VecType src,
vtkm::Vec< ComponentType, destSize > &  dest 
)
inlinestatic

Converts whatever type this vector is into the standard VTKm Tuple.

◆ GetComponent() [1/2]

template<typename T >
static const ComponentType& vtkm::VecTraits< vtkm::VecC< T > >::GetComponent ( const VecType vector,
vtkm::IdComponent  component 
)
inlinestatic

Returns the value in a given component of the vector.

◆ GetComponent() [2/2]

template<typename T >
static ComponentType& vtkm::VecTraits< vtkm::VecC< T > >::GetComponent ( VecType vector,
vtkm::IdComponent  component 
)
inlinestatic

◆ GetNumberOfComponents()

template<typename T >
static vtkm::IdComponent vtkm::VecTraits< vtkm::VecC< T > >::GetNumberOfComponents ( const VecType vector)
inlinestatic

Number of components in the given vector.

◆ SetComponent()

template<typename T >
static void vtkm::VecTraits< vtkm::VecC< T > >::SetComponent ( VecType vector,
vtkm::IdComponent  component,
ComponentType  value 
)
inlinestatic

Changes the value in a given component of the vector.


The documentation for this struct was generated from the following file:
vtkm::VecTraits
Traits that can be queried to treat any type as a Vec.
Definition: VecTraits.h:61