PLaSK library
Loading...
Searching...
No Matches
plask::MultiVectorFieldProperty< ValueT, _ExtraParams > Struct Template Reference

Helper class which makes it easier to define property tags classes for multiple vectorial fields that can be interpolated. More...

#include <plask/provider/providerfor.hpp>

Inheritance diagram for plask::MultiVectorFieldProperty< ValueT, _ExtraParams >:
[legend]
Collaboration diagram for plask::MultiVectorFieldProperty< ValueT, _ExtraParams >:
[legend]

Public Types

typedef size_t EnumType
 Default value enumeration type.
 
- Public Types inherited from plask::Property< _propertyType, _ValueType2D, _ValueType3D, _ExtraParams >
typedef _ValueType2D ValueType2D
 Type of provided value in 2D space.
 
typedef _ValueType3D ValueType3D
 Type of provided value in 3D space.
 
typedef VariadicTemplateTypesHolder< _ExtraParams... > ExtraParams
 Extra parameters passed as arguments to provider to get value.
 

Static Public Member Functions

static Vec< 2, ValueTvalue3Dto2D (const Vec< 3, ValueT > &v)
 Convert value in 3D space to 2D space by removing component.
 
static Vec< 3, ValueTvalue2Dto3D (const Vec< 2, ValueT > &v)
 Convert value in 2D space to 2D space by adding zeroed component.
 
- Static Public Member Functions inherited from plask::Property< _propertyType, _ValueType2D, _ValueType3D, _ExtraParams >
static ValueType2D getDefaultValue2D ()
 Return default value of the property (usually zero) in 2D space.
 
static ValueType3D getDefaultValue3D ()
 Return default value of the property (usually zero) in 3D space.
 

Additional Inherited Members

- Static Public Attributes inherited from plask::Property< _propertyType, _ValueType2D, _ValueType3D, _ExtraParams >
static const PropertyType propertyType = _propertyType
 Type of property.
 
static constexpr const charNAME = PropertyTypeToProviderName<_propertyType>::value
 Name of the property.
 
static constexpr bool hasUniqueValueType = false
 true only if property use same value type in 2D and 3D space
 

Detailed Description

template<typename ValueT = double, typename... _ExtraParams>
struct plask::MultiVectorFieldProperty< ValueT, _ExtraParams >

Helper class which makes it easier to define property tags classes for multiple vectorial fields that can be interpolated.

Properties defined with this tag has another type of value in 2D and 3D space:

  • Vec<2, ValueT> in 2D space,
  • Vec<3, ValueT> in 3D space.

Property tag class can be subclass of this, but never should be typedefs to this (tag class for each property must be a separate class — always use different types for different properties).

Definition at line 388 of file providerfor.hpp.

Member Typedef Documentation

◆ EnumType

template<typename ValueT = double, typename... _ExtraParams>
typedef size_t plask::MultiVectorFieldProperty< ValueT, _ExtraParams >::EnumType

Default value enumeration type.

Definition at line 391 of file providerfor.hpp.

Member Function Documentation

◆ value2Dto3D()

template<typename ValueT = double, typename... _ExtraParams>
static Vec< 3, ValueT > plask::MultiVectorFieldProperty< ValueT, _ExtraParams >::value2Dto3D ( const Vec< 2, ValueT > &  v)
inlinestatic

Convert value in 2D space to 2D space by adding zeroed component.

Parameters
vvalue in 2D space
Returns
p converted to 3D space

Definition at line 405 of file providerfor.hpp.

◆ value3Dto2D()

template<typename ValueT = double, typename... _ExtraParams>
static Vec< 2, ValueT > plask::MultiVectorFieldProperty< ValueT, _ExtraParams >::value3Dto2D ( const Vec< 3, ValueT > &  v)
inlinestatic

Convert value in 3D space to 2D space by removing component.

Parameters
vvalue in 3D space
Returns
p converted to 2D space

Definition at line 398 of file providerfor.hpp.


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