VTK-m
2.0
|
The VecTraits class gives several static members that define how to use a given type as a vector. More...
#include <VecTraits.h>
Public Types | |
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 = typename internal::VecTraitsMultipleComponentChooser< NUM_COMPONENTS >::Type |
A tag specifying whether this vector has multiple components (i.e. More... | |
using | IsSizeStatic = vtkm::VecTraitsTagSizeStatic |
A tag specifying whether the size of this vector is known at compile time. More... | |
template<typename NewComponentType > | |
using | ReplaceComponentType = VecTemplate< NewComponentType, N > |
Get a vector of the same type but with a different component. More... | |
template<typename NewComponentType > | |
using | ReplaceBaseComponentType = VecTemplate< typename VecTraits< ComponentType >::template ReplaceBaseComponentType< NewComponentType >, N > |
Get a vector of the same type but with a different base component. More... | |
Static Public Member Functions | |
static vtkm::IdComponent | GetNumberOfComponents (const VecType &vec) |
Number of components in the given vector. More... | |
static const VTKM_EXEC_CONT ComponentType & | GetComponent (const typename std::remove_const< VecType >::type &vector, vtkm::IdComponent component) |
Returns the value in a given component of the vector. More... | |
static VTKM_EXEC_CONT ComponentType & | GetComponent (typename std::remove_const< VecType >::type &vector, vtkm::IdComponent component) |
static VTKM_EXEC_CONT void | SetComponent (VecType &vector, vtkm::IdComponent component, ComponentType value) |
Changes the value in a given component of the vector. More... | |
template<vktm::IdComponent destSize> | |
static VTKM_EXEC_CONT void | CopyInto (const VecType &src, vtkm::Vec< ComponentType, destSize > &dest) |
Copies the components in the given vector into a given Vec object. More... | |
Static Public Attributes | |
static constexpr vtkm::IdComponent | NUM_COMPONENTS = VecType::NUM_COMPONENTS |
Number of components in the vector. More... | |
The VecTraits class gives several static members that define how to use a given type as a vector.
using vtkm::VecTraits< VecType >::BaseComponentType = typename vtkm::VecTraits<ComponentType>::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).
using vtkm::VecTraits< VecType >::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.
using vtkm::VecTraits< VecType >::HasMultipleComponents = typename internal::VecTraitsMultipleComponentChooser<NUM_COMPONENTS>::Type |
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.
using vtkm::VecTraits< VecType >::IsSizeStatic = vtkm::VecTraitsTagSizeStatic |
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
.
using vtkm::VecTraits< VecType >::ReplaceBaseComponentType = VecTemplate< typename VecTraits<ComponentType>::template ReplaceBaseComponentType<NewComponentType>, N> |
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,
is Vec<Vec<T2, M>, N>.
using vtkm::VecTraits< VecType >::ReplaceComponentType = VecTemplate<NewComponentType, N> |
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,
is vtkm::Vec<T2, N>. This replacement is not recursive. So
is vtkm::Vec<T2, N>.
|
static |
Copies the components in the given vector into a given Vec object.
|
static |
Returns the value in a given component of the vector.
|
static |
|
static |
Number of components in the given vector.
|
static |
Changes the value in a given component of the vector.
|
staticconstexpr |
Number of components in the vector.
This is only defined for vectors of a static size.